(57)【要約】【課題】浮動小数点数の演算（内積演算、総和演算）において、高精度の結果を算出すること。【解決手段】本発明は、浮動小数点形式で表現された複数の被演算子の入力を受け付ける入力部１０４と、入力部１０４に入力されたデータを記憶する記憶部と、記憶部に記憶された複数の被演算子の加算処理において、各被演算子を整数配列を使用して表現し、整数配列の値どうしを加算し、加算した結果を浮動小数点数形式に変換する演算部と、演算部の演算結果を出力する出力部１０５と、を有することを特徴とする。また、入力部１０４は、内積演算におけるベクトルの乗算結果を被演算子として入力を受け付けることを特徴とする。【選択図】図１
2007257239.tif 000002
【特許請求の範囲】
【請求項１】
浮動小数点形式で表現された複数の被演算子の入力を受け付ける入力部と、
前記入力部に入力されたデータを記憶する記憶部と、
前記記憶部に記憶された前記複数の被演算子の加算処理において、各被演算子を整数配列を使用して表現し、前記整数配列の値どうしを加算し、加算した結果を浮動小数点数形式に変換する演算部と、
前記演算部の演算結果を出力する出力部と、
を有することを特徴とする計算装置。
【請求項２】
前記入力部は、内積演算におけるベクトルの乗算結果を被演算子として入力を受け付けることを特徴とする請求項１に記載の計算装置。
【請求項３】
入力部、記憶部、演算部、および、出力部を有する計算装置による計算方法であって、
前記入力部が、浮動小数点形式で表現された複数の被演算子の入力を受け付ける手順と、
前記記憶部が、前記入力部に入力されたデータを記憶する手順と、
前記演算部が、前記記憶部に記憶された前記複数の被演算子の加算処理において、各被演算子を整数配列を使用して表現し、前記整数配列の値どうしを加算し、加算した結果を浮動小数点数形式に変換する手順と、
前記出力部が、前記演算部の演算結果を出力する手順と、
を実行することを特徴とする計算方法。
【請求項４】
前記入力部は、内積演算におけるベクトルの乗算結果を被演算子として入力を受け付けることを特徴とする請求項３に記載の計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算装置、および、計算方法に関する。
【背景技術】
【０００２】
一般に、コンピュータなどの演算装置において、総和や内積などの演算を行う場合、二進数で表現される数値について、所定の桁の切捨てあるいは切上げを行いながら、演算を実行することになる。
【０００３】
例えば、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）７５４では、単精度および倍精度について浮動小数点形式を規定している。単精度とは、１つの数値を３２ビット（符号部１ビット、指数部８ビット、仮数部２３ビット）で表現するものであり、倍精度とは、１つの数値を６４ビット（符号部１ビット、指数部１１ビット、仮数部５２ビット）で表現するものである。また、倍精度に対する拡張形式（拡張倍精度形式）が演算に用いられる場合もある。
【０００４】
このように、ＩＥＥＥ７５４では浮動小数点形式が規定されているが、これらの規格に準拠している浮動小数点数を用いた総和および内積演算では、丸め、情報落ちおよび桁落ちの誤差が生じ、所要の精度で結果を得ることが不可能となる。ＩＥＥＥ７５４規格の詳細は、非特許文献１に記載されている。
【０００５】
内積演算の精度を改善するものとして、いくつかの装置が提案されている。たとえば、特許文献１では、入力ベクトルｘに対し、全てのベクトル成分からスカラー数βを減じた後、スカラー数をα倍したα（ｘ−βＩ）なる変換を施してから、内積演算を行う装置が開示されている。
【０００６】
また、特許文献２では、複数の入力データに対応するビットスライスに基づいて、ルックアップテーブルから該ビットスライスの数値配列に対応する部分内積を検出して出力し、該部分内積を初期値あるいは中間累積値に対して加算して加算出力値を出力する演算装置が開示されている。
【０００７】
そして、特許文献２の演算装置は、該加算出力値の下位側切捨てビットの数値を保持し、前記加算処理を入力データの桁数分に対応するサイクルを繰り返して得られる最終累算結果の値に最終加算サイクルから所定サイクル前までの前記切捨てビットの数値を付加することにより、演算精度の劣化を改善する。
【特許文献１】特開平１１−９６１４０号公報（段落００１４〜段落００３１、図３）
【特許文献２】特開２０００−１３２５３９号公報（段落００６６〜段落００７３、図１）
【非特許文献１】IEEE，“IEEE Standard for binary Floating−Point Arithmetic”，ANSI／IEEE Standard754−1985. IEEE,New York,1985.Reprinted in SIGPLAN Notices 22（2）,9−25,1987.
【発明の開示】
【発明が解決しようとする課題】
【０００８】
浮動小数点数総和および内積演算を実施する場合、演算に使用される浮動小数点数の値により、演算途中でアンダーフローおよびオーバーフローが発生すること、および、演算順序により、丸め、情報落ちおよび桁落ちの誤差が発生することにより、正確な演算結果が得られない場合があり、常に正確な演算結果が得られる方式を定めることが重要である。
【０００９】
しかしながら、コンピュータなどの演算装置では、演算前にすべてのケースを予測することは不可能で、演算後に得られた結果の信頼性を検証する必要が生じるという問題がある。
【００１０】
例えば、特許文献１、特許文献２のいずれも、ハードウェアによる内積演算の精度改善方式が採用されているが、科学技術計算で使用する計算機種毎に専用ハードウエアを付加する必要がある。特許文献１の方式では、ＩＥＥＥ７５４に準拠している浮動小数点数を表現できないこと、２つの浮動小数点数ベクトル配列の内積和１つを求めるのには、余分なハードウエアが必要という問題がある。
【００１１】
特許文献２では、ハードウェアの設計段階で桁数に制限が設けられるため、ＩＥＥＥ７５４に準拠している任意の浮動小数点を用いた内積演算において、演算途中の乗算結果を、テーブルサーチで行うには非常に多大なメモリが必要で、またオーバーフロー、アンダーフローの結果を扱えないこと、また異なる２つの浮動小数点数ベクトル配列の内積和を得ることができないなどの問題がある。
【００１２】
科学技術計算で多くの分野で出現する総和、内積演算では、これに加え、丸め、情報落ちおよび桁落ちの誤差が少なからず生じることがあり、正確な演算結果が得られず、演算後に得られた結果の信頼性を検証する必要が生じる
【００１３】
そこで、本発明は、前記問題点に鑑みてなされたものであり、浮動小数点数の演算（内積演算、総和演算）において、高精度の結果を算出することを、主な目的とする。
【課題を解決するための手段】
【００１４】
前記課題を解決するために、本発明は、浮動小数点形式で表現された複数の被演算子の入力を受け付ける入力部と、前記入力部に入力されたデータを記憶する記憶部と、前記記憶部に記憶された前記複数の被演算子の加算処理において、各被演算子を整数配列を使用して表現し、前記整数配列の値どうしを加算し、加算した結果を浮動小数点数形式に変換する演算部と、前記演算部の演算結果を出力する出力部と、を有することを特徴とする。その他の手段については、後記する。
【発明の効果】
【００１５】
本発明は、浮動小数点数の被演算子を整数配列に格納し、整数配列の値同士の演算を行う。これにより、浮動小数点総和、内積演算では、丸め、情報落ち、桁落ち、演算オーバーフロー、アンダーフローの影響を受けることがなくなる。よって、浮動小数点数の演算（内積演算、総和演算）において、高精度の結果を算出することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明に係るデータ処理装置（演算装置）について、適宜図面を参照しながら説明する。
【００１７】
まず、図１を参照しながら、データ処理装置の構成について説明する。データ処理装置１は、補助記憶装置１０１、メモリ１０２（記憶部）、処理部としてのＣＰＵ１０３（Central Processing Unit）、入力部１０４、出力部１０５および入出力インターフェイス１０６を備えて構成される。補助記憶装置１０１は、各種情報を記憶するものであり、例えば、ハードディスク、ＲＯＭ（Read Only Memory）などにより実現される。補助記憶装置１０１は、プログラム１１１、コンパイラ１１２および実行モジュール１１３を記憶している。
【００１８】
プログラム１１１は、図２で示すフローチャート上の処理が記述されているプログラム１１１（ソースプログラム）である。コンパイラ１１２は、プログラム１１１をコンパイル・リンクするものである。実行モジュール１１３は、コンパイラ１１２によって、コンパイル・リンクされるモジュールである。
【００１９】
メモリ１０２は、各種情報を記憶する一時記憶手段であり、たとえばＲＡＭ（Random Access Memory）により実現される。ＣＰＵ１０３は、各種演算処理を行うものであり、メモリ１０２、入出力インターフェイス１０６を介して実行モジュール１１３を実行する役割を果たす。入力部１０４は、各種実行コマンドなどを入力する入力装置である。出力部１０５は、各種実行結果などを出力する出力する出力装置である。入出力インターフェイス１０６は、図１に示すように、各構成間の入出力インターフェイスの役割を果たすものである。
【００２０】
データ処理装置１は、次のように動作する。まず、操作者により、入力部１０４から入力されたコンパイルコマンドは、入出力インターフェイス１０６を介して、メモリ１０２にストアされる。メモリ１０２では、補助記憶装置１０１のプログラム１１１が、コンパイラ１１２によってコンパイル・リンクされ、機械語コードである実行モジュール１１３が生成される。
【００２１】
次に、操作者により、入力部１０４から実行コマンドが入力されると、ＣＰＵ１０３がメモリ１０２に実行モジュール１１３をロードする。実行モジュール１１３がメモリ１０２にロードされると、ＣＰＵ１０３によって、各処理がメモリ１０２からＣＰＵ１０３に逐次呼び出され、各処理が実行された後、その実行結果がメモリ１０２にストアされる。メモリ１０２にストアされた実行結果は、ＣＰＵ１０３によって、入出力インターフェイス１０６を介して、出力部１０５に出力される。
【００２２】
続いて、図２を参照しながら、データ処理装置の精度保証処理について説明する（適宜図１参照）。図２は、データ処理装置の全体的な精度保証処理を示したフローチャートである。図２のメイン処理は、図３〜図１０に示すサブルーチンを呼び出す。
【００２３】
以下、総和演算において、被演算子として、加算対象である浮動小数点数、内積演算において、加算対象である２つの浮動小数点数の乗算結果の浮動小数点数をＡ（ｉ）とし、ＩＥＥＥ７５４に準拠した浮動小数点数が符号部１ビット、指数部１５ビット、仮数部ｍビットで表現される場合を例として説明する。０以外の浮動小数点数、および、乗算結果の絶対値は有限の範囲にあるので、整数配列のサイズを大きくとることにより、表現できるので、当該ケースで説明する。
【００２４】
図２は、精度保証処理を示すフローチャートである。ＣＰＵ１０３は、初期処理（Ｓ２０１）、入力処理（Ｓ２０２）、整数変換処理（Ｓ２０３）、整数加算処理（Ｓ２０４）、データ終了判定処理（Ｓ２０５）、整数減算処理（Ｓ２０６）、浮動小数点変換処理（Ｓ２０７）、および、出力処理（Ｓ２０８）を順に実行する。
【００２５】
図３は、図２のＳ２０１の初期処理の詳細を示すフローチャートである。
【００２６】
ＣＰＵ１０３は、整数配列（ＩＡ、ＩＢ、ＩＣ、ＩＷ）およびループ変数（ｉ，Ｎ）を初期化する（Ｓ３０１）。整数配列は、正数用変数ＩＡ、負数用変数ＩＢ、結果を代入するための変数ＩＣ、ワーク用変数ＩＷであり、それぞれ全要素の値を０に初期化する。ループ変数は、ループが１回実行されるごとに１ずつ加算される変数ｉ，ループを実行する回数を規定する変数Ｎであり、変数ｉの値を０に、変数Ｎの値を処理対象の浮動小数点の個数に初期化する。また、変数Ｌは、各整数配列の要素数を示す。
【００２７】
なお、本明細書において、配列要素の表記は、次のようにする。表記「ＩＡ（３：９）」は、配列ＩＡの第３要素から第９要素までの各要素（３，４，５，６，７，８，９）を示す。表記「ＩＡ（３：９）←１０」は、配列ＩＡの第３要素から第９要素までの各要素に、それぞれ値１０を代入する旨を示す。
【００２８】
図４は、図２のＳ２０２の入力処理の詳細を示すフローチャートである。ＣＰＵ１０３は、浮動小数点数Ａ（ｉ）を入力する（Ｓ４０１）。入力部１０４は、操作者から入力された浮動小数点数Ａ（ｉ）をメモリ１０２にロードする。
【００２９】
図５は、図２のＳ２０３の整数変換処理の詳細を示すフローチャートである。
【００３０】
ＣＰＵ１０３は、分岐条件「Ａ（ｉ）≠０．０」を満たすか否か判定し（Ｓ５０１）、満たす場合（Ｓ５０１，Ｙｅｓ）はＳ２０５を実行し、満たさない場合（Ｓ５０１，Ｎｏ）はＳ５０２を実行する。Ｓ５０２では、ＣＰＵ１０３は、Ａ（ｉ）の先頭ビットを変数ｉｓｉｇｎに代入し、Ａ（ｉ）の絶対値をＩＷに代入する。
【００３１】
Ｓ５０２について、具体的には、Ａ（ｉ）の絶対値は、以下の式１で表現する。ここで変数ｊおよびｋは浮動小数点数の指数部の値と仮数部のビット数によって定まる。（１）〜（４）が以下の式１の具体的な計算手順である。なお、演算子「＊＊」について、Ａ＊＊Ｂは、ＡのＢ乗を示す。演算子「＊」について、Ａ＊Ｂは、ＡとＢとの積を示す。
｛ＩＷ（ｊ）＊２＊＊（３０＊（ｊ−１））＋ＩＷ（ｊ−１）＊２＊＊（３０＊（ｊ−２））＋…＋ＩＷ（ｊ−ｋ）＊２＊＊（３０＊＊（ｊ−ｋ−１））｝＊２＊＊（−ｎ）…（式１）
（１）Ａ（ｉ）＞０．０か否かを判定
（２）（１）が真でないとき、ｉｓｉｇｎ←０、後記（４）へ
（３）（１）が真であるとき、ｉｓｉｇｎ←１、Ａ（ｉ）←−Ａ（ｉ）、後記（４）へ
（４）ＩＷ（ｊ−ｋ：ｊ）←Ａ（ｉ）
【００３２】
図６は、図２のＳ２０４の整数加算処理の詳細を示すフローチャートである。
【００３３】
ＣＰＵ１０３は、分岐条件「Ａ（ｉ）が正」を満たすか否か判定し（Ｓ６０１）、満たす場合（Ｓ６０１，Ｙｅｓ）はＳ６０２を実行し、満たさない場合（Ｓ６０１，Ｎｏ）はＳ６０３を実行する。ｉｓｉｇｎの値が０なら、Ａ（ｉ）が正である。
【００３４】
ＣＰＵ１０３は、配列の各要素について、ＩＡにＩＷを加算する（Ｓ６０２）。具体的には、以下の式２を計算する。
ＩＡ（ｊ−ｋ：ｊ）←ＩＡ（ｊ−ｋ：ｊ）＋ＩＷ（ｊ−ｋ：ｊ）…（式２）
【００３５】
ＣＰＵ１０３は、配列の各要素について、ＩＢにＩＷを加算する（Ｓ６０３）。具体的には、以下の式３を計算する。
ＩＢ（ｊ−ｋ：ｊ）←ＩＢ（ｊ−ｋ：ｊ）＋ＩＷ（ｊ−ｋ：ｊ）…（式３）
【００３６】
ＣＰＵ１０３は、ワーク配列ＩＷを０に初期化する（Ｓ６０４）。具体的には、以下の式４を計算する。
ＩＷ（ｊ−ｋ：ｊ）←０…（式４）
【００３７】
図７は、図２のＳ２０５のデータ終了判定処理の詳細を示すフローチャートである。
【００３８】
ＣＰＵ１０３は、分岐条件「浮動小数点数をすべて処理」を満たすか否か判定し（Ｓ７０１）、満たす場合（Ｓ７０１，Ｙｅｓ）はＳ２０６を実行し、満たさない場合（Ｓ７０１，Ｎｏ）はＳ２０２を実行する。なお、ループ変数ｉ＝Ｎなら、浮動小数点数をすべて処理したとする。また、Ｓ７０１がＮｏなら、ループ変数ｉに１を加算する。
【００３９】
図８は、図２のＳ２０６の整数減算処理の詳細を示すフローチャートである。
【００４０】
ＣＰＵ１０３は、分岐条件「ＩＡおよびＩＢが等しい」を満たすか否か判定し（Ｓ８０１）、満たす場合（Ｓ８０１，Ｙｅｓ）はＳ８０２を実行し、満たさない場合（Ｓ８０１，Ｎｏ）はＳ８０３を実行する。具体的には、以下の式５を計算する。
ＩＡ（１：Ｌ）＝ＩＢ（１：Ｌ）…（式５）
【００４１】
ＣＰＵ１０３は、「浮動小数点数Ｔ←０．０」の代入処理を行う（Ｓ８０２）。なお、浮動小数点数Ｔは、演算結果の格納用の変数である。
【００４２】
ＣＰＵ１０３は、分岐条件「ＩＡがＩＢより大きい」を満たすか否か判定し（Ｓ８０３）、満たす場合（Ｓ８０３，Ｙｅｓ）はＳ８０４を実行し、満たさない場合（Ｓ８０３，Ｎｏ）はＳ８０５を実行する。具体的には、以下の式６を計算する。
ＩＡ（１：Ｌ）＞ＩＢ（１：Ｌ）…（式６）
【００４３】
ＣＰＵ１０３は、ｉｓｉｇｎに０を代入し、配列の各要素について、ＩＡからＩＢを引いた値をＩＣに格納する（Ｓ８０４）。具体的には、以下の式７を計算する。記号「；」は２つの式を区切る記号である。
ｉｓｉｇｎ＝０；ＩＣ（１：Ｌ）＝ＩＡ（１：Ｌ）−ＩＢ（１：Ｌ）…（式７）
【００４４】
ＣＰＵ１０３は、ｉｓｉｇｎに１を代入し、配列の各要素について、ＩＢからＩＡを引いた値をＩＣに格納する。する（Ｓ８０５）。具体的には、以下の式８を計算する。
ｉｓｉｇｎ＝１；ＩＣ（１：Ｌ）＝ＩＢ（１：Ｌ）−ＩＡ（１：Ｌ）…（式８）
【００４５】
図９は、図２のＳ２０７の浮動小数点変換処理の詳細を示すフローチャートである。
【００４６】
ＣＰＵ１０３は、整数配列ＩＣの先頭ＩＣ（Ｌ）から、最初に１となる配列要素ｊおよびＩＣ（ｊ）の値のビット長ｐを求める（Ｓ９０１）。具体的には、以下の式９，式１０となる。
ＩＣ（ｊ）＝ａ０２ｐ＋ａ１２（ｐ−１）＋…＋ａｐ２０…（式９）
ＩＣ（ｊ＋１：Ｌ）＝０…（式１０）
【００４７】
ＣＰＵ１０３は、ｊおよびｐを参照して、Ｔの指数部および仮数部に代入する（Ｓ９０２）。
Ｔの指数部←２＊＊（ｐ＋３０＊（ｊ−１）−ｎ）
Ｔの仮数部←ＩＣ（ｊ）のビット位置ｐ−１を起点として、ＩＣ（ｊ−１）、ＩＣ（Ｊ−２）、・・・、ＩＣ（ｊ−ｋ）の順に走査し、ｍビット長のデータを代入
【００４８】
ＣＰＵ１０３は、分岐条件「Ｔの浮動小数点数が正」を満たすか否か判定し（Ｓ９０３）、満たす場合（Ｓ９０３，Ｙｅｓ）はＳ２０８を実行し、満たさない場合（Ｓ９０３，Ｎｏ）はＳ９０４を実行する。なお、ｉｓｉｇｎ＝０なら正の値となる。
【００４９】
ＣＰＵ１０３は、Ｔの先頭ビットを１とする（Ｓ９０４）。
【００５０】
図１０は、図２のＳ２０８の出力処理の詳細を示すフローチャートである。ＣＰＵ１０３は、Ｔを出力する（Ｓ１００１）。
【００５１】
以上説明した図２の各処理を行うことで、内積および総和演算において精度の高い演算結果を得ることができる。また、精度の高い内積および総和演算結果を得ることにより、高精度な浮動小数点演算を必要とする産業（例えば、ニューラルネットワーク、敏感な数値シミュレーションを必要とする物理学分野）に本発明を応用することができる。
【００５２】
続いて、精度の高い内積および総和演算結果を得る具体例について説明する（適宜各図参照）。また、データ処理装置１が各演算で使用する浮動小数点数については、符号部１ビット、指数部１５ビット、仮数部１１２ビットとする。前記条件のもとで、６個の浮動小数点数を、図１１（ａ）のように設定する。図１１（ｂ）は、図１１（ａ）に示すａ（１）〜ａ（６）の具体的な値である。
【００５３】
ここで、本発明を用いない場合の浮動小数点演算で、ａ（１）＋ａ（２）＋ａ（３）＋ａ（４）＋ａ（５）＋ａ（６）を求めると、結果は０となる。ところが、充分長い桁数をもって１０進法での手計算、電卓等で計算すると、図１１（ｃ）のように、ａ（１）＋ａ（２）＋ａ（３）＋ａ（４）＋Ａ（５）＋ａ（６）の結果は−２となる。
【００５４】
以下、本発明で正しい値の−２が得られることを示す。ここでは、整数配列ＩＡ、ＩＢ、ＩＣ、ＩＷのサイズは１２００、ｎ＝１８０００とする。この例では、Ｓ２０２〜Ｓ２０５では整数配列の要素［６０１］〜［６０５］が使用される。浮動小数点数は、ＩＷ（６０５）＊２＊＊１２０＋ＩＷ（６０４）＊２＊＊９０＋ＩＷ（６０３）＊２＊＊６０＋ＩＷ（６０２）＊２＊＊３０＋ＩＷ（６０１）となる（整数配列ＩＡ、ＩＢ、ＩＣも同様）。
【００５５】
ａ（１）からａ（６）まで加算する場合のＩＷ、ＩＡ、ＩＢの値は、図１２のように変化する。また、ａ（１）およびａ（２）は正（ｉｓｉｇｎ＝０）、ａ（３）〜ａ（６）は負（ｉｓｉｇｎ＝１）となる。
【００５６】
処理Ｓ２０６ではＩＡ＜ＩＢよりｉｓｉｇｎ＝１で、ＩＣ＝ＩＢ−ＩＡではＩＣ［６０１］＝２＝２＊＊１となり、ＩＣの他の配列要素はすべて０となる。処理Ｓ２０７では、ＩＣで表される浮動小数点数の２のべき乗数は、１＋３０＊（６０１−１）−１８０００＝１となり、Ｔの指数部１５ビットは、１００ ００００ ００００ ００００となる。ＩＣの他の配列要素はすべて０なのでＴの仮数部はすべて０となる。ｉｓｉｇｎ＝１より、Ｓ９０４でＴの先頭ビットを１とする。
【００５７】
処理Ｓ２０７が終了したとき、Ｔの１２８ビットは先頭から１１００ ００００ ００００ ００００となる。この後０が１１２ビット続くこととなり、これは浮動小数点数−２．０となっている。従って、前提条件では正しい結果の−２が求まる。
【００５８】
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。その他、ハードウェア構成や処理手順などの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【００５９】
【図１】本発明の一実施形態に関するデータ処理装置を示す構成図である。
【図２】本発明の一実施形態に関する精度保証処理を示すフローチャートである。
【図３】本発明の一実施形態に関する図２のＳ２０１の初期処理の詳細を示すフローチャートである。
【図４】本発明の一実施形態に関する図２のＳ２０２の入力処理の詳細を示すフローチャートである。
【図５】本発明の一実施形態に関する図２のＳ２０３の整数変換処理の詳細を示すフローチャートである。
【図６】本発明の一実施形態に関する図２のＳ２０４の整数加算処理の詳細を示すフローチャートである。
【図７】本発明の一実施形態に関する図２のＳ２０５のデータ終了判定処理の詳細を示すフローチャートである。
【図８】本発明の一実施形態に関する図２のＳ２０６の整数減算処理の詳細を示すフローチャートである。
【図９】本発明の一実施形態に関する図２のＳ２０７の浮動小数点変換処理の詳細を示すフローチャートである。
【図１０】本発明の一実施形態に関する図２のＳ２０８の出力処理の詳細を示すフローチャートである。
【図１１】本発明の一実施形態に関する各変数の値を示す説明図である。
【図１２】本発明の一実施形態に関する各変数の値の整数配列への格納を示す説明図である。
【符号の説明】
【００６０】
１０１  補助記憶装置
１０２  メモリ
１０３  ＣＰＵ
１０４  入力部
１０５  出力部
１１１  プログラム
１１２  コンパイラ
１１３  実行モジュール
【図１】
2007257239.tif 000003
【図２】
2007257239.tif 000004
【図３】
2007257239.tif 000005
【図４】
2007257239.tif 000006
【図５】
2007257239.tif 000007
【図６】
2007257239.tif 000008
【図７】
2007257239.tif 000009
【図８】
2007257239.tif 000010
【図９】
2007257239.tif 000011
【図１０】
2007257239.tif 000012
【図１１】
2007257239.tif 000013
【図１２】
2007257239.tif 000014