version 1.19, 2001/06/07 04:54:38 |
version 1.22, 2001/09/05 01:57:32 |
|
|
* 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/builtin/gr.c,v 1.18 2001/01/12 09:03:33 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/gr.c,v 1.21 2001/09/04 08:48:19 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 106 DP_pairs criterion_B(DP_pairs,int); |
|
Line 106 DP_pairs criterion_B(DP_pairs,int); |
|
DP_pairs newpairs(NODE,int); |
DP_pairs newpairs(NODE,int); |
DP_pairs updpairs(DP_pairs,NODE,int); |
DP_pairs updpairs(DP_pairs,NODE,int); |
void _dp_nf(NODE,DP,DP *,int,DP *); |
void _dp_nf(NODE,DP,DP *,int,DP *); |
void _dp_nf_ptozp(NODE,DP,DP *,int,int,DP *); |
void _dp_nf_z(NODE,DP,DP *,int,int,DP *); |
NODE gb_mod(NODE,int); |
NODE gb_mod(NODE,int); |
NODE gbd(NODE,int,NODE,NODE); |
NODE gbd(NODE,int,NODE,NODE); |
NODE gb(NODE,int,NODE); |
NODE gb(NODE,int,NODE); |
Line 135 void pltovl(LIST,VL *); |
|
Line 135 void pltovl(LIST,VL *); |
|
void printdl(DL); |
void printdl(DL); |
int DPPlength(DP_pairs); |
int DPPlength(DP_pairs); |
void dp_gr_mod_main(LIST,LIST,Num,int,struct order_spec *,LIST *); |
void dp_gr_mod_main(LIST,LIST,Num,int,struct order_spec *,LIST *); |
void dp_gr_main(LIST,LIST,Num,int,struct order_spec *,LIST *); |
void dp_gr_main(LIST,LIST,Num,int,int,struct order_spec *,LIST *); |
void dp_f4_main(LIST,LIST,struct order_spec *,LIST *); |
void dp_f4_main(LIST,LIST,struct order_spec *,LIST *); |
void dp_f4_mod_main(LIST,LIST,int,struct order_spec *,LIST *); |
void dp_f4_mod_main(LIST,LIST,int,struct order_spec *,LIST *); |
double get_rtime(); |
double get_rtime(); |
|
|
printf("\n"); |
printf("\n"); |
} |
} |
|
|
void dp_gr_main(f,v,homo,modular,ord,rp) |
void dp_gr_main(f,v,homo,modular,field,ord,rp) |
LIST f,v; |
LIST f,v; |
Num homo; |
Num homo; |
int modular; |
int modular,field; |
struct order_spec *ord; |
struct order_spec *ord; |
LIST *rp; |
LIST *rp; |
{ |
{ |
|
|
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; |
|
|
mindex = 0; nochk = 0; dp_fcoeffs = 0; |
mindex = 0; nochk = 0; dp_fcoeffs = field; |
get_vars((Obj)f,&fv); pltovl(v,&vv); vlminus(fv,vv,&vc); |
get_vars((Obj)f,&fv); pltovl(v,&vv); vlminus(fv,vv,&vc); |
NVars = length((NODE)vv); PCoeffs = vc ? 1 : 0; VC = vc; |
NVars = length((NODE)vv); PCoeffs = vc ? 1 : 0; VC = vc; |
CNVars = homo ? NVars+1 : NVars; |
CNVars = homo ? NVars+1 : NVars; |
|
|
if ( PCoeffs || dp_fcoeffs ) |
if ( PCoeffs || dp_fcoeffs ) |
_dp_nf(gall,h,ps,!Top,&nf); |
_dp_nf(gall,h,ps,!Top,&nf); |
else |
else |
_dp_nf_ptozp(gall,h,ps,!Top,DP_Multiple,&nf); |
_dp_nf_z(gall,h,ps,!Top,DP_Multiple,&nf); |
if ( DP_Print ) |
if ( DP_Print ) |
fprintf(asir_out,"(%.3g)",get_rtime()-t_0); |
fprintf(asir_out,"(%.3g)",get_rtime()-t_0); |
get_eg(&tnf1); add_eg(&eg_nf,&tnf0,&tnf1); |
get_eg(&tnf1); add_eg(&eg_nf,&tnf0,&tnf1); |
|
|
STOQ(Reverse,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Reverse"); MKNODE(n1,name,n); n = n1; |
STOQ(Reverse,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Reverse"); MKNODE(n1,name,n); n = n1; |
STOQ(Stat,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Stat"); MKNODE(n1,name,n); n = n1; |
STOQ(Stat,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Stat"); MKNODE(n1,name,n); n = n1; |
STOQ(DP_Print,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Print"); MKNODE(n1,name,n); n = n1; |
STOQ(DP_Print,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Print"); MKNODE(n1,name,n); n = n1; |
|
STOQ(DP_PrintShort,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"PrintShort"); MKNODE(n1,name,n); n = n1; |
STOQ(DP_NFStat,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"NFStat"); MKNODE(n1,name,n); n = n1; |
STOQ(DP_NFStat,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"NFStat"); MKNODE(n1,name,n); n = n1; |
STOQ(OXCheck,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"OXCheck"); MKNODE(n1,name,n); n = n1; |
STOQ(OXCheck,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"OXCheck"); MKNODE(n1,name,n); n = n1; |
STOQ(GenTrace,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"GenTrace"); MKNODE(n1,name,n); n = n1; |
STOQ(GenTrace,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"GenTrace"); MKNODE(n1,name,n); n = n1; |
|
|
*rp = d; |
*rp = d; |
} |
} |
|
|
void _dp_nf_ptozp(b,g,ps,full,multiple,r) |
void _dp_nf_z(b,g,ps,full,multiple,r) |
NODE b; |
NODE b; |
DP g; |
DP g; |
DP *ps; |
DP *ps; |