=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/strobj.c,v retrieving revision 1.83 retrieving revision 1.85 diff -u -p -r1.83 -r1.85 --- OpenXM_contrib2/asir2000/builtin/strobj.c 2005/10/26 10:44:50 1.83 +++ OpenXM_contrib2/asir2000/builtin/strobj.c 2005/10/26 11:07:50 1.85 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/builtin/strobj.c,v 1.82 2005/10/26 08:39:58 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/strobj.c,v 1.84 2005/10/26 10:47:00 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -2488,11 +2488,6 @@ int fnode_normalize_comp(FNODE f1,FNODE f2) FNODE b1,b2,e1,e2,g; Num ee,ee1,c1,c2; - if ( IS_ZERO(f1) ) - if ( IS_ZERO(f2) ) return 0; - else return -1; - else if ( IS_ZERO(f2) ) return 1; - if ( IS_NARYADD(f1) || IS_NARYADD(f2) ) { f1 = to_naryadd(f1); f2 = to_naryadd(f2); n1 = (NODE)FA1(f1); n2 = (NODE)FA1(f2); @@ -2501,9 +2496,7 @@ int fnode_normalize_comp(FNODE f1,FNODE f2) else { n1 = NEXT(n1); n2 = NEXT(n2); } - if ( n1 ) return 1; - else if ( n2 ) return -1; - else return 0; + return n1?1:(n2?-1:0); } if ( IS_NARYMUL(f1) || IS_NARYMUL(f2) ) { fnode_coef_body(f1,&c1,&b1); @@ -2516,9 +2509,7 @@ int fnode_normalize_comp(FNODE f1,FNODE f2) n1 = NEXT(n1); n2 = NEXT(n2); } if ( !n1 || !n2 ) { - if ( n1 ) return 1; - else if ( n2 ) return -1; - else return 0; + return n1?1:(n2?-1:0); } fnode_base_exp(BDY(n1),&b1,&e1); fnode_base_exp(BDY(n2),&b2,&e2); @@ -2533,16 +2524,9 @@ int fnode_normalize_comp(FNODE f1,FNODE f2) if ( fnode_is_number(e1) && fnode_is_number(e2) ) { /* f1 = t b^e1 ... , f2 = t b^e2 ... */ subnum(0,eval(e1),eval(e2),&ee); - r = compnum(0,ee,0); - if ( r > 0 ) { - /* e1>e2 */ + if ( ee ) { g = mkfnode(3,I_BOP,pwrfs,b1,mkfnode(1,I_FORMULA,ee)); MKNODE(n1,g,n1); - } else if ( r < 0 ) { - /* e1