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

Diff for /OpenXM_contrib2/asir2018/engine/F.c between version 1.1 and 1.2

version 1.1, 2018/09/19 05:45:06 version 1.2, 2018/09/28 08:20:28
Line 45 
Line 45 
  * 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: OpenXM_contrib2/asir2018/engine/F.c,v 1.1 2018/09/19 05:45:06 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include <math.h>  #include <math.h>
Line 103  void homfctr(VL vl,P g,DCP *dcp)
Line 103  void homfctr(VL vl,P g,DCP *dcp)
   for ( dct = dc; dct; dct = NEXT(dct) )    for ( dct = dc; dct; dct = NEXT(dct) )
     if ( !NUM(dc->c) ) {      if ( !NUM(dc->c) ) {
       for ( s = 0, f = dc->c, d = d0 = homdeg(f); f; d = homdeg(f) ) {        for ( s = 0, f = dc->c, d = d0 = homdeg(f); f; d = homdeg(f) ) {
         exthp(vl,f,d,&h); STOQ(d0-d,e); pwrp(vl,x,e,&t);          exthp(vl,f,d,&h); STOZ(d0-d,e); pwrp(vl,x,e,&t);
         mulp(vl,t,h,&u); addp(vl,s,u,&t); s = t;          mulp(vl,t,h,&u); addp(vl,s,u,&t); s = t;
         subp(vl,f,h,&u); f = u;          subp(vl,f,h,&u); f = u;
       }        }
Line 576  void mkssum(V v,int e,int s,int sgn,P *r)
Line 576  void mkssum(V v,int e,int s,int sgn,P *r)
     } else {      } else {
       NEWDC(NEXT(dc)); dc = NEXT(dc);        NEWDC(NEXT(dc)); dc = NEXT(dc);
     }      }
     STOQ(i*e,DEG(dc)); STOQ(sgnt,q),COEF(dc) = (P)q;      STOZ(i*e,DEG(dc)); STOZ(sgnt,q),COEF(dc) = (P)q;
   }    }
   NEXT(dc) = 0; MKP(v,dc0,*r);    NEXT(dc) = 0; MKP(v,dc0,*r);
 }  }
Line 838  void msqfrmain(VL vl,P p,DCP *dcp)
Line 838  void msqfrmain(VL vl,P p,DCP *dcp)
       usqp(p0,&dc0);        usqp(p0,&dc0);
       for ( d1 = 0, dc = dc0; dc; dc = NEXT(dc) )        for ( d1 = 0, dc = dc0; dc; dc = NEXT(dc) )
         if ( DEG(dc) )          if ( DEG(dc) )
           d1 += (QTOS(DEG(dc))-1)*UDEG(COEF(dc));            d1 += (ZTOS(DEG(dc))-1)*UDEG(COEF(dc));
       if ( d1 == 0 ) {        if ( d1 == 0 ) {
         /* p is squarefree */          /* p is squarefree */
         NEWDC(dc); DEG(dc) = ONE; COEF(dc) = p; NEXT(dc) = 0;          NEWDC(dc); DEG(dc) = ONE; COEF(dc) = p; NEXT(dc) = 0;
Line 865  void msqfrmain(VL vl,P p,DCP *dcp)
Line 865  void msqfrmain(VL vl,P p,DCP *dcp)
         usqp(p0,&dc0);          usqp(p0,&dc0);
         for ( d1 = 0, dc = dc0; dc; dc = NEXT(dc) )          for ( d1 = 0, dc = dc0; dc; dc = NEXT(dc) )
           if ( DEG(dc) )            if ( DEG(dc) )
             d1 += (QTOS(DEG(dc))-1)*UDEG(COEF(dc));              d1 += (ZTOS(DEG(dc))-1)*UDEG(COEF(dc));
   
         if ( d1 == 0 ) {          if ( d1 == 0 ) {
           NEWDC(dc); DEG(dc) = ONE; COEF(dc) = g; NEXT(dc) = 0;            NEWDC(dc); DEG(dc) = ONE; COEF(dc) = g; NEXT(dc) = 0;
Line 949  void msqfrmainmain(VL vl,P p,VN vn,P p0,DCP dc0,DCP *d
Line 949  void msqfrmainmain(VL vl,P p,VN vn,P p0,DCP dc0,DCP *d
         break;          break;
     } else {      } else {
       for ( t = f, t0 = f0,        for ( t = f, t0 = f0,
         j = 0, k = QTOS(DEG(a[i]))-1; j < k; j++ ) {          j = 0, k = ZTOS(DEG(a[i]))-1; j < k; j++ ) {
         diffp(vl,t,v,&s); t = s;          diffp(vl,t,v,&s); t = s;
         diffp(vl,t0,v,&s); t0 = s;          diffp(vl,t0,v,&s); t0 = s;
       }        }
Line 989  void msqfrmainmain(VL vl,P p,VN vn,P p0,DCP dc0,DCP *d
Line 989  void msqfrmainmain(VL vl,P p,VN vn,P p0,DCP dc0,DCP *d
   
           pwrp(vl,COEF(dcb),DEG(a[i]),&s);            pwrp(vl,COEF(dcb),DEG(a[i]),&s);
           for ( t = LC(f), j = 0; divtpz(vl,t,s,&tt); j++, t = tt );            for ( t = LC(f), j = 0; divtpz(vl,t,s,&tt); j++, t = tt );
           STOQ(j,qq);            STOZ(j,qq);
           if ( cmpz(qq,DEG(dcb)) > 0 )            if ( cmpz(qq,DEG(dcb)) > 0 )
             qq = DEG(dcb);              qq = DEG(dcb);
           pwrp(vl,COEF(dcb),qq,&t); mulp(vl,u,t,&s); u = s;            pwrp(vl,COEF(dcb),qq,&t); mulp(vl,u,t,&s); u = s;
Line 1138  void estimatelc(VL vl,Z c,DCP dc,VN vn,P *lcp)
Line 1138  void estimatelc(VL vl,Z c,DCP dc,VN vn,P *lcp)
       mulp(vl,r,COEF(dct),&s); r = s;        mulp(vl,r,COEF(dct),&s); r = s;
     } else {      } else {
       substvp(vl,COEF(dct),vn,(P *)&c0);        substvp(vl,COEF(dct),vn,(P *)&c0);
       for ( i = 0, c1 = c; i < (int)QTOS(DEG(dct)); i++ ) {        for ( i = 0, c1 = c; i < (int)ZTOS(DEG(dct)); i++ ) {
         divz(c1,c0,&c2);          divz(c1,c0,&c2);
         if ( !INT(c2) )          if ( !INT(c2) )
           break;            break;
Line 1146  void estimatelc(VL vl,Z c,DCP dc,VN vn,P *lcp)
Line 1146  void estimatelc(VL vl,Z c,DCP dc,VN vn,P *lcp)
           c1 = c2;            c1 = c2;
       }        }
       if ( i ) {        if ( i ) {
         STOQ(i,c1);          STOZ(i,c1);
         pwrp(vl,COEF(dct),c1,&s); mulp(vl,r,s,&t); r = t;          pwrp(vl,COEF(dct),c1,&s); mulp(vl,r,s,&t); r = t;
       }        }
     }      }
Line 1232  void afctrmain(VL vl,P p0,P p,int init,DCP *dcp)
Line 1232  void afctrmain(VL vl,P p0,P p,int init,DCP *dcp)
   
   v = VR(p); MKV(v,x);    v = VR(p); MKV(v,x);
   v0 = VR(p0); MKV(v0,y);    v0 = VR(p0); MKV(v0,y);
   STOQ(init,q),s = (P)q;    STOZ(init,q),s = (P)q;
   mulp(vl,s,y,&m); subp(vl,x,m,&t); addp(vl,x,m,&a);    mulp(vl,s,y,&m); subp(vl,x,m,&t); addp(vl,x,m,&a);
   substp(vl,p,v,t,&pt);    substp(vl,p,v,t,&pt);
   remsdcp(vl,pt,p0,&pt1);    remsdcp(vl,pt,p0,&pt1);

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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