=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/engine/ndbug.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- OpenXM_contrib2/asir2000/engine/ndbug.c 2004/03/15 07:32:20 1.1 +++ OpenXM_contrib2/asir2000/engine/ndbug.c 2004/03/15 08:44:53 1.2 @@ -1,48 +0,0 @@ -#include "nd.h" - -ND nd_add_q(ND p1,ND p2) -{ - int n,c,can; - ND r; - NM m1,m2,mr0,mr,s; - Q t; - - if ( !p1 ) return p2; - else if ( !p2 ) return p1; - else { - can = 0; - for ( n = NV(p1), m1 = BDY(p1), m2 = BDY(p2), mr0 = 0; m1 && m2; ) { - c = DL_COMPARE(DL(m1),DL(m2)); - switch ( c ) { - case 0: - addq(CQ(m1),CQ(m2),&t); - s = m1; m1 = NEXT(m1); - if ( t ) { - can++; NEXTNM2(mr0,mr,s); CQ(mr) = (t); - } else { - can += 2; FREENM(s); - } - s = m2; m2 = NEXT(m2); FREENM(s); - break; - case 1: - s = m1; m1 = NEXT(m1); NEXTNM2(mr0,mr,s); - break; - case -1: - s = m2; m2 = NEXT(m2); NEXTNM2(mr0,mr,s); - break; - } - } - if ( !mr0 ) - if ( m1 ) mr0 = m1; - else if ( m2 ) mr0 = m2; - else return 0; - else if ( m1 ) NEXT(mr) = m1; - else if ( m2 ) NEXT(mr) = m2; - else NEXT(mr) = 0; - BDY(p1) = mr0; - SG(p1) = MAX(SG(p1),SG(p2)); - LEN(p1) = LEN(p1)+LEN(p2)-can; - FREEND(p2); - return p1; - } -}