=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2018/builtin/dp-supp.c,v retrieving revision 1.17 retrieving revision 1.19 diff -u -p -r1.17 -r1.19 --- OpenXM_contrib2/asir2018/builtin/dp-supp.c 2020/12/15 07:40:09 1.17 +++ OpenXM_contrib2/asir2018/builtin/dp-supp.c 2022/09/10 05:41:43 1.19 @@ -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.16 2020/12/05 03:27:20 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2018/builtin/dp-supp.c,v 1.18 2022/09/10 04:04:50 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; @@ -865,7 +885,7 @@ void dp_red(DP p0,DP p1,DP p2,DP *head,DP *rest,P *dnp divsz(c2,gn,&c); c2 = c; } } else { - ezgcdpz(CO,(P)c1,(P)c2,&g); + ezgcdp(CO,(P)c1,(P)c2,&g); divsp(CO,(P)c1,g,&a); c1 = (Z)a; divsp(CO,(P)c2,g,&a); c2 = (Z)a; add_denomlist(g); } @@ -908,7 +928,7 @@ void dpm_red(DPM p0,DPM p1,DPM p2,DPM *head,DPM *rest, divsz(c2,gn,&c); c2 = c; } } else { - ezgcdpz(CO,(P)c1,(P)c2,&g); + ezgcdp(CO,(P)c1,(P)c2,&g); divsp(CO,(P)c1,g,&a); c1 = (Z)a; divsp(CO,(P)c2,g,&a); c2 = (Z)a; add_denomlist(g); } @@ -950,7 +970,7 @@ void dpm_red2(DPM p1,DPM p2,DPM *rest,P *dnp,DP *multp divsz(c2,gn,&c); c2 = c; } } else { - ezgcdpz(CO,(P)c1,(P)c2,&g); + ezgcdp(CO,(P)c1,(P)c2,&g); divsp(CO,(P)c1,g,&a); c1 = (Z)a; divsp(CO,(P)c2,g,&a); c2 = (Z)a; add_denomlist(g); } @@ -996,7 +1016,7 @@ void dp_red_marked(DP p0,DP p1,DP p2,DP hp2,DP *head,D divsz(c2,gn,&c); c2 = c; } } else { - ezgcdpz(CO,(P)c1,(P)c2,&g); + ezgcdp(CO,(P)c1,(P)c2,&g); divsp(CO,(P)c1,g,&a); c1 = (Z)a; divsp(CO,(P)c2,g,&a); c2 = (Z)a; } NEWMP(m); m->dl = d; m->c = (Obj)c1; NEXT(m) = 0; MKDP(n,m,s); s->sugar = d->td;