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

Diff for /OpenXM_contrib2/asir2000/engine/Ebug.c between version 1.4 and 1.5

version 1.4, 2001/10/09 01:36:09 version 1.5, 2018/03/29 01:32:51
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_contrib2/asir2000/engine/Ebug.c,v 1.3 2000/08/22 05:04:03 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/engine/Ebug.c,v 1.4 2001/10/09 01:36:09 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
   
 void substvp(VL vl,P f,VN vn,P *g)  void substvp(VL vl,P f,VN vn,P *g)
 {  {
         V v;    V v;
         int i;    int i;
         P h,h1;    P h,h1;
         Q t;    Q t;
   
         h = f;    h = f;
         for ( i = 0; v = vn[i].v; i++ ) {    for ( i = 0; v = vn[i].v; i++ ) {
                 STOQ(vn[i].n,t);      STOQ(vn[i].n,t);
                 substp(vl,h,v,(P)t,&h1); h = h1;      substp(vl,h,v,(P)t,&h1); h = h1;
         }    }
         *g = h;    *g = h;
 }  }
   
 void affine(VL vl,P f,VN vn,P *fr)  void affine(VL vl,P f,VN vn,P *fr)
 {  {
         int i,j,n;    int i,j,n;
         P vv,g,g1,t,u;    P vv,g,g1,t,u;
         Q s;    Q s;
         int *dlist;    int *dlist;
         P **plist;    P **plist;
   
         for ( n = 0; vn[n].v; n++);    for ( n = 0; vn[n].v; n++);
         dlist = (int *)ALLOCA((n+1)*sizeof(int));    dlist = (int *)ALLOCA((n+1)*sizeof(int));
         plist = (P **)ALLOCA((n+1)*sizeof(P *));    plist = (P **)ALLOCA((n+1)*sizeof(P *));
         for ( i = 0; vn[i].v; i++ ) {    for ( i = 0; vn[i].v; i++ ) {
                 if ( !vn[i].n )      if ( !vn[i].n )
                         continue;        continue;
                 dlist[i] = getdeg(vn[i].v,f);      dlist[i] = getdeg(vn[i].v,f);
                 plist[i] = (P *)ALLOCA((dlist[i]+1)*sizeof(P));      plist[i] = (P *)ALLOCA((dlist[i]+1)*sizeof(P));
   
                 MKV(vn[i].v,t);      MKV(vn[i].v,t);
                 if ( vn[i].n ) {      if ( vn[i].n ) {
                         STOQ(vn[i].n,s); addp(vl,t,(P)s,&vv);        STOQ(vn[i].n,s); addp(vl,t,(P)s,&vv);
                 } else      } else
                         vv = t;        vv = t;
   
                 for ( j = 0, t = (P)ONE; j < dlist[i]; j++ ) {      for ( j = 0, t = (P)ONE; j < dlist[i]; j++ ) {
                         plist[i][j] = t;        plist[i][j] = t;
                         mulp(vl,t,vv,&u);        mulp(vl,t,vv,&u);
                         t = u;        t = u;
                 }      }
                 plist[i][j] = t;      plist[i][j] = t;
         }    }
   
         g = f;    g = f;
         for ( i = 0; vn[i].v; i++ ) {    for ( i = 0; vn[i].v; i++ ) {
                 if ( !vn[i].n )      if ( !vn[i].n )
                         continue;        continue;
                 affinemain(vl,g,vn[i].v,dlist[i],plist[i],&g1); g = g1;      affinemain(vl,g,vn[i].v,dlist[i],plist[i],&g1); g = g1;
         }    }
         *fr = g;    *fr = g;
 }  }
   

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

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