version 1.20, 2015/08/04 06:20:44 |
version 1.23, 2018/03/27 06:29:19 |
|
|
* 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/builtin/pf.c,v 1.19 2014/09/19 01:25:59 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/pf.c,v 1.22 2015/08/14 13:51:54 fujimoto Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "math.h" |
#include "math.h" |
Line 120 void pf_init() { |
|
Line 120 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); |
|
|
mkpf("@pi",0,0,0,(int (*)())mp_pi,const_pi,0,&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,0,&edef); |
mkpf("@e",0,0,0,(int (*)())mp_e,const_e,simplify_elemfunc_ins,&edef); |
|
|
mkpf("log",0,1,uarg,(int (*)())mp_log,log,simplify_elemfunc_ins,&logdef); |
mkpf("log",0,1,uarg,(int (*)())mp_log,log,simplify_elemfunc_ins,&logdef); |
mkpf("exp",0,1,uarg,(int (*)())mp_exp,exp,simplify_elemfunc_ins,&expdef); |
mkpf("exp",0,1,uarg,(int (*)())mp_exp,exp,simplify_elemfunc_ins,&expdef); |
Line 137 void pf_init() { |
|
Line 137 void pf_init() { |
|
mkpf("sinh",0,1,uarg,(int (*)())mp_sinh,sinh,simplify_elemfunc_ins,&sinhdef); |
mkpf("sinh",0,1,uarg,(int (*)())mp_sinh,sinh,simplify_elemfunc_ins,&sinhdef); |
mkpf("cosh",0,1,uarg,(int (*)())mp_cosh,cosh,simplify_elemfunc_ins,&coshdef); |
mkpf("cosh",0,1,uarg,(int (*)())mp_cosh,cosh,simplify_elemfunc_ins,&coshdef); |
mkpf("tanh",0,1,uarg,(int (*)())mp_tanh,tanh,simplify_elemfunc_ins,&tanhdef); |
mkpf("tanh",0,1,uarg,(int (*)())mp_tanh,tanh,simplify_elemfunc_ins,&tanhdef); |
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
mkpf("asinh",0,1,uarg,(int (*)())mp_asinh,asinh,simplify_elemfunc_ins,&asinhdef); |
mkpf("asinh",0,1,uarg,(int (*)())mp_asinh,asinh,simplify_elemfunc_ins,&asinhdef); |
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); |
Line 146 void pf_init() { |
|
Line 146 void pf_init() { |
|
make_tri(); |
make_tri(); |
make_itri(); |
make_itri(); |
make_hyp(); |
make_hyp(); |
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
make_ihyp(); |
make_ihyp(); |
#endif |
#endif |
} |
} |
|
|
simplify_ins(ins,r); |
simplify_ins(ins,r); |
} |
} |
|
|
|
extern int evalef; |
|
|
void simplify_pow(ins,rp) |
void simplify_pow(ins,rp) |
PFINS ins; |
PFINS ins; |
Obj *rp; |
Obj *rp; |
|
|
V v; |
V v; |
P t; |
P t; |
|
|
|
if ( evalef ) { |
|
simplify_elemfunc_ins(ins,rp); |
|
return; |
|
} |
pf = ins->pf; ad = ins->ad; a0 = ad[0].arg; a1 = ad[1].arg; |
pf = ins->pf; ad = ins->ad; a0 = ad[0].arg; a1 = ad[1].arg; |
if ( !a1 ) |
if ( !a1 ) |
*rp = (Obj)ONE; |
*rp = (Obj)ONE; |
|
|
else if ( RATN(a1) && SGN((Q)a1) < 0 ) |
else if ( RATN(a1) && SGN((Q)a1) < 0 ) |
error("simplify_pow : division by 0"); |
error("simplify_pow : division by 0"); |
else { |
else { |
instov(ins,&v); MKV(v,t); *rp = (Obj)t; |
instoobj(ins,rp); |
} |
} |
} else if ( NUM(a1) && INT(a1) ) |
} else if ( NUM(a1) && INT(a1) ) |
arf_pwr(CO,a0,a1,rp); |
arf_pwr(CO,a0,a1,rp); |
else { |
else { |
instov(ins,&v); MKV(v,t); *rp = (Obj)t; |
instoobj(ins,rp); |
} |
} |
} |
} |
|
|