Return to assert3.rr CVS log | 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
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$