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

Diff for /OpenXM_contrib2/asir2018/builtin/pf.c between version 1.1 and 1.3

version 1.1, 2018/09/19 05:45:06 version 1.3, 2019/11/12 10:53:22
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: OpenXM_contrib2/asir2018/builtin/pf.c,v 1.2 2018/09/28 08:20:27 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "math.h"  #include "math.h"
Line 128  void pf_init() {
Line 128  void pf_init() {
   darg[0] = &oVAR[26];    darg[0] = &oVAR[26];
   darg[1] = &oVAR[27]; MKV(darg[1],y);    darg[1] = &oVAR[27]; MKV(darg[1],y);
   
   #if defined(INTERVAL)
     mkpf("@pi",0,0,0,(int (*)())mp_pi,const_pi,simplify_elemfunc_ins,pi_itv_ft,&pidef);
     mkpf("@e",0,0,0,(int (*)())mp_e,const_e,simplify_elemfunc_ins,e_itv_ft,&edef);
   
     mkpf("factorial",0,1,uarg,(int (*)())mp_factorial,double_factorial,simplify_factorial_ins,0,&factorialdef);
     mkpf("abs",0,1,uarg,(int (*)())mp_abs,fabs,simplify_abs_ins,abs_itv_ft,&absdef);
   
     mkpf("log",0,1,uarg,(int (*)())mp_log,log,simplify_elemfunc_ins,log_itv_ft,&logdef);
     mkpf("exp",0,1,uarg,(int (*)())mp_exp,exp,simplify_elemfunc_ins,exp_itv_ft,&expdef);
     mkpf("pow",0,2,darg,(int (*)())mp_pow,pow,(int (*)())simplify_pow,pow_itv_ft,&powdef);
   
     mkpf("sin",0,1,uarg,(int (*)())mp_sin,sin,simplify_elemfunc_ins,sin_itv_ft,&sindef);
     mkpf("cos",0,1,uarg,(int (*)())mp_cos,cos,simplify_elemfunc_ins,cos_itv_ft,&cosdef);
     mkpf("tan",0,1,uarg,(int (*)())mp_tan,tan,simplify_elemfunc_ins,tan_itv_ft,&tandef);
     mkpf("asin",0,1,uarg,(int (*)())mp_asin,asin,simplify_elemfunc_ins,asin_itv_ft,&asindef);
     mkpf("acos",0,1,uarg,(int (*)())mp_acos,acos,simplify_elemfunc_ins,acos_itv_ft,&acosdef);
     mkpf("atan",0,1,uarg,(int (*)())mp_atan,atan,simplify_elemfunc_ins,atan_itv_ft,&atandef);
   
     mkpf("sinh",0,1,uarg,(int (*)())mp_sinh,sinh,simplify_elemfunc_ins,sinh_itv_ft,&sinhdef);
     mkpf("cosh",0,1,uarg,(int (*)())mp_cosh,cosh,simplify_elemfunc_ins,cosh_itv_ft,&coshdef);
     mkpf("tanh",0,1,uarg,(int (*)())mp_tanh,tanh,simplify_elemfunc_ins,tanh_itv_ft,&tanhdef);
   #if !defined(VISUAL) && !defined(__MINGW32__)
     mkpf("asinh",0,1,uarg,(int (*)())mp_asinh,asinh,simplify_elemfunc_ins,asinh_itv_ft,&asinhdef);
     mkpf("acosh",0,1,uarg,(int (*)())mp_acosh,acosh,simplify_elemfunc_ins,acosh_itv_ft,&acoshdef);
     mkpf("atanh",0,1,uarg,(int (*)())mp_atanh,atanh,simplify_elemfunc_ins,atanh_itv_ft,&atanhdef);
   #endif
   #else
   mkpf("@pi",0,0,0,(int (*)())mp_pi,const_pi,simplify_elemfunc_ins,&pidef);    mkpf("@pi",0,0,0,(int (*)())mp_pi,const_pi,simplify_elemfunc_ins,&pidef);
   mkpf("@e",0,0,0,(int (*)())mp_e,const_e,simplify_elemfunc_ins,&edef);    mkpf("@e",0,0,0,(int (*)())mp_e,const_e,simplify_elemfunc_ins,&edef);
   
Line 153  void pf_init() {
Line 180  void pf_init() {
   mkpf("acosh",0,1,uarg,(int (*)())mp_acosh,acosh,simplify_elemfunc_ins,&acoshdef);    mkpf("acosh",0,1,uarg,(int (*)())mp_acosh,acosh,simplify_elemfunc_ins,&acoshdef);
   mkpf("atanh",0,1,uarg,(int (*)())mp_atanh,atanh,simplify_elemfunc_ins,&atanhdef);    mkpf("atanh",0,1,uarg,(int (*)())mp_atanh,atanh,simplify_elemfunc_ins,&atanhdef);
 #endif  #endif
   #endif
   make_exp();    make_exp();
   make_tri();    make_tri();
   make_itri();    make_itri();
Line 216  void make_itri() {
Line 244  void make_itri() {
   OALLOC(asindef->deriv,1);    OALLOC(asindef->deriv,1);
   args = (Obj *)ALLOCA(2*sizeof(Obj));    args = (Obj *)ALLOCA(2*sizeof(Obj));
   mulp(CO,x,x,&xx); subp(CO,(P)ONE,xx,(P *)&args[0]);    mulp(CO,x,x,&xx); subp(CO,(P)ONE,xx,(P *)&args[0]);
   STOQ(-2,mtwo); divz(ONE,mtwo,(Z *)&args[1]);    STOZ(-2,mtwo); divz(ONE,mtwo,(Z *)&args[1]);
   _mkpfins(powdef,args,&v); MKV(v,t);    _mkpfins(powdef,args,&v); MKV(v,t);
   asindef->deriv[0] = (Obj)t;    asindef->deriv[0] = (Obj)t;
   
Line 257  void make_ihyp() {
Line 285  void make_ihyp() {
   OALLOC(asinhdef->deriv,1);    OALLOC(asinhdef->deriv,1);
   args = (Obj *)ALLOCA(2*sizeof(Obj));    args = (Obj *)ALLOCA(2*sizeof(Obj));
   mulp(CO,x,x,&xx); addp(CO,(P)ONE,xx,(P *)&args[0]);    mulp(CO,x,x,&xx); addp(CO,(P)ONE,xx,(P *)&args[0]);
   STOQ(-2,mtwo); divz(ONE,mtwo,(Z *)&args[1]);    STOZ(-2,mtwo); divz(ONE,mtwo,(Z *)&args[1]);
   _mkpfins(powdef,args,&v); MKV(v,t);    _mkpfins(powdef,args,&v); MKV(v,t);
   asinhdef->deriv[0] = (Obj)t;    asinhdef->deriv[0] = (Obj)t;
   
Line 415  void Pfunargs_ext(NODE arg,LIST *rp)
Line 443  void Pfunargs_ext(NODE arg,LIST *rp)
   
     d0 = a0 = 0;      d0 = a0 = 0;
     for ( i = 0; i < pf->argc; i++ ) {      for ( i = 0; i < pf->argc; i++ ) {
       NEXTNODE(d0,d); STOQ(ad[i].d,q); BDY(d) = (pointer)q;        NEXTNODE(d0,d); STOZ(ad[i].d,q); BDY(d) = (pointer)q;
       NEXTNODE(a0,a); BDY(a) = (pointer)ad[i].arg;        NEXTNODE(a0,a); BDY(a) = (pointer)ad[i].arg;
     }      }
     NEXT(d) = 0; NEXT(a) = 0; MKLIST(alist,a0); MKLIST(dlist,d0);      NEXT(d) = 0; NEXT(a) = 0; MKLIST(alist,a0); MKLIST(dlist,d0);
Line 433  void Pvtype(NODE arg,Z *rp)
Line 461  void Pvtype(NODE arg,Z *rp)
   if ( !p || ID(p) != O_P )    if ( !p || ID(p) != O_P )
     *rp = 0;      *rp = 0;
   else    else
     STOQ((long)VR(p)->attr,*rp);      STOZ((long)VR(p)->attr,*rp);
 }  }
   
 extern NODE user_int_handler,user_quit_handler;  extern NODE user_int_handler,user_quit_handler;
Line 618  void Pmapat(NODE arg,Obj *rp)
Line 646  void Pmapat(NODE arg,Obj *rp)
     error("mapat : invalid function specification");      error("mapat : invalid function specification");
   if ( !INT(ARG1(arg)) )    if ( !INT(ARG1(arg)) )
     error("mapat : invalid position");      error("mapat : invalid position");
   pos = QTOS((Q)ARG1(arg));    pos = ZTOS((Q)ARG1(arg));
   node = NEXT(NEXT(arg));    node = NEXT(NEXT(arg));
   len = length(node);    len = length(node);
   if ( pos >= len )    if ( pos >= len )

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

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