このコードレビューの回答では:
https://codereview.stackexchange.com/a/59405/11633
次のものが見つかりました(ネストされた引用符が先にあります!):
すばらしい本 Numerical Recipes in C++ を引用させてください (ただし、適用可能です)
多項式を次のように評価しないことを十分に知っていると仮定します。
p=c[0]+c[1]*x+c[2]*x*x+c[3]*x*x*x+c[4]*x*x*x*x;
さらに悪いことに!)、
p=c[0]+c[1]*x+c[2]*pow(x,2.0)+c[3]*pow(x,3.0)+c[4]*pow(x,4.0);
(コンピュータ) 革命が来れば、そのような犯罪行為で有罪とされたすべての人は即座に処刑され、彼らのプログラムは処刑されません!
(あなたのエディションのページは、分析インデックスの「ダジャレ、特に悪い」というエントリの下にあります。私はこの本が大好きです。)
そうしない理由は 2 つあります。精度とパフォーマンスです。多項式を評価する正しい方法は次のようになります。
-t * (0.319381530 + t * (-0.356563782 + t * (1.781477937 + t * (-1.821255978 + 1.330274429 * t))))
推奨されない方法で実装するとパフォーマンスが大幅に低下することがわかりますが、精度が低下することはありません。精度にどのように悪いのですか?
私はその本を見つけましたが、引用された部分のどこにもこの情報はありませんでした.