101.64 Overflow

書式:
    set overflow {float | NaN | undefined}
    unset overflow

gnuplot のこのバージョンは、64 ビット整数演算をサポートします。これは、 2^53 から 2^63 (おおまかには 10^16 から 10^19) の整数評価の方が、IEEE 754 の浮動小数演算を使用する評価よりも精度の高い値を保持することを意味 します。しかし IEEE 浮動小数表現は、精度は犠牲にする代わりに、おおまか には [-10^307 : 10^307] の全範囲をカバーしますが、整数演算は、その結果 が [-2^63 : 2^63] の範囲外になる場合はオーバーフローします。そのオーバ ーフローが起きた場合に何をさせるかはコマンド set overflow により制御 できます。そのオプションは、以下を参照してください。

set overflow は、set overflow float と同じで、結果を整数として返す 代わりに実数値として返します。これがデフォルトです。

コマンド unset overflow は、整数演算のオーバーフローを無視するように します。エラーは出ません。32 ビット整数演算しかできない環境で、5.4 よ り前のバージョンの gnuplot の挙動に近づけたい場合は、これを使用すると いいでしょう。

コマンド reset は、オーバーフロー処理の状態に影響を与えません。

前のバージョンの gnuplot は、32 ビット演算に制限され、整数オーバーフロ ーは無視していました。しかし、組み込み演算の一部は、整数引数を与えても 完全に整数演算を行うとは限らないことに注意してください。これには、指数 演算 N**M や、和の演算 (以下参照: summation (17.5)) などが含まれます。これ らの演算は、現在は整数引数を与えた場合は整数値を返し、それらを内在的に オーバーフローの影響を受けやすくすることで set overflow の状態に支配 されるようにしています。


Subsections
竹野茂治@新潟工科大学
2021-03-26