- ベストアンサー
ライブラリにない関数の定義
誤差関数erfと相補誤差関数erfc がライブラリになく プログラムが組めなくて困っています。 どこかにソースがうpされているとか関数のソースを持っている方とかヘッダファイルを提供してくださる方、お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
「C言語による最新アルゴリズム事典」 (ISBN4-87408-414-1) のpp227-230にigamma.cとしてソースがあります。 サポートページからソースはダウンロードできますが、 この手のアルゴリズム本はプログラマには必須です。 TO 運営スタッフの方 この本に「プログラムは自由にお使いいただいてかまわない」 とあるので、ここに紹介しました。 問題があれば削除してください。
その他の回答 (4)
- jacta
- ベストアンサー率26% (845/3158)
erfもerfcもC99から標準規格に導入された関数です。したがって、C++やC95以前の処理系ではサポートしていなくても仕方ありません。 これらのソースはいくつか公開されていますが、Newlib(http://sources.redhat.com/newlib/)またはMinGW Runtime(http://sourceforge.net/projects/mingw/)のものが手っ取り早いかと思います。 なお、C99ではerfやerfcの複素数版(cerfおよびcerfc)は任意実装ですので、必ずしもサポートされるわけではありません。(つまり、complex.hやtgmath.hを探してもない可能性があります)
- Tacosan
- ベストアンサー率23% (3656/15482)
math.h (C++ なら cmath) で定義されているような気がします.
- Tacosan
- ベストアンサー率23% (3656/15482)
ANSI C に対応している (hosted な) 処理系なら erf とか erfc は持っていないといけないんですけど, どんな処理系 (コンパイラなど) を使われているんでしょうか?
補足
VC6++です。 今日いろいろ調べてみたら complex.hという新標準ヘッダファイルにあるようなのですが、 #include<complex>//.hがいらない のように使うということを知りました、いままで、complex.hでつかっていてエラーが出ていたので、 これで上手くいくことを願います。
- angband
- ベストアンサー率51% (86/168)
MATLABを持ってない場合は、Scilabで代用できると思います。 フランス産ですが、自由に配布、使用できるライセンスで、 日本語の資料もあります。 Scilabには erf(),erfc(),erfcx()も含まれています。 UNIX,Windows,MACで動作します。
補足
math.hでコンパイルするとエラーがでたので、math.hにはありません。 cmathを使う場合 #include<cmath> でよろしいのでしょうか?