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

Diff for /OpenXM_contrib2/asir2018/engine/A.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/A.c,v 1.1 2018/09/19 05:45:06 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 93  void rema(VL vl,P p0,P p1,P p2,P *pr)
Line 93  void rema(VL vl,P p0,P p1,P p2,P *pr)
     g = p1; lc = LC(p2); MKV(v,x);      g = p1; lc = LC(p2); MKV(v,x);
     while ( ( d1 = deg(v,g) ) >= d2 ) {      while ( ( d1 = deg(v,g) ) >= d2 ) {
       mulp(vl,g,lc,&m); mulp(vl,p2,LC(g),&m1);        mulp(vl,g,lc,&m); mulp(vl,p2,LC(g),&m1);
       STOQ(d1-d2,q); pwrp(vl,x,q,&t);        STOZ(d1-d2,q); pwrp(vl,x,q,&t);
       mulp(vl,m1,t,&m2); subp(vl,m,m2,&m1);        mulp(vl,m1,t,&m2); subp(vl,m,m2,&m1);
       remsdcp(vl,m1,p0,&g);        remsdcp(vl,m1,p0,&g);
     }      }
Line 160  void sqa(VL vl,P p0,P p,DCP *dcp)
Line 160  void sqa(VL vl,P p0,P p,DCP *dcp)
       a[i] = flat; b[i] = j;        a[i] = flat; b[i] = j;
     }      }
     for ( i = 0, j = 0, dc0 = 0; a[i]; i++ ) {      for ( i = 0, j = 0, dc0 = 0; a[i]; i++ ) {
       NEXTDC(dc0,dc); j += b[i]; STOQ(j,DEG(dc));        NEXTDC(dc0,dc); j += b[i]; STOZ(j,DEG(dc));
       if ( a[i+1] )        if ( a[i+1] )
         pqra(vl,p0,a[i],a[i+1],&COEF(dc),&t);          pqra(vl,p0,a[i],a[i+1],&COEF(dc),&t);
       else        else
Line 188  void pqra(VL vl,P p0,P p1,P p2,P *p,P *pr)
Line 188  void pqra(VL vl,P p0,P p1,P p2,P *p,P *pr)
   } else if ( (n = deg(v,p1) - deg(v,p2)) < 0 ) {    } else if ( (n = deg(v,p1) - deg(v,p2)) < 0 ) {
     *pr = p1; *p = 0;      *pr = p1; *p = 0;
   } else {    } else {
     n++; STOQ(n,tq);      n++; STOZ(n,tq);
     pwrp(vl,LC(p2),tq,&m); mulp(vl,m,p1,&m1); divsrp(vl,m1,p2,&q,&r);      pwrp(vl,LC(p2),tq,&m); mulp(vl,m,p1,&m1); divsrp(vl,m1,p2,&q,&r);
     remsdcp(vl,q,p0,p); remsdcp(vl,r,p0,pr);      remsdcp(vl,q,p0,p); remsdcp(vl,r,p0,pr);
   }    }
Line 248  void pinva(P p0, P p, P *pr)
Line 248  void pinva(P p0, P p, P *pr)
   
   v = VR(p); n=deg(v,p); m=deg(v,p0);    v = VR(p); n=deg(v,p); m=deg(v,p0);
   norm(p,&a); norm(p0,&b);    norm(p,&a); norm(p0,&b);
   STOQ(m,w); pwrq(a,(Q)w,&t); STOQ(n,w); pwrq(b,(Q)w,&s);    STOZ(m,w); pwrq(a,(Q)w,&t); STOZ(n,w); pwrq(b,(Q)w,&s);
   mulq(t,s,&ts);    mulq(t,s,&ts);
   factorialz(n+m,&w); mulq(ts,(Q)w,&s); addq(s,s,&f);    factorialz(n+m,&w); mulq(ts,(Q)w,&s); addq(s,s,&f);
   wg = W_UMALLOC(m+n); wh = W_UMALLOC(m+n);    wg = W_UMALLOC(m+n); wh = W_UMALLOC(m+n);
Line 302  void inva_chrem(P p0, P p, NODE *pr)
Line 302  void inva_chrem(P p0, P p, NODE *pr)
   
   v = VR(p); n=deg(v,p); m=deg(v,p0);    v = VR(p); n=deg(v,p); m=deg(v,p0);
   norm(p,&a); norm(p0,&b);    norm(p,&a); norm(p0,&b);
   STOQ(m,w); pwrq(a,(Q)w,&t); STOQ(n,w); pwrq(b,(Q)w,&s);    STOZ(m,w); pwrq(a,(Q)w,&t); STOZ(n,w); pwrq(b,(Q)w,&s);
   mulq(t,s,&ts);    mulq(t,s,&ts);
   factorialz(n+m,&w); mulq(ts,(Q)w,&s); addq(s,s,&f);    factorialz(n+m,&w); mulq(ts,(Q)w,&s); addq(s,s,&f);
   wg = W_UMALLOC(m+n); wh = W_UMALLOC(m+n);    wg = W_UMALLOC(m+n); wh = W_UMALLOC(m+n);

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

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