[BACK]Return to pexpr_body.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / io

Diff for /OpenXM_contrib2/asir2000/io/pexpr_body.c between version 1.1 and 1.14

version 1.1, 2004/03/17 03:22:47 version 1.14, 2013/12/20 02:02:24
Line 1 
Line 1 
 /* $OpenXM$ */  /* $OpenXM: OpenXM_contrib2/asir2000/io/pexpr_body.c,v 1.13 2006/08/27 22:17:28 noro Exp $ */
   
 #define PRINTHAT (fortran_output?PUTS("**"):PUTS("^"))  #define PRINTHAT (fortran_output?PUTS("**"):PUTS("^"))
   
Line 11  void PRINTR();
Line 11  void PRINTR();
 void PRINTLIST();  void PRINTLIST();
 void PRINTVECT();  void PRINTVECT();
 void PRINTMAT();  void PRINTMAT();
   void PRINTIMAT(); /* IMAT */
 void PRINTSTR();  void PRINTSTR();
 void PRINTCOMP();  void PRINTCOMP();
 void PRINTDP();  void PRINTDP();
Line 19  void PRINTGF2MAT();
Line 20  void PRINTGF2MAT();
 void PRINTGFMMAT();  void PRINTGFMMAT();
 void PRINTBYTEARRAY();  void PRINTBYTEARRAY();
 void PRINTQUOTE();  void PRINTQUOTE();
   void PRINTQUOTEARG();
   void PRINTNBP();
 void PRINTERR();  void PRINTERR();
 void PRINTCPLX();  void PRINTCPLX();
 void PRINTLM();  void PRINTLM();
Line 34  void PRINTSF();
Line 37  void PRINTSF();
 void PRINTSYMBOL();  void PRINTSYMBOL();
 void PRINTRANGE();  void PRINTRANGE();
 void PRINTTB();  void PRINTTB();
   void PRINTDPV();
 void PRINTFNODE();  void PRINTFNODE();
 void PRINTBF();  void PRINTBF();
   void PRINTDAlg();
   
 void PRINTEXPR(vl,p)  void PRINTEXPR(vl,p)
 VL vl;  VL vl;
 Obj p;  Obj p;
 {  {
 #if defined(FPRINT)  
         if ( asir_texmacs && !user_print_function ) printf("\2verbatim:");  
 #endif  
         if ( !p ) {          if ( !p ) {
                 PRINTR(vl,(R)p);                  PRINTR(vl,(R)p);
         } else          } else
Line 60  Obj p;
Line 62  Obj p;
                                 PRINTVECT(vl,(VECT)p); break;                                  PRINTVECT(vl,(VECT)p); break;
                         case O_MAT:                          case O_MAT:
                                 PRINTMAT(vl,(MAT)p); break;                                  PRINTMAT(vl,(MAT)p); break;
   /* IMAT */
                           case O_IMAT:
                                   PRINTIMAT(vl,(IMAT)p); break;
   /* IMAT */
                         case O_STR:                          case O_STR:
                                 PRINTSTR((STRING)p); break;                                  PRINTSTR((STRING)p); break;
                         case O_COMP:                          case O_COMP:
Line 82  Obj p;
Line 88  Obj p;
                                 PRINTBYTEARRAY(vl,(BYTEARRAY)p); break;                                  PRINTBYTEARRAY(vl,(BYTEARRAY)p); break;
                         case O_QUOTE:                          case O_QUOTE:
                                 PRINTQUOTE(vl,(QUOTE)p); break;                                  PRINTQUOTE(vl,(QUOTE)p); break;
                           case O_QUOTEARG:
                                   PRINTQUOTEARG(vl,(QUOTEARG)p); break;
                           case O_NBP:
                                   PRINTNBP(vl,(NBP)p); break;
                         case O_SYMBOL:                          case O_SYMBOL:
                                 PRINTSYMBOL((SYMBOL)p); break;                                  PRINTSYMBOL((SYMBOL)p); break;
                         case O_RANGE:                          case O_RANGE:
                                 PRINTRANGE(vl,(RANGE)p); break;                                  PRINTRANGE(vl,(RANGE)p); break;
                         case O_TB:                          case O_TB:
                                 PRINTTB(vl,(TB)p); break;                                  PRINTTB(vl,(TB)p); break;
                           case O_DPV:
                                   PRINTDPV(vl,(DPV)p); break;
                         default:                          default:
                                 break;                                  break;
                 }                  }
 #if defined(FPRINT)  
         if ( asir_texmacs && !user_print_function )  
                 { putchar('\5'); fflush(stdout); }  
 #endif  
 }  }
   
 #if defined(FPRINT)  #if defined(FPRINT)
Line 239  VECT vect;
Line 247  VECT vect;
         }          }
 }  }
   
   void PRINTDPV(vl,d)
   VL vl;
   DPV d;
   {
           int i;
           DP *ptr;
   
           PUTS("modvect(");
           for ( i = 0, ptr = BDY(d); i < d->len; i++ ) {
                   if ( i != 0 ) PUTS(",");
                   PRINTEXPR(vl,(Obj)ptr[i]);
           }
           PUTS(")");
   }
   
 void PRINTMAT(vl,mat)  void PRINTMAT(vl,mat)
 VL vl;  VL vl;
 MAT mat;  MAT mat;
Line 275  MAT mat;
Line 298  MAT mat;
         }          }
 }  }
   
   /* IMAT */
   #if !defined(CPRINT)
   void PRINTIMAT(vl,xmat)
   VL vl;
   IMAT xmat;
   {
           int i,j,c;
           int row, col, cr;
           IMATC Im;
           IENT ent;
   
           row = xmat->row;
           col = xmat->col;
           Im = (pointer)xmat->root;
           if ( xmat->clen == 0 ) {
                   for(j = 0; j< row; j++) {
                           PUTS("( ");
                           for(i = 0; i < col; i++) PUTS("0 ");
                           PUTS(")");
                           if ( j < row - 1 ) PUTS("\n");
                   }
                   return;
           }
           c = -1;
           GetNextIent(&Im, &ent, &c);
           for(j = 0; j < row; j++) {
                   PUTS("( ");
                   for(i = 0; i < col; i++) {
                           cr = j * col + i;
                           if( ent.cr == cr ) {
                                   PRINTEXPR(vl, (pointer)ent.body); PUTS(" ");
                                   GetNextIent(&Im, &ent, &c);
                           } else {
                                   PUTS("0 ");
                           }
                   }
                   PUTS(")");
                   if ( j < row - 1 ) PUTS("\n");
           }
   }
   #endif
   /* IMAT */
   
 void PRINTLIST(vl,list)  void PRINTLIST(vl,list)
 VL vl;  VL vl;
 LIST list;  LIST list;
Line 491  void PRINTFNODE(FNODE f,int paren)
Line 557  void PRINTFNODE(FNODE f,int paren)
                         PUTS(((ARF)FA0(f))->name);                          PUTS(((ARF)FA0(f))->name);
                         PRINTFNODE((FNODE)FA2(f),1);                          PRINTFNODE((FNODE)FA2(f),1);
                         break;                          break;
                   case I_NARYOP:
                           t = (NODE)FA1(f);
                           PRINTFNODE((FNODE)BDY(t),1);
                           for ( t = NEXT(t); t; t = NEXT(t) )     {
                                   PUTS(((ARF)FA0(f))->name);
                                   PRINTFNODE((FNODE)BDY(t),1);
                           }
                           break;
                 case I_COP:                  case I_COP:
                         switch( (cid)FA0(f) ) {                          switch( (cid)FA0(f) ) {
                                 case C_EQ: opname = ("=="); break;                                  case C_EQ: opname = ("=="); break;
Line 542  void PRINTFNODE(FNODE f,int paren)
Line 616  void PRINTFNODE(FNODE f,int paren)
                 /* lists */                  /* lists */
                 case I_LIST: PUTS("["); PRINTFNODENODE((NODE)FA0(f)); PUTS("]"); break;                  case I_LIST: PUTS("["); PRINTFNODENODE((NODE)FA0(f)); PUTS("]"); break;
                 /* function */                  /* function */
                 case I_FUNC:                  case I_FUNC: case I_FUNC_QARG:
                         if ( !strcmp(((FUNC)FA0(f))->name,"@pi") ) PUTS("@pi");                          if ( !strcmp(((FUNC)FA0(f))->name,"@pi") ) PUTS("@pi");
                         else if ( !strcmp(((FUNC)FA0(f))->name,"@e") ) PUTS("@e");                          else if ( !strcmp(((FUNC)FA0(f))->name,"@e") ) PUTS("@e");
                         else {                          else {
Line 579  void PRINTNUM(q)
Line 653  void PRINTNUM(q)
 Num q;  Num q;
 {  {
         char real_format[20];          char real_format[20];
           DAlg d;
           DP nm;
           Q dn;
   
         if ( !q ) {          if ( !q ) {
                 PUTS("0");                  PUTS("0");
Line 800  Num q;
Line 877  Num q;
                 case N_GFSN:                  case N_GFSN:
                         PRINTUM(BDY((GFSN)q));                          PRINTUM(BDY((GFSN)q));
                         break;                          break;
                   case N_DA:
                           d = (DAlg)q;
                           nm = d->nm;
                           dn = d->dn;
                           if ( SGN((Q)dn) == -1 ) PUTS("-");
                           PUTS("(");
                           PRINTDP(CO,((DAlg)q)->nm);
                           PUTS(")");
                           if ( !UNIN(NM(dn)) ) {
                                   PUTS("/");
                                   PRINTN(NM(dn));
                           }
                           break;
                   case N_GZ:
                           mpz_out_str(OUT,10,BDY((GZ)q));
                           break;
                   case N_GQ:
                           mpq_out_str(OUT,10,BDY((GQ)q));
                           break;
         }          }
 }  }
   
Line 980  QUOTE quote;
Line 1076  QUOTE quote;
         }          }
 }  }
   
   void PRINTQUOTEARG(vl,quote)
   VL vl;
   QUOTEARG quote;
   {
           PUTS("<...quoted...>");
   }
   
   void PRINTNBP(VL vl,NBP p)
   {
           NODE t;
           NBM m;
           int d,i;
           unsigned int *b;
           if ( !p ) PUTS("0");
           else {
                   for ( t = BDY(p); t; t = NEXT(t) ) {
                           m = (NBM)BDY(t);
                           PUTS("(");
                           PRINTEXPR(vl,(Obj)m->c);
                           PUTS(")*");
                           d = m->d;
                           b = m->b;
                           if ( d )
                                   for ( i = 0; i < d; i++ ) {
                                           if ( NBM_GET(b,i) ) PUTS("x");
                                           else PUTS("y");
                                   }
                           else PUTS("1");
                           if ( NEXT(t) ) PUTS("+");
                   }
           }
   }
   
 void PRINTTB(VL vl,TB p)  void PRINTTB(VL vl,TB p)
 {  {
         int i;          int i;
   #if defined(SPRINT)
           char *ptr,*e;
   
           for ( i = 0, ptr = buf+strlen(OUT); i < p->next; i++ )
                   for ( e = p->body[i]; *e; *ptr++ = *e++ );
           *ptr = 0;
   #else
         for ( i = 0; i < p->next; i++ ) {          for ( i = 0; i < p->next; i++ ) {
                 PUTS(p->body[i]);                  PUTS(p->body[i]);
         }          }
   #endif
 }  }
   
 void PRINTUP2(p)  void PRINTUP2(p)

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.14

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