1.浮動小数点数

ここでは,浮動小数点数の丸めの制御について勉強します。言語としてはCおよびC++を基本的には用います。また,数値計算用の言語の利用もします。商用ソフトウエアについても紹介しますが,基本的には,フリーでopen sourceのソフトウエアを紹介します。

1.1            フリーなコンパイラの上で浮動小数点数の丸めの制御を行うには

現在,最も手にしやすいのは,IntelCPUをもつパソコンでしょう。また,大学には多くのワークステーションも入っています。ここでは,UNIX系のOSWindows98などが動いていることでしょう。

以下にこのようなシステムで浮動小数点数の丸めの制御を行う方法を表にまとめてみました。

丸めの制御方式の表

1.2 プログラム例

丸めの制御を行って,数学的に正しい結論を高速に求めるプログラム例を示そう。

a=(a1,a2,…,an)b=(b1,b2,…,b3)を倍精度浮動小数点数を要素とするn次元ベクトルとする。ベクトルabの内積c=(a,b)の値の下限と上限を計算するプログラムを書いてみよう。

プログラム

問1.          上のプログラムのround.hを実際に自分の環境に適するように作成してプログラムを実行せよ。(解答)

問2.          上のプログラムでは,完全な厳密さという意味では,不完全な所がある。どこか。

1.3 丸めの効果

丸めの指定が結果にどのような影響を与えるかを見る例を与えよう。次のプログラムを実行してみて欲しい。

最初のページに戻る