version 1.30, 2001/09/17 01:18:34 |
version 1.31, 2001/09/17 02:47:07 |
|
|
* 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.29 2001/09/13 03:19:56 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/gr.c,v 1.30 2001/09/17 01:18:34 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
|
|
} |
} |
} |
} |
/* s0 : all the terms appeared in symbolic reduction */ |
/* s0 : all the terms appeared in symbolic reduction */ |
rhtlist = 0; |
|
for ( s = s0, nred = 0; s; s = NEXT(s) ) { |
for ( s = s0, nred = 0; s; s = NEXT(s) ) { |
for ( r = gall; r; r = NEXT(r) ) |
for ( r = gall; r; r = NEXT(r) ) |
if ( _dl_redble(BDY(ps[(int)BDY(r)])->dl,BDY(s),nv) ) |
if ( _dl_redble(BDY(ps[(int)BDY(r)])->dl,BDY(s),nv) ) |
|
|
/* list of [t,f] */ |
/* list of [t,f] */ |
bt1 = mknode(2,BDY(sd)->dl,BDY(r)); |
bt1 = mknode(2,BDY(sd)->dl,BDY(r)); |
MKNODE(bt,bt1,blist); blist = bt; |
MKNODE(bt,bt1,blist); blist = bt; |
MKNODE(bt,BDY(dt),rhtlist); rhtlist = bt; |
|
symb_merge(s,dt,nv); |
symb_merge(s,dt,nv); |
nred++; |
nred++; |
} |
} |
|
|
/* row = the number of all the polys */ |
/* row = the number of all the polys */ |
for ( r = blist, row = 0; r; r = NEXT(r), row++ ); |
for ( r = blist, row = 0; r; r = NEXT(r), row++ ); |
|
|
/* head terms of reducers */ |
|
ht = (DL *)MALLOC(nred*sizeof(DL)); |
|
for ( r = rhtlist, i = 0; i < nred; r = NEXT(r), i++ ) |
|
ht[i] = BDY(r); |
|
|
|
/* col = number of all terms */ |
/* col = number of all terms */ |
for ( s = s0, col = 0; s; s = NEXT(s), col++ ); |
for ( s = s0, col = 0; s; s = NEXT(s), col++ ); |
|
|
|
|
/* XXX */ |
/* XXX */ |
/* reduce_reducers_mod(redmat,nred,col,m); */ |
/* reduce_reducers_mod(redmat,nred,col,m); */ |
/* register the position of the head term */ |
/* register the position of the head term */ |
indred = (int *)MALLOC(nred*sizeof(int)); |
indred = (int *)MALLOC_ATOMIC(nred*sizeof(int)); |
bzero(indred,nred*sizeof(int)); |
bzero(indred,nred*sizeof(int)); |
isred = (int *)MALLOC(col*sizeof(int)); |
isred = (int *)MALLOC_ATOMIC(col*sizeof(int)); |
bzero(isred,col*sizeof(int)); |
bzero(isred,col*sizeof(int)); |
for ( i = 0; i < nred; i++ ) { |
for ( i = 0; i < nred; i++ ) { |
ri = redmat[i]; |
ri = redmat[i]; |
|
|
get_eg(&tmp1); |
get_eg(&tmp1); |
/* spoly matrix; stored in reduced form; terms in ht[] are omitted */ |
/* spoly matrix; stored in reduced form; terms in ht[] are omitted */ |
spmat = (int **)MALLOC(nsp*sizeof(int *)); |
spmat = (int **)MALLOC(nsp*sizeof(int *)); |
w = (int *)MALLOC(col*sizeof(int)); |
w = (int *)MALLOC_ATOMIC(col*sizeof(int)); |
|
|
/* skip reducers in blist */ |
/* skip reducers in blist */ |
for ( i = 0, r = blist; i < nred; r = NEXT(r), i++ ); |
for ( i = 0, r = blist; i < nred; r = NEXT(r), i++ ); |