1
justou 2018-01-17 22:11:52 +08:00 1
github 上有 scipy 源码;
不必重新造轮子, GSL 很好用 https://www.gnu.org/software/gsl/doc/html/integration.html ; C++调 Python 模块太慢, 且受制于 gil, 通常都是用 C/C++来加速 Python |
2
zhouzhou113 OP @justou
尝试调用了 gsl 库 gsl/gsl_integration.h,函数是正弦函数,类似 “ f = pow(x, 4)*sin(a*x + b*pow(x, 2) + c*pow(x, 3) + d*pow(x, 4))” ,因为参数的原因,函数很有可能不收敛,gsl 库会报错如下并终止程序: gsl: ../../integration/qags.c:563: ERROR: integral is divergent, or slowly convergent Default GSL error handler invoked. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. 我的期望是即使函数发散也能返回一个标志不影响程序继续,而不是直接终止报错。想请教一下这种情况可以考虑怎样解决,或者有什么方法可以找到 gsl 的源码自己修改?比较小白,灰常感谢~ |
3
justou 2018-01-19 12:43:45 +08:00 1
调用 gsl_set_error_handler_off()关闭默认的错误处理, 自己处理返回值, 这儿有个例子 https://www.gnu.org/software/gsl/doc/html/err.html#examples, 先仔细研究下文档
gsl 源码 github 上有 |