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

Diff for /OpenXM_contrib2/asir2018/builtin/fctr.c between version 1.1 and 1.2

version 1.1, 2018/09/19 05:45:05 version 1.2, 2018/09/28 08:20:27
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/builtin/fctr.c,v 1.1 2018/09/19 05:45:05 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 110  void Pbivariate_hensel_special(NODE arg,LIST *rp)
Line 110  void Pbivariate_hensel_special(NODE arg,LIST *rp)
   h0 = (P)ARG2(arg);    h0 = (P)ARG2(arg);
   vx = VR((P)ARG3(arg));    vx = VR((P)ARG3(arg));
   vy = VR((P)ARG4(arg));    vy = VR((P)ARG4(arg));
   d = QTOS((Q)ARG5(arg));    d = ZTOS((Q)ARG5(arg));
   NEWVL(nvl); nvl->v = vx;    NEWVL(nvl); nvl->v = vx;
   NEWVL(NEXT(nvl)); NEXT(nvl)->v = vy;    NEWVL(NEXT(nvl)); NEXT(nvl)->v = vy;
   NEXT(NEXT(nvl)) = 0;    NEXT(NEXT(nvl)) = 0;
Line 158  void Pgcd(NODE arg,P *rp)
Line 158  void Pgcd(NODE arg,P *rp)
   else {    else {
     m = (Num)ARG2(arg);      m = (Num)ARG2(arg);
     asir_assert(m,O_P,"gcd");      asir_assert(m,O_P,"gcd");
     mod = QTOS((Q)m);      mod = ZTOS((Q)m);
     ptomp(mod,p1,&g1); ptomp(mod,p2,&g2);      ptomp(mod,p1,&g1); ptomp(mod,p2,&g2);
     gcdprsmp(CO,mod,g1,g2,&g);      gcdprsmp(CO,mod,g1,g2,&g);
     mptop(g,rp);      mptop(g,rp);
Line 233  void Pufctrhint(NODE arg,LIST *rp)
Line 233  void Pufctrhint(NODE arg,LIST *rp)
   
   asir_assert(ARG0(arg),O_P,"ufctrhint");    asir_assert(ARG0(arg),O_P,"ufctrhint");
   asir_assert(ARG1(arg),O_N,"ufctrhint");    asir_assert(ARG1(arg),O_N,"ufctrhint");
   ufctr((P)ARG0(arg),QTOS((Q)ARG1(arg)),&dc);    ufctr((P)ARG0(arg),ZTOS((Q)ARG1(arg)),&dc);
   dcptolist(dc,rp);    dcptolist(dc,rp);
 }  }
   
Line 404  void Pmodfctr(NODE arg,LIST *rp)
Line 404  void Pmodfctr(NODE arg,LIST *rp)
   Obj u;    Obj u;
   VL vl;    VL vl;
   
   mod = QTOS((Q)ARG1(arg));    mod = ZTOS((Q)ARG1(arg));
   if ( mod < 0 )    if ( mod < 0 )
     error("modfctr : invalid modulus");      error("modfctr : invalid modulus");
   p = (P)ARG0(arg);    p = (P)ARG0(arg);
Line 476  void Psfbfctr(NODE arg,LIST *rp)
Line 476  void Psfbfctr(NODE arg,LIST *rp)
   vl2.v = y; vl2.next = 0;    vl2.v = y; vl2.next = 0;
   vl = &vl1;    vl = &vl1;
   if ( argc(arg) == 4 )    if ( argc(arg) == 4 )
     degbound = QTOS((Q)ARG3(arg));      degbound = ZTOS((Q)ARG3(arg));
   else    else
     degbound = -1;      degbound = -1;
   
Line 500  void Psfmintdeg(NODE arg,P *rp)
Line 500  void Psfmintdeg(NODE arg,P *rp)
   vl1.v = x; vl1.next = &vl2;    vl1.v = x; vl1.next = &vl2;
   vl2.v = y; vl2.next = 0;    vl2.v = y; vl2.next = 0;
   vl = &vl1;    vl = &vl1;
   dy = QTOS((Q)ARG3(arg));    dy = ZTOS((Q)ARG3(arg));
   c = QTOS((Q)ARG4(arg));    c = ZTOS((Q)ARG4(arg));
   sfmintdeg(vl,(P)ARG0(arg),dy,c,&r);    sfmintdeg(vl,(P)ARG0(arg),dy,c,&r);
   reorderp(CO,vl,r,rp);    reorderp(CO,vl,r,rp);
 }  }
Line 513  void Pmodsqfr(NODE arg,LIST *rp)
Line 513  void Pmodsqfr(NODE arg,LIST *rp)
   if ( !ARG0(arg) ) {    if ( !ARG0(arg) ) {
     NEWDC(dc); COEF(dc) = 0; DEG(dc) = ONE; NEXT(dc) = 0;      NEWDC(dc); COEF(dc) = 0; DEG(dc) = ONE; NEXT(dc) = 0;
   } else    } else
     modfctrp(ARG0(arg),QTOS((Q)ARG1(arg)),SQFR,&dc);      modfctrp(ARG0(arg),ZTOS((Q)ARG1(arg)),SQFR,&dc);
   dcptolist(dc,rp);    dcptolist(dc,rp);
 }  }
   
Line 524  void Pddd(NODE arg,LIST *rp)
Line 524  void Pddd(NODE arg,LIST *rp)
   if ( !ARG0(arg) ) {    if ( !ARG0(arg) ) {
     NEWDC(dc); COEF(dc) = 0; DEG(dc) = ONE; NEXT(dc) = 0;      NEWDC(dc); COEF(dc) = 0; DEG(dc) = ONE; NEXT(dc) = 0;
   } else    } else
     modfctrp(ARG0(arg),QTOS((Q)ARG1(arg)),DDD,&dc);      modfctrp(ARG0(arg),ZTOS((Q)ARG1(arg)),DDD,&dc);
   dcptolist(dc,rp);    dcptolist(dc,rp);
 }  }
   
Line 535  void Pnewddd(NODE arg,LIST *rp)
Line 535  void Pnewddd(NODE arg,LIST *rp)
   if ( !ARG0(arg) ) {    if ( !ARG0(arg) ) {
     NEWDC(dc); COEF(dc) = 0; DEG(dc) = ONE; NEXT(dc) = 0;      NEWDC(dc); COEF(dc) = 0; DEG(dc) = ONE; NEXT(dc) = 0;
   } else    } else
     modfctrp(ARG0(arg),QTOS((Q)ARG1(arg)),NEWDDD,&dc);      modfctrp(ARG0(arg),ZTOS((Q)ARG1(arg)),NEWDDD,&dc);
   dcptolist(dc,rp);    dcptolist(dc,rp);
 }  }
   
Line 550  void Pirred_check(NODE arg,Z *rp)
Line 550  void Pirred_check(NODE arg,Z *rp)
     *rp = 0; return;      *rp = 0; return;
   }    }
   mp = W_UMALLOC(UDEG(p));    mp = W_UMALLOC(UDEG(p));
   mod = QTOS((Q)ARG1(arg));    mod = ZTOS((Q)ARG1(arg));
   ptoum(mod,p,mp);    ptoum(mod,p,mp);
   r = irred_check(mp,mod);    r = irred_check(mp,mod);
   if ( r )    if ( r )
Line 570  void Pnfctr_mod(NODE arg,Z *rp)
Line 570  void Pnfctr_mod(NODE arg,Z *rp)
     *rp = 0; return;      *rp = 0; return;
   }    }
   mp = W_UMALLOC(UDEG(p));    mp = W_UMALLOC(UDEG(p));
   mod = QTOS((Q)ARG1(arg));    mod = ZTOS((Q)ARG1(arg));
   ptoum(mod,p,mp);    ptoum(mod,p,mp);
   r = nfctr_mod(mp,mod);    r = nfctr_mod(mp,mod);
   STOQ(r,*rp);    STOZ(r,*rp);
 }  }
   
 void Pddd_tab(NODE arg,VECT *rp)  void Pddd_tab(NODE arg,VECT *rp)
Line 585  void Pddd_tab(NODE arg,VECT *rp)
Line 585  void Pddd_tab(NODE arg,VECT *rp)
   VECT result;    VECT result;
   V v;    V v;
   
   p = (P)ARG0(arg); mod = QTOS((Q)ARG1(arg));    p = (P)ARG0(arg); mod = ZTOS((Q)ARG1(arg));
   v = VR(p);    v = VR(p);
   n = UDEG(p); mp = W_UMALLOC(n);    n = UDEG(p); mp = W_UMALLOC(n);
   ptoum(mod,p,mp);    ptoum(mod,p,mp);

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

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