[[構造化] 関数 > 関数定義](https://ufcpp.net/study/csharp/st_function.html#definition) `double Sin(double x)`が二つありますが微妙にバグっていて、ループの添え字を2から始めるのが正しいです。 出力例に変化はありません。(以前のと同じで何故かバグっていない場合の正しい値になっている) また、 > `// かなり適当に作ってるので、この方法ではそんなに精度はよくない。` > `/// 実装は割りと適当。` というコメントがありますが、これはバグのせいであって直すと (-2π, 2π) の範囲で14桁以上の精度が出るので消してしまっていいと思います。 (`Math.Sin`より少し劣るぐらい。(-2π, 2π)の範囲では`i`が最大でも60程度で`x / fact`がアンダーフローするから実装上の限界まで精度が出ている) ちなみにコメントでいうと[[構造化] 名前空間 > using エイリアス](https://ufcpp.net/study/csharp/sp_namespace.html#alias)のサンプルの、 ``` /// この実装は甘い。 /// 入力できる値は-0.1~0.1程度で、精度も4桁程度。 ``` もバグっていた時の名残なので消してしまって大丈夫です。 関連:#234 #241
Activity
iwkjosec commentedon Dec 6, 2021
このリポジトリのこれもですかね
UfcppSample/Chapters/StructuredProgramming/Function/MyMath.cs
Lines 28 to 39 in 69137b2