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

Diff for /OpenXM_contrib2/asir2018/builtin/dp.c between version 1.29 and 1.30

version 1.29, 2021/02/28 02:33:15 version 1.30, 2021/03/10 06:36:20
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/dp.c,v 1.28 2021/02/18 05:35:01 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2018/builtin/dp.c,v 1.29 2021/02/28 02:33:15 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "base.h"  #include "base.h"
Line 133  void Pdp_rref2(),Psumi_updatepairs(),Psumi_symbolic();
Line 133  void Pdp_rref2(),Psumi_updatepairs(),Psumi_symbolic();
   
 LIST dp_initial_term();  LIST dp_initial_term();
 LIST dp_order();  LIST dp_order();
   int peek_option(NODE opt,char *find,Obj *ret);
 void parse_gr_option(LIST f,NODE opt,LIST *v,Num *homo,  void parse_gr_option(LIST f,NODE opt,LIST *v,Num *homo,
   int *modular,struct order_spec **ord);    int *modular,struct order_spec **ord);
 NODE dp_inv_or_split(NODE gb,DP f,struct order_spec *spec, DP *inv);  NODE dp_inv_or_split(NODE gb,DP f,struct order_spec *spec, DP *inv);
Line 673  void Pdp_monomial_hilbert_poincare(NODE arg,LIST *rp)
Line 674  void Pdp_monomial_hilbert_poincare(NODE arg,LIST *rp)
   DP a;    DP a;
   DL *p;    DL *p;
   P *plist;    P *plist;
   Obj val;    Obj val,ord;
     struct order_spec *current_spec=0,*spec;
   
     if ( current_option ) {
       if ( peek_option(current_option,"ord",&ord) ) {
         current_spec = dp_current_spec;
         create_order_spec(0,ord,&spec);
         initd(spec);
       }
     }
   i_simple = i_all = 0;    i_simple = i_all = 0;
   g = (LIST)ARG0(arg); v = (LIST)ARG1(arg);    g = (LIST)ARG0(arg); v = (LIST)ARG1(arg);
   pltovl(v,&vl);    pltovl(v,&vl);
Line 692  void Pdp_monomial_hilbert_poincare(NODE arg,LIST *rp)
Line 701  void Pdp_monomial_hilbert_poincare(NODE arg,LIST *rp)
   }    }
   plist = mhp_prep(n,&tv);    plist = mhp_prep(n,&tv);
   *rp = dp_monomial_hilbert_poincare(b,x,plist);    *rp = dp_monomial_hilbert_poincare(b,x,plist);
     if ( current_spec )
       initd(current_spec);
 }  }
   
 DL monomial_colon(DL a,DL b,int n)  DL monomial_colon(DL a,DL b,int n)
Line 722  void Pdp_monomial_hilbert_poincare_incremental(NODE ar
Line 733  void Pdp_monomial_hilbert_poincare_incremental(NODE ar
   P hn,hn1,newhn,tv,newhpoly,td,s;    P hn,hn1,newhn,tv,newhpoly,td,s;
   VECT b,x,newhfhead;    VECT b,x,newhfhead;
   P *plist;    P *plist;
     Obj ord;
     struct order_spec *current_spec=0,*spec;
   
     if ( current_option ) {
       if ( peek_option(current_option,"ord",&ord) ) {
         current_spec = dp_current_spec;
         create_order_spec(0,ord,&spec);
         initd(spec);
       }
     }
   g = BDY((LIST)ARG0(arg)); new = BDY((DP)ARG1(arg))->dl;    g = BDY((LIST)ARG0(arg)); new = BDY((DP)ARG1(arg))->dl;
   data = BDY((LIST)ARG2(arg));    data = BDY((LIST)ARG2(arg));
   hn = (P)ARG0(data); n = ZTOS((Z)ARG1(data));    hn = (P)ARG0(data); n = ZTOS((Z)ARG1(data));
Line 747  void Pdp_monomial_hilbert_poincare_incremental(NODE ar
Line 767  void Pdp_monomial_hilbert_poincare_incremental(NODE ar
   nd = mknode(5,newhn,ARG1(data),newhfhead,newhpoly,(VECT)ARG4(data));    nd = mknode(5,newhn,ARG1(data),newhfhead,newhpoly,(VECT)ARG4(data));
   MKLIST(list,nd);    MKLIST(list,nd);
   *rp = list;    *rp = list;
     if ( current_spec )
       initd(current_spec);
 }  }
   
 void Pdp_compute_last_t(NODE arg,LIST *rp)  void Pdp_compute_last_t(NODE arg,LIST *rp)
Line 2826  void parse_gr_option(LIST f,NODE opt,LIST *v,Num *homo
Line 2848  void parse_gr_option(LIST f,NODE opt,LIST *v,Num *homo
   if ( !ord_is_set ) create_order_spec(0,0,ord);    if ( !ord_is_set ) create_order_spec(0,0,ord);
   if ( !modular_is_set ) *modular = 0;    if ( !modular_is_set ) *modular = 0;
   if ( !homo_is_set ) *homo = 0;    if ( !homo_is_set ) *homo = 0;
   }
   
   int peek_option(NODE opt,char *find,Obj *retp)
   {
     NODE t,p;
     char *key;
     Obj value;
   
     for ( t = opt; t; t = NEXT(t) ) {
       p = BDY((LIST)BDY(t));
       key = BDY((STRING)BDY(p));
       value = (Obj)BDY(NEXT(p));
       if ( !strcmp(key,find) ) {
         *retp = value;
         return 1;
       }
     }
     return 0;
 }  }
   
 void Pdp_gr_main(NODE arg,LIST *rp)  void Pdp_gr_main(NODE arg,LIST *rp)

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30

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