[BACK]Return to Mgfs.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / engine

Diff for /OpenXM_contrib2/asir2000/engine/Mgfs.c between version 1.10 and 1.11

version 1.10, 2001/09/03 01:04:26 version 1.11, 2001/10/09 01:36:10
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/Mgfs.c,v 1.9 2001/07/23 05:05:41 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/Mgfs.c,v 1.10 2001/09/03 01:04:26 noro Exp $ */
   
 #include "ca.h"  #include "ca.h"
   
 extern int up_kara_mag, current_gfs_q1;  extern int up_kara_mag, current_gfs_q1;
 extern int *current_gfs_plus1;  extern int *current_gfs_plus1;
   
 void mulssfum(UM,int,UM);  
 void kmulsfummain(UM,UM,UM);  
   
   
 #if defined(__GNUC__)  #if defined(__GNUC__)
 #define INLINE inline  #define INLINE inline
 #elif defined(VISUAL)  #elif defined(VISUAL)
Line 17  void kmulsfummain(UM,UM,UM);
Line 13  void kmulsfummain(UM,UM,UM);
 #define INLINE  #define INLINE
 #endif  #endif
   
 INLINE int _ADDSF(a,b)  INLINE int _ADDSF(int a,int b)
 int a,b;  
 {  {
         if ( !a )          if ( !a )
                 return b;                  return b;
Line 51  int a,b;
Line 46  int a,b;
         }          }
 }  }
   
 INLINE int _MULSF(a,b)  INLINE int _MULSF(int a,int b)
 int a,b;  
 {  {
         if ( !a || !b )          if ( !a || !b )
                 return 0;                  return 0;
Line 64  int a,b;
Line 58  int a,b;
         }          }
 }  }
   
 void addsfum(p1,p2,pr)  void addsfum(UM p1,UM p2,UM pr)
 UM p1,p2,pr;  
 {  {
         int *c1,*c2,*cr,i,dmax,dmin;          int *c1,*c2,*cr,i,dmax,dmin;
   
Line 92  UM p1,p2,pr;
Line 85  UM p1,p2,pr;
                 DEG(pr) = dmax;                  DEG(pr) = dmax;
 }  }
   
 void subsfum(p1,p2,pr)  void subsfum(UM p1,UM p2,UM pr)
 UM p1,p2,pr;  
 {  {
         int *c1,*c2,*cr,i;          int *c1,*c2,*cr,i;
         int dmax,dmin;          int dmax,dmin;
Line 128  UM p1,p2,pr;
Line 120  UM p1,p2,pr;
                 DEG(pr) = dmax;                  DEG(pr) = dmax;
 }  }
   
 void gcdsfum(p1,p2,pr)  void gcdsfum(UM p1,UM p2,UM pr)
 UM p1,p2,pr;  
 {  {
         int inv;          int inv;
         UM t1,t2,q,tum;          UM t1,t2,q,tum;
Line 153  UM p1,p2,pr;
Line 144  UM p1,p2,pr;
                 mulssfum(t2,inv,pr);                  mulssfum(t2,inv,pr);
         }          }
 }  }
 void mulsfum(p1,p2,pr)  
 UM p1,p2,pr;  void mulsfum(UM p1,UM p2,UM pr)
 {  {
         int *pc1,*pcr;          int *pc1,*pcr;
         int *c1,*c2,*cr;          int *c1,*c2,*cr;
Line 175  UM p1,p2,pr;
Line 166  UM p1,p2,pr;
         DEG(pr) = d1 + d2;          DEG(pr) = d1 + d2;
 }  }
   
 void mulssfum(p,n,pr)  void mulssfum(UM p,int n,UM pr)
 int n;  
 UM p,pr;  
 {  {
         int *sp,*dp;          int *sp,*dp;
         int i;          int i;
Line 187  UM p,pr;
Line 176  UM p,pr;
                 *dp = _MULSF(*sp,n);                  *dp = _MULSF(*sp,n);
 }  }
   
 void kmulsfum(n1,n2,nr)  void kmulsfum(UM n1,UM n2,UM nr)
 UM n1,n2,nr;  
 {  {
         UM n,t,s,m,carry;          UM n,t,s,m,carry;
         int d,d1,d2,len,i,l;          int d,d1,d2,len,i,l;
Line 235  UM n1,n2,nr;
Line 223  UM n1,n2,nr;
         bcopy((char *)r0,(char *)COEF(nr),l*sizeof(int));          bcopy((char *)r0,(char *)COEF(nr),l*sizeof(int));
 }  }
   
 void kmulsfummain(n1,n2,nr)  void kmulsfummain(UM n1,UM n2,UM nr)
 UM n1,n2,nr;  
 {  {
         int d1,d2,h,len;          int d1,d2,h,len;
         UM n1lo,n1hi,n2lo,n2hi,hi,lo,mid1,mid2,mid,s1,s2,t1,t2;          UM n1lo,n1hi,n2lo,n2hi,hi,lo,mid1,mid2,mid,s1,s2,t1,t2;
Line 270  UM n1,n2,nr;
Line 257  UM n1,n2,nr;
                 copyum(t1,nr);                  copyum(t1,nr);
 }  }
   
 int divsfum(p1,p2,pq)  int divsfum(UM p1,UM p2,UM pq)
 UM p1,p2,pq;  
 {  {
         int *pc1,*pct;          int *pc1,*pct;
         int *c1,*c2,*ct;          int *c1,*c2,*ct;
Line 307  UM p1,p2,pq;
Line 293  UM p1,p2,pq;
         return i;          return i;
 }  }
   
 void diffsfum(f,fd)  void diffsfum(UM f,UM fd)
 UM f,fd;  
 {  {
         int *dp,*sp;          int *dp,*sp;
         int i;          int i;
Line 320  UM f,fd;
Line 305  UM f,fd;
         degum(fd,DEG(f) - 1);          degum(fd,DEG(f) - 1);
 }  }
   
 void monicsfum(f)  void monicsfum(UM f)
 UM f;  
 {  {
         int *sp;          int *sp;
         int i,inv;          int i,inv;
Line 332  UM f;
Line 316  UM f;
                 *sp = _MULSF(*sp,inv);                  *sp = _MULSF(*sp,inv);
 }  }
   
 int compsfum(a,b)  int compsfum(UM a,UM b)
 UM a,b;  
 {  {
         int i,da,db;          int i,da,db;
   
Line 361  void mulsfarray_trunc(int,int *,int *,int *);
Line 344  void mulsfarray_trunc(int,int *,int *,int *);
   
 /* f1 = f1->c[0]+f1->c[1]*y+...,  f2 = f2->c[0]+f2->c[1]*y+... mod y^n */  /* f1 = f1->c[0]+f1->c[1]*y+...,  f2 = f2->c[0]+f2->c[1]*y+... mod y^n */
   
 void mulsfbm(f1,f2,fr)  void mulsfbm(BM f1,BM f2,BM fr)
 BM f1,f2,fr;  
 {  {
         UM mul,t,s;          UM mul,t,s;
         int i,j,h,d1,d2,dy;          int i,j,d1,d2,dy;
   
         dy = MIN(DEG(f1),DEG(f2));          dy = MIN(DEG(f1),DEG(f2));
   
Line 388  BM f1,f2,fr;
Line 370  BM f1,f2,fr;
         DEG(fr) = dy;          DEG(fr) = dy;
 }  }
   
 int degbm(f)  int degbm(BM f)
 BM f;  
 {  {
         int d,i,dy;          int d,i,dy;
   
Line 402  BM f;
Line 383  BM f;
   
 /* g += f */  /* g += f */
   
 void addtosfbm(f,g)  void addtosfbm(BM f,BM g)
 BM f,g;  
 {  {
         int i,d1,d2,dy;          int i,d1,d2,dy;
         UM t;          UM t;
Line 421  BM f,g;
Line 401  BM f,g;
         }          }
 }  }
   
 void eucsfum(f1,f2,a,b)  void eucsfum(UM f1,UM f2,UM a,UM b)
 UM f1,f2,a,b;  
 {  {
         UM g1,g2,a1,a2,a3,wm,q,tum;          UM g1,g2,a1,a2,a3,wm,q,tum;
         int d,dr;          int d,dr;
Line 456  UM f1,f2,a,b;
Line 435  UM f1,f2,a,b;
   
 void shiftsfum(UM,int,UM);  void shiftsfum(UM,int,UM);
   
 void shiftsflum(n,f,ev)  void shiftsflum(int n,LUM f,int ev)
 int n;  
 LUM f;  
 int ev;  
 {  {
         int d,i,j;          int d,i,j;
         UM w,w1;          UM w,w1;
Line 483  int ev;
Line 459  int ev;
   
 /* f(x) -> g(x) = f(x+a) */  /* f(x) -> g(x) = f(x+a) */
   
 void shiftsfum(f,a,g)  void shiftsfum(UM f,int a,UM g)
 UM f;  
 int a;  
 UM g;  
 {  {
         int n,i;          int n,i;
         UM pwr,xa,w,t;          UM pwr,xa,w,t;
Line 523  UM g;
Line 496  UM g;
   
 /* f(y) -> f(y+a) */  /* f(y) -> f(y+a) */
   
 void shiftsfbm(f,a)  void shiftsfbm(BM f,int a)
 BM f;  
 int a;  
 {  {
         int i,j,d,dy;          int i,j,d,dy;
         UM pwr,ya,w,t,s;          UM pwr,ya,w,t,s;
Line 558  int a;
Line 529  int a;
         }          }
 }  }
   
 void clearbm(n,f)  void clearbm(int n,BM f)
 int n;  
 BM f;  
 {  {
         int i,dy;          int i,dy;
         UM *c;          UM *c;

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

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