为什么是性病的第二个参数:: assoc_laguerre一个unsigned int?

问题描述 投票:5回答:2

在C ++ 17,很多的特殊功能被添加到标准库。一个功能是associated Laguerre polynomials。第二个参数需要unsigned int,但mathematical definition是有效的实数为好。没有任何理由,这只是限于非负整数?它简单地归结于一个事实,即二项式(N,K)是更容易/更快/更简单的计算,当n和k均为正整数?

c++ c++17 c++-standard-library
2个回答
4
投票

沃尔特·布朗E.,C ++中的特殊功能的父亲,从未明确据我所知回答了你的问题拉盖尔。然而,当一个读what Brown did write,一个可能的动机增长明确的:

许多建议的特殊功能有超过的部分或全部复平面的,以及在部分或全部实数的定义。此外,其中的一些功能可以产生复杂的效果,甚至超过实值参数。本提案只考虑实值参数和(相应的)实值结果本身限制。

我们替代的调查使我们认识到,对特殊功能复杂的景观形象与地雷点缀。在来到我们的建议,我们给重的语句从尊敬的同事说:“有几个博士论文将[或可]从努力在复杂的域,实现这组功能造成的。”这导致我们采取有现有技术的不足,在这方面作为标准化的基础地位,而且这种标准化将是因此过早....

当然,你问的实数,而不是复杂的,所以我不能证明道理是一样的,但阿布拉莫维茨和Stegun(根据其说明书布朗的提案主要是基于)以整数阶的一些特殊功能提供了额外的支持。奇怪的是,在我的阿布拉莫维茨和Stegun副本第13章,我看不出有什么额外的支持,让你有一个点,不是吗?或许布朗只是谨慎,不希望推进过多的C ++标准库全部一次,但不会立即在我看来是为什么浮点参数不应该在这种情况下所支持的任何明显的原因。

这并不是说我就冒昧地第二猜测布朗。

正如你可能知道,你也许可以使用阿布拉莫维茨和Stegun的第13章,以获得您想要的效果没有太多的麻烦。或许布朗本人就刚才这个说:你可以得到你想要的效果没有太多的麻烦。可以肯定,人们需要问布朗本人。

有关信息,布朗的提议下,较早的联系,明确提到的C ++来阿布拉莫维茨和Stegun,教派assoc_laguerre。 13.6.9。

总之,当时C ++首次获得特殊功能的支持,小心被重视。图书馆不想提前太远,太快了。它似乎相当有可能在这个因素主要是占你注意缺乏。


3
投票

我知道一个事实,即有超过现实和想象中可执行性了极大的关注。此外,新的库功能,必须合理。特点必须是有用的,不止一个社区。整数阶assoc_laguerre的类型是物理学家最经常使用。有符号整数或实际订单可能认为过于抽象。由于这是,特殊的数学函数勉强把它做成C ++ 17。其实,我觉得,他们得到了在部分原因是人们认为17是一个光释放和乡亲要加强它。

大家都知道,没有理由为序参量是无符号,或为此事甚至不可或缺。我放的libstdc ++(GCC)的底层实现有一个真正的秩序阿尔法。真正为了assoc_laguerre是例如正交的规则非常有用。

我可能会建议做重载真正为了除放宽无符号整数委员会签署。

© www.soinside.com 2019 - 2024. All rights reserved.