=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/engine/nd.c,v retrieving revision 1.114 retrieving revision 1.116 diff -u -p -r1.114 -r1.116 --- OpenXM_contrib2/asir2000/engine/nd.c 2004/10/25 04:19:50 1.114 +++ OpenXM_contrib2/asir2000/engine/nd.c 2004/12/01 12:36:17 1.116 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.113 2004/10/06 12:09:19 noro Exp $ */ +/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.115 2004/11/18 08:29:11 noro Exp $ */ #include "nd.h" @@ -2622,6 +2622,7 @@ void nd_mul_c(int mod,ND p,int mul) int c,c1; if ( !p ) return; + if ( mul == 1 ) return; if ( mod == -1 ) for ( m = BDY(p); m; m = NEXT(m) ) CM(m) = _mulsf(CM(m),mul); @@ -2637,6 +2638,7 @@ void nd_mul_c_q(ND p,Q mul) Q c; if ( !p ) return; + if ( UNIQ(mul) ) return; for ( m = BDY(p); m; m = NEXT(m) ) { mulq(CQ(m),mul,&c); CQ(m) = c; } @@ -3715,6 +3717,10 @@ void nd_nf_p(P f,LIST g,LIST v,int m,struct order_spec int stat,nvar,max,e; union oNDC dn; + if ( !f ) { + *rp = 0; + return; + } pltovl(v,&vv); for ( nvar = 0, tv = vv; tv; tv = NEXT(tv), nvar++ );