| version 1.83, 2010/09/27 05:05:58 |
version 1.84, 2011/02/18 02:54:48 |
|
|
| * 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/dp.c,v 1.82 2010/05/01 02:17:49 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/dp.c,v 1.83 2010/09/27 05:05:58 noro Exp $ |
| */ |
*/ |
| #include "ca.h" |
#include "ca.h" |
| #include "base.h" |
#include "base.h" |
| Line 107 void Pdp_compute_essential_df(); |
|
| Line 107 void Pdp_compute_essential_df(); |
|
| void Pdp_get_denomlist(); |
void Pdp_get_denomlist(); |
| void Pdp_symb_add(); |
void Pdp_symb_add(); |
| void Pdp_mono_raddec(); |
void Pdp_mono_raddec(); |
| |
void Pdp_mono_reduce(); |
| |
|
| LIST dp_initial_term(); |
LIST dp_initial_term(); |
| LIST dp_order(); |
LIST dp_order(); |
| Line 268 struct ftab dp_supp_tab[] = { |
|
| Line 269 struct ftab dp_supp_tab[] = { |
|
| {"dp_compute_last_t",Pdp_compute_last_t,5}, |
{"dp_compute_last_t",Pdp_compute_last_t,5}, |
| {"dp_compute_essential_df",Pdp_compute_essential_df,2}, |
{"dp_compute_essential_df",Pdp_compute_essential_df,2}, |
| {"dp_mono_raddec",Pdp_mono_raddec,2}, |
{"dp_mono_raddec",Pdp_mono_raddec,2}, |
| |
{"dp_mono_reduce",Pdp_mono_reduce,2}, |
| |
|
| {0,0,0} |
{0,0,0} |
| }; |
}; |
| Line 2691 void Pdp_mono_raddec(NODE arg,LIST *rp) |
|
| Line 2693 void Pdp_mono_raddec(NODE arg,LIST *rp) |
|
| } |
} |
| MKLIST(*rp,r); |
MKLIST(*rp,r); |
| } |
} |
| |
} |
| |
|
| |
void Pdp_mono_reduce(NODE arg,LIST *rp) |
| |
{ |
| |
NODE t,t0,t1,r0,r; |
| |
int i,n; |
| |
DP m; |
| |
DP *a; |
| |
|
| |
t0 = BDY((LIST)ARG0(arg)); |
| |
t1 = BDY((LIST)ARG1(arg)); |
| |
n = length(t0); |
| |
a = (DP *)MALLOC(n*sizeof(DP)); |
| |
for ( i = 0; i < n; i++, t0 = NEXT(t0) ) a[i] = (DP)BDY(t0); |
| |
for ( t = t1; t; t = NEXT(t) ) { |
| |
m = (DP)BDY(t); |
| |
for ( i = 0; i < n; i++ ) |
| |
if ( a[i] && dp_redble(a[i],m) ) a[i] = 0; |
| |
} |
| |
for ( i = n-1, r0 = 0; i >= 0; i-- ) |
| |
if ( a[i] ) { NEXTNODE(r0,r); BDY(r) = a[i]; } |
| |
if ( r0 ) NEXT(r) = 0; |
| |
MKLIST(*rp,r0); |
| } |
} |
| |
|
| LIST remove_zero_from_list(LIST l) |
LIST remove_zero_from_list(LIST l) |