[BACK]Return to paricom.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / windows / pari20 / win32com

Annotation of OpenXM_contrib2/windows/pari20/win32com/paricom.h, Revision 1.1

1.1     ! noro        1: /******************************************************************/
        !             2: /******************************************************************/
        !             3: /*                                                                */
        !             4: /*                       Fichier Include PARI                     */
        !             5: /*                   commun a toutes les versions                 */
        !             6: /*                                                                */
        !             7: /******************************************************************/
        !             8: /******************************************************************/
        !             9: /* $Id: paricom.h,v 1.1.1.1 1999/09/16 13:47:44 karim Exp $ */
        !            10:
        !            11: #define bit_accuracy(x) (((x)-2) << TWOPOTBITS_IN_LONG)
        !            12:
        !            13: #define GSTR(x) ((char*) (((GEN) (x)) + 1 ))
        !            14:
        !            15: /* For compatibility with 1.x.x */
        !            16: #define err pari_err /* move to e.g paritr.h ? */
        !            17: #define init pari_init
        !            18: #define gen2str GENtostr
        !            19: #define gpui gpow
        !            20: #define gpuigs gpowgs
        !            21: #define classno3 hclassno
        !            22: #define strtoGEN flisexpr
        !            23:
        !            24: #define rcopy mpcopy
        !            25: #define absr  mpabs
        !            26: #define absi  mpabs
        !            27: #define negi  mpneg
        !            28: #define negr  mpneg
        !            29: #define mpnegz(x,y)      {long av=avma;mpaff(mpneg(x),y);avma=av;}
        !            30: #define mpabsz(x,y)      {long av=avma;mpaff(mpabs(x),y);avma=av;}
        !            31: #define absrz(x,z)       mpabsz((x),(z))
        !            32: #define negrz(x,z)       mpnegz((x),(z))
        !            33:
        !            34: /* Common global variables: */
        !            35:
        !            36: extern PariOUT *pariOut, *pariErr;
        !            37: extern FILE    *pari_outfile, *logfile, *infile, *errfile;
        !            38:
        !            39: extern long  DEBUGFILES, DEBUGLEVEL, DEBUGMEM, precdl;
        !            40: extern long  *ordvar;
        !            41: extern GEN   bernzone,gpi,geuler;
        !            42: extern GEN   polvar,*polun,*polx,primetab;
        !            43: extern GEN   gun,gdeux,ghalf,gi,gzero;
        !            44:
        !            45: extern const long lontyp[];
        !            46:
        !            47: #define NUMPRTBELT     100 /* taille table de premiers prives */
        !            48: #define MAXITERPOL     10  /* nombre maximum de doublement de precision
        !            49:                              dans les operations de type polredabs */
        !            50:
        !            51:                                                 /* let SL = sizeof(long) */
        !            52: #define pariK  (9.632959862*(BYTES_IN_LONG/4))  /* SL*log(2)/log(10)     */
        !            53: #define pariK1 (0.103810253/(BYTES_IN_LONG/4))  /* log(10)/(SL*log(2))   */
        !            54: #define pariK2 (1.1239968)                      /* 1/(1-(log(2)/(2*pi))) */
        !            55: #define pariK4 (17.079468445347/BITS_IN_LONG)   /* 2*e*pi/SL             */
        !            56: #define LOG2   (0.69314718055994531)            /* log(2)                */
        !            57: #define L2SL10 (0.301029995663981)              /* log(2)/log(10)        */
        !            58: #define pariC1 (0.9189385332)                   /* log(2*pi)/2           */
        !            59: #define pariC2 (22.18070978*(BYTES_IN_LONG/4))  /* SL*log(2)             */
        !            60: #define pariC3 (0.0216950598/(BYTES_IN_LONG/4)) /* log((1+sqrt(5))/2)/C2 */
        !            61:
        !            62: #ifndef  PI
        !            63: #  define PI (3.141592653589)
        !            64: #endif
        !            65:
        !            66: #ifdef LONG_IS_64BIT
        !            67: #  define VERYBIGINT (9223372036854775807L) /* 2^63-1 */
        !            68: #  define EXP220 (1099511627776L)          /* 2^40   */
        !            69: #  define BIGINT (2147483647)              /* 2^31-1 */
        !            70: #else
        !            71: #  define VERYBIGINT (2147483647L) /* 2^31-1 */
        !            72: #  define EXP220 (1048576L)       /* 2^20   */
        !            73: #  define BIGINT (32767)          /* 2^15-1 */
        !            74: #endif
        !            75:
        !            76: #ifdef NOEXP2
        !            77: #  ifdef __cplusplus
        !            78:      inline double exp2(double x) {return exp(x*LOG2);}
        !            79:      inline double log2(double x) {return log(x)/LOG2;}
        !            80: #  else
        !            81: #    define exp2(x) (exp((double)(x)*LOG2))
        !            82: #    ifndef __CYGWIN32__
        !            83: #      define log2(x) (log((double)(x))/LOG2)
        !            84: #    endif
        !            85: #  endif
        !            86: #else
        !            87:   BEGINEXTERN
        !            88:     double exp2(double);
        !            89:     double log2(double);
        !            90:   ENDEXTERN
        !            91: #endif
        !            92:
        !            93: #ifndef LONG_IS_64BIT
        !            94: #  undef labs
        !            95: #  define labs(x) abs(x)
        !            96: #endif
        !            97:
        !            98: #ifdef min
        !            99: #  undef min
        !           100: #endif
        !           101: #ifdef max
        !           102: #  undef max
        !           103: #endif
        !           104: #define min(a,b) ((a)>(b)?(b):(a))
        !           105: #define max(a,b) ((a)>(b)?(a):(b))
        !           106:
        !           107: #define gval(x,v) (ggval((x),polx[v]))
        !           108: #define gvar9(x) ((typ(x)==t_POLMOD)? gvar2(x): gvar(x))
        !           109:
        !           110: #define ggrando(x,n) (grando0((x),(n),1))
        !           111: #define ggrandocp(x,n) (grando0((x),(n),0))
        !           112:
        !           113: #define addis(x,s)  (addsi((s),(x)))
        !           114: #define addrs(x,s)  (addsr((s),(x)))
        !           115: #define mulis(x,s)  (mulsi((s),(x)))
        !           116: #define muliu(x,s)  (mului((s),(x)))
        !           117: #define mulri(x,s)  (mulir((s),(x)))
        !           118: #define mulrs(x,s)  (mulsr((s),(x)))
        !           119: #define gmulgs(y,s) (gmulsg((s),(y)))
        !           120: #define lmulgs(y,s) ((long)gmulsg((s),(y)))
        !           121:
        !           122: #define mpmodz(x,y,z) (modiiz((x),(y),(z)))
        !           123: #define mpresz(x,y,z) (resiiz((x),(y),(z)))
        !           124: #define mpmod(x,y)    (modii((x),(y)))
        !           125: #define mpres(x,y)    (resii((x),(y)))
        !           126:
        !           127: #define laddgs(y,s)    (lopsg2(gadd,(s),(y)))
        !           128: #define laddsg(s,y)    (lopsg2(gadd,(s),(y)))
        !           129: #define ldiventgs(y,s) (lopgs2(gdivent,(y),(s)))
        !           130: #define ldiventsg(s,y) (lopsg2(gdivent,(s),(y)))
        !           131: #define ldivsg(s,y)    (lopsg2(gdiv,(s),(y)))
        !           132: #define lmaxgs(y,s)    (lopgs2(gmax,(y),(s)))
        !           133: #define lmaxsg(s,y)    (lopsg2(gmax,(s),(y)))
        !           134: #define lmings(y,s)    (lopgs2(gmin,(y),(s)))
        !           135: #define lminsg(s,y)    (lopsg2(gmin,(s),(y)))
        !           136: #define lmodgs(y,s)    (lopgs2(gmod,(y),(s)))
        !           137: #define lmodsg(s,y)    (lopsg2(gmod,(s),(y)))
        !           138: #define lsubgs(y,s)    (lopgs2(gsub,(y),(s)))
        !           139: #define lsubsg(s,y)    (lopsg2(gsub,(s),(y)))
        !           140:
        !           141: #define mppiz(x)       (gop0z(mppi,(x)))
        !           142: #define mpeulerz(x)    (gop0z(mpeuler,(x)))
        !           143:
        !           144: #define autz(x,y)      (gop1z(mpaut,(x),(y)))
        !           145: #define mpsqrtz(x,y)   (gop1z(mpsqrt,(x),(y)))
        !           146: #define mpexpz(x,y)    (gop1z(mpexp,(x),(y)))
        !           147: #define mpexp1z(x,y)   (gop1z(mpexp1,(x),(y)))
        !           148: #define mplogz(x,y)    (gop1z(mplog,(x),(y)))
        !           149: #define mpcosz(x,y)    (gop1z(mpcos,(x),(y)))
        !           150: #define mpsinz(x,y)    (gop1z(mpsin,(x),(y)))
        !           151: #define mptanz(x,y)    (gop1z(mptan,(x),(y)))
        !           152: #define mpatanz(x,y)   (gop1z(mpatan,(x),(y)))
        !           153: #define mpasinz(x,y)   (gop1z(mpasin,(x),(y)))
        !           154: #define mpacosz(x,y)   (gop1z(mpacos,(x),(y)))
        !           155: #define mpchz(x,y)     (gop1z(mpch,(x),(y)))
        !           156: #define mpshz(x,y)     (gop1z(mpsh,(x),(y)))
        !           157: #define mpthz(x,y)     (gop1z(mpth,(x),(y)))
        !           158: #define mpathz(x,y)    (gop1z(mpath,(x),(y)))
        !           159: #define mpashz(x,y)    (gop1z(mpash,(x),(y)))
        !           160: #define mpachz(x,y)    (gop1z(mpach,(x),(y)))
        !           161: #define mpgammaz(x,y)  (gop1z(mpgamma,(x),(y)))
        !           162: #define gredz(x,y)     (gop1z(gred,(x),(y)))
        !           163: #define gnegz(x,y)     (gop1z(gneg,(x),(y)))
        !           164:
        !           165: #define mpargz(x,y,z)   (gop2z(mparg,(x),(y),(z)))
        !           166: #define gabsz(x,prec,y) (gop2z(gabs,(x),(prec),(y)))
        !           167: #define gmaxz(x,y,z)    (gop2z(gmax,(x),(y),(z)))
        !           168: #define gminz(x,y,z)    (gop2z(gmin,(x),(y),(z)))
        !           169: #define gaddz(x,y,z)    (gop2z(gadd,(x),(y),(z)))
        !           170: #define gsubz(x,y,z)    (gop2z(gsub,(x),(y),(z)))
        !           171: #define gmulz(x,y,z)    (gop2z(gmul,(x),(y),(z)))
        !           172: #define gdivz(x,y,z)    (gop2z(gdiv,(x),(y),(z)))
        !           173: #define gdiventz(x,y,z) (gop2z(gdivent,(x),(y),(z)))
        !           174: #define gmodz(x,y,z)    (gop2z(gmod,(x),(y),(z)))
        !           175:
        !           176: #define gaddgs(y,s)     (gopsg2(gadd,(s),(y)))
        !           177: #define gaddsg(s,y)     (gopsg2(gadd,(s),(y)))
        !           178: #define gaddsmat(s,y)   (gopsg2(gaddmat,(s),(y)))
        !           179: #define gdiventsg(s,y)  (gopsg2(gdivent,(s),(y)))
        !           180: #define gdivsg(s,y)     (gopsg2(gdiv,(s),(y)))
        !           181: #define gmaxsg(s,y)     (gopsg2(gmax,(s),(y)))
        !           182: #define gminsg(s,y)     (gopsg2(gmin,(s),(y)))
        !           183: #define gmodsg(s,y)     (gopsg2(gmod,(s),(y)))
        !           184: #define gsubsg(s,y)     (gopsg2(gsub,(s),(y)))
        !           185:
        !           186: #define gdiventgs(y,s)  (gopgs2(gdivent,(y),(s)))
        !           187: #define gmaxgs(y,s)     (gopgs2(gmax,(y),(s)))
        !           188: #define gmings(y,s)     (gopgs2(gmin,(y),(s)))
        !           189: #define gmodgs(y,s)     (gopgs2(gmod,(y),(s)))
        !           190: #define gsubgs(y,s)     (gopgs2(gsub,(y),(s)))
        !           191:
        !           192: #define gcmpsg(s,y)     (-opgs2(gcmp,(y),(s)))
        !           193: #define gcmpgs(y,s)     (opgs2(gcmp,(y),(s)))
        !           194: #define gegalsg(s,y)    (opgs2(gegal,(y),(s)))
        !           195: #define gegalgs(y,s)    (opgs2(gegal,(y),(s)))
        !           196:
        !           197: #define gaddgsz(y,s,z)    (gopsg2z(gadd,(s),(y),(z)))
        !           198: #define gaddsgz(s,y,z)    (gopsg2z(gadd,(s),(y),(z)))
        !           199: #define gdiventsgz(s,y,z) (gopsg2z(gdivent,(s),y),(z)))
        !           200: #define gdivsgz(s,y,z)    (gopsg2z(gdiv,(s),(y),(z)))
        !           201: #define gmaxsgz(s,y,z)    (gopsg2z(gmax,(s),(y),(z)))
        !           202: #define gminsgz(s,y,z)    (gopsg2z(gmin,(s),(y),(z)))
        !           203: #define gmodsgz(s,y,z)    (gopsg2z(gmod,(s),(y),(z)))
        !           204: #define gsubsgz(s,y,z)    (gopsg2z(gsub,(s),(y),(z)))
        !           205:
        !           206: #define gdiventgsz(y,s,z) (gopgs2z(gdivent,(y),(s),(z)))
        !           207: #define gmaxgsz(y,s,z)    (gopgs2z(gmax,(y),(s),(z)))
        !           208: #define gmingsz(y,s,z)    (gopgs2z(gmin,(y),(s),(z)))
        !           209: #define gmodgsz(y,s,z)    (gopgs2z(gmod,(y),(s),(z)))
        !           210: #define gsubgsz(y,s,z)    (gopgs2z(gsub,(y),(s),(z)))
        !           211:
        !           212: #define gdivgsz(y,s,z)  (gops2gsz(gdivgs,(y),(s),(z)))
        !           213: #define gmul2nz(x,s,z)  (gops2gsz(gmul2n,(x),(s),(z)))
        !           214: #define gmulgsz(y,s,z)  (gops2sgz(gmulsg,(s),(y),(z)))
        !           215: #define gmulsgz(s,y,z)  (gops2sgz(gmulsg,(s),(y),(z)))
        !           216: #define gshiftz(x,s,z)  (gops2gsz(gshift,(x),(s),(z)))
        !           217:
        !           218: #define bern(i)       (bernzone + 3 + (i)*bernzone[2])
        !           219:
        !           220: /* works only for POSITIVE integers */
        !           221: #define mod64(x)  (((x)[lgefint(x)-1]) & 63)
        !           222: #define mod32(x)  (((x)[lgefint(x)-1]) & 31)
        !           223: #define mod16(x)  (((x)[lgefint(x)-1]) & 15)
        !           224: #define mod8(x)   (((x)[lgefint(x)-1]) & 7)
        !           225: #define mod4(x)   (((x)[lgefint(x)-1]) & 3)
        !           226: #define mod2(x)   (((x)[lgefint(x)-1]) & 1)
        !           227: #define is_pm1(n)    ((lgefint(n)==3) && (((GEN)(n))[2]==1))
        !           228: #define is_bigint(n) ((lgefint(n)>3) || \
        !           229:                      ((lgefint(n)==3) && ((((GEN)(n))[2]) < 0)))
        !           230:
        !           231: #define leading_term(x) ((GEN)(((GEN)(x))[lgef(x)-1]))
        !           232:
        !           233: #ifdef __cplusplus
        !           234:    inline int odd(long x) {return x&1;}
        !           235: #else
        !           236: #  define odd(x) ((x) & 1)
        !           237: #endif
        !           238:
        !           239: #define mpodd(x) (signe(x) && mod2(x))
        !           240:
        !           241: #define ONLY_REM ((GEN*)0x1)
        !           242: #define ONLY_DIVIDES ((GEN*)0x2)
        !           243: #define ONLY_DIVIDES_EXACT ((GEN*)0x3)
        !           244: #define gdeuc(x,y) (poldivres((x),(y),NULL))
        !           245: #define gres(x,y) (poldivres((x),(y),ONLY_REM))
        !           246: #define Fp_deuc(x,y,p) (Fp_poldivres((x),(y),(p), NULL))
        !           247: #define Fp_res(x,y,p) (Fp_poldivres((x),(y),(p), ONLY_REM))
        !           248: #define matpascal(n) matqpascal((n),NULL)
        !           249: #define sturm(x) (sturmpart((x),NULL,NULL))
        !           250: #define carreparfait(x) (carrecomplet((x),NULL))
        !           251: #define subres(x,y) (subresall((x),(y),NULL))
        !           252: /* #define subres(x,y) (resultantducos((x),(y))) */
        !           253:
        !           254: #define leadingcoeff(x) (pollead((x),-1))
        !           255: #define lift_intern(x) (lift_intern0((x),-1))
        !           256:
        !           257: #define idealmullll(nf,x,y) (idealoplll(idealmul,(nf),(x),(y)))
        !           258: #define idealdivlll(nf,x,y) (idealoplll(idealdiv,(nf),(x),(y)))
        !           259:
        !           260: #define invmat(a) (gauss((a),NULL))
        !           261:
        !           262: #define element_divmodideal(nf,x,y,ideal) (\
        !           263:   nfreducemodideal((nf),\
        !           264:     element_mul((nf),(x),element_invmodideal((nf),(y),(ideal)))\
        !           265:     ,(ideal)\
        !           266:   )\
        !           267: )
        !           268: #define element_mulmodideal(nf,x,y,ideal) (\
        !           269:   nfreducemodideal((nf),element_mul((nf),(x),(y)),(ideal))\
        !           270: )
        !           271: #define element_mulmodidele(nf,x,y,idele,structarch) (\
        !           272:   nfreducemodidele((nf),element_mul((nf),(x),(y)),(idele),(structarch))\
        !           273: )
        !           274: #define element_mulmodpr(nf,x,y,prhall) (\
        !           275:   nfreducemodpr((nf),element_mul((nf),(x),(y)),(prhall))\
        !           276: )
        !           277: #define element_sqrmodideal(nf,x,ideal) (\
        !           278:   nfreducemodideal((nf),element_sqr((nf),(x)),(ideal))\
        !           279: )
        !           280: #define element_sqrmodidele(nf,x,idele,structarch) (\
        !           281:   nfreducemodidele((nf),element_sqr((nf),(x)),(idele),(structarch))\
        !           282: )
        !           283: #define element_sqrmodpr(nf,x,prhall) (\
        !           284:   nfreducemodpr((nf),element_sqr((nf),(x)),(prhall))\
        !           285: )
        !           286: #define idealmulmodideal(nf,x,y,ideal,prec) (\
        !           287:   ideallllredmodideal((nf),idealmullll((nf),(x),(y)),(ideal),(prec))\
        !           288: )
        !           289: #define idealsqrmodideal(nf,x,ideal,prec) (\
        !           290:   ideallllredmodideal((nf),idealsqrlll((nf),(x)),(ideal),(prec))\
        !           291: )
        !           292:
        !           293: #define buchgen(P,gcbach,gcbach2,prec) (\
        !           294:   buchall((P),(gcbach),(gcbach2),stoi(5),gzero,4,3,0,(prec))\
        !           295: )
        !           296: #define buchgenfu(P,gcbach,gcbach2,prec) (\
        !           297:   buchall((P),(gcbach),(gcbach2),stoi(5),gzero,4,3,2,(prec))\
        !           298: )
        !           299: #define buchinit(P,gcbach,gcbach2,prec) (\
        !           300:   buchall((P),(gcbach),(gcbach2),stoi(5),gzero,4,3,-1,(prec))\
        !           301: )
        !           302: #define buchinitfu(P,gcbach,gcbach2,prec) (\
        !           303:   buchall((P),(gcbach),(gcbach2),stoi(5),gzero,4,3,-2,(prec))\
        !           304: )
        !           305:
        !           306: /* output of get_nf and get_bnf */
        !           307: #define typ_NULL 0
        !           308: #define typ_POL  1
        !           309: #define typ_Q    2
        !           310: #define typ_NF   3
        !           311: #define typ_BNF  4
        !           312: #define typ_BNR  5
        !           313: #define typ_CLA  6 /* bnfclassunit   */
        !           314: #define typ_ELL  7 /* elliptic curve */
        !           315: #define typ_QUA  8 /* quadclassunit  */
        !           316:
        !           317: /* for gen_sort */
        !           318: #define cmp_IND 1
        !           319: #define cmp_LEX 2
        !           320: #define cmp_C   4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>