Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ legendre多项式的gsl_sf_legendre_sphPlm_数组()的Boost替代方案_C++_Boost_Gsl_Polynomials - Fatal编程技术网

C++ legendre多项式的gsl_sf_legendre_sphPlm_数组()的Boost替代方案

C++ legendre多项式的gsl_sf_legendre_sphPlm_数组()的Boost替代方案,c++,boost,gsl,polynomials,C++,Boost,Gsl,Polynomials,我的理解是Boost库比GSL快得多。我现在维护一个代码,在计算过程中的某个点调用gsl\u sf\u legendre\u sphPlm\u array来计算legendre多项式。我想知道:有没有一种Boost替代方案可以比原来的GSL更好地执行此功能 勒让德函数很简单,特别是因为它们是通过三项递归实现的。因此,我并不期望boost比GSL更快或更慢,尤其是对于Legendre系列的评估(比如,使用boostLegendre_next);它们都应该编译成大致相同的程序集 使用boost或GS

我的理解是Boost库比GSL快得多。我现在维护一个代码,在计算过程中的某个点调用
gsl\u sf\u legendre\u sphPlm\u array
来计算legendre多项式。我想知道:有没有一种Boost替代方案可以比原来的GSL更好地执行此功能

勒让德函数很简单,特别是因为它们是通过三项递归实现的。因此,我并不期望boost比GSL更快或更慢,尤其是对于Legendre系列的评估(比如,使用boost
Legendre_next
);它们都应该编译成大致相同的程序集

使用boost或GSL的原因几乎完全取决于您的环境


Boost的一个优点是它可以以任意精度使用;成本是你必须编译模板。

我在谷歌上搜索了“boost legendre Polymonent”,这是第一个成功的例子——你试过了吗?如果是的话,它的不足之处是什么?还有——在标准中。你想要系数,这些函数做计算吗?@Yakk AdamNevraumont是的,我读过文档。函数gsl_sf_legendre_sphPlm_array会自动填充矩阵N_l^m(使用0a)。您确定可以通过这种方式提高性能吗?GSL是为了保证结果的可重复性而建立的,我不能对其他库说同样的话。b) 根据手册,此功能被标记为已弃用。你可能应该试试新的,看看这是否适合你。@Yakk AdamNevraumont:标准库不提供从三项循环计算勒让德级数的能力。这是任何人计算勒让德多项式的主要原因。非常感谢。我会继续使用GSL的。@SimoneBolognini:奇怪的是,我看不到任何方法来评估GSL的三期复发;它只填充一个数组。这对我来说有点奇怪。无论如何,如果您确实了解了Boost和GSL的相对性能,那么请告诉我。Boost当前的问题是,文档中没有明确说明多项式的规格化方式。因此,我很难重现GSL的结果。如果我知道如何正确地规范化Boost结果,那么我将进行一些性能测试并让您知道@西蒙内博洛尼尼:它在文档中显示了罗德里格公式。