version 1.2, 2018/09/28 08:20:27 |
version 1.4, 2020/02/22 06:23:35 |
|
|
* 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/gr.c,v 1.1 2018/09/19 05:45:06 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2018/builtin/gr.c,v 1.3 2020/02/03 05:51:52 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
|
|
int OXCheck = -1; |
int OXCheck = -1; |
int OneZeroHomo = 0; |
int OneZeroHomo = 0; |
int MaxDeg = 0; |
int MaxDeg = 0; |
|
int NaiveSchreyer = 0; |
|
|
int NoSugar = 0; |
int NoSugar = 0; |
static int NoCriB = 0; |
static int NoCriB = 0; |
Line 303 void dp_gr_main(LIST f,LIST v,Num homo,int modular,int |
|
Line 304 void dp_gr_main(LIST f,LIST v,Num homo,int modular,int |
|
int i,mindex,m,nochk; |
int i,mindex,m,nochk; |
struct order_spec *ord1; |
struct order_spec *ord1; |
Z q; |
Z q; |
|
Q cont; |
|
P pp; |
VL fv,vv,vc; |
VL fv,vv,vc; |
NODE fd,fd0,fi,fi0,r,r0,t,subst,x,s,xx; |
NODE fd,fd0,fi,fi0,r,r0,t,subst,x,s,xx; |
NODE ind,ind0; |
NODE ind,ind0; |
Line 316 void dp_gr_main(LIST f,LIST v,Num homo,int modular,int |
|
Line 319 void dp_gr_main(LIST f,LIST v,Num homo,int modular,int |
|
if ( ord->id && NVars != ord->nv ) |
if ( ord->id && NVars != ord->nv ) |
error("dp_gr_main : invalid order specification"); |
error("dp_gr_main : invalid order specification"); |
initd(ord); |
initd(ord); |
|
// clear denominators |
|
for ( r0 = 0, t = BDY(f); t; t = NEXT(t) ) { |
|
ptozp((P)BDY(t),1,&cont,&pp); |
|
NEXTNODE(r0,r); BDY(r) = (pointer)pp; |
|
} |
|
if ( r0 ) NEXT(r) = 0; |
|
MKLIST(f,r0); |
if ( homo ) { |
if ( homo ) { |
homogenize_order(ord,NVars,&ord1); |
homogenize_order(ord,NVars,&ord1); |
for ( fd0 = fi0 = 0, t = BDY(f); t; t = NEXT(t) ) { |
for ( fd0 = fi0 = 0, t = BDY(f); t; t = NEXT(t) ) { |
Line 2333 void dp_set_flag(Obj name,Obj value) |
|
Line 2343 void dp_set_flag(Obj name,Obj value) |
|
OneZeroHomo = v; |
OneZeroHomo = v; |
else if ( !strcmp(n,"MaxDeg") ) |
else if ( !strcmp(n,"MaxDeg") ) |
MaxDeg = v; |
MaxDeg = v; |
|
else if ( !strcmp(n,"NaiveSchreyer") ) |
|
NaiveSchreyer = v; |
} |
} |
|
|
void dp_make_flaglist(LIST *list) |
void dp_make_flaglist(LIST *list) |
Line 2361 void dp_make_flaglist(LIST *list) |
|
Line 2373 void dp_make_flaglist(LIST *list) |
|
STOZ(OXCheck,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"OXCheck"); MKNODE(n1,name,n); n = n1; |
STOZ(OXCheck,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"OXCheck"); MKNODE(n1,name,n); n = n1; |
STOZ(GenTrace,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"GenTrace"); MKNODE(n1,name,n); n = n1; |
STOZ(GenTrace,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"GenTrace"); MKNODE(n1,name,n); n = n1; |
STOZ(GenSyz,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"GenSyz"); MKNODE(n1,name,n); n = n1; |
STOZ(GenSyz,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"GenSyz"); MKNODE(n1,name,n); n = n1; |
|
STOZ(NaiveSchreyer,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"NaiveSchreyer"); MKNODE(n1,name,n); n = n1; |
STOZ(MaxDeg,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"MaxDeg"); MKNODE(n1,name,n); n = n1; |
STOZ(MaxDeg,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"MaxDeg"); MKNODE(n1,name,n); n = n1; |
STOZ(OneZeroHomo,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"OneZeroHomo"); MKNODE(n1,name,n); n = n1; |
STOZ(OneZeroHomo,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"OneZeroHomo"); MKNODE(n1,name,n); n = n1; |
STOZ(PtozpRA,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"PtozpRA"); MKNODE(n1,name,n); n = n1; |
STOZ(PtozpRA,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"PtozpRA"); MKNODE(n1,name,n); n = n1; |