[BACK]Return to strobj.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2018 / builtin

Diff for /OpenXM_contrib2/asir2018/builtin/strobj.c between version 1.2 and 1.3

version 1.2, 2018/09/28 08:20:27 version 1.3, 2020/10/06 06:31:19
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/asir2018/builtin/strobj.c,v 1.1 2018/09/19 05:45:06 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2018/builtin/strobj.c,v 1.2 2018/09/28 08:20:27 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 880  void fnode_do_assign(NODE arg)
Line 880  void fnode_do_assign(NODE arg)
 }  }
   
 /*  /*
 /* consistency check and merge   * consistency check and merge
  */   */
   
 int merge_matching_node(NODE n,NODE a,NODE *rp)  int merge_matching_node(NODE n,NODE a,NODE *rp)
Line 1080  int qt_match(Obj f, Obj pat, NODE *rp)
Line 1080  int qt_match(Obj f, Obj pat, NODE *rp)
         return qt_match_node(farg,parg,rp);          return qt_match_node(farg,parg,rp);
     }      }
   }    }
     /* XXX */
     return 0;
 }  }
   
 void Pquotetotex(NODE arg,STRING *rp)  void Pquotetotex(NODE arg,STRING *rp)
Line 1239  NODE arg;
Line 1241  NODE arg;
 LIST *rp;  LIST *rp;
 {  {
   STRING str;    STRING str;
   unsigned char *p;    char *p;
   int len,i;    int len,i;
   NODE n,n1;    NODE n,n1;
   Z q;    Z q;
Line 1677  void fnodetotex_tb(FNODE f,TB tb)
Line 1679  void fnodetotex_tb(FNODE f,TB tb)
           fnodetotex_tb((FNODE)FA1(f),tb);            fnodetotex_tb((FNODE)FA1(f),tb);
           write_tb(")",tb);            write_tb(")",tb);
           return;            return;
           default:
             return;
       }        }
       break;        break;
   
Line 1829  void fnodetotex_tb(FNODE f,TB tb)
Line 1833  void fnodetotex_tb(FNODE f,TB tb)
   
     default:      default:
       error("fnodetotex_tb : not implemented yet");        error("fnodetotex_tb : not implemented yet");
         return;
   }    }
 }  }
   
Line 2583  void Pnbm_hp_rest(NODE arg, LIST *rp)
Line 2588  void Pnbm_hp_rest(NODE arg, LIST *rp)
     MKLIST(*rp,0);      MKLIST(*rp,0);
   else {    else {
     m = (NBM)BDY(BDY(p));      m = (NBM)BDY(BDY(p));
     b = m->b; d = m->d;      b = (int *)m->b; d = m->d;
     if ( !d )      if ( !d )
       MKLIST(*rp,0);        MKLIST(*rp,0);
     else {      else {
Line 2591  void Pnbm_hp_rest(NODE arg, LIST *rp)
Line 2596  void Pnbm_hp_rest(NODE arg, LIST *rp)
       for ( i = 1; i < d; i++ )        for ( i = 1; i < d; i++ )
         if ( NBM_GET(b,i) != v ) break;          if ( NBM_GET(b,i) != v ) break;
       NEWNBM(m1); NEWNBMBDY(m1,i);        NEWNBM(m1); NEWNBMBDY(m1,i);
       b1 = m1->b; m1->d = i; m1->c = (P)ONE;        b1 = (int *)m1->b; m1->d = i; m1->c = (P)ONE;
       if ( v ) for ( j = 0; j < i; j++ ) NBM_SET(b1,j);        if ( v ) for ( j = 0; j < i; j++ ) NBM_SET(b1,j);
       else for ( j = 0; j < i; j++ ) NBM_CLR(b1,j);        else for ( j = 0; j < i; j++ ) NBM_CLR(b1,j);
       MKNODE(n,m1,0); MKNBP(h,n);        MKNODE(n,m1,0); MKNBP(h,n);
   
       d1 = d-i;        d1 = d-i;
       NEWNBM(m1); NEWNBMBDY(m1,d1);        NEWNBM(m1); NEWNBMBDY(m1,d1);
       b1 = m1->b; m1->d = d1; m1->c = (P)ONE;        b1 = (int *)m1->b; m1->d = d1; m1->c = (P)ONE;
       for ( j = 0, k = i; j < d1; j++, k++ )        for ( j = 0, k = i; j < d1; j++, k++ )
         if ( NBM_GET(b,k) ) NBM_SET(b1,j);          if ( NBM_GET(b,k) ) NBM_SET(b1,j);
         else NBM_CLR(b1,j);          else NBM_CLR(b1,j);
Line 2717  NBP fnode_to_nbp(FNODE f)
Line 2722  NBP fnode_to_nbp(FNODE f)
     pwrnbp(CO,u,r,&u1);      pwrnbp(CO,u,r,&u1);
     return u1;      return u1;
   }    }
     /* XXX */
     return 0;
 }  }
   
 void Pnqt_weight(NODE arg,Z *rp)  void Pnqt_weight(NODE arg,Z *rp)
Line 3341  FNODE nfnode_mul_coef(Obj c,FNODE f,int expand)
Line 3348  FNODE nfnode_mul_coef(Obj c,FNODE f,int expand)
         return fnode_node_to_nary(mulfs,mknode(2,cc,b1));          return fnode_node_to_nary(mulfs,mknode(2,cc,b1));
     }      }
   }    }
     /* XXX */
     return 0;
 }  }
   
 void fnode_coef_body(FNODE f,Obj *cp,FNODE *bp)  void fnode_coef_body(FNODE f,Obj *cp,FNODE *bp)
Line 3414  int nfnode_weight(struct wtab *tab,FNODE f)
Line 3423  int nfnode_weight(struct wtab *tab,FNODE f)
       return nfnode_weight(tab,FA1(f))*w;        return nfnode_weight(tab,FA1(f))*w;
     default:      default:
       error("nfnode_weight : not_implemented");        error("nfnode_weight : not_implemented");
         return 0;
   }    }
 }  }
   
Line 3470  int nfnode_comp_lex(FNODE f1,FNODE f2)
Line 3480  int nfnode_comp_lex(FNODE f1,FNODE f2)
   if ( IS_BINARYPWR(f1) || IS_BINARYPWR(f2) ) {    if ( IS_BINARYPWR(f1) || IS_BINARYPWR(f2) ) {
     fnode_base_exp(f1,&b1,&e1);      fnode_base_exp(f1,&b1,&e1);
     fnode_base_exp(f2,&b2,&e2);      fnode_base_exp(f2,&b2,&e2);
     if ( r = nfnode_comp_lex(b1,b2) ) {      if ( ( r = nfnode_comp_lex(b1,b2) ) != 0 ) {
       if ( r > 0 )        if ( r > 0 )
         return nfnode_comp_lex(e1,mkfnode(1,I_FORMULA,NULLP));          return nfnode_comp_lex(e1,mkfnode(1,I_FORMULA,NULLP));
       else if ( r < 0 )        else if ( r < 0 )
Line 3506  int nfnode_comp_lex(FNODE f1,FNODE f2)
Line 3516  int nfnode_comp_lex(FNODE f1,FNODE f2)
             /* compare args */              /* compare args */
             n1 = FA0((FNODE)FA1(f1)); n2 = FA0((FNODE)FA1(f2));              n1 = FA0((FNODE)FA1(f1)); n2 = FA0((FNODE)FA1(f2));
             while ( n1 && n2 )              while ( n1 && n2 )
               if ( r = nfnode_comp_lex(BDY(n1),BDY(n2)) ) return r;                if ( ( r = nfnode_comp_lex(BDY(n1),BDY(n2)) ) != 0 ) return r;
               else {                else {
                 n1 = NEXT(n1); n2 = NEXT(n2);                  n1 = NEXT(n1); n2 = NEXT(n2);
               }                }
Line 3544  int nfnode_comp_lex(FNODE f1,FNODE f2)
Line 3554  int nfnode_comp_lex(FNODE f1,FNODE f2)
             /* compare args */              /* compare args */
             n1 = FA0((FNODE)FA1(f1)); n2 = FA0((FNODE)FA1(f2));              n1 = FA0((FNODE)FA1(f1)); n2 = FA0((FNODE)FA1(f2));
             while ( n1 && n2 )              while ( n1 && n2 )
               if ( r = nfnode_comp_lex(BDY(n1),BDY(n2)) ) return r;                if ( ( r = nfnode_comp_lex(BDY(n1),BDY(n2)) ) != 0 ) return r;
               else {                else {
                 n1 = NEXT(n1); n2 = NEXT(n2);                  n1 = NEXT(n1); n2 = NEXT(n2);
               }                }
Line 3554  int nfnode_comp_lex(FNODE f1,FNODE f2)
Line 3564  int nfnode_comp_lex(FNODE f1,FNODE f2)
   
         default:          default:
           error("nfnode_comp_lex : undefined");            error("nfnode_comp_lex : undefined");
             return 0;
       }        }
       break;        break;
     default:      default:
       error("nfnode_comp_lex : undefined");        error("nfnode_comp_lex : undefined");
         return 0;
   }    }
     return 0;
 }  }
   
 NODE append_node(NODE a1,NODE a2)  NODE append_node(NODE a1,NODE a2)
Line 3661  int nfnode_match(FNODE f,FNODE pat,NODE *rp)
Line 3674  int nfnode_match(FNODE f,FNODE pat,NODE *rp)
   
     default:      default:
       error("nfnode_match : invalid pattern");        error("nfnode_match : invalid pattern");
         return 0;
   }    }
     return 0;
 }  }
   
 /* remove i-th element */  /* remove i-th element */
Line 3684  FNODE fnode_removeith_naryadd(FNODE p,int i)
Line 3699  FNODE fnode_removeith_naryadd(FNODE p,int i)
     NEXT(r) = NEXT(t);      NEXT(r) = NEXT(t);
     return fnode_node_to_nary(addfs,r0);      return fnode_node_to_nary(addfs,r0);
   }    }
     /* XXX */
     return 0;
 }  }
   
 /* a0,...,a(i-1) */  /* a0,...,a(i-1) */
Line 3883  NODE nfnode_pvars(FNODE pat,NODE found)
Line 3899  NODE nfnode_pvars(FNODE pat,NODE found)
   
     default:      default:
       error("nfnode_match : invalid pattern");        error("nfnode_match : invalid pattern");
         return 0;
   }    }
 }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

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