3

以前にgccコンパイラを使用してLinuxでコンパイルされたコードを使用しています.MS Visual C ++ 2008でコンパイルすると、math.hに同じ機能、特に(逆)逆双曲線正接atanhが含まれていないようです関数。

std::atanh を使用して math.h、cmath をインクルードしようとしましたが、google/MSDN 検索で他にあまり見つかりませんでした。これを含む、インクルードできる単純なヘッダー ファイルはありますか?

エラー C3861: 'atanh': 識別子が見つかりません

4

2 に答える 2

5

さまざまなバージョンの数学ライブラリに含まれるものと含まれないものを次に示します。

Function  POSIX  old ISO  ISO C99  Microsoft(2008)  
acos      Y      Y        Y        Y     
acosh     Y      N        Y        N    
asin      Y      Y        Y        Y     
asinh     Y      N        Y        N    
atan      Y      Y        Y        Y     
atan2     Y      Y        Y        Y     
atanh     Y      N        Y        N 

次の式を使用して独自の関数を実装できませんか。

    asinh(x) = log(x + sqrt(x2 + 1))
    acosh(x) = log(x + sqrt(x2 - 1))
    atanh(x) = (log(1+x) - log(1-x))/2

例えば

float atanh (float x)
{
   //implements: return (log(1+x) - log(1-x))/2
}
于 2013-03-21T03:56:23.167 に答える
2

thisによると、atanh は C++11 で導入されました。C++11 は 2011 年に導入されたため、おそらく VS 2008 では使用できません。

于 2013-03-21T03:58:23.560 に答える