Renesas Synergy™

FAQ 107384 : 標準Cライブラリ関数atan2(y,x)、の引数xにゼロを渡したときに、FPU例外が発生します。

Q: 質問

標準Cライブラリ関数atan2(y,x)、の引数xにゼロを渡したときに、FPU例外が発生します。

 


A: 回答

標準Cライブラリ関数atan2(y,x)の引数xは除数になります。
SuperHファミリ用C/C++コンパイラパッケージの場合、引数xにゼロを渡したとき、ゼロ除算を行います。
ゼロ除算をFPUを用いて実施する場合、予め浮動小数点ステータス/コントロールレジスタ(FPSCR)によって、ゼロ除算を許可しておく必要があります。
FPSCRでゼロ除算を許可せずにゼロ除算を行う場合、FPU例外が発生します。
FPSCRの詳細については各デバイスのハードウェアマニュアルの参照をお願いいたします。

atan2(y,x)以外に以下の標準Cライブラリ関数の第2引数にゼロを渡すと、上記理由でFPU例外が発生する場合があります。

関数名

atan2f(y,x)
fmod(x,y)
fmodf(x,y)

 

適用製品

SuperHファミリ用C/C++コンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください