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

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

Revision 1.2, Thu Jun 7 01:53:33 2018 UTC (5 years, 10 months ago) by takayama
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +16 -6 lines

added monte_miser_integrate and monte_vegas_integrate.

/* $OpenXM: OpenXM/src/ox_gsl/assert2.rr,v 1.2 2018/06/07 01:53:33 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_monte_plain_integrate",quote(1/(3.14^3*(1-cos(x0)*cos(x1)*cos(x2)))),[0.0,0.0,0.0],[3.14,3.14,3.14]); 
//ox_cmo_rpc(Pid,"gsl_monte_plain_integrate",quote(1/(3.14^3*(1-cos(x0)*cos(x1)*cos(x2)))),[0.01,0.01,0.01],[3.14,3.14,3.14]); 
ox_cmo_rpc(Pid,"gsl_monte_plain_integrate",quote(x0*x1*x2),[0,0,0],[3.14,3.14,3.14]); 
Ans=ox_pop_cmo(Pid);
Ans0=[119.8]$
if (dcmp2(Ans[0],Ans0[0],0.1)) myfail("Try1 "); else ;
// Try2
ox_cmo_rpc(Pid,"gsl_monte_vegas_integrate",quote(x0*x1*x2),[0,0,0],[3.14,3.14,3.14],10000);  // 10000 samples.
Ans=ox_pop_cmo(Pid);
Ans0=[119.8]$
if (dcmp2(Ans[0],Ans0[0],0.1)) myfail("Try2 "); else ;
// Try3
ox_cmo_rpc(Pid,"gsl_monte_vegas_integrate",quote(1/(3.14^3*(1-cos(x0)*cos(x1)*cos(x2)))),[0.0,0.0,0.0],[3.14,3.14,3.14],10000); 
Ans=ox_pop_cmo(Pid);
Ans0=[1.3932039296856768591842462603255]$
if (dcmp2(Ans[0],Ans0[0],0.01)) myfail("Try3 "); else ;
end$