[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.5 and 1.6

version 1.5, 2001/06/25 05:30:49 version 1.6, 2001/06/25 10:01:28
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/Mgfs.c,v 1.4 2001/06/25 04:11:42 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/Mgfs.c,v 1.5 2001/06/25 05:30:49 noro Exp $ */
   
 #include "ca.h"  #include "ca.h"
   
Line 366  BM f1,f2,fr;
Line 366  BM f1,f2,fr;
         if ( DEG(f1) < bound || DEG(f2) < bound )          if ( DEG(f1) < bound || DEG(f2) < bound )
                 error("mulsfbm : invalid input");                  error("mulsfbm : invalid input");
   
         d1 = DEG(COEF(f1)[0]);          d1 = degsfbm(bound,f1);
         for ( i = 1; i < bound; i++ )          d2 = degsfbm(bound,f2);
                 d1 = MAX(DEG(COEF(f1)[i]),d1);  
         d2 = DEG(COEF(f2)[0]);  
         for ( i = 1; i < bound; i++ )  
                 d2 = MAX(DEG(COEF(f2)[i]),d2);  
         t = W_UMALLOC(d1+d2);          t = W_UMALLOC(d1+d2);
         s = W_UMALLOC(d1+d2);          s = W_UMALLOC(d1+d2);
   
Line 389  BM f1,f2,fr;
Line 385  BM f1,f2,fr;
         DEG(fr) = bound;          DEG(fr) = bound;
 }  }
   
   int degsfbm(bound,f)
   int bound;
   BM f;
   {
           int d,i;
   
           d = DEG(COEF(f)[0]);
           for ( i = 1; i < bound; i++ )
                   d = MAX(DEG(COEF(f)[i]),d);
           return d;
   }
   
 /* g += f */  /* g += f */
   
 void addtosfbm(bound,f,g)  void addtosfbm(bound,f,g)
Line 398  BM f,g;
Line 406  BM f,g;
         int i,d1,d2;          int i,d1,d2;
         UM t;          UM t;
   
         d1 = DEG(COEF(f)[0]);          d1 = degsfbm(bound,f);
         for ( i = 1; i < bound; i++ )          d2 = degsfbm(bound,g);
                 d1 = MAX(DEG(COEF(f)[i]),d1);  
         d2 = DEG(COEF(g)[0]);  
         for ( i = 1; i < bound; i++ )  
                 d2 = MAX(DEG(COEF(g)[i]),d2);  
         t = W_UMALLOC(MAX(d1,d2));          t = W_UMALLOC(MAX(d1,d2));
         for ( i = 0; i < bound; i++ ) {          for ( i = 0; i < bound; i++ ) {
                 addsfum(COEF(f)[i],COEF(g)[i],t);                  addsfum(COEF(f)[i],COEF(g)[i],t);

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

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