=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/engine/nd.c,v retrieving revision 1.109 retrieving revision 1.111 diff -u -p -r1.109 -r1.111 --- OpenXM_contrib2/asir2000/engine/nd.c 2004/09/21 04:50:15 1.109 +++ OpenXM_contrib2/asir2000/engine/nd.c 2004/09/21 07:19:01 1.111 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.108 2004/09/21 02:43:11 noro Exp $ */ +/* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.110 2004/09/21 05:23:14 noro Exp $ */ #include "nd.h" @@ -2579,7 +2579,7 @@ void removecont_array(Q *c,int n) { struct oVECT v; Q d0,d1,a,u,u1,gcd; - int i; + int i,j; N qn,rn,gn; Q *q,*r; @@ -3857,8 +3857,10 @@ int ndv_reduce_vect_q(Q *svect,int col,IndArray *imat, len = LEN(redv); mr = BDY(redv); igcd_cofactor(svect[k],CQ(mr),&gcd,&cs,&cr); chsgnq(cs,&mcs); - for ( j = 0; j < col; j++ ) { - mulq(svect[j],cr,&c1); svect[j] = c1; + if ( !UNIQ(cr) ) { + for ( j = 0; j < col; j++ ) { + mulq(svect[j],cr,&c1); svect[j] = c1; + } } svect[k] = 0; prev = k; switch ( ivect->width ) {