| version 1.25, 2016/03/31 05:30:32 |
version 1.29, 2018/03/28 05:27:22 |
|
|
| * 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/poly.c,v 1.24 2011/07/21 04:43:26 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/poly.c,v 1.28 2018/03/27 06:29:19 noro Exp $ |
| */ |
*/ |
| #include "ca.h" |
#include "ca.h" |
| #include "parse.h" |
#include "parse.h" |
| Line 148 struct ftab poly_tab[] = { |
|
| Line 148 struct ftab poly_tab[] = { |
|
| {"ch_mv",Pch_mv,2}, |
{"ch_mv",Pch_mv,2}, |
| {"re_mv",Pre_mv,2}, |
{"re_mv",Pre_mv,2}, |
| |
|
| {"ptomp",Pptomp,2}, |
{"ptomp",Pptomp,-2}, |
| {"mptop",Pmptop,1}, |
{"mptop",Pmptop,1}, |
| |
|
| {"ptolmp",Pptolmp,1}, |
{"ptolmp",Pptolmp,1}, |
| Line 457 void Pord(NODE arg,LIST *listp) |
|
| Line 457 void Pord(NODE arg,LIST *listp) |
|
| V *va; |
V *va; |
| V v; |
V v; |
| |
|
| |
#if 0 |
| |
printf("LASTCO="); printv(CO,LASTCO->v); printf("\n"); |
| |
#endif |
| if ( current_option ) { |
if ( current_option ) { |
| for ( opt = current_option; opt; opt = NEXT(opt) ) { |
for ( opt = current_option; opt; opt = NEXT(opt) ) { |
| p = BDY((LIST)BDY(opt)); |
p = BDY((LIST)BDY(opt)); |
| Line 509 void Pord(NODE arg,LIST *listp) |
|
| Line 512 void Pord(NODE arg,LIST *listp) |
|
| if ( vl ) |
if ( vl ) |
| NEXT(tvl) = 0; |
NEXT(tvl) = 0; |
| CO = vl; |
CO = vl; |
| |
update_LASTCO(); |
| } |
} |
| for ( n = 0, vl = CO; vl; vl = NEXT(vl) ) { |
for ( n = 0, vl = CO; vl; vl = NEXT(vl) ) { |
| NEXTNODE(n,tn); MKV(VR(vl),t); BDY(tn) = (pointer)t; |
NEXTNODE(n,tn); MKV(VR(vl),t); BDY(tn) = (pointer)t; |
| Line 826 void Psetmod_ff(NODE arg,Obj *rp) |
|
| Line 830 void Psetmod_ff(NODE arg,Obj *rp) |
|
| if ( ac == 1 ) { |
if ( ac == 1 ) { |
| mod = (Obj)ARG0(arg); |
mod = (Obj)ARG0(arg); |
| if ( !mod ) |
if ( !mod ) |
| error("setmod_ff : invalid argument"); |
current_ff = FF_NOT_SET; |
| switch ( OID(mod) ) { |
else { |
| |
switch ( OID(mod) ) { |
| case O_N: |
case O_N: |
| current_ff = FF_GFP; |
current_ff = FF_GFP; |
| setmod_lm(NM((Q)mod)); |
setmod_lm(NM((Q)mod)); |
| Line 837 void Psetmod_ff(NODE arg,Obj *rp) |
|
| Line 842 void Psetmod_ff(NODE arg,Obj *rp) |
|
| setmod_gf2n((P)mod); break; |
setmod_gf2n((P)mod); break; |
| default: |
default: |
| error("setmod_ff : invalid argument"); |
error("setmod_ff : invalid argument"); |
| } |
} |
| |
} |
| } else if ( ac == 2 ) { |
} else if ( ac == 2 ) { |
| if ( OID(ARG0(arg)) == O_N ) { |
if ( OID(ARG0(arg)) == O_N ) { |
| /* small finite field; primitive root representation */ |
/* small finite field; primitive root representation */ |
| Line 1137 void mergedeglist(NODE d0,NODE d1,NODE *dr) |
|
| Line 1143 void mergedeglist(NODE d0,NODE d1,NODE *dr) |
|
| |
|
| void Pptomp(NODE arg,P *rp) |
void Pptomp(NODE arg,P *rp) |
| { |
{ |
| ptomp(QTOS((Q)ARG1(arg)),(P)ARG0(arg),rp); |
int mod; |
| |
|
| |
if ( argc(arg) == 1 ) { |
| |
if ( !current_mod ) |
| |
error("ptomp : current_mod is not set"); |
| |
else |
| |
mod = current_mod; |
| |
} else |
| |
mod = QTOS((Q)ARG1(arg)); |
| |
ptomp(mod,(P)ARG0(arg),rp); |
| } |
} |
| |
|
| void Pmptop(NODE arg,P *rp) |
void Pmptop(NODE arg,P *rp) |