[BACK]Return to gr CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / lib

Diff for /OpenXM_contrib2/asir2000/lib/gr between version 1.17 and 1.20

version 1.17, 2002/09/03 09:57:51 version 1.20, 2004/07/21 05:12:29
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/lib/gr,v 1.16 2002/09/03 08:12:25 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/lib/gr,v 1.19 2003/10/20 00:58:47 takayama Exp $
 */  */
   
   module gr $
     /* Empty for now.  It will be used in a future. */
   endmodule $
   
 extern INIT_COUNT,ITOR_FAIL$  extern INIT_COUNT,ITOR_FAIL$
 extern REMOTE_MATRIX,REMOTE_NF,REMOTE_VARS$  extern REMOTE_MATRIX,REMOTE_NF,REMOTE_VARS$
   
Line 1077  def gb_comp(A,B)
Line 1082  def gb_comp(A,B)
         LB = length(B);          LB = length(B);
         if ( LA != LB )          if ( LA != LB )
                 return 0;                  return 0;
         A1 = qsort(newvect(LA,A));          A = newvect(LA,A);
         B1 = qsort(newvect(LB,B));          B = newvect(LB,B);
         for ( I = 0; I < LA; I++ )          for ( I = 0; I < LA; I++ )
                   A[I] *= headsgn(A[I]);
           for ( I = 0; I < LB; I++ )
                   B[I] *= headsgn(B[I]);
           A1 = qsort(A);
           B1 = qsort(B);
           for ( I = 0; I < LA; I++ )
                 if ( A1[I] != B1[I] && A1[I] != -B1[I] )                  if ( A1[I] != B1[I] && A1[I] != -B1[I] )
                         break;                          break;
         return I == LA ? 1 : 0;          return I == LA ? 1 : 0;
Line 1574  def check_trace(NF,NFIndex,HL)
Line 1585  def check_trace(NF,NFIndex,HL)
                 return 0;                  return 0;
         } else          } else
                 error("check_trace");                  error("check_trace");
   }
   
   /*
    * Trace = [Input,[[j1,[[c,i,m,d],...]],[j2,[[...],...]],...]]
    * if c != 0
    *   g = 0
    *   g = (c*g + m*gi)/d
    *   ...
    *   finally fj = g
    */
   
   def show_trace(Trace,V)
   {
           Input = Trace[0];
           for ( I = 0, T = Input; T != []; T = cdr(T), I++ ) {
                   print("F"+rtostr(I)+"=",0);
                   print(dp_dtop(car(T),V));
           }
           Trace = cdr(Trace);
           for ( T = Trace; T != []; T = cdr(T) ) {
                   HL = car(T);
                   J = car(HL); HL = HL[1];
                   L = length(HL);
                   print("F"+rtostr(J)+"=",0);
                   for ( I = 0; I < L; I++ ) print("(",0);
                   for ( First = 1, S = HL; S != []; S = cdr(S) ) {
                           H = car(S);
   
                           Coeff = H[0];
                           Index = H[1];
                           Monomial = H[2];
                           Denominator = H[3];
                           if ( First ) {
                                   if ( Monomial != 1 ) {
                                           print("(",0);
                                           print(type(Monomial)==9?dp_dtop(Monomial,V):Monomial,0);
                                           print(")*",0);
                                   }
                                   print("F"+rtostr(Index)+")",0);
                           } else {
                                   if ( Coeff != 1 ) {
                                           print("*(",0); print(Coeff,0); print(")",0);
                                   }
                                   print("+",0);
                                   if ( Monomial != 1 ) {
                                           print("(",0);
                                           print(type(Monomial)==9?dp_dtop(Monomial,V):Monomial,0);
                                           print(")*",0);
                                   }
                                   print("F"+rtostr(Index)+")",0);
                                   if ( Denominator != 1 ) {
                                           print("/",0); print(Denominator,0);
                                   }
                           }
                           if ( First ) First = 0;
                   }
                   print("");
           }
 }  }
   
 /*  /*

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.20

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>