Annotation of OpenXM_contrib2/asir2000/include/ca.h.itv, Revision 1.1
1.1 ! saito 1: /*
! 2: * $OpenXM: $
! 3: */
! 4: #include <stdio.h>
! 5:
! 6: #if defined(__MWERKS__)
! 7: #define THINK_C
! 8: #endif
! 9:
! 10: #if defined(GO32) || defined(__WIN32__)
! 11: #define TOWNS
! 12: #endif
! 13:
! 14: #if (defined(sun) && !defined(SYSV)) || defined(news5000) || (defined(mips) && defined(ultrix))
! 15: #include <alloca.h>
! 16: #endif
! 17:
! 18: #if (defined(TOWNS) && !defined(__WIN32__)) || (defined(sun) && defined(SYSV))
! 19: #define alloca(x) __builtin_alloca(x)
! 20: #endif
! 21:
! 22: #if 0
! 23: #include <sys/types.h>
! 24: typedef caddr_t pointer;
! 25: #endif
! 26:
! 27: #ifndef PARI
! 28: /* for THINK C ... */
! 29: #define PARI 1
! 30: #endif
! 31:
! 32: typedef char * pointer;
! 33:
! 34: #if defined(__WIN32__)
! 35: #include <string.h>
! 36: #define index(s,c) strchr(s,c)
! 37: #define bzero(s,len) memset(s,0,len)
! 38: #define bcopy(x,y,len) memcpy(y,x,len)
! 39: #endif
! 40:
! 41: /* data structures */
! 42:
! 43: #define O_N 1
! 44: #define O_P 2
! 45: #define O_R 3
! 46: #define O_LIST 4
! 47: #define O_VECT 5
! 48: #define O_MAT 6
! 49: #define O_STR 7
! 50: #define O_COMP 8
! 51: #define O_DP 9
! 52:
! 53: #define N_Q 0
! 54: #define N_R 1
! 55: #define N_A 2
! 56: #define N_B 3
! 57: #define N_C 4
! 58: #define N_M 5
! 59:
! 60: #define ORD_REVGRADLEX 0
! 61: #define ORD_GRADLEX 1
! 62: #define ORD_LEX 2
! 63:
! 64: struct oN {
! 65: int p;
! 66: int b[1];
! 67: };
! 68:
! 69: typedef struct oN *N;
! 70:
! 71: struct oV {
! 72: char *name;
! 73: pointer attr;
! 74: pointer priv;
! 75: };
! 76:
! 77: typedef struct oV *V;
! 78:
! 79: struct oQ {
! 80: short id;
! 81: char nid;
! 82: char sgn;
! 83: N nm;
! 84: N dn;
! 85: };
! 86:
! 87: typedef struct oQ *Q;
! 88:
! 89: struct oReal {
! 90: short id;
! 91: char nid;
! 92: char pad;
! 93: double body;
! 94: };
! 95:
! 96: typedef struct oReal *Real;
! 97:
! 98: struct oAlg {
! 99: short id;
! 100: char nid;
! 101: char pad;
! 102: struct oObj *body;
! 103: };
! 104:
! 105: typedef struct oAlg *Alg;
! 106:
! 107: struct oBF {
! 108: short id;
! 109: char nid;
! 110: char pad;
! 111: long body[1];
! 112: };
! 113:
! 114: typedef struct oBF *BF;
! 115:
! 116: struct oC {
! 117: short id;
! 118: char nid;
! 119: char pad;
! 120: struct oNum *r,*i;
! 121: };
! 122:
! 123: typedef struct oC *C;
! 124:
! 125: struct oNum {
! 126: short id;
! 127: char nid;
! 128: char pad;
! 129: };
! 130:
! 131: typedef struct oNum *Num;
! 132:
! 133: struct oMQ {
! 134: short id;
! 135: char nid;
! 136: char pad;
! 137: int cont;
! 138: };
! 139:
! 140: typedef struct oMQ *MQ;
! 141:
! 142: struct oP {
! 143: short id;
! 144: short pad;
! 145: V v;
! 146: struct oDCP *dc;
! 147: };
! 148:
! 149: typedef struct oP *P;
! 150:
! 151: struct oR {
! 152: short id;
! 153: short reduced;
! 154: P nm;
! 155: P dn;
! 156: };
! 157:
! 158: typedef struct oR *R;
! 159:
! 160: struct oVECT {
! 161: short id;
! 162: short pad;
! 163: int len;
! 164: pointer *body;
! 165: };
! 166:
! 167: typedef struct oVECT *VECT;
! 168:
! 169: struct oMAT {
! 170: short id;
! 171: short pad;
! 172: int row,col;
! 173: pointer **body;
! 174: };
! 175:
! 176: typedef struct oMAT *MAT;
! 177:
! 178: struct oLIST {
! 179: short id;
! 180: short pad;
! 181: struct oNODE *body;
! 182: };
! 183:
! 184: typedef struct oLIST *LIST;
! 185:
! 186: struct oSTRING {
! 187: short id;
! 188: short pad;
! 189: char *body;
! 190: };
! 191:
! 192: typedef struct oSTRING *STRING;
! 193:
! 194: struct oCOMP {
! 195: short id;
! 196: short type;
! 197: struct oObj *member[1];
! 198: };
! 199:
! 200: typedef struct oCOMP *COMP;
! 201:
! 202: struct oDP {
! 203: short id;
! 204: short nv;
! 205: int sugar;
! 206: struct oMP *body;
! 207: };
! 208:
! 209: typedef struct oDP *DP;
! 210:
! 211: struct oObj {
! 212: short id;
! 213: short pad;
! 214: };
! 215:
! 216: typedef struct oObj *Obj;
! 217:
! 218: struct oDCP {
! 219: Q d;
! 220: P c;
! 221: struct oDCP *next;
! 222: };
! 223:
! 224: typedef struct oDCP *DCP;
! 225:
! 226: struct oMP {
! 227: struct oDL *dl;
! 228: P c;
! 229: struct oMP *next;
! 230: };
! 231:
! 232: typedef struct oMP *MP;
! 233:
! 234: struct oDL {
! 235: int td;
! 236: int d[1];
! 237: };
! 238:
! 239: typedef struct oDL *DL;
! 240:
! 241: struct oVL {
! 242: V v;
! 243: struct oVL *next;
! 244: };
! 245:
! 246: typedef struct oVL *VL;
! 247:
! 248: struct oNODE {
! 249: pointer body;
! 250: struct oNODE *next;
! 251: };
! 252:
! 253: typedef struct oNODE *NODE;
! 254:
! 255: struct oUM {
! 256: int d;
! 257: int c[1];
! 258: };
! 259:
! 260: typedef struct oUM *UM;
! 261:
! 262: struct oLUM {
! 263: int d;
! 264: int *c[1];
! 265: };
! 266:
! 267: typedef struct oLUM *LUM;
! 268:
! 269: struct oML {
! 270: int n;
! 271: int mod;
! 272: int bound;
! 273: pointer c[1];
! 274: };
! 275:
! 276: typedef struct oML *ML;
! 277:
! 278: struct oUB {
! 279: int d;
! 280: N c[1];
! 281: };
! 282:
! 283: typedef struct oUB *UB;
! 284:
! 285: struct oVN {
! 286: V v;
! 287: int n;
! 288: };
! 289:
! 290: typedef struct oVN *VN;
! 291:
! 292: struct oDUM {
! 293: int n;
! 294: UM f;
! 295: };
! 296:
! 297: struct order_pair {
! 298: int order, length;
! 299: };
! 300:
! 301: struct order_spec {
! 302: int id;
! 303: Obj obj;
! 304: int nv;
! 305: union {
! 306: int simple;
! 307: struct {
! 308: int length;
! 309: struct order_pair *order_pair;
! 310: } block;
! 311: struct {
! 312: int row;
! 313: int **matrix;
! 314: } matrix;
! 315: } ord;
! 316: };
! 317:
! 318: /* structure for cputime */
! 319:
! 320: struct oEGT {
! 321: double exectime,gctime;
! 322: };
! 323:
! 324: /* include interval.h */
! 325: #include "interval.h"
! 326:
! 327: /* constant */
! 328: #define INDEX 100
! 329:
! 330: /* general macros */
! 331: #define MAX(a,b) ((a) > (b) ? (a) : (b) )
! 332: #define MIN(a,b) ((a) > (b) ? (b) : (a) )
! 333: #ifdef ABS
! 334: #undef ABS
! 335: #endif
! 336: #define ABS(a) ((a)>0?(a):-(a))
! 337: #define ID(p) ((p)->id)
! 338: #define OID(p) (((Obj)(p))->id)
! 339: #define NID(p) (((Num)(p))->nid)
! 340: #define BDY(p) ((p)->body)
! 341: #define VR(p) ((p)->v)
! 342: #define NAME(p) ((p)->name)
! 343: #define NEXT(p) ((p)->next)
! 344: #define NM(q) ((q)->nm)
! 345: #define DN(q) ((q)->dn)
! 346: #define SGN(q) ((q)->sgn)
! 347: #define DC(p) ((p)->dc)
! 348: #define COEF(p) ((p)->c)
! 349: #define DEG(p) ((p)->d)
! 350: #define PL(n) ((n)->p)
! 351: #define BD(n) ((n)->b)
! 352: #define CONT(a) ((a)->cont)
! 353: #define UDEG(f) BD(NM(DEG(DC(f))))[0]
! 354: #define UCOEF(f) (COEF(DC(f)))
! 355: #define LC(f) (NUM(f)?(f):COEF(DC(f)))
! 356:
! 357: /* memory allocators (W_... : uses alloca) */
! 358:
! 359: #if defined(__GNUC__) || defined(vax) || defined(apollo) || defined(alloca)
! 360: #define ALLOCA(d) alloca(d)
! 361: #else
! 362: #define ALLOCA(d) GC_malloc(d)
! 363: #endif
! 364:
! 365: #define MALLOC(d) GC_malloc(d)
! 366: #define MALLOC_ATOMIC(d) GC_malloc_atomic(d)
! 367: #define CALLOC(d,e) GC_malloc((d)*(e))
! 368:
! 369: #define TRUESIZE(type,n,atype) (sizeof(struct type)+MAX((n),0)*sizeof(atype))
! 370: #define NALLOC(d) ((N)MALLOC_ATOMIC(TRUESIZE(oN,(d)-1,int)))
! 371: #define UMALLOC(d) ((UM)MALLOC(TRUESIZE(oUM,d,int)))
! 372: #define C_UMALLOC(d) ((UM)MALLOC(TRUESIZE(oUM,d,int)))
! 373: #define MLALLOC(d) ((ML)MALLOC(TRUESIZE(oML,d,pointer)))
! 374:
! 375: #define W_ALLOC(d) ((int *)ALLOCA(((d)+1)*sizeof(int)))
! 376: #define W_CALLOC(n,type,p) \
! 377: ((p)=(type *)ALLOCA(((n)+1)*sizeof(type)),\
! 378: bzero((char *)(p),(int)(((n)+1)*sizeof(type))))
! 379: #define W_UMALLOC(d) ((UM)ALLOCA(TRUESIZE(oUM,d,int)))
! 380: #define W_MLALLOC(d) ((ML)ALLOCA(TRUESIZE(oML,d,pointer)))
! 381: #define W_LUMALLOC(n,bound,p)\
! 382: {\
! 383: LUM ___q___;\
! 384: int ___i___,**___c___;\
! 385: (___q___) = (LUM)ALLOCA(TRUESIZE(oLUM,(n),int *));\
! 386: DEG(___q___) = n;\
! 387: for ( ___i___ = 0, ___c___ = (int **)COEF(___q___); ___i___ <= n; ___i___++ ) {\
! 388: ___c___[___i___] = (int *)ALLOCA(((bound)+1)*sizeof(int));\
! 389: bzero((char *)___c___[___i___],((bound)+1)*sizeof(int));\
! 390: }\
! 391: (p) = ___q___;\
! 392: }
! 393:
! 394: /* cell allocators */
! 395: #define NEWQ(q) ((q)=(Q)MALLOC(sizeof(struct oQ)),OID(q)=O_N,NID(q)=N_Q)
! 396: #define NEWMQ(q) ((q)=(MQ)MALLOC_ATOMIC(sizeof(struct oMQ)),OID(q)=O_N,NID(q)=N_M)
! 397: #define NEWP(p) ((p)=(P)MALLOC(sizeof(struct oP)),OID(p)=O_P)
! 398: #define NEWR(r) ((r)=(R)MALLOC(sizeof(struct oR)),OID(r)=O_R,(r)->reduced=0)
! 399: #define NEWLIST(l) ((l)=(LIST)MALLOC(sizeof(struct oLIST)),OID(l)=O_LIST)
! 400: #define NEWVECT(l) ((l)=(VECT)MALLOC(sizeof(struct oVECT)),OID(l)=O_VECT)
! 401: #define NEWSTR(l) ((l)=(STRING)MALLOC(sizeof(struct oSTRING)),OID(l)=O_STR)
! 402: #define NEWCOMP(c,n) ((c)=(COMP)MALLOC(sizeof(struct oCOMP)+((n)-1)*sizeof(Obj)),OID(c)=O_COMP)
! 403: #define NEWDP(d) ((d)=(DP)MALLOC(sizeof(struct oDP)),OID(d)=O_DP)
! 404:
! 405: #define NEWNODE(a) ((a)=(NODE)MALLOC(sizeof(struct oNODE)))
! 406: #define NEWDC(dc) ((dc)=(DCP)MALLOC(sizeof(struct oDCP)))
! 407: #define NEWV(v) ((v)=(V)MALLOC(sizeof(struct oV)))
! 408: #define NEWVL(vl) ((vl)=(VL)MALLOC(sizeof(struct oVL)))
! 409: #define NEWMP(m) ((m)=(MP)MALLOC(sizeof(struct oMP)))
! 410:
! 411: #define NEWMAT(l) ((l)=(MAT)MALLOC(sizeof(struct oMAT)),OID(l)=O_MAT)
! 412: #define NEWReal(q) ((q)=(Real)MALLOC_ATOMIC(sizeof(struct oReal)),OID(q)=O_N,NID(q)=N_R)
! 413: #define NEWAlg(r) ((r)=(Alg)MALLOC(sizeof(struct oAlg)),OID(r)=O_N,NID(r)=N_A)
! 414: #define NEWBF(q,l) ((q)=(BF)MALLOC_ATOMIC(TRUESIZE(oBF,(l)-1,long)),OID(q)=O_N,NID(q)=N_B)
! 415: #define NEWC(r) ((r)=(C)MALLOC(sizeof(struct oC)),OID(r)=O_N,NID(r)=N_C)
! 416: #define NEWDL(d,n) \
! 417: ((d)=(DL)MALLOC_ATOMIC(TRUESIZE(oDL,(n)-1,int)),bzero((char *)(d),TRUESIZE(oDL,(n)-1,int)))
! 418:
! 419: #define MKP(v,dc,p) \
! 420: (!DEG(dc)?((p)=COEF(dc)):(NEWP(p),VR(p)=(v),DC(p)=(dc),(p)))
! 421: #define MKV(v,p) \
! 422: (NEWP(p),VR(p)=(v),NEWDC(DC(p)),\
! 423: DEG(DC(p))=ONE,COEF(DC(p))=(P)ONE,NEXT(DC(p))=0)
! 424: #define MKRAT(n,d,r,p) \
! 425: (NEWR(p),NM(p)=(n),DN(p)=(d),(p)->reduced=(r))
! 426: #define MKMV(v,p) \
! 427: (NEWP(p),VR(p)=(v),NEWDC(DC(p)),\
! 428: DEG(DC(p))=ONE,COEF(DC(p))=(P)ONEM,NEXT(DC(p))=0)
! 429: #define MKNODE(a,b,c) \
! 430: (NEWNODE(a),(a)->body=(pointer)b,NEXT(a)=(NODE)(c))
! 431: #define MKLIST(a,b) (NEWLIST(a),(a)->body=(NODE)(b))
! 432: #define MKVECT(m,l) \
! 433: (NEWVECT(m),(m)->len=(l),(m)->body=(pointer *)CALLOC((l),sizeof(pointer)))
! 434: #define MKMAT(m,r,c) \
! 435: (NEWMAT(m),(m)->row=(r),(m)->col=(c),(m)->body=(pointer **)almat_pointer((r),(c)))
! 436: #define MKSTR(a,b) (NEWSTR(a),(a)->body=(char *)(b))
! 437: #define MKDP(n,m,d) (NEWDP(d),(d)->nv=(n),BDY(d)=(m))
! 438:
! 439: #define NEXTDC(r,c) \
! 440: if(!(r)){NEWDC(r);(c)=(r);}else{NEWDC(NEXT(c));(c)=NEXT(c);}
! 441: #define NEXTNODE(r,c) \
! 442: if(!(r)){NEWNODE(r);(c)=(r);}else{NEWNODE(NEXT(c));(c)=NEXT(c);}
! 443: #define NEXTMP(r,c) \
! 444: if(!(r)){NEWMP(r);(c)=(r);}else{NEWMP(NEXT(c));(c)=NEXT(c);}
! 445:
! 446: /* convertors */
! 447: #define NTOQ(n,s,q) \
! 448: (!(n)?((q)=0):(NEWQ(q),SGN(q)=(s),NM(q)=(n),DN(q)=0,(q)))
! 449: #define NDTOQ(n,d,s,q) \
! 450: (!(d)?NTOQ(n,s,q):(NEWQ(q),SGN(q)=(s),NM(q)=(n),DN(q)=(d),(q)))
! 451: #define DUPQ(p,q) \
! 452: (NEWQ(q),SGN(q)=SGN(p),NM(q)=NM(p),DN(q)=DN(p))
! 453: #define STOQ(n,q) \
! 454: ((!(n))?((q)=(Q)NULL):(NEWQ(q),\
! 455: SGN(q)=((n)>0?1:-1),NM(q)=NALLOC(1),\
! 456: PL(NM(q))=1,BD(NM(q))[0]=ABS(n),DN(q)=0,(q)))
! 457: #define STOMQ(a,b) \
! 458: ((a)?(NEWMQ(b),CONT(b)=(a),(b)):((b)=0))
! 459: #define QTOS(q) (!(q)?0:SGN(q)*BD(NM(q))[0])
! 460: #define STON(i,n)\
! 461: (i?((n)=NALLOC(1),PL(n)=1,BD(n)[0]=ABS(i),(n)):((n)=(N)0))
! 462: #define PTOR(a,b) \
! 463: (!(a)?((b)=0):(NEWR(b),NM(b)=(a),DN(b)=(P)ONE,(b)->reduced=1,(b)))
! 464: #define RTOS(a) (!(a)?0:QTOS((Q)NM((R)a)))
! 465: #define MKReal(a,b) (!(a)?((b)=0):(NEWReal(b),BDY(b)=(a),(b)))
! 466: #define MKAlg(b,r) \
! 467: (!(b)?((r)=0):NUM(b)?((r)=(Alg)(b)):(NEWAlg(r),BDY(r)=(Obj)(b),(r)))
! 468:
! 469: #define ToReal(a) (!(a)?(double)0.0:REAL(a)?BDY((Real)a):RATN(a)?RatnToReal((Q)a):0)
! 470:
! 471: /* predicates */
! 472: #define NUM(p) (OID(p)==O_N)
! 473: #define RAT(p) (OID(p)==O_R)
! 474: #define INT(q) (!DN((Q)q))
! 475: #define RATN(a) (NID(a)==N_Q)
! 476: #define REAL(a) (NID(a)==N_R)
! 477: #define UNIQ(q) ((q)&&NUM(q)&&(SGN((Q)q)==1)&&UNIN(NM((Q)q))&&(!DN((Q)q)))
! 478: #define UNIMQ(q) ((q)&&NUM(q)&&(CONT((MQ)q)==1))
! 479: #define MUNIQ(q) ((q)&&NUM(q)&&(SGN((Q)q)==-1)&&UNIN(NM((Q)q))&&(!DN((Q)q)))
! 480: #define MUNIMQ(q) ((q)&&NUM(q)&&(CONT((MQ)q)==-1))
! 481: #define UNIN(n) ((n)&&(PL(n)==1)&&(BD(n)[0]==1))
! 482: #define EVENN(n) ((!(n))||(!(BD(n)[0]%2)))
! 483:
! 484:
! 485: /* externals */
! 486: #if 0
! 487: double NatToReal();
! 488: double RatnToReal();
! 489: #endif
! 490:
! 491: extern struct oR oUNIR;
! 492: extern struct oQ oUNIQ;
! 493: extern struct oMQ oUNIMQ;
! 494: extern struct oN oUNIN;
! 495: extern struct oV oVAR[];
! 496: extern struct oV oPVAR[];
! 497: extern struct oVL oVLIST[];
! 498: extern struct oVL oPVLIST[];
! 499: extern VL CO,ALG;
! 500: extern VL PVL;
! 501: extern R ONER;
! 502: extern Q ONE;
! 503: extern MQ ONEM;
! 504: extern N ONEN;
! 505: extern FILE *asir_out;
! 506: #if defined(__GNUC__) || defined(THINK_C)
! 507: extern const int sprime[];
! 508: extern const int lprime[];
! 509: #else
! 510: extern int sprime[];
! 511: extern int lprime[];
! 512: #endif
! 513:
! 514: extern void (*addnumt[])();
! 515: extern void (*subnumt[])();
! 516: extern void (*mulnumt[])();
! 517: extern void (*divnumt[])();
! 518: extern void (*pwrnumt[])();
! 519: extern int (*cmpnumt[])();
! 520: extern void (*chsgnnumt[])();
! 521:
! 522: #if defined(THINK_C) || defined(__WIN32__)
! 523: LUM LUMALLOC(int, int);
! 524: Obj ToAlg(Num);
! 525: UM *berlemain(register int, UM, UM *);
! 526: char *GC_malloc(int);
! 527: char *GC_malloc_atomic(int);
! 528: char *GC_realloc(char *,int);
! 529: double NatToReal(N,int *);
! 530: double RatnToReal(Q);
! 531: double pwrreal0(double,int);
! 532: int **almat(int,int);
! 533: pointer **almat_pointer(int,int);
! 534: int berlecnt(register int,UM);
! 535: int berlecntmain(register int,int,int,register int **);
! 536: int cmpalg(Num,Num);
! 537: int cmpbf(Num,Num);
! 538: int cmpcplx(Num,Num);
! 539: int cmpn(N,N);
! 540: int cmpq(Q,Q);
! 541: int cmpreal(Real,Real);
! 542: int cmpmi(MQ,MQ);
! 543: int compmat(VL,MAT,MAT);
! 544: int compnum(VL,Num,Num);
! 545: int compp(VL,P,P);
! 546: int compr(VL,Obj,Obj);
! 547: int compstr(VL,STRING,STRING);
! 548: int compvect(VL,VECT,VECT);
! 549: int ctest(P,ML,int,int *);
! 550: int cycchk(P);
! 551: int dbound(V,P);
! 552: int dcomp(P,P);
! 553: int deg(V,P);
! 554: int degtest(int,int *,ML,int);
! 555: int divcheck(VL,P *,int,P,P);
! 556: int divin(N,register int,N *);
! 557: int divtdcpz(VL,P,P,P *);
! 558: int divtpz(VL,P,P,P *);
! 559: int divum(register int,UM,UM,UM);
! 560: int dm(int,int,int *);
! 561: int dmb(int,int,int,int *);
! 562: int dma(int,int,int,int *);
! 563: int dmab(int,int,int,int,int *);
! 564: int dmar(int,int,int,int);
! 565: int dtestmain(P,Q,ML,int,int *,P *,P *);
! 566: int geldb(VL,P);
! 567: int getchomdeg(V,P);
! 568: int getdeg(V,P);
! 569: int getlchomdeg(V,P,int *);
! 570: int homdeg(P);
! 571: int invm(int,register int);
! 572: int iscycm(P);
! 573: int iscycp(P);
! 574: int lengthp(P);
! 575: int mig(int,int,P);
! 576: int mignotte(int,P);
! 577: int minimain(register int,int,int,register int **);
! 578: int ncombi(int,int,int,int *);
! 579: int nextbin(VN,int);
! 580: int nmonop(P);
! 581: int pcoef(VL,VL,P,P *);
! 582: int pcoef0(VL,VL,P,P *);
! 583: int pwrm(register int,register int,int);
! 584: int rem(N,register int);
! 585: int sqfrchk(P);
! 586: int subn(N,N,N *);
! 587: int ucmpp(P,P);
! 588: int valideval(VL,DCP,VN);
! 589: int zerovpchk(VL,P,VN);
! 590: void addalg(Num,Num,Num *);
! 591: void addbf(Num,Num,Num *);
! 592: void addcplx(Num,Num,Num *);
! 593: void addm2p(VL,Q,Q,P,P,P *);
! 594: void addm2q(Q,Q,Q,Q,Q *);
! 595: void addmat(VL,MAT,MAT,MAT *);
! 596: void addmp(VL,int,P,P,P *);
! 597: void addmpq(int,P,P,P *);
! 598: void addmptoc(VL,int,P,P,P *);
! 599: void addmq(int,MQ,MQ,MQ *);
! 600: void addn(N,N,N *);
! 601: void addnum(VL,Num,Num,Num *);
! 602: void addp(VL,P,P,P *);
! 603: void addpadic(register int,int,register int *,register int *);
! 604: void addpq(P,P,P *);
! 605: void addptoc(VL,P,P,P *);
! 606: void addq(Q,Q,Q *);
! 607: void addr(VL,Obj,Obj,Obj *);
! 608: void addreal(Num,Num,Real *);
! 609: void addmi(MQ,MQ,MQ *);
! 610: void addstr(VL,STRING,STRING,STRING *);
! 611: void addum(int,UM,UM,UM);
! 612: void addvect(VL,VECT,VECT,VECT *);
! 613: void adjc(VL,P,P,P,Q,P *,P *);
! 614: void afctr(VL,P,P,DCP *);
! 615: void afctrmain(VL,P,P,int,DCP *);
! 616: void affine(VL,P,VN,P *);
! 617: void affinemain(VL,P,V,int,P *,P *);
! 618: void berle(int,int,P,ML *);
! 619: void bnton(register int,N,N *);
! 620: void cbound(VL,P,Q *);
! 621: void chnrem(int,V,P,Q,UM,P *,Q *);
! 622: void chnremp(VL,int,P,Q,P,P *);
! 623: void chsgnalg(Num,Num *);
! 624: void chsgnbf(Num a,Num *);
! 625: void chsgncplx(Num,Num *);
! 626: void chsgnmat(MAT,MAT *);
! 627: void chsgnmp(int,P,P *);
! 628: void chsgnnum(Num,Num *);
! 629: void chsgnp(P,P *);
! 630: void chsgnq(Q,Q *);
! 631: void chsgnr(Obj,Obj *);
! 632: void chsgnreal(Num,Num *);
! 633: void chsgnmi(MQ,MQ *);
! 634: void chsgnvect(VECT,VECT *);
! 635: void clctv(VL,P,VL *);
! 636: void clctvr(VL,Obj,VL *);
! 637: void cm2p(Q,Q,P,P *);
! 638: void cmax(P,Q *);
! 639: void cmp(Q,P,P *);
! 640: void coefp(P,int,P *);
! 641: void cpylum(int,LUM,LUM);
! 642: void cpyum(UM,UM);
! 643: void csump(VL,P,Q *);
! 644: void cycm(V,register int,DCP *);
! 645: void cycp(V,register int,DCP *);
! 646: void degp(V,P,Q *);
! 647: void degum(UM,int);
! 648: void detmp(VL,int,P **,int,P *);
! 649: void detp(VL,P **,int,P *);
! 650: void diffp(VL,P,V,P *);
! 651: void diffum(register int,UM,UM);
! 652: void divalg(Num,Num,Num *);
! 653: void divbf(Num,Num,Num *);
! 654: void divcp(P,Q,P *);
! 655: void divcplx(Num,Num,Num *);
! 656: void divmat(VL,Obj,Obj,Obj *);
! 657: void divmq(int,MQ,MQ,MQ *);
! 658: void divn(N,N,N *,N *);
! 659: void divnmain(int,int,register int *,register int *,register int *);
! 660: void divnum(VL,Num,Num,Num *);
! 661: void divq(Q,Q,Q *);
! 662: void divr(VL,Obj,Obj,Obj *);
! 663: void divreal(Num,Num,Real *);
! 664: void divmi(MQ,MQ,MQ *);
! 665: void divsdcmp(VL,int,P,P,P *);
! 666: void divsdcp(VL,P,P,P *);
! 667: void divsmp(VL,int,P,P,P *);
! 668: void divsn(N,N,N *);
! 669: void divsp(VL,P,P,P *);
! 670: void divsrdcmp(VL,int,P,P,P *,P *);
! 671: void divsrdcp(VL,P,P,P *,P *);
! 672: void divsrmp(VL,int,P,P,P *,P *);
! 673: void divsrp(VL,P,P,P *,P *);
! 674: void divvect(VL,Obj,Obj,Obj *);
! 675: void dtest(P,ML,int,DCP *);
! 676: void dtestroot(int,int,P,LUM,struct oDUM *,DCP *);
! 677: void dtestroot1(int,int,P,LUM,P *);
! 678: void dtestsq(int,int,P,LUM,P *);
! 679: void dtestsql(P,ML,struct oDUM *,DCP *);
! 680: void estimatelc(VL,Q,DCP,VN,P *);
! 681: void eucum(register int,UM,UM,UM,UM);
! 682: void exthp(VL,P,int,P *);
! 683: void exthpc(VL,V,P,int,P *);
! 684: void ezgcd1p(VL,P,P,P *);
! 685: void ezgcdhensel(P,int,UM,UM,ML *);
! 686: void ezgcdnp(VL,P,P *,int,P *);
! 687: void ezgcdnpp(VL,DCP,P *,int,P *);
! 688: void ezgcdnpz(VL,P *,int,P *);
! 689: void ezgcdp(VL,P,P,P *);
! 690: void ezgcdpp(VL,DCP,P,P *);
! 691: void ezgcdpz(VL,P,P,P *);
! 692: void factorial(int,Q *);
! 693: void fctrp(VL,P,DCP *);
! 694: void fctrwithmvp(VL,P,V,DCP *);
! 695: void gcda(VL,P,P,P,P *);
! 696: void gcdcp(VL,P,P *);
! 697: void gcdgen(P,ML,ML *);
! 698: void gcdmonomial(VL,DCP *,int,P *);
! 699: void gcdn(N,N,N *);
! 700: void gcdprsp(VL,P,P,P *);
! 701: void gcdum(register int,UM,UM,UM);
! 702: void getmindeg(V,P,Q *);
! 703: void henmain(LUM,ML,ML,ML *);
! 704: void henmv(VL,VN,P,P,P,P,P,P,P,P,P,Q,int,P *,P *);
! 705: void henmvmain(VL,VN,P,P,P,P,P,P,P,Q,Q,int,P *,P *);
! 706: void henprep(P,ML,ML,ML *,ML *);
! 707: void hensel(int,int,P,ML *);
! 708: void henzq(P,P,UM,P,UM,int,int,P *,P *,P *,P *,Q *);
! 709: void henzq1(P,P,Q,P *,P *,Q *);
! 710: void hsq(int,int,P,int *,DCP *);
! 711: void intersectv(VL,VL,VL *);
! 712: void invl(Q,Q,Q *);
! 713: void invmq(int,MQ,MQ *);
! 714: void invq(Q,Q *);
! 715: void lgp(P,N *,N *);
! 716: void lumtop(V,int,int,LUM,P *);
! 717: void markv(VN,int,P);
! 718: void maxdegp(VL,P,VL *,P *);
! 719: void mergev(VL,VL,VL,VL *);
! 720: void mfctr(VL,P,DCP *);
! 721: void mfctrhen2(VL,VN,P,P,P,P,P,P,P *);
! 722: void mfctrmain(VL,P,DCP *);
! 723: void mfctrwithmv(VL,P,V,DCP *);
! 724: void min_common_vars_in_coefp(VL,P,VL *,P *);
! 725: void minchdegp(VL,P,VL *,P *);
! 726: void mindegp(VL,P,VL *,P *);
! 727: void mini(register int,UM,UM);
! 728: void minlcdegp(VL,P,VL *,P *);
! 729: void mkbc(int,Q *);
! 730: void mkbcm(int,int,MQ *);
! 731: void mkssum(V,int,int,int,P *);
! 732: void monomialfctr(VL,P,P *,DCP *);
! 733: void mptop(P,P *);
! 734: void mptoum(P,UM);
! 735: void msqfr(VL,P,DCP *);
! 736: void msqfrmain(VL,P,DCP *);
! 737: void msqfrmainmain(VL,P,VN,P,DCP,DCP *,P *);
! 738: void mulalg(Num,Num,Num *);
! 739: void mulbf(Num,Num,Num *);
! 740: void mulcplx(Num,Num,Num *);
! 741: void mulin(N,register int,register int *);
! 742: void mullum(int,int,LUM,LUM,LUM);
! 743: void mullumarray(P,ML,int,int *,P *);
! 744: void mulm2p(VL,Q,Q,P,P,P *);
! 745: void mulm2q(Q,Q,Q,Q,Q *);
! 746: void mulmat(VL,Obj,Obj,Obj *);
! 747: void mulmatmat(VL,MAT,MAT,MAT *);
! 748: void mulmatvect(VL,MAT,VECT,VECT *);
! 749: void mulmp(VL,int,P,P,P *);
! 750: void mulmpc(VL,int,P,P,P *);
! 751: void mulmpq(int,P,P,P *);
! 752: void mulmq(int,MQ,MQ,MQ *);
! 753: void muln(N,N,N *);
! 754: void mulnum(VL,Num,Num,Num *);
! 755: void mulp(VL,P,P,P *);
! 756: void mulpadic(register int,int,int *,int *,int *);
! 757: void mulpc(VL,P,P,P *);
! 758: void mulpq(P,P,P *);
! 759: void mulq(Q,Q,Q *);
! 760: void mulr(VL,Obj,Obj,Obj *);
! 761: void mulreal(Num,Num,Real *);
! 762: void mulmi(MQ,MQ,MQ *);
! 763: void mulrmat(VL,Obj,MAT,MAT *);
! 764: void mulrvect(VL,Obj,VECT,VECT *);
! 765: void mulsgn(VN,VN,int,VN);
! 766: void mulsum(register int,UM,register int,UM);
! 767: void mulum(register int,UM,UM,UM);
! 768: void mulvect(VL,Obj,Obj,Obj *);
! 769: void mulvectmat(VL,VECT,MAT,VECT *);
! 770: void next(VN);
! 771: void nezgcdnp_sqfr_primitive(VL,P,P *,int,P *);
! 772: void nezgcdnpp(VL,DCP,P *,int,P *);
! 773: void nezgcdnpz(VL,P *,int,P *);
! 774: void nezgcdnpzmain(VL,P *,int,P *);
! 775: void nglob_init(void);
! 776: void norm(P,Q *);
! 777: void norm1(P,P *);
! 778: void norm1c(P,Q *);
! 779: void normalizemp(int,P);
! 780: void nthrootchk(P,struct oDUM *,ML,DCP *);
! 781: void nthrootn(N,int,N *);
! 782: void ntobn(register int,N,N *);
! 783: void nuezgcdnpzmain(VL,P *,int,P *);
! 784: void padictoq(int,int,int *,Q *);
! 785: void pari_init(void);
! 786: void pcp(VL,P,P *,P *);
! 787: void pderivr(VL,Obj,V,Obj *);
! 788: void pdiva(VL,P,P,P,P *);
! 789: void pinva(P,P,P *);
! 790: void plisttop(P *,V,int,P *);
! 791: void pmonic(VL,P,P,P *);
! 792: void pqra(VL,P,P,P,P *,P *);
! 793: void premmp(VL,int,P,P,P *);
! 794: void premp(VL,P,P,P *);
! 795: void ptolum(int,int,P,LUM);
! 796: void ptomp(int,P,P *);
! 797: void ptoum(int,P,UM);
! 798: void ptozp(P,int,Q *,P *);
! 799: void ptozp0(P,P *);
! 800: void pwralg(Num,Num,Num *);
! 801: void pwrbf(Num,Num,Num *);
! 802: void pwrcplx(Num,Num,Num *);
! 803: void pwrcplx0(Num,int,Num *);
! 804: void pwrlum(int,int,LUM,int,LUM);
! 805: void pwrmat(VL,MAT,Obj,MAT *);
! 806: void pwrmatmain(VL,MAT,int,MAT *);
! 807: void pwrmp(VL,int,P,Q,P *);
! 808: void pwrmq(int,MQ,Q,MQ *);
! 809: void pwrn(N,int,N *);
! 810: void pwrnum(VL,Num,Num,Num *);
! 811: void pwrp(VL,P,Q,P *);
! 812: void pwrq(Q,Q,Q *);
! 813: void pwrr(VL,Obj,Obj,Obj *);
! 814: void pwrreal(Num,Num,Real *);
! 815: void pwrmi(MQ,Q,MQ *);
! 816: void pwrum(int,UM,int,UM);
! 817: void reallocarray(char **,int *,int *,int);
! 818: void reductr(VL,Obj,Obj *);
! 819: void reimtocplx(Num,Num,Num *);
! 820: void rem2q(Q,Q,Q,Q *);
! 821: void rema(VL,P,P,P,P *);
! 822: void remq(Q,Q,Q *);
! 823: void remsdcp(VL,P,P,P *);
! 824: void reordermp(VL,int,VL,P,P *);
! 825: void reorderp(VL,VL,P,P *);
! 826: void reordvar(VL,V,VL *);
! 827: void res_ch_det(VL,V,P,P,P *);
! 828: void res_detmp(VL,int,V,P,P,P *);
! 829: void restore(VL,P,VN,P *);
! 830: void resultmp(VL,int,V,P,P,P *);
! 831: void resultp(VL,V,P,P,P *);
! 832: void setlum(int,int,LUM);
! 833: void sort_by_deg(int,P *,P *);
! 834: void sort_by_deg_rev(int,P *,P *);
! 835: void sortfs(DCP *);
! 836: void sortfsrev(DCP *);
! 837: void sortplist(P *,int);
! 838: void sortplistbyhomdeg(P *,int);
! 839: void sprs(VL,V,P,P,P *);
! 840: void sqa(VL,P,P,DCP *);
! 841: void sqad(int,int);
! 842: void sqfrp(VL,P,DCP *);
! 843: void sqfrum(int,int,P,int *,struct oDUM **,ML *);
! 844: void sqfrummain(int,UM,UM,struct oDUM **);
! 845: void sqrtn(N,N *);
! 846: void srch2(VL,V,P,P,P *);
! 847: void srchmp(VL,int,V,P,P,P *);
! 848: void srchump(int,P,P,P *);
! 849: void srcr(VL,V,P,P,P *);
! 850: void strtobf(char *,BF *);
! 851: void subalg(Num,Num,Num *);
! 852: void subbf(Num,Num,Num *);
! 853: void subcplx(Num,Num,Num *);
! 854: void subm2p(VL,Q,Q,P,P,P *);
! 855: void subm2q(Q,Q,Q,Q,Q *);
! 856: void submat(VL,MAT,MAT,MAT *);
! 857: void submp(VL,int,P,P,P *);
! 858: void submq(int,MQ,MQ,MQ *);
! 859: void subnum(VL,Num,Num,Num *);
! 860: void subp(VL,P,P,P *);
! 861: void subq(Q,Q,Q *);
! 862: void subr(VL,Obj,Obj,Obj *);
! 863: void subreal(Num,Num,Real *);
! 864: void submi(MQ,MQ,MQ *);
! 865: void substmp(VL,int,P,V,P,P *);
! 866: void substp(VL,P,V,P,P *);
! 867: void substvp(VL,P,VN,P *);
! 868: void subum(int,UM,UM,UM);
! 869: void subvect(VL,VECT,VECT,VECT *);
! 870: void toreim(Num,Num *,Num *);
! 871: void ucsump(P,Q *);
! 872: void udivpwm(Q,P,P,P *,P *);
! 873: void udivpz(P,P,P *,P *);
! 874: void udivpzwm(Q,P,P,P *,P *);
! 875: void uexgcdnp(VL,P,P *,int,VN,Q,P *,P *,P *,P *,Q *);
! 876: void uezgcd1p(P,P,P *);
! 877: void uezgcdpp(DCP,P,P *);
! 878: void uezgcdpz(VL,P,P,P *);
! 879: void ufctr(P,int,DCP *);
! 880: void ufctrmain(P,int,DCP *);
! 881: void umtomp(V,UM,P *);
! 882: void umtop(V,UM,P *);
! 883: void usqp(P,DCP *);
! 884: void vntovl(VN,int,VL *);
! 885: #if !defined(__WIN32__)
! 886: void bzero(char *,int);
! 887: void bcopy(char *,char *,int);
! 888: char *index(char *,char);
! 889: #endif
! 890:
! 891: void initd(struct order_spec *);
! 892: void ptod(VL,VL,P,DP *);
! 893: void dtop(VL,VL,DP,P *);
! 894: int sugard(MP);
! 895: void addd(VL,DP,DP,DP *);
! 896: void subd(VL,DP,DP,DP *);
! 897: void muld(VL,DP,DP,DP *);
! 898: void chsgnd(DP,DP *);
! 899: void muldm(VL,DP,MP,DP *);
! 900: void adddl(int,DL,DL,DL *);
! 901: int compd(VL,DP,DP);
! 902: int cmpdl_lex(int,DL,DL);
! 903: int cmpdl_gradlex(int,DL,DL);
! 904: int cmpdl_revgradlex(int,DL,DL);
! 905: #else
! 906: LUM LUMALLOC();
! 907: Obj ToAlg();
! 908: UM *berlemain();
! 909: char *GC_malloc();
! 910: char *GC_malloc_atomic();
! 911: double NatToReal();
! 912: double RatnToReal();
! 913: double pwrreal0();
! 914: int **almat();
! 915: pointer **almat_pointer();
! 916: int berlecnt();
! 917: int berlecntmain();
! 918: int cmpalg();
! 919: int cmpbf();
! 920: int cmpcplx();
! 921: int cmpn();
! 922: int cmpq();
! 923: int cmpreal();
! 924: int cmpmi();
! 925: int compmat();
! 926: int compnum();
! 927: int compp();
! 928: int compr();
! 929: int compstr();
! 930: int compvect();
! 931: int ctest();
! 932: int cycchk();
! 933: int dbound();
! 934: int dcomp();
! 935: int deg();
! 936: int degtest();
! 937: int divcheck();
! 938: int divin();
! 939: int divtdcpz();
! 940: int divtpz();
! 941: int divum();
! 942: int dm();
! 943: int dmb();
! 944: int dma();
! 945: int dmab();
! 946: int dmar();
! 947: int dtestmain();
! 948: int geldb();
! 949: int getchomdeg();
! 950: int getdeg();
! 951: int getlchomdeg();
! 952: int homdeg();
! 953: int invm();
! 954: int iscycm();
! 955: int iscycp();
! 956: int lengthp();
! 957: int mig();
! 958: int mignotte();
! 959: int minimain();
! 960: int ncombi();
! 961: int nextbin();
! 962: int nmonop();
! 963: int pcoef();
! 964: int pcoef0();
! 965: int pwrm();
! 966: int rem();
! 967: int sqfrchk();
! 968: int subn();
! 969: int ucmpp();
! 970: int valideval();
! 971: int zerovpchk();
! 972: void addalg();
! 973: void addbf();
! 974: void addcplx();
! 975: void addm2p();
! 976: void addm2q();
! 977: void addmat();
! 978: void addmp();
! 979: void addmpq();
! 980: void addmptoc();
! 981: void addmq();
! 982: void addn();
! 983: void addnum();
! 984: void addp();
! 985: void addpadic();
! 986: void addpq();
! 987: void addptoc();
! 988: void addq();
! 989: void addr();
! 990: void addreal();
! 991: void addmi();
! 992: void addstr();
! 993: void addum();
! 994: void addvect();
! 995: void adjc();
! 996: void afctr();
! 997: void afctrmain();
! 998: void affine();
! 999: void affinemain();
! 1000: void berle();
! 1001: void bnton();
! 1002: void cbound();
! 1003: void chnrem();
! 1004: void chnremp();
! 1005: void chsgnalg();
! 1006: void chsgnbf();
! 1007: void chsgncplx();
! 1008: void chsgnmat();
! 1009: void chsgnmp();
! 1010: void chsgnnum();
! 1011: void chsgnp();
! 1012: void chsgnq();
! 1013: void chsgnr();
! 1014: void chsgnreal();
! 1015: void chsgnmi();
! 1016: void chsgnvect();
! 1017: void clctv();
! 1018: void clctvr();
! 1019: void cm2p();
! 1020: void cmax();
! 1021: void cmp();
! 1022: void coefp();
! 1023: void cpylum();
! 1024: void cpyum();
! 1025: void csump();
! 1026: void cycm();
! 1027: void cycp();
! 1028: void degp();
! 1029: void degum();
! 1030: void detmp();
! 1031: void detp();
! 1032: void diffp();
! 1033: void diffum();
! 1034: void divalg();
! 1035: void divbf();
! 1036: void divcp();
! 1037: void divcplx();
! 1038: void divmat();
! 1039: void divmq();
! 1040: void divn();
! 1041: void divnmain();
! 1042: void divnum();
! 1043: void divq();
! 1044: void divr();
! 1045: void divreal();
! 1046: void divmi();
! 1047: void divsdcmp();
! 1048: void divsdcp();
! 1049: void divsmp();
! 1050: void divsn();
! 1051: void divsp();
! 1052: void divsrdcmp();
! 1053: void divsrdcp();
! 1054: void divsrmp();
! 1055: void divsrp();
! 1056: void divvect();
! 1057: void dtest();
! 1058: void dtestroot();
! 1059: void dtestroot1();
! 1060: void dtestsq();
! 1061: void dtestsql();
! 1062: void estimatelc();
! 1063: void eucum();
! 1064: void exthp();
! 1065: void exthpc();
! 1066: void ezgcd1p();
! 1067: void ezgcdhensel();
! 1068: void ezgcdnp();
! 1069: void ezgcdnpp();
! 1070: void ezgcdnpz();
! 1071: void ezgcdp();
! 1072: void ezgcdpp();
! 1073: void ezgcdpz();
! 1074: void factorial();
! 1075: void fctrp();
! 1076: void fctrwithmvp();
! 1077: void gcda();
! 1078: void gcdcp();
! 1079: void gcdgen();
! 1080: void gcdmonomial();
! 1081: void gcdn();
! 1082: void gcdprsp();
! 1083: void gcdum();
! 1084: void getmindeg();
! 1085: void henmain();
! 1086: void henmv();
! 1087: void henmvmain();
! 1088: void henprep();
! 1089: void hensel();
! 1090: void henzq();
! 1091: void henzq1();
! 1092: void hsq();
! 1093: void intersectv();
! 1094: void invl();
! 1095: void invmq();
! 1096: void invq();
! 1097: void lgp();
! 1098: void lumtop();
! 1099: void markv();
! 1100: void maxdegp();
! 1101: void mergev();
! 1102: void mfctr();
! 1103: void mfctrhen2();
! 1104: void mfctrmain();
! 1105: void mfctrwithmv();
! 1106: void min_common_vars_in_coefp();
! 1107: void minchdegp();
! 1108: void mindegp();
! 1109: void mini();
! 1110: void minlcdegp();
! 1111: void mkbc();
! 1112: void mkbcm();
! 1113: void mkssum();
! 1114: void monomialfctr();
! 1115: void mptop();
! 1116: void mptoum();
! 1117: void msqfr();
! 1118: void msqfrmain();
! 1119: void msqfrmainmain();
! 1120: void mulalg();
! 1121: void mulbf();
! 1122: void mulcplx();
! 1123: void mulin();
! 1124: void mullum();
! 1125: void mullumarray();
! 1126: void mulm2p();
! 1127: void mulm2q();
! 1128: void mulmat();
! 1129: void mulmatmat();
! 1130: void mulmatvect();
! 1131: void mulmp();
! 1132: void mulmpc();
! 1133: void mulmpq();
! 1134: void mulmq();
! 1135: void muln();
! 1136: void mulnum();
! 1137: void mulp();
! 1138: void mulpadic();
! 1139: void mulpc();
! 1140: void mulpq();
! 1141: void mulq();
! 1142: void mulr();
! 1143: void mulreal();
! 1144: void mulmi();
! 1145: void mulrmat();
! 1146: void mulrvect();
! 1147: void mulsgn();
! 1148: void mulsum();
! 1149: void mulum();
! 1150: void mulvect();
! 1151: void mulvectmat();
! 1152: void next();
! 1153: void nezgcdnp_sqfr_primitive();
! 1154: void nezgcdnpp();
! 1155: void nezgcdnpz();
! 1156: void nezgcdnpzmain();
! 1157: void nglob_init();
! 1158: void norm();
! 1159: void norm1();
! 1160: void norm1c();
! 1161: void normalizemp();
! 1162: void nthrootchk();
! 1163: void nthrootn();
! 1164: void ntobn();
! 1165: void nuezgcdnpzmain();
! 1166: void padictoq();
! 1167: void pari_init();
! 1168: void pcp();
! 1169: void pderivr();
! 1170: void pdiva();
! 1171: void pinva();
! 1172: void plisttop();
! 1173: void pmonic();
! 1174: void pqra();
! 1175: void premmp();
! 1176: void premp();
! 1177: void ptolum();
! 1178: void ptomp();
! 1179: void ptoum();
! 1180: void ptozp();
! 1181: void ptozp0();
! 1182: void pwralg();
! 1183: void pwrbf();
! 1184: void pwrcplx();
! 1185: void pwrcplx0();
! 1186: void pwrlum();
! 1187: void pwrmat();
! 1188: void pwrmatmain();
! 1189: void pwrmp();
! 1190: void pwrmq();
! 1191: void pwrn();
! 1192: void pwrnum();
! 1193: void pwrp();
! 1194: void pwrq();
! 1195: void pwrr();
! 1196: void pwrreal();
! 1197: void pwrmi();
! 1198: void pwrum();
! 1199: void reallocarray();
! 1200: void reductr();
! 1201: void reimtocplx();
! 1202: void rem2q();
! 1203: void rema();
! 1204: void remq();
! 1205: void remsdcp();
! 1206: void reordermp();
! 1207: void reorderp();
! 1208: void reordvar();
! 1209: void res_ch_det();
! 1210: void res_detmp();
! 1211: void restore();
! 1212: void resultmp();
! 1213: void resultp();
! 1214: void setlum();
! 1215: void sort_by_deg();
! 1216: void sort_by_deg_rev();
! 1217: void sortfs();
! 1218: void sortfsrev();
! 1219: void sortplist();
! 1220: void sortplistbyhomdeg();
! 1221: void sprs();
! 1222: void sqa();
! 1223: void sqad();
! 1224: void sqfrp();
! 1225: void sqfrum();
! 1226: void sqfrummain();
! 1227: void sqrtn();
! 1228: void srch2();
! 1229: void srchmp();
! 1230: void srchump();
! 1231: void srcr();
! 1232: void strtobf();
! 1233: void subalg();
! 1234: void subbf();
! 1235: void subcplx();
! 1236: void subm2p();
! 1237: void subm2q();
! 1238: void submat();
! 1239: void submp();
! 1240: void submq();
! 1241: void subnum();
! 1242: void subp();
! 1243: void subq();
! 1244: void subr();
! 1245: void subreal();
! 1246: void submi();
! 1247: void substmp();
! 1248: void substp();
! 1249: void substvp();
! 1250: void subum();
! 1251: void subvect();
! 1252: void toreim();
! 1253: void ucsump();
! 1254: void udivpwm();
! 1255: void udivpz();
! 1256: void udivpzwm();
! 1257: void uexgcdnp();
! 1258: void uezgcd1p();
! 1259: void uezgcdpp();
! 1260: void uezgcdpz();
! 1261: void ufctr();
! 1262: void ufctrmain();
! 1263: void umtomp();
! 1264: void umtop();
! 1265: void usqp();
! 1266: void vntovl();
! 1267: void bzero();
! 1268: void bcopy();
! 1269: char *index();
! 1270:
! 1271: void initd();
! 1272: void ptod();
! 1273: void dtop();
! 1274: int sugard();
! 1275: void addd();
! 1276: void subd();
! 1277: void muld();
! 1278: void chsgnd();
! 1279: void muldm();
! 1280: void adddl();
! 1281: int compd();
! 1282: int cmpdl_lex();
! 1283: int cmpdl_gradlex();
! 1284: int cmpdl_revgradlex();
! 1285: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>