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

Diff for /OpenXM_contrib2/asir2018/builtin/dp.c between version 1.19 and 1.20

version 1.19, 2019/11/21 04:03:16 version 1.20, 2019/12/12 04:44:59
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/asir2018/builtin/dp.c,v 1.18 2019/11/19 10:50:31 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2018/builtin/dp.c,v 1.19 2019/11/21 04:03:16 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "base.h"  #include "base.h"
Line 4072  void Pdpm_set_schreyer_level(NODE arg,Q *rp)
Line 4072  void Pdpm_set_schreyer_level(NODE arg,Q *rp)
   *rp = (Q)ARG0(arg);    *rp = (Q)ARG0(arg);
 }  }
   
   DPM dmmtodpm(DMM d)
   {
   }
   
 void Pdpm_schreyer_frame(NODE arg,LIST *rp)  void Pdpm_schreyer_frame(NODE arg,LIST *rp)
 {  {
   DMMstack_array a;    DMMstack_array a;
   DMMstack *body;    DMMstack *body;
   NODE b,b1;    DMM *in,*sum;
     DPM f,s;
     NODE b,b1,nd;
   LIST l;    LIST l;
   int len,i;    VECT v;
     Z lev,deg,ind;
     int len,i,nv,rank,j;
   
   Schreyer_Frame = a = dpm_schreyer_frame(BDY((LIST)ARG0(arg)));    Schreyer_Frame = a = dpm_schreyer_frame(BDY((LIST)ARG0(arg)));
   len = a->len;    len = a->len;
   body = a->body;    body = a->body;
     /* XXX */
     nv = ((DPM)BDY(BDY((LIST)body[0]->obj)))->nv;
   b = 0;    b = 0;
   for ( i = 0; i < len; i++ ) {    for ( i = 0; i < len; i++ ) {
     MKNODE(b1,(pointer)body[i]->obj,b);      rank = body[i]->rank;
       in = body[i]->in;
       sum = body[i]->sum;
       MKVECT(v,rank+1);
       STOZ(i+1,lev);
       for ( j = 1; j <= rank; j++ ) {
         MKDPM(nv,in[j],f); f->sugar = in[j]->dl->td;
         MKDPM(nv,sum[j],s);s->sugar = sum[j]->dl->td;
         STOZ(s->sugar,deg);
         STOZ(j,ind);
         nd = mknode(5,f,s,ind,lev,deg);
         MKLIST(l,nd);
         BDY(v)[j] = (pointer)l;
       }
       MKNODE(b1,(pointer)v,b);
     b = b1;      b = b1;
   }    }
   MKLIST(l,b);    MKLIST(l,b);

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

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