=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2018/builtin/dp-supp.c,v retrieving revision 1.16 retrieving revision 1.18 diff -u -p -r1.16 -r1.18 --- OpenXM_contrib2/asir2018/builtin/dp-supp.c 2020/12/05 03:27:20 1.16 +++ OpenXM_contrib2/asir2018/builtin/dp-supp.c 2022/09/10 04:04:50 1.18 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2018/builtin/dp-supp.c,v 1.15 2020/10/26 02:41:05 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2018/builtin/dp-supp.c,v 1.17 2020/12/15 07:40:09 noro Exp $ */ #include "ca.h" #include "base.h" @@ -96,6 +96,16 @@ LIST get_denomlist() return l; } +int dp_iszp(DP p) +{ + MP m; + + if ( !p ) return 1; + for ( m = BDY(p); m; m = NEXT(m)) + if ( !INT(m->c) ) return 0; + return 1; +} + void dp_ptozp(DP p,DP *rp) { MP m,mr,mr0; @@ -147,6 +157,16 @@ void dp_ptozp2(DP p0,DP p1,DP *hp,DP *rp) *hp = h; *rp = r; } +int dpm_iszp(DPM p) +{ + DMM m; + + if ( !p ) return 1; + for ( m = BDY(p); m; m = NEXT(m)) + if ( !INT(m->c) ) return 0; + return 1; +} + void dpm_ptozp(DPM p,Z *cont,DPM *rp) { DMM m,mr,mr0; @@ -2762,7 +2782,7 @@ int create_order_spec(VL vl,Obj obj,struct order_spec spec->pot_nelim = 0; break; - case 3: /* [n,[wv,wm],ord] */ + case 3: /* [n,[mlist1,mlist2,...],ord] or [n,[wv,wm],ord] */ spec->module_ordtype = ZTOS((Z)BDY(node)); if ( spec->module_ordtype < 0 ) { spec->pot_nelim = -spec->module_ordtype;