📄 vegas.c
字号:
/* Vegas.c Vegas Monte-Carlo integration by Thomas Hahn last modified 2 Mar 06 th*/#include "util.c"#define Print(s) puts(s); fflush(stdout)static Integrand integrand_;/*********************************************************************/static inline void DoSample(number n, creal *x, real *f){ neval_ += n; while( n-- ) { integrand_(&ndim_, x, &ncomp_, f); x += ndim_; f += ncomp_; }}/*********************************************************************/#include "common.c"Extern void EXPORT(Vegas)(ccount ndim, ccount ncomp, Integrand integrand, creal epsrel, creal epsabs, cint flags, cnumber mineval, cnumber maxeval, cnumber nstart, cnumber nincrease, number *pneval, int *pfail, real *integral, real *error, real *prob){ ndim_ = ndim; ncomp_ = ncomp; if( BadComponent(ncomp) || BadDimension(ndim, flags) ) *pfail = -1; else { neval_ = 0; integrand_ = integrand; *pfail = Integrate(epsrel, epsabs, flags, mineval, maxeval, nstart, nincrease, integral, error, prob); *pneval = neval_; }}/*********************************************************************/Extern void EXPORT(vegas)(ccount *pndim, ccount *pncomp, Integrand integrand, creal *pepsrel, creal *pepsabs, cint *pflags, cnumber *pmineval, cnumber *pmaxeval, cnumber *pnstart, cnumber *pnincrease, number *pneval, int *pfail, real *integral, real *error, real *prob){ /* make sure the filename is null-terminated */ if( *EXPORT(vegasstate) ) { char *p; EXPORT(vegasstate)[sizeof(EXPORT(vegasstate)) - 1] = 0; if( (p = strchr(EXPORT(vegasstate), ' ')) ) *p = 0; } EXPORT(Vegas)(*pndim, *pncomp, integrand, *pepsrel, *pepsabs, *pflags, *pmineval, *pmaxeval, *pnstart, *pnincrease, pneval, pfail, integral, error, prob);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -