version 1.4, 2018/09/28 08:20:27 |
version 1.6, 2018/11/12 07:59:33 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2018/builtin/int.c,v 1.3 2018/09/25 07:36:01 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2018/builtin/int.c,v 1.5 2018/10/01 05:49:06 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 63 void Pmt_save(), Pmt_load(); |
|
Line 63 void Pmt_save(), Pmt_load(); |
|
void Psmall_jacobi(); |
void Psmall_jacobi(); |
void Pdp_set_mpi(); |
void Pdp_set_mpi(); |
void Pntoint32(),Pint32ton(); |
void Pntoint32(),Pint32ton(); |
|
void Pibin(); |
|
|
void Pigcdbin(), Pigcdbmod(), PigcdEuc(), Pigcdacc(), Pigcdcntl(); |
void Pigcdbin(), Pigcdbmod(), PigcdEuc(), Pigcdacc(), Pigcdcntl(); |
|
|
void Pihex(); |
void Pihex(); |
void Pimaxrsh(), Pilen(); |
void Pimaxrsh(), Pilen(); |
void Ptype_t_NB(); |
void Ptype_t_NB(); |
|
void Plprime64(); |
|
|
struct ftab int_tab[] = { |
struct ftab int_tab[] = { |
{"dp_set_mpi",Pdp_set_mpi,-1}, |
{"dp_set_mpi",Pdp_set_mpi,-1}, |
Line 78 struct ftab int_tab[] = { |
|
Line 80 struct ftab int_tab[] = { |
|
{"iqr",Piqr,2}, |
{"iqr",Piqr,2}, |
{"igcd",Pigcd,-2}, |
{"igcd",Pigcd,-2}, |
{"ilcm",Pilcm,2}, |
{"ilcm",Pilcm,2}, |
|
{"ibin",Pibin,2}, |
{"up2_inv",Pup2_inv,2}, |
{"up2_inv",Pup2_inv,2}, |
{"up2_init_eg",Pup2_init_eg,0}, |
{"up2_init_eg",Pup2_init_eg,0}, |
{"up2_show_eg",Pup2_show_eg,0}, |
{"up2_show_eg",Pup2_show_eg,0}, |
Line 93 struct ftab int_tab[] = { |
|
Line 96 struct ftab int_tab[] = { |
|
{"fac",Pfac,1}, |
{"fac",Pfac,1}, |
{"prime",Pprime,1}, |
{"prime",Pprime,1}, |
{"lprime",Plprime,1}, |
{"lprime",Plprime,1}, |
|
#if SIZEOF_LONG==8 |
|
{"lprime64",Plprime64,1}, |
|
#endif |
{"random",Prandom,-1}, |
{"random",Prandom,-1}, |
{"lrandom",Plrandom,1}, |
{"lrandom",Plrandom,1}, |
{"iand",Piand,2}, |
{"iand",Piand,2}, |
Line 119 static unsigned int gcd_small(unsigned int,unsigned in |
|
Line 125 static unsigned int gcd_small(unsigned int,unsigned in |
|
int TypeT_NB_check(unsigned int, unsigned int); |
int TypeT_NB_check(unsigned int, unsigned int); |
int mpi_mag; |
int mpi_mag; |
|
|
|
void ibin(unsigned long int n,unsigned long int k,Z *r) |
|
{ |
|
mpz_t t; |
|
|
|
mpz_init(t); |
|
mpz_bin_uiui(t,n,k); |
|
MPZTOZ(t,*r); |
|
} |
|
|
|
void Pibin(NODE arg,Z *rp) |
|
{ |
|
unsigned long int n,k; |
|
|
|
asir_assert(ARG0(arg),O_N,"ibin"); |
|
asir_assert(ARG1(arg),O_N,"ibin"); |
|
n = ZTOS((Z)ARG0(arg)); |
|
k = ZTOS((Z)ARG1(arg)); |
|
ibin(n,k,rp); |
|
} |
|
|
void Pntoint32(NODE arg,USINT *rp) |
void Pntoint32(NODE arg,USINT *rp) |
{ |
{ |
Z q,z; |
Z q,z; |
Line 685 void Plprime(NODE arg,Z *rp) |
|
Line 711 void Plprime(NODE arg,Z *rp) |
|
p = get_lprime(i); |
p = get_lprime(i); |
STOZ(p,*rp); |
STOZ(p,*rp); |
} |
} |
|
|
|
#if SIZEOF_LONG==8 |
|
void Plprime64(NODE arg,Z *rp) |
|
{ |
|
int i; |
|
mp_limb_t p; |
|
|
|
asir_assert(ARG0(arg),O_N,"lprime64"); |
|
i = ZTOS((Q)ARG0(arg)); |
|
if ( i < 0 ) |
|
*rp = 0; |
|
else |
|
p = get_lprime64(i); |
|
STOZ(p,*rp); |
|
} |
|
#endif |
|
|
extern int up_kara_mag, up_tkara_mag, up_fft_mag; |
extern int up_kara_mag, up_tkara_mag, up_fft_mag; |
|
|