version 1.13, 2019/11/12 12:50:40 |
version 1.14, 2019/11/12 22:27:04 |
|
|
* 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/engine/dist.c,v 1.12 2019/11/12 07:47:45 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2018/engine/dist.c,v 1.13 2019/11/12 12:50:40 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
|
|
Line 2654 int dpm_base_ordtype;; |
|
Line 2654 int dpm_base_ordtype;; |
|
DMMstack push_schreyer_order(LIST data,DMMstack stack) |
DMMstack push_schreyer_order(LIST data,DMMstack stack) |
{ |
{ |
DMMstack t; |
DMMstack t; |
int len,i; |
DP dp; |
|
MP mp; |
|
DMM m0,m1; |
|
DPM dpm0,dpm1; |
|
int len,i,nv; |
NODE in,t1; |
NODE in,t1; |
LIST l; |
LIST l; |
|
|
Line 2666 DMMstack push_schreyer_order(LIST data,DMMstack stack) |
|
Line 2670 DMMstack push_schreyer_order(LIST data,DMMstack stack) |
|
NEWDMMstack(t); |
NEWDMMstack(t); |
t->rank = len; |
t->rank = len; |
t->in = (DMM *)MALLOC((len+1)*sizeof(DMM)); |
t->in = (DMM *)MALLOC((len+1)*sizeof(DMM)); |
|
t->sum = (DMM *)MALLOC((len+1)*sizeof(DMM)); |
if ( stack ) { |
if ( stack ) { |
MKNODE(t1,data,BDY(stack->obj)); MKLIST(l,t1); t->obj = l; |
MKNODE(t1,data,BDY(stack->obj)); MKLIST(l,t1); t->obj = l; |
|
for ( i = 1; i <= len; i++, in = NEXT(in) ) { |
|
m1 = t->in[i] = BDY((DPM)BDY(in)); |
|
NEWMP(mp); mp->dl = m1->dl; mp->c = m1->c; NEXT(mp) = 0; |
|
nv = ((DPM)BDY(in))->nv; |
|
MKDP(nv,mp,dp); dp->sugar = mp->dl->td; |
|
m0 = stack->sum[m1->pos]; MKDPM(nv,m0,dpm0); |
|
mulobjdpm(CO,(Obj)dp,dpm0,&dpm1); |
|
t->sum[i] = BDY(dpm1); |
|
} |
} else { |
} else { |
MKNODE(t1,data,0); MKLIST(l,t1); t->obj = l; |
MKNODE(t1,data,0); MKLIST(l,t1); t->obj = l; |
} |
for ( i = 1; i <= len; i++, in = NEXT(in) ) { |
for ( i = 1; i <= len; i++, in = NEXT(in) ) { |
t->sum[i] = t->in[i] = BDY((DPM)BDY(in)); |
t->in[i] = BDY((DPM)BDY(in)); |
} |
} |
} |
t->next = stack;; |
t->next = stack;; |
dpm_ordtype = 3; |
dpm_ordtype = 3; |