[BACK]Return to assert3.rr CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_gsl

File: [local] / OpenXM / src / ox_gsl / assert3.rr (download)

Revision 1.1, Fri Jun 8 00:03:43 2018 UTC (5 years, 10 months ago) by takayama
Branch: MAIN
CVS Tags: HEAD

ode solver: Example of y0'=y1,y1'=-4*x^2*y0+y1/x with y0(3.14/2)=1, y1(3.14/2)=0, h=1e-6,  x in [3.14/2,10]
Pid=ox_launch(0,getenv("OpenXM_HOME")+"/src/ox_gsl/ox_gsl");
ox_cmo_rpc(Pid,"gsl_odeiv_step_rk4",[quote(y1),quote(-4*x^2*y0+y1/x)],
   [1.0,0], 3.14/2, 10.0, 1e-6,"rk4");
Ans=ox_pop_cmo(Pid);

/* $OpenXM: OpenXM/src/ox_gsl/assert3.rr,v 1.1 2018/06/08 00:03:43 takayama Exp $ */
#define myfail(s) printf("%a fails, Ans0=%a, Ans=%a\n",s,Ans0,Ans)
#define dcmp2(a,b,e) (deval(abs(1-a/b))>e?1:0)
Pid=ox_launch(0,getenv("OpenXM_HOME")+"/src/ox_gsl/ox_gsl");
// Try 1.
ox_cmo_rpc(Pid,"gsl_odeiv_step_rk4",[quote(y1),quote(-4*x^2*y0+y1/x)],
   [1.0,0], 3.14/2, 10.0, 1e-6,"rk4");
Ans=ox_pop_cmo(Pid);
end$
Ans0=[119.8]$
if (dcmp2(Ans[0],Ans0[0],0.1)) myfail("Try1 "); else ;
end$