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

Diff for /OpenXM_contrib2/asir2018/engine/C.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/C.c,v 1.1 2018/09/19 05:45:06 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "inline.h"  #include "inline.h"
Line 210  void mptop(P f,P *gp)
Line 210  void mptop(P f,P *gp)
   if ( !f )    if ( !f )
     *gp = 0;      *gp = 0;
   else if ( NUM(f) )    else if ( NUM(f) )
     STOQ(CONT((MQ)f),q),*gp = (P)q;      STOZ(CONT((MQ)f),q),*gp = (P)q;
   else {    else {
     for ( dc = DC(f), dcr0 = 0; dc; dc = NEXT(dc) ) {      for ( dc = DC(f), dcr0 = 0; dc; dc = NEXT(dc) ) {
       NEXTDC(dcr0,dcr); DEG(dcr) = DEG(dc); mptop(COEF(dc),&COEF(dcr));        NEXTDC(dcr0,dcr); DEG(dcr) = DEG(dc); mptop(COEF(dc),&COEF(dcr));
Line 258  void sfptop(P f,P *gp)
Line 258  void sfptop(P f,P *gp)
     *gp = 0;      *gp = 0;
   else if ( NUM(f) ) {    else if ( NUM(f) ) {
     gfstomq((GFS)f,&fq);      gfstomq((GFS)f,&fq);
     STOQ(CONT(fq),q);      STOZ(CONT(fq),q);
     *gp = (P)q;      *gp = (P)q;
   } else {    } else {
     for ( dc = DC(f), dcr0 = 0; dc; dc = NEXT(dc) ) {      for ( dc = DC(f), dcr0 = 0; dc; dc = NEXT(dc) ) {
Line 392  void ptoum(int m,P f,UM wf)
Line 392  void ptoum(int m,P f,UM wf)
   
   for ( dc = DC(f); dc; dc = NEXT(dc) ) {    for ( dc = DC(f); dc; dc = NEXT(dc) ) {
     r = remqi(((Q)COEF(dc)),m);      r = remqi(((Q)COEF(dc)),m);
     COEF(wf)[QTOS(DEG(dc))] = r;      COEF(wf)[ZTOS(DEG(dc))] = r;
   }    }
   degum(wf,UDEG(f));    degum(wf,UDEG(f));
 }  }
Line 407  void umtop(V v,UM w,P *f)
Line 407  void umtop(V v,UM w,P *f)
   if ( DEG(w) < 0 )    if ( DEG(w) < 0 )
     *f = 0;      *f = 0;
   else if ( DEG(w) == 0 )    else if ( DEG(w) == 0 )
     STOQ(COEF(w)[0],q), *f = (P)q;      STOZ(COEF(w)[0],q), *f = (P)q;
   else {    else {
     for ( i = DEG(w), c = COEF(w), dc0 = 0; i >= 0; i-- )      for ( i = DEG(w), c = COEF(w), dc0 = 0; i >= 0; i-- )
       if ( c[i] ) {        if ( c[i] ) {
         NEXTDC(dc0,dc);          NEXTDC(dc0,dc);
         STOQ(i,DEG(dc));          STOZ(i,DEG(dc));
         STOQ(c[i],q), COEF(dc) = (P)q;          STOZ(c[i],q), COEF(dc) = (P)q;
       }        }
     NEXT(dc) = 0;      NEXT(dc) = 0;
     MKP(v,dc0,*f);      MKP(v,dc0,*f);
Line 439  void ptosfum(P f,UM wf)
Line 439  void ptosfum(P f,UM wf)
   for ( dc = DC(f); dc; dc = NEXT(dc) ) {    for ( dc = DC(f); dc; dc = NEXT(dc) ) {
     ntogfs((Obj)COEF(dc),&c);      ntogfs((Obj)COEF(dc),&c);
     if ( c )      if ( c )
       COEF(wf)[QTOS(DEG(dc))] = FTOIF(CONT(c));        COEF(wf)[ZTOS(DEG(dc))] = FTOIF(CONT(c));
   }    }
   degum(wf,UDEG(f));    degum(wf,UDEG(f));
 }  }
Line 462  void sfumtop(V v,UM w,P *f)
Line 462  void sfumtop(V v,UM w,P *f)
     for ( i = DEG(w), c = COEF(w), dc0 = 0; i >= 0; i-- )      for ( i = DEG(w), c = COEF(w), dc0 = 0; i >= 0; i-- )
       if ( c[i] ) {        if ( c[i] ) {
         NEXTDC(dc0,dc);          NEXTDC(dc0,dc);
         STOQ(i,DEG(dc));          STOZ(i,DEG(dc));
         t = COEF(w)[i];          t = COEF(w)[i];
         t = IFTOF(t);          t = IFTOF(t);
         MKGFS(t,q);          MKGFS(t,q);
Line 489  void ptoup(P n,UP *nr)
Line 489  void ptoup(P n,UP *nr)
     up_var = VR(n);      up_var = VR(n);
     *nr = r = UPALLOC(d); DEG(r) = d;      *nr = r = UPALLOC(d); DEG(r) = d;
     for ( dc = DC(n); dc; dc = NEXT(dc) ) {      for ( dc = DC(n); dc; dc = NEXT(dc) ) {
       COEF(r)[QTOS(DEG(dc))] = (Num)COEF(dc);        COEF(r)[ZTOS(DEG(dc))] = (Num)COEF(dc);
     }      }
   }    }
 }  }
Line 506  void uptop(UP n,P *nr)
Line 506  void uptop(UP n,P *nr)
   else {    else {
     for ( i = DEG(n), dc0 = 0; i >= 0; i-- )      for ( i = DEG(n), dc0 = 0; i >= 0; i-- )
       if ( COEF(n)[i] ) {        if ( COEF(n)[i] ) {
         NEXTDC(dc0,dc); STOQ(i,DEG(dc)); COEF(dc) = (P)COEF(n)[i];          NEXTDC(dc0,dc); STOZ(i,DEG(dc)); COEF(dc) = (P)COEF(n)[i];
       }        }
     if ( !up_var )      if ( !up_var )
       up_var = CO->v;        up_var = CO->v;
Line 543  void mptoum(P p,UM pr)
Line 543  void mptoum(P p,UM pr)
   } else {    } else {
     bzero((char *)pr,(int)((UDEG(p)+2)*sizeof(int)));      bzero((char *)pr,(int)((UDEG(p)+2)*sizeof(int)));
     for ( dc = DC(p); dc; dc = NEXT(dc) )      for ( dc = DC(p); dc; dc = NEXT(dc) )
       COEF(pr)[QTOS(DEG(dc))] = CONT((MQ)COEF(dc));        COEF(pr)[ZTOS(DEG(dc))] = CONT((MQ)COEF(dc));
     degum(pr,UDEG(p));      degum(pr,UDEG(p));
   }    }
 }  }
Line 561  void umtomp(V v,UM p,P *pr)
Line 561  void umtomp(V v,UM p,P *pr)
   else {    else {
     for ( dc0 = 0, i = DEG(p); i >= 0; i-- )      for ( dc0 = 0, i = DEG(p); i >= 0; i-- )
       if ( COEF(p)[i] ) {        if ( COEF(p)[i] ) {
         NEXTDC(dc0,dc); STOQ(i,DEG(dc));          NEXTDC(dc0,dc); STOZ(i,DEG(dc));
         STOMQ(COEF(p)[i],q), COEF(dc) = (P)q;          STOMQ(COEF(p)[i],q), COEF(dc) = (P)q;
       }        }
     NEXT(dc) = 0; MKP(v,dc0,*pr);      NEXT(dc) = 0; MKP(v,dc0,*pr);
Line 580  void enc_to_p(int p,int a,V v,P *pr)
Line 580  void enc_to_p(int p,int a,V v,P *pr)
   for ( i = 0; a; i++, a /= p ) {    for ( i = 0; a; i++, a /= p ) {
     c = a%p;      c = a%p;
     if ( c ) {      if ( c ) {
       STOQ(i,dq); STOQ(c,cq);        STOZ(i,dq); STOZ(c,cq);
       NEWDC(dct); DEG(dct) = dq; COEF(dct) = (P)cq;        NEWDC(dct); DEG(dct) = dq; COEF(dct) = (P)cq;
       NEXT(dct) = dc; dc = dct;        NEXT(dct) = dc; dc = dct;
     }      }

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

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