(57)【特許請求の範囲】
【請求項１】
それぞれ符号、小数、および指数ビットフィールドからなる第１および第２のエンドポイントによって規定される第１のモーダル区間に応じた第１の結果モーダル区間を計算するための装置であって、
ａ）前記第１のモーダル区間の前記第１および第２のエンドポイントを保持し、前記第１のモーダル区間の各エンドポイントのフィールドのコンテンツを特定する第１のオペランド信号を提供するための第１のオペランドレジスタと、
ｂ）前記第１のオペランド信号を受信し、前記第１のエンドポイントに対する第１の真理値表および前記第２のエンドポイントに対する第２の真理値表を生成する第１の解析要素であって、各真理値表は、個々のエンドポイントの符号を示す符号ビット（Ｓ）、個々のエンドポイントが非数かどうかを示す非数ビット（Ｎ）、個々のエンドポイントが無限大かどうかを示す無限大ビット（Ｉ）、個々のエンドポイントがゼロかどうかを示すゼロビット（Ｚ）を含む、前記第１の解析要素と、
ｃ）前記第１および第２の真理値表から分類を決定する第１の論理アレイであって、前記分類は、空ビット（Ｅ）および任意選択的な追跡装飾（Ｔ）を含み、
前記第１および第２の真理値表が前記第１および第２のエンドポイントが同じ符号および無限大の値を有することを示す場合、前記空ビットが１であり、前記追跡装飾は空の制約または非空の制約を示し、
前記第１および第２の真理値表が前記第１および第２のエンドポイントのうちの一つが非数であることを示す場合、前記空ビットが１であり、前記追跡装飾は非数のエンドポイントからの非数装飾フィールドであり、
前記第１および第２の真理値表が前記第１および第２のエンドポイントの両方が非数であることを示す場合、前記空ビットが１であり、前記追跡装飾は空の入力の制約を示し、
上記以外の場合には、空ビットが０であり、前記追跡装飾は使用されない、前記第１の論理アレイと、
ｄ）前記第１のオペランド信号および前記第１の空ビット値信号を受信する第１の計算要素であって、前記第１のオペランド信号および前記第１の空ビット値信号で符号化されたデータを用いて前記第１の計算要素に関連付けられた計算を実行し、前記第１の計算要素による計算の結果として前記第１の結果モーダル区間を符号化する結果信号を提供する前記第１の計算要素と、
を備える装置。
【請求項２】
前記第１の解析要素が、前記第１および第２のエンドポイントの各々における予め選択された指数フィールドビット構成と、前記第１および第２のエンドポイントの各々における予め選択された小数フィールド構成とに基づいて前記第１および第２の真理値表を生成する、請求項１に記載の装置。
【請求項３】
前記装置は、前記第１のモーダル区間と、前記第１のモーダル区間と同じ構造を有し、かつ第３のエンドポイントおよび第４のエンドポイントを有する第２のモーダル区間とに基づいて、第２の結果モーダル区間を計算するように構成されており、
ａ）前記第２のモーダル区間の前記第３のエンドポイントおよび前記第４のエンドポイントを保持し、前記第２のモーダル区間の各エンドポイントのフィールドのコンテンツを特定する第２のオペランド信号を提供するための第２のオペランドレジスタと、
ｂ）前記第２のオペランド信号を受信し、前記第３のエンドポイントに対する第３の真理値表および前記第４のエンドポイントに対する第４の真理値表を生成する第２の解析要素と、
ｃ）前記第３の真理値表および前記第４の真理値表から分類を決定する第２の論理アレイであって、前記分類は、空ビット（Ｅ）および任意選択的な追跡装飾（Ｔ）を含み、
前記第３および第４の真理値表が前記第３および第４のエンドポイントが同じ符号および無限大の値を有することを示す場合、前記空ビットが１であり、前記追跡装飾は空の制約または非空の制約を示し、
前記第３および第４の真理値表が前記第３および第４のエンドポイントのうちの一つが非数であることを示す場合、前記空ビットが１であり、前記追跡装飾は非数のエンドポイントからの非数装飾フィールドであり、
前記第３および第４の真理値表が前記第３および第４のエンドポイントの両方が非数であることを示す場合、前記空ビットが１であり、前記追跡装飾は空の入力の制約を示し、
上記以外の場合には、空ビットが０であり、前記追跡装飾は使用されない、前記第２の論理アレイと、
ｄ）前記分類を受信して、第１および第２のマルチプレクサ制御信号を生成する第３の論理アレイと、
ｅ）制御端子を各々有し、前記第１および第２のマルチプレクサ制御信号を前記制御端子においてそれぞれ受信する少なくとも第１および第２のマルチプレクサであって、各マルチプレクサは第１および第２のデータ端子をさらに有し、各々のマルチプレクサ制御信号によって選択された前記第１および第２のデータ端子のうちの一方に存在するデータを入力してマルチプレクサ出力信号をそのマルチプレクサの出力端子に生成し、当該選択されたデータ端子に存在するビット値を符号化する、前記少なくとも第１および第２のマルチプレクサと、
ｆ）前記第１および第２のエンドポイントの小数フィールド内の選択ビットのコンテンツを、前記第１のマルチプレクサの第１および第２のデータ端子へそれぞれ提供する接続と、
ｇ）前記第３および第４のエンドポイントの小数フィールド内の選択ビットのコンテンツを、前記第２のマルチプレクサの第１および第２のデータ端子へそれぞれ提供する他の接続と、
ｈ）前記第１および第２のオペランド信号と、前記第１および第２の空ビット値信号と、前記第１および第２のマルチプレクサから出力される第１および第２のマルチプレクサ出力信号を受信する第２の計算要素であって、前記第１および第２のオペランド信号と、前記第１および第２の空ビット値信号と、前記第１および第２のマルチプレクサ出力信号で符号化されたデータを用いて前記第２の計算要素に関連付けられた計算を実行し、前記第２の計算要素による計算の結果として前記第２の結果モーダル区間を符号化する第２の結果信号を提供する前記第２の計算要素と、
を備える請求項１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、モーダル区間を計算する装置に関する。
【背景技術】
【０００２】
コンピュータ演算はコンピュータにおいて数学的演算を実行する方法である。元来、１９４５年にジョン・フォン・ノイマン（John von Neumann）によって提案された演算論理ユニット（ＡＬＵ）は整数演算および論理演算を実行するディジタル回路である。ＡＬＵは、コンピュータの中央処理装置の基本的なビルディングブロックである。データは、ＡＬＵへの入力として提供され、外部コントロールユニットはそのデータ上でＡＬＵにどの演算を実行すべきかを伝え、その後、ＡＬＵは入力されたデータを出力に変換する。入力データはオペランドと呼ばれ、ＡＬＵの出力は結果と呼ばれる。ＡＬＵが実行可能な各演算はオペランドの同じ集合に対して異なる結果を生成する。
【０００３】
現代のコンピュータにおいて、通常、整数オペランドは、２の補数または二進化十進数などの周知の形式を用いてディジタル信号に符号化される。ＡＬＵは、非整数形式で計算することができるが、通常、これらの種類のＡＬＵにはより具体的な名前が与えられる。例えば、浮動小数点オペランドに対して演算を実行するＡＬＵは、通常、浮動小数点ユニット（ＦＰＵ）と呼ばれる。参照することによって本明細書に組み込まれている「Modal Interval Processor」と題された本出願人の特許文献１において、モーダル区間オペランドを入力として取り、セレクタ信号によって指定されたモーダル区間演算を実行する。モーダル区間結果を生成するＡＬＵは、モーダル区間処理ユニット（ＭＩＰＵ）と呼ばれる。
【０００４】
特定の種類のＡＬＵが計算することができる形式にかかわらず、数多くのＡＬＵ設計では、条件コードの集合を入力として取るかまたは出力として生成することが一般的である。これらのコードはキャリーイン、キャリーアウト、ゼロ、偶奇性などの例を示すために用いられる。しかしながら、これらのコードのための別の共通の用途は、例外的な条件の有無を示すことである。
【０００５】
例外は、演算がオペランドの特定の集合に対して実行されるときにＡＬＵにおいて発生しうる特定の状態である。たとえば、参照することで本明細書中に組み込まれている非特許文献１は、無効演算、ゼロ除算、オーバーフロー、アンダーフロー、および不正確として知られている５個の例外を定義している。標準規格に準拠した演算がこれら５個の例外条件の一つによって特徴づけられた状態に達した場合、ユーザに例外的条件を検索させるいくつかのメカニズムが特定される。標準規格によって特定される一つのメカニズムは、指定された例外フラグの設定を要求することである。別のメカニズムは、演算に、結果値がＮａＮ（非数）として知られている特定の非数値を符号化することを要求する。前者の場合、ユーザは、指定された例外フラグが設定されたかをチェックすることによって、演算中に例外が発生したかどうかを判断することができる。後者の場合、ユーザは、演算結果がＮａＮであるかをチェックすることによって、例外が発生したかどうかを判断することができる。
【０００６】
同様に、参照することによって本明細書中に組み込まれている「Reliable and Efficient Computation of Modal Interval Arithmetic Operations」と題された本出願人の特許文献２は、様々なモーダル区間算術演算においていくつかの例外的な条件が検出されるのを可能にするディジタル回路の集合を開示している。例外が検索された場合、非特許文献１において特定されたものに同様の方法によりユーザに例外が発生したかどうかを判断させる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第７，９４９，７００号明細書
【特許文献２】米国特許第８，２０４，９２６号明細書
【非特許文献】
【０００８】
【非特許文献１】浮動小数点演算に関するＩＥＥＥ標準規格（IEEE Standard for Floating Point Arithmetic）（ＩＥＥＥ標準規格７５４−２００８号、２００８年８月２９日、第１〜５８頁）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、（所謂「クラシック」区間演算に限定されないが、本出願人の上記特許文献において実現され記載されている特徴を含む）モーダル区間算術演算における例外を検出する改良されたシステムおよび方法に関する。「Decorations as State Machine」と題された出願人の文書（white paper）に示されているように、従来技術における区間演算における例外条件を検出する方法は、ユーザにいくつかの種類の例外を検出させるいくつかの重要な特性を欠いているか、または、直前の演算で発生したであろう例外に関する情報を見失う可能性を有している。最悪の場合、一部の従来技術の方法は、いくつかの状況下で、実際に、誤解を招くような情報を提供し、全く不正確でさえあった。よって、これらの従来技術の方法の限界を克服する区間演算における例外的条件を検出するための新規で改良されたシステムおよび方法に対するニーズがある。
【課題を解決するための手段】
【００１０】
装置は、それぞれ符号、小数、および指数ビットフィールドからなる第１および第２のエンドポイントによって規定される第１のモーダル区間に応じた第１の結果モーダル区間を計算する。
【００１１】
概して、装置は、第１および第２のエンドポイントを保持し、第１のモーダル区間の各エンドポイントのフィールドのコンテンツを特定する第１のオペランド信号を提供するための第１のオペランドレジスタを含む。
【００１２】
また、装置は、第１のオペランド信号を受信し、第１のオペランド信号に応じた第１および第２の真理値表を生成し、第１および第２の真理値表を第１の真理値表信号で符号化する第１の解析要素を含む。
【００１３】
更に、装置は、第１のオペランド信号および第１の真理値表信号を受信する第１の論理アレイを含む。第１の論理アレイは、第１および第２のエンドポイントの符号、小数、および指数のフィールドコンテンツに応じた第１の「空」ビット値信号を提供する。
【００１４】
また、主な態様において、装置は、第１のオペランド信号および第１の「空」ビット値信号を受信する第１の計算要素も含む。第１の計算要素は、第１のオペランド信号および第１の「空」ビット値信号で符号化されたデータを用いて第１の計算要素に関連付けられた計算を実行する。この計算の結果は、第１の計算要素によって計算の結果値を符号化する第１の結果信号において提供される。このような計算は、逆数、超越計算、平方、平方根などを含む。
【００１５】
本発明の他の態様では、第１の解析要素は、第１および第２のエンドポイントの各々における予め選択された指数フィールドビット構成と、第１および第２のエンドポイントの各々における予め選択された小数フィールド構成とに基づいて第１および第２の真理値表を生成する。
【００１６】
本発明の主な態様は、第１のモーダル区間と、該第１のモーダル区間と同じ構造を有する第２のモーダル区間とに基づいて、第２の結果モーダル区間を計算するように構成されている。この態様は、乗算、除算、加算、および減算などの２つのオペランドを含むモーダル区間計算に適している。
【００１７】
このような態様は、第２のモーダル区間を保持し、該第２のモーダル区間のエンドポイントのフィールドのコンテンツを特定する第２のオペランド信号を提供するための第２のオペランドレジスタを含む。
【００１８】
この態様は、第２のオペランド信号を受信し、第２のオペランド信号に応じた第３および第４の真理値表を生成し、第３および第４の真理値表を第２の真理値表信号で符号化する第２の解析要素を含む。
【００１９】
この態様は、第２のオペランド信号と第２の真理値表信号とを受信し、第３および第４のエンドポイントの符号、指数、および小数値に基づいて第２の「空」ビット値信号を提供する第２の論理アレイも有している。また、第３の論理アレイは、第１および第２の真理値表信号を受信し、第１および第２の真理値表信号に基づいて第１および第２のマルチプレクサ制御信号を生成する。
【００２０】
この態様は、制御端子と第１および第２の入力端子とを各々有し、第１および第２のマルチプレクサ制御信号を制御端子においてそれぞれ受信する少なくとも第１および第２のマルチプレクサも含む。各マルチプレクサは第１および第２のデータ端子を有し、マルチプレクサ制御信号によって選択された第１および第２のデータ端子のうちの一方に存在するデータを入力してマルチプレクサ出力信号をそのマルチプレクサの出力端子に生成し、この信号により、当該選択された入力端子に存在するビット値を符号化する。
【００２１】
接続は、第１および第２のエンドポイントの小数フィールド内の選択ビットの値を、第１のマルチプレクサの第１および第２のデータ端子へそれぞれ提供する。
他の接続は、第３および第４のエンドポイントの小数フィールド内の選択ビットの値を、第２のマルチプレクサの第１および第２のデータ端子へそれぞれ提供する。
【００２２】
この態様における第２の計算要素は、第１および第２のオペランド信号と、第１および第２の「空」ビット値信号と、第１および第２のマルチプレクサから出力される第１および第２のマルチプレクサ出力信号とを受信する。第２の計算要素は、第１および第２のオペランド信号と、「空」ビット値信号と、第１および第２のマルチプレクサ出力信号で符号化されたデータを用いて第２の計算要素に関連付けられた計算を実行する。第２の計算要素は、第２の計算要素による計算の結果として第２の結果モーダル区間を符号化する第２の結果信号を提供する。
【００２３】
装置は、ＥＩＮ信号とＧＡＰ信号の少なくとも一方を処理するように更に構成されている。このような装置は、第１および第２のマルチプレクサの構造をそれぞれ有する第３および第４のマルチプレクサを含む。第３および第４のマルチプレクサは、第３および第４のマルチプレクサの第１の入力端子において第１および第２のマルチプレクサの出力信号をそれぞれ受信し、第３および第４のマルチプレクサの第２の入力端子においてＥＩＮ信号およびＧＡＰ信号の一方を受信する。第３および第４のマルチプレクサは、その制御端子において第３および第４のマルチプレクサ制御信号をそれぞれ受信し、第３および第４のマルチプレクサの出力端子で、各制御端子で制御信号により特定された各入力端子における信号を提供する。
【００２４】
第４の論理アレイは、第１および第２の真理値表信号を受信して、第３および第４のマルチプレクサ制御信号を生成する。
この装置の更なる態様は、第１および第２の各入力端子で第１および第２のマルチプレクサの出力信号を受信するコンパレータを含む。コンパレータは、第１のマルチプレクサの出力信号で符号化された値が第２のマルチプレクサの出力信号で符号化された値を数値的に上回る場合に第１の値を有するコンパレータ出力信号を提供し、そうでない場合に第２の値を有するコンパレータ出力信号を提供する。
【００２５】
この態様は、第１および第２のマルチプレクサの構造を有する第５のマルチプレクサを含む。第５のマルチプレクサは、第１および第２の入力端子で第１および第２のオペランドレジスタに記録された第２のエンドポイントを受信し、制御端子でコンパレータ出力信号を受信する。第６のマルチプレクサは、第１および第２のマルチプレクサの構造も有している。第６のマルチプレクサは、第１および第２の入力端子で第１および第２のオペランドレジスタに記録された第１のエンドポイントを受信し、制御端子でコンパレータ出力信号を受信する。
【００２６】
第２の計算要素は、第５および第６のマルチプレクサの出力信号を第２の結果信号で符号化された結果モーダル区間の第１および第２のエンドポイントとして形成するデータを、第１および第２の「空」ビット値信号の第１の構成に応答して、第２の計算要素による計算の結果として提供する第１の部分要素を含む。
【００２７】
第２の計算要素の第２の部分要素は、第２の結果モーダル区間の第２および第１のエンドポイントとして第１のオペランドレジスタに記録された第１および第２のエンドポイントを、第１の構成とは異なる第１および第２の「空」ビット値信号の第２の構成に応答して、第２の計算要素による計算の結果として、第２の結果信号で符号化された第２の結果モーダル区間として提供する。
【００２８】
第２の計算要素の第３の部分要素は、第２の結果モーダル区間の第２および第１のエンドポイントとして第２のオペランドレジスタに記録された第１および第２のエンドポイントを、第１および第２の構成とは異なる第１および第２の「空」ビット値信号の第３の構成に応答して、第２の計算要素による計算の結果として、第２の結果信号で符号化された第２の結果モーダル区間として提供する。
【００２９】
第２の計算要素の第４の部分要素は、選択されたモーダル区間計算の結果値を、第１〜第３の構成とは異なる第１および第２の「空」ビット値信号の第４の構成に応答して、第２の計算要素による計算の結果として、第２の結果信号で符号化された第２の結果モーダル区間として提供する。
【図面の簡単な説明】
【００３０】
【図１】全体的な実数直線であるフロア関数の自然定義域を示す図である。関数はその自然定義域上で連続していないが、区間Ｘ＝［１，３／２］に対する関数の制約は継続する。
【図２】Ｒ２面内でのモーダル区間を可視化した図である。λ＝ρ直線よりも上の点は真のモーダル区間であり、この直線よりも下の点は仮のモーダル区間である。直線上の点は、点別モーダル区間である。
【図３】モーダル区間Ａに相対するモーダル区間Ｂ、Ｃ、Ｄ、およびＥの「包摂」（⊆）の関係と、ＡがＢ「以下」（≦）の関係を可視化した図である。
【図４】実関数の構文ツリーがモーダル区間の式をどのように含意的に定義するかを示す図である。実演算子がそれらのモーダル区間拡張子に変換され、実変数がモーダル区間変数に変換される。
【図５】表１で本発明の５個の追跡装飾が定義され、表２で本発明の５個の静的装飾が定義され、表３で表２の静的装飾の他の定義が行われ、表４でＩＥＥＥ７５４−２００８のバイナリ６４データのＮａＮ装飾フィールドの追跡装飾のビット符号化が定義される。
【図６】本発明の５個の追跡装飾の論理関係を示すヴェン図である。
【図７】本発明の５個の静的装飾の論理関係を示すヴェン図である。
【図８】バイナリ６４データに対するＩＥＥＥ７５４−２００８の交換符号化を示す図である。ビット４９，５０におけるＮａＮ装飾フィールドは、ＩＥＥＥ７５４−２００８標準規格の一部ではなく、本発明のためにのみ定義される。
【図９】バイナリ６４データに対する符号（Ｓ）、ＮａＮ（Ｎ）、無限大（Ｉ）およびゼロ（Ｚ）の分類ビットからなる真理値表を定義する論理図である。
【図１０】２つのバイナリ６４データａ１，ａ２として１２８ビットに符号化されるモーダル区間データ［ａ１，ａ２］を示す図である。
【図１１】モーダル区間データの空（Ｅ）ビットと追跡装飾（Ｔ）を定義する論理図である。
【図１２】入力としてオペランド［ａ１，ａ２］を取り、結果値［ｂ１，ｂ２］を生成する単項モーダル区間演算を示す図である。
【図１３】装飾を使用した単項モーダル区間演算のための論理図である。
【図１４】モーダル区間否定演算のための論理図である。
【図１５】モーダル区間逆数演算のための論理図である。
【図１６】制約されたモーダル区間逆数演算のための論理図である。
【図１７】モーダル区間符号演算のための論理図である。
【図１８】モーダル区間絶対値演算のための論理図である。
【図１９】モーダル区間平方演算のための論理図である。
【図２０】モーダル区間平方根演算のための論理図である。
【図２１】制約されたモーダル区間平方根演算のための論理図である。
【図２２】モーダル区間指数演算のための論理図である。
【図２３】モーダル区間対数演算のための論理図である。
【図２４】制約されたモーダル区間対数演算のための論理図である。
【図２５】オペランド［ａ１，ａ２］と［ｂ１，ｂ２］を入力として取り、結果値［ｃ１，ｃ２］を生成する二項モーダル区間演算を示す図である。
【図２６】装飾を使用した二項モーダル区間演算のための論理図である。
【図２７】モーダル区間加算演算のための論理図である。
【図２８】モーダル区間減算演算のための論理図である。
【図２９】モーダル区間乗算演算のための論理図である。
【図３０】モーダル区間除算演算のための論理図である。
【図３１】モーダル区間最小値演算のための論理図である。
【図３２】モーダル区間最大値演算のための論理図である。
【図３３】モーダル区間ミート演算のための論理図である。
【図３４】モーダル区間結合演算のための論理図である。
【発明を実施するための形態】
【００３１】
本発明の重要な特徴を開示し本発明を従来技術文献から区別することを促進するために、関連する概念や従来技術の予備的な概要を順に記載する。
［自然定義域および連続性］
純粋な数学の分野において、実数における演算は自然定義域を有する関数である。例えば、負の実数の平方根は定義されないから、平方根演算の自然定義域は負ではない全ての実数の集合である。ゼロ除算も定義されないから、逆数演算の自然定義域はゼロでない全ての実数の集合である。想定される演算ごとに以下同様である。換言すれば、演算への入力が演算の自然定義域の要素ではない場合は常に演算は定義されない。
【００３２】
連続性は、実数の関数の別の重要な特徴である。連続関数の正式な定義は、従来技術において周知であり、関数のシーケンスや限界に関して与えられる。略式な定義は、関数が連続する場合、定義域でシーケンスが収束し、その範囲のシーケンスの画像も収束する。言い換えれば、ある定義は、最初に限界を取ってからその関数を適用するか、または最初に関数を適用してから限界を取るかのいずれかである。
【００３３】
更に具体的には、ｆ：Ｒｎ→Ｒがｎ次元の実ベクトルＲｎを実数Ｒにマッピングし、Ｄｆ⊆Ｒｎがｆの自然定義域内にある関数である場合、Ｘ⊆Ｄｆに対する連続特性は、ｆのＸに対する制約に関して更に定義される。その場合、連続特性の唯一の関連する態様は、Ｘが関数の自然定義域Ｄｆの部分集合である、定義域Ｘに制約される関数ｆの部分に関する。
【００３４】
例えば、ｎ≦ｘになるように、実数ｘを最近似値整数ｎへ丸める、図１に示したフロア関数（ｘ）：Ｒ→Ｒを想定する。フロア関数は任意の実数ｘに対して定義される。そこで、関数の自然定義域は全体的な実数である。しかしながら、この関数はその自然定義域において連続しない。この理由は、例えば、ｘ＝１の場合、ｆ（ｘ）＝１に収束するｘ＝１の左側には配列や制約が存在しないためである。しかしながら、代わりに、フロア関数の区間Ｘ＝［１，３／２］への制約を考えた場合、フロア関数は、ｘ∈Ｘが存在しないため、Ｘ上で連続し、よって、ｘ＜１となる。これはｘ＝１の左側からの配列や制約が存在しないことを意味する。
【００３５】
Ｘへの関数の制約は、Ｘが関数の自然定義域の部分集合である場合、および、同場合にのみ、連続しうる。例えば、平方根演算の自然定義域は負以外の全ての実数の集合である。よって、演算の自然定義域に属さず、これに対して演算が定義されないＸ＝［−１６，４］の要素が存在するので、平方根演算のＸ＝［−１６，４］への制約は継続できない。要するに、この場合のＸは、演算の自然定義域の部分集合ではない。
【００３６】
空集合（φ）は、すべての集合の部分集合であるので、全ての関数の全ての自然定義域の部分集合でもある。よって、関数の空集合への制約を考える必要がある。それが判断されると、関数の空集合Ｘ＝φへの制約は常に定義されて連続する。これは、若干、直観に反しているかもしれないが、数学的には正確である。これを証明する正式な数学的推論は従来技術において周知である。
【００３７】
［モーダル区間］
本発明は、モーダル区間演算およびモーダル区間解析に関する。具体的に、本発明は、モーダル区間演算で例外的条件を検出する改良されたシステムおよび方法に関する。よって、実関数の先行表記、実関数の自然定義域、および関数の自然定義域の部分集合への実関数の制約がモーダル区間のトピックの上位に入る。
【００３８】
本発明の目的のために、モーダル区間は、順序付けされたペア［ａ，ｂ］として定義され、ａおよびｂは、実数であるかまたは符号付きの無限大である。しかしながら、二つのペア［−∞，−∞］および［＋∞，＋∞］は除外される。なお、ａ≦ｂの制約は必要とされないことに注意されたい。
【００３９】
モーダル区間の集合論的な解釈は、以下で定義される。
Ｓｅｔ（［ａ，ｂ］）＝｛ｘ∈Ｒ：ｍｉｎ（ａ，ｂ）≦ｘ≦ｍａｘ（ａ，ｂ）｝
表記ｘ∈［ａ，ｂ］は、ｘ∈Ｓｅｔ（［ａ，ｂ］）の省略形として使用することができる。空集合（φ）はモーダル区間ではないが、Ｓｅｔ（φ）＝φである。
【００４０】
閉区間はその限界点の全てを含む。あらゆるモーダル区間［ａ，ｂ］は閉区間である。ａとｂが共に実数である場合、モーダル区間は有界である。モーダル区間が非有界の場合、エンドポイントの少なくとも一つが−∞または＋∞であり、モーダル区間はその全ての限界点を含むがその全てのエンドポイントを含まない。よって、形式［−∞，＋∞］，［−∞，ｂ］，［ａ，＋∞］，［＋∞，ｂ］，［ａ，−∞］および［＋∞，−∞］のモーダル区間は非有界であることがわかる。括弧（［］）の使用にかかわらず、無限大は、モーダル区間の要素になることはなく、［−∞，−∞］および［＋∞，＋∞］は定義によりモーダル区間ではない。
【００４１】
モーダル区間［ａ，ｂ］は、ａ≦ｂの場合、真（proper）と呼ばれ、ａ≧ｂの場合、仮（improper）と呼ばれ、ａ＝ｂの場合に、点または点別モーダル区間と呼ばれる。点別モーダル区間も同時に真および仮のモーダル区間であることに留意されたい。
【００４２】
すべての有界モーダル区間の集合はＲ２面において点として可視化することができ、正規の横座標と縦座標は、モーダル区間［ａ，ｂ］の左右の境界、即ち、λ（［ａ，ｂ］）＝ａおよびρ（［ａ，ｂ］）＝ｂとしてそれぞれ定義される。
【００４３】
図２は、このような可視化である。λ＝ρ直線より上の点は真のモーダル区間であり、この直線より下の点は仮のモーダル区間である。直線上の点は点別モーダル区間である。同図に可視化された有界モーダル区間の部分集合は、従来技術にてカウチャー（Kaucher）区間として知られている有名な集合である。λ＝ρ直線上またはこの直線より上のカウチャー区間の部分集合は、ラモン・Ｅ・ムーア（Ｒａｍｏｎ  Ｅ．Ｍｏｏｒｅ）による１９６０年代後半に普及した「クラシック（classic）」区間として有名な集合である。クラシック区間の集合は仮の区間を含まない。
【００４４】
現時点で、有界と非有界の真のモーダル区間の部分集合は、区間演算に対するＩＥＥＥ標準規格のワーキングドラフトでサポートされる区間の集合である。この標準規格は、本明細書の作成時点では、Ｐ１７８８ワーキンググループ委員会により現在開発中であり、有界または非有界の仮の区間について規定していない。よって、本発明が意図するのは、集合の各要素が有界または非有界、真または仮になりうる集合からなる唯一の最も広い「区間」の集合であるということである。
【００４５】
述語はブール関数であり、命題は、各変数が普遍的（∀）または存在的（∃）に量化される述語である。
モーダル区間［ａ，ｂ］のモーダル量化子Ｑにより、実変数ｘを、以下の定義、
ａ≦ｂの場合：Ｑ（ｘ，［ａ，ｂ］）＝∀ｘ∈Ｓｅｔ（［ａ，ｂ］）、
それ以外の場合：Ｑ（ｘ，［ａ，ｂ］）＝∃ｘ∈Ｓｅｔ（［ａ，ｂ］）。
によって量化する。
【００４６】
モーダル演算は、
Ｄｕａｌ（［ａ，ｂ］）＝［ｂ，ａ］、
Ｐｒｏｐ（［ａ，ｂ］）＝［ｍｉｎ（ａ，ｂ），ｍａｘ（ａ，ｂ）］、
Ｉｍｐｒ（［ａ，ｂ］）＝［ｍａｘ（ａ，ｂ），ｍｉｎ（ａ，ｂ）］、
であり、対応するモーダル量化子Ｄ、Ｅ、Ｕは、
Ｄ（ｘ，［ａ，ｂ］）＝Ｑ（ｘ，Ｄｕａｌ（［ａ，ｂ］））
Ｅ（ｘ，［ａ，ｂ］）＝Ｑ（ｘ，Ｐｒｏｐ（［ａ，ｂ］））
Ｕ（ｘ，［ａ，ｂ］）＝Ｑ（ｘ，Ｉｍｐｒ（［ａ，ｂ］））
と定義される。
【００４７】
モーダル量化子Ｑ、Ｄ、Ｅ、およびＵを用いて、モーダル区間により命題を形成することが可能である。例えば、ＡおよびＢがモーダル区間の場合、「包摂」（⊆）の関係式は、
Ａ⊆Ｂ⇔Ｄ（ａ，Ａ）Ｑ（ｂ，Ｂ）：ａ＝ｂ
であり、ＡがＢ「以下」（≦）の場合の関係式は、
Ａ≦Ｂ⇔Ｕ（ａ，Ａ）Ｅ（ｂ，Ｂ）：ａ≦ｂおよびＵ（ｂ，Ｂ）Ｅ（ａ，Ａ）：ａ≦ｂ
である。
【００４８】
図３は、Ｒ２面内でのこれらのモーダル区間関係の幾何学的可視化である。モーダル区間Ｂ、Ｃ、ＤおよびＥに対する「包摂」および「以下」の関係がモーダル区間Ａに対して示されている。
【００４９】
ｘが実数である場合、丸め演算子∇（ｘ）とΔ（ｘ）はｘのディジタル近似値であり、
∇（ｘ）≦ｘおよびΔ（ｘ）≧ｘ
の関係が常に真である。任意のモーダル区間［ａ，ｂ］に対して、
Ｉｎｎ（［ａ，ｂ］）＝［Δ（ａ），∇（ｂ）］、および
Ｏｕｔ（［ａ，ｂ］）＝［∇（ａ），Δ（ｂ）］
はそれぞれ、［ａ，ｂ］の「内部」と「外部」のディジタル丸めである。
【００５０】
内部と外部のディジタル丸めは任意のディジタルスケールに対して普遍的に可能であり、
Ｉｎｎ（［ａ，ｂ］）⊆［ａ，ｂ］⊆Ｏｕｔ（［ａ，ｂ］）
の特性を満たし、これにより、
Ｉｎｎ（［ａ，ｂ］）＝Ｄｕａｌ（Ｏｕｔ（Ｄｕａｌ（［ａ，ｂ］）））
の等式が内部丸めを不要にする。
【００５１】
［装飾および特性追跡］
装飾（decoration）は、そのモーダル区間入力の定義域に制約された実関数の数学的特性である。装飾は定義域外引数または非連続関数などの例外的条件を検出するための枠組みを提供する。
【００５２】
ノードが演算子であり、リーフが変数であり、ブランチが各演算子の定義域を画定する場合における実関数の構文ツリーを見ると、実関数は、実関数の構文ツリーによって含意的に定義された計算プログラムを使用することによってモーダル区間式に演算的に拡張することができる。これは、全ての実演算子をそれらのモーダル区間拡張に変換しかつ全ての実変数をモーダル区間変数に変換することによって達成される。
【００５３】
図４は、以下の実関数、
ｆ（ｘ，ｙ）＝ｙ／ｓｑｒｔ（（１−ｘ）＊（１＋ｘ））
の構文ツリーがどのようにモーダル区間式を含意的に定義するかを示す例である。実演算子および変数１２はそれぞれ、それらのモーダル区間対象１５に変換される。モーダル区間式の評価は、変数がブランチから演算へ伝播されるツリーのリーフにおいて開始される。演算は変数をオペランドとして受け取り、演算を実行し、結果を生成する。その後、ツリーにおける全てのノードが評価されて、最終結果がツリーのルート（root）へ伝播されるまで、各演算の結果がブランチから他の演算へ伝播される。
【００５４】
本発明は二種類の装飾を区別する。静的装飾（static decoration）は、そのモーダル区間入力の定義域に対する個別の演算の制約に関する絶対数学的真理である。一方、追跡装飾（tracking decoration）は、式ツリーにおける静的装飾をブランチからルートへ伝播させることによってモーダル区間式に対し得られる数学的含意である。追跡装飾を得るために式ツリーを介して静的装飾を伝播するために使用される方法は「特性追跡」（property tracking）と呼ばれる。
【００５５】
図５の表１は、本発明の５個の追跡装飾ＥＩＮ、ＤＡＣ、ＤＥＦ、ＧＡＰ、およびＮＤＦを定義する。ｆ：Ｒｎ→Ｒが実関数であり、Ｘがｎ次元のモーダル区間ボックスである場合、それらの要素がＳｅｔ（Ｘ）のｆの制約について論述した数学的特性を満たす（ｆ，Ｘ）ペアである集合である。更に、Ｘが空集合である場合は常に、（ｆ，Ｘ）ペアはＥＩＮの要素であるか、そうでなければ、（ｆ，Ｘ）ペアは別の装飾の要素である必要がある。
【００５６】
図６は、５個の追跡装飾間の論理関係を示すヴェン図である。５個の追跡装飾は、
ＥＩＮ⊆ＤＡＣ⊆ＤＥＦ⊆ＧＡＰ⊇ＮＤＦ⊇ＥＩＮ
の包摂関係を形成する。
【００５７】
ここで、ＥＩＮは全ての追跡装飾の部分集合であり、ＧＡＰは全ての追跡装飾の上位集合であることに注目されたい。
例えば、ｆが平方根演算子であり、Ｘ=［１，４］の場合、この特定の（ｆ，Ｘ）ペアに対して、Ｘに対するｆの制約が定義されて継続する。Ｘは空でないので、（ｆ，Ｘ）ペアはＥＩＮの要素ではあり得ない。更に、（ｆ，Ｘ）ペアは、この場合、ｆ（Ｘ）が空ではないので、ＮＤＦの要素ではあり得ない。しかしながら、Ｘが空集合の場合、（ｆ，Ｘ）ペアはＥＩＮの要素であり、ＥＩＮが全ての追跡装飾の部分集合であるので、（ｆ，Ｘ）ペアはＤＡＣ、ＤＥＦ、ＧＡＰおよびＮＤＦの要素である。
【００５８】
装飾に関連する従来の技術に関して注意を払うことは重要である。本明細書の作成時点で開発中の区間演算に対するＩＥＥＥ標準規格の草案は、少なくとも一部は本発明の出願人によって考案された装飾システムを含む。この装飾システムは、ＤＥＦやＤＡＣ装飾などの、本発明の装飾システムに一部共通の特性を有している。しかしながら、いくつかの重要な違い、すなわち、ＥＩＮ装飾の欠落、および、ＩＬＬ（不正な形式）、ＣＯＭ（共通区間）とＢＮＤ（有界区間）などの本発明では定義されていないいくつかの他の装飾の包摂がある。「Decorations as State Machine」と題された出願人の文書は、信頼できる区間計算にはこれらの競合する装飾システムがどうして不要であるかまたは不十分であり、本発明の独特の装飾システムがどのようにしてこれらの問題を克服するかの論理的根拠を提供する。
【００５９】
図５の表２は、本発明の５個の静的装飾ｅｉｎ、ｄａｃ、ｄｅｆ、ｇａｐ、およびｎｄｆを提示している。静的装飾が追跡装飾と同じネームを有しているが、追跡装飾は、大文字、静的装飾が小文字であることに注目されたい。
【００６０】
任意の（ｆ，Ｘ）ペアに対して、表記Ｓ（ｆ，Ｘ）は、表２の関数として、（ｆ，Ｘ）ペアがどの静的装飾の要素となりうるかを示す。ｆがｎ個のオペランドを有している場合、表記Ｓ（ｆ，Ｘ）はＳ（ｆ，Ｘ１，Ｘ２，．．．．．．，Ｘｎ）に対する短縮形である。
【００６１】
ｆ：Ｒｎ→Ｒが実関数であり、Ｄｆ⊆Ｒｎがｆの自然定義域であり、かつ、Ｘがｎ次元のモーダル区間ボックスである場合、図５の表３は、図５の表２と同じ集合を定義するＳ（ｆ，Ｘ）の他の定義である。
【００６２】
図７は、５個の静的装飾間の論理関係を示すヴェン図である。図５の表１の追跡装飾は、全ての（ｆ，Ｘ）ペアの普遍集合を入れ子式の集合の階層的配列に分割するが、図５の表２〜３の静的装飾は、全ての（ｆ，Ｘ）ペアの普遍集合を５個の互いに素な集合（図７参照）に分割する。
【００６３】
例えば、ｆが平方根演算であり、Ｘ１＝［２，４］、Ｘ２＝［−１，１］、およびＸ３＝［−４，−２］である場合、Ｓｅｔ（Ｘ１）はＤｆの非空集合であるので、Ｓ（ｆ，Ｘ１）＝ｄａｃとなって、Ｘ１のｆの制約は継続され、Ｓｅｔ（Ｘ２）はＤｆの部分集合ではないので、Ｓ（ｆ，Ｘ２）＝ｇａｐとなるが、Ｓｅｔ（Ｘ２）とＤｆの交点は空ではない。そして、Ｘ３は空ではないが、Ｓｅｔ（Ｘ３）とＤｆの交点が空であるので、Ｓ（ｆ，Ｘ３）＝ｎｄｆとなる。
【００６４】
特性追跡は、追跡装飾を得るために、式ツリーを介して静的装飾を伝播するために使用される方法である。この方法を容易にするために、装飾された区間の表記が考えられる。装飾された区間は、モーダル区間Ｘと追跡装飾Ｄからなるペア（Ｘ、Ｄ）である。空集合は区間ではないが、装飾された空集合（φ，Ｄ）の表記も考えられる。
【００６５】
特性の追跡の方法は初期化から始まる。式ツリーのリーフにおける各モーダル区間変数Ｘ１，Ｘ２，…，Ｘｎは、装飾された区間（Ｘ１，ＤＡＣ），（Ｘ２，ＤＡＣ），…，（Ｘｎ，ＤＡＣ）に昇格される。式ツリーのリーフ内の任意の変数が空集合である場合、空変数は装飾された空集合（φ，ＥＩＮ）に昇格される。同様に、式ツリーのリーフ内の任意の変数が［＋∞，＋∞］または［−∞，−∞］の場合、各変数は、（［＋∞，＋∞］，ＧＡＰ）または（［−∞，−∞］，ＧＡＰ）に昇格される。
【００６６】
その後、装飾された変数は、式ツリーのブランチから演算へ伝播される。演算は装飾された変数をオペランドとして受け取り、演算を実行し、装飾された結果を生成する。各演算において、ｆ：Ｒｎ→Ｒが実関数であり、かつ（Ｘｉ，Ｄｉ）＝（（Ｘ１，Ｄ１），（Ｘ２，Ｄ２），…，（Ｘｎ，Ｄｎ））がｆの装飾された区間オペランドである場合、演算の装飾された結果は、追跡装飾Ｔ（ｆ，（Ｘｉ，Ｄｉ））＝ｍｉｎ｛Ｓ（ｆ，Ｘ１，Ｘ２，…，Ｘｎ），Ｄ１，Ｄ２，…，Ｄｎ｝を有している。
【００６７】
言い換えれば、演算の装飾された結果は、演算の静的装飾Ｓ（ｆ，Ｘ１，Ｘ２，…，Ｘｎ）とオペランドの装飾Ｄ１，Ｄ２，…，Ｄｎの論理和によって形成される集合の最小要素である追跡装飾を有している。
【００６８】
装飾の集合の最小要素を求めるために、装飾は、ｎｄｆ／ＮＤＦ＜ｇａｐ／ＧＡＰ＜ｄｅｆ／ＤＥＦ＜ｄａｃ／ＤＡＣ＜ｅｉｎ／ＥＩＮのように、線形に順序づけられる。
各演算の装飾された結果はブランチから他の演算に伝播される。手順は、ツリーの全てのノードの評価が終わるまで反復され、最終の装飾された結果がツリーのルートに伝播される。
【００６９】
［モーダル区間および装飾のディジタル符号化］
コンピュータの内部では、モーダル区間のエンドポイントはディジタルスケールの要素によって表現することができる。本発明の好ましい実施形態において、ディジタルスケールは、ＩＥＥＥ７５４−２００８のバイナリ６４交換形式の符号化に準拠する。開示のために、本明細書中では、バイナリ６４符号化が説明ないし検討される。しかしながら、本発明に関連する他のディジタルスケールまたは交換形式の符号化の使用も明らかである。
【００７０】
図８のレジスタ２０に示したように、バイナリ６４浮動小数点データは、符号、指数および小数フィールドに分割された６４ビットの情報である。小数フィールドはビット０〜５１であり、指数フィールドはビット５２〜６２であり、符号フィールドは最上位ビット６３である。この符号化によって表される浮動小数点データは、以下である。
・ゼロ：指数部と小数部がゼロである場合、各符号ビットが０または１であるときには浮動小数点データは正または負のゼロ＋０または−０である。
・非ゼロ有限数：指数部と小数部がゼロでなく、かつ指数ビットがすべて１でない場合、定義により各符号ビットが０または１のときには浮動小数点データは正または負の非ゼロ有限数となる。
・無限大：指数ビットが全て１に設定され、かつ小数がゼロの場合、符号ビットが０または１のときには浮動小数点データは＋∞または−∞である。なお、無限大は浮動小数点形式で表現できる最大数であり、負の無限大は任意の有限数より小であり、正の無限大は任意の有限数より大である。
・ＮａＮ（非数）：指数ビットが全て１に設定され、かつ小数部がゼロでない場合、浮動小数点データは、符号ビットとは無関係に、表現可能な浮動小数点数値の範囲外にある非数である。ビット５１が１に設定された場合、ＮａＮは無言（quiet）（ＱＮａＮ）であり、そうでなければ、ＮａＮは発信（signaling）（ＳＮａＮ）である。本発明において、ビット４９〜５０はＮａＮ装飾フィールドである。ＮａＮ装飾フィールドは、ＩＥＥＥ７５４−２００８標準規格の一部ではなく、本発明のためにのみ定義されている。
【００７１】
図９に示すように、バイナリ６４データは、分類ビットの集合から成る真理値表２３に関連付けられる。分類ビットは、符号（Ｓ）、ＮａＮ（Ｎ）、無限大（Ｉ）、およびゼロ（Ｚ）ビットからなる。バイナリ６４データのビット６３は、符号ビットに複写される。ＮａＮ、無限大、およびゼロビットは、バイナリ６４データの指数および小数が結合した値に応じて、０または１に設定される。結合値が0x7FF0000000000000より大きい場合にＮａＮビットは１に設定され、結合値が0x7FF0000000000000に等しい場合に無限大ビットは１に設定され、結合値がゼロに等しい場合にゼロビットは１に設定され、そうでない場合、ＮａＮ、無限大、およびゼロの各ビットは０に設定され、バイナリ６４データは、正または負の非ゼロ有限数となる。
【００７２】
ｘが浮動小数点データである場合、Ｓ（ｘ）、Ｎ（ｘ）、Ｉ（ｘ）およびＺ（ｘ）は、真理値表２３の符号、ＮａＮ、無限大、およびゼロの分類ビットの各値を表すために本明細書中で使用される表記である。
【００７３】
ＮａＮのビット５１が１に設定された場合、ＮａＮは無言（ＱＮａＮ）であり、そうでない場合、ＮａＮは発信（ＳＮａＮ）である。ＮａＮが発信である場合、ＮａＮの少なくとも一つの他の小数ビットは無限大からＮａＮを区別するために１に設定する必要がある。無言ＮａＮと発信ＮＡＮの差は、ＩＥＥＥ７５４−２００８標準規格の交換形式符号化との互換性による。しかしながら、本発明は、発信ＮａＮ演算を必要としない。
【００７４】
ビット０〜５０はＮａＮ「ペイロード」である。ペイロードの全てのビットは、ＮａＮの小数フィールド全体がゼロにならないかぎり、任意の値に設定することができる。本発明の好ましい実施形態は、追跡装飾の表現を符号化するためにＮａＮペイロードのビット４９〜５０をＮａＮ装飾フィールドとして使用することができる。
【００７５】
ｘがＮａＮである場合、Ｔ（ｘ）は、図５の表４に示すように、ｘのＮａＮ装飾フィールド内で符号化された追跡装飾の表現である。追跡装飾ＥＩＮはＮａＮ装飾フィールド内に指定された符号化を有していない。この理由を明細書の以下の部分に示す。
【００７６】
ｎが追跡装飾の表現である場合、ＮａＮ（ｎ）、ＱＮａＮ（ｎ）およびＳＮａＮ（ｎ）は、図５の表４に示したように、装飾フィールドのビットがｎの対応する値に設定された際、ＮａＮ、無言ＮａＮおよび発信ＮａＮの各符号化を表すために本明細書中で使用される表記である。
【００７７】
モーダル区間データ［ａ１，ａ２］は、図１０のレジスタ２７に示したように、２個のバイナリ６４データａ１，ａ２として１２８ビットに符号化される。ａ１またはａ２がＮａＮである場合、または、ａ１およびａ２が同じ符号を有する無限大である場合、１２８ビットの符号化は非区間データを表す。
【００７８】
すべての非区間データは装飾された空集合の符号化である。
ａ１およびａ２がＮａＮを表わさないバイナリ６４データである場合、および、図５の表４に示したように、ＮａＮ装飾フィールドにおいて符号化された追跡装飾ＤＡＣ、ＤＥＦ、ＧＡＰまたはＮＤＦ（図５の表１を参照）の一つの表現である場合、装飾された空集合（φ，ｎ）は、［ａ１，ＮａＮ（ｎ）］または［ＮａＮ（ｎ），ａ１］の任意の非区間データによって符号化される。
【００７９】
装飾された空集合（φ，ｎ）の任意のこのような符号化は、本発明の演算への入力として提供され、正規の符号化［＋０，ＱＮａＮ（ｎ）］または［ＱＮａＮ（ｎ），＋０］は、出力として装飾された空集合を生成する演算の結果として提供することができる。
【００８０】
［ＮａＮ，ＮａＮ］の非区間データは、装飾された空集合（φ，ＥＩＮ）の符号化であり、［−∞，−∞］または［＋∞，＋∞］の非区間データは、装飾された空集合（φ，ＧＡＰ）の符号化である。
【００８１】
図１１は、モーダル区間データ［ａ１，ａ２］が空（Ｅ）ビットおよび追跡装飾（Ｔ）の表現によってどのように分類されるかを示す図である。分類３３は、バイナリ６４データａ１，ａ２のそれぞれ符号（Ｓ）、ＮａＮ（Ｎ）および無限大（Ｉ）ビット、ならびに、ａ１またはａ２のいずれかがＮａＮである場合には、ａ１またはａ２のそれぞれＮａＮ装飾フィールドの真理値表の関数である。論理図３０は次の仕様に基づく分類３３を計算する。
【００８２】
ａ１およびａ２が共に同じ符号を有する無限大である場合、または、ａ１若しくはａ２がＮａＮである場合、図１１の空ビットは１に設定され、そうでない場合、空ビットは０に設定される。ａ１およびａ２が同じ符号を有する無限大である場合には、追跡装飾はＧＡＰであり、ａ１がＮａＮであり、ａ２がＮＡＮでない場合には、追跡装飾はａ１からのＮａＮ装飾フィールドの表現であり、ａ２がＮＡＮであり、ａ１がＮａＮでない場合には、追跡装飾はａ２からのＮａＮ装飾フィールドの表現であり、それ以外の場合には、追跡装飾はＥＩＮである。厳密に言えば、追跡装飾は、空ビットが１に設定されなければ、意味がない。空ビットが０である場合、モーダル区間データは有界または非有界のモーダル区間であり、追跡装飾は使用されない。
【００８３】
［ａ１，ａ２］がモーダル区間データである場合、Ｅ（ａ１，ａ２）とＴ（ａ１，ａ２）は、空ビットと追跡装飾の各値を表すために本明細書中で使用される表記である。
［装飾によるモーダル区間演算］
本発明は、装飾を使用して信頼性の高い効率的なモーダル区間演算のための改良システムおよび方法を提供する。本発明の好ましい実施形態は、「Modal Interval Processor」と題された本出願人の特許文献１に記載されているような算術関数ユニット（ＡＦＵ）である。ＡＦＵに対するモーダル区間オペランドおよび結果信号は、「Digital Encodings of Modal Intervals and Decorations」と題された、先のセクションで説明した方法を用いてディジタル符号化される。
【００８４】
モーダル区間演算について引き続き示されるように、モーダル区間演算の結果は、通常、モーダル区間オペランドの選択エンドポイントで浮動小数点演算を実行することによって得られる。浮動小数点計算は不正確な場合が多いので、本発明は、モーダル区間結果がモーダル区間の「外側」のディジタル丸めに従うことを確実にするために丸め演算子∇（ｘ）とΔ（ｘ）を必要とする。
【００８５】
図１２は、例えば、単項モーダル区間演算を関数要素３７で計算することを示している。要素３６は、一以上の部分要素を含み、ハードウェア、ファームウェア、またはソフトウェアとして実装されうる。要素３６は、入力としてレジスタ２７に保持されたオペランド［ａ１，ａ２］を取り、結果レジスタ３９に保持された結果［ｂ１，ｂ２］を生成する。
【００８６】
図１３は、図１２をより詳細に示す論理図である。真理値表４８は結果レジスタ３９において値を指定する。真理値表はオペランド２７に関連付けられる空（Ｅ）ビット４２の関数である。真理値表の値ゼロは、特定の演算に関連付けられる計算関数を選択する。他の真理値表の値は、結果３９がオペランド２７のコピーであることを指定する。よって、［ａ１，ａ２］が非区間データのエンコーディングである場合、即ち、［ａ１，ａ２］が装飾された空集合の符号化である場合、オペランド［ａ１，ａ２］は演算の結果である。そうでない場合、［ａ１，ａ２］は有界または非有界のモーダル区間の符号化であり、結果は演算ごとに個別に定義される。
【００８７】
図１４〜図２４は、図１３のオペランド［ａ１，ａ２］が有界または非有界のモーダル区間の符号化であると判断された後のいくつかの単項モーダル区間演算の結果を示している。
【００８８】
図１４は、モーダル区間否定演算のための論理図である。この演算はモーダル区間を−１で効果的に乗算する。浮動小数点数の否定が正確なので、モーダル区間否定演算が正確であり、丸め演算を必要としない。
【００８９】
図１５は、モーダル区間逆数演算のための論理図である。この演算は、ａ１およびａ２が共に同じ符号を有する非ゼロ値である場合および同場合にのみ定義され、そうでない場合、演算の結果は装飾された空集合である。ａ１およびａ２が共にゼロの場合、空集合はＮＤＦで装飾され、そうでない場合、空集合はＧＡＰで装飾される。
【００９０】
図１６は、制約されたモーダル区間逆数演算のための論理図である。演算は演算の入力からゼロを静的に取り除く。図１５のモーダル区間逆数演算とは異なり、オペランド［ａ１，ａ２］はゼロである一つのエンドポイントを有する。
【００９１】
図１７は、モーダル区間符号演算のための論理図である。この演算は全体的な実数直線に対して定義される。しかしながら、この演算は、ａ１およびａ２が共に完璧に正であり、共に完璧に負であり、または共にゼロである場合、および、同場合にのみ、演算が連続する。演算が連続しない場合、結果は装飾された空集合（φ，ＤＥＦ）の符号化である。
【００９２】
図１８は、モーダル区間絶対値演算のための論理図である。浮動小数点数ａ１またはａ２の絶対値が正確なので、モーダル区間絶対値演算も正確であり、丸め演算子を必要としない。
【００９３】
図１９は、モーダル区間平方演算のための論理図である。
図２０は、モーダル区間平方根演算のための論理図である。この演算は、ａ１またはａ２が負の非ゼロ値である場合、定義されない。ＩＥＥＥ７５４−２００８標準規格に準拠して、これは−０が演算の自然定義域の要素であることを可能にする。ａ１またはａ２が負の非ゼロ値である場合、演算の結果は装飾された空集合である。ａ１およびａ２が共に負の非ゼロ値である場合、空集合はＮＤＦで装飾され、そうでない場合、ＧＡＰで装飾される。
【００９４】
図２１は、制約されたモーダル区間平方根演算のための論理図である。この演算は、演算の入力から負の非ゼロ値を静的に取り除く。図２０のモーダル区間平方根演算とは異なり、オペランド［ａ１，ａ２］は、ａ１およびａ２が共に負の非ゼロ値でないかぎり、一つの負の非ゼロ値をエンドポイントとして有する。
【００９５】
図２２は、モーダル区間指数演算のための論理図である。
図２３は、モーダル区間対数演算のための論理図である。この演算は、ａ１およびａ２が共に非ゼロの正の数値である場合にのみ定義される。ａ１またはａ２がゼロ以下の場合、演算の結果は装飾された空集合である。ａ１およびａ２が共にゼロ以下の場合、空集合はＮＤＦで装飾されるか、そうでない場合、空集合はＧＡＰで装飾される。
【００９６】
図２４は、制約されたモーダル区間対数演算のための論理図である。演算は演算の入力から負の数値とゼロを静的に取り除く。図２３におけるモーダル区間対数演算とは異なり、オペランド［ａ１，ａ２］は、ａ１およびａ２が共にゼロ以下でない限り、ゼロ以下の一つのエンドポイントを有する。
【００９７】
図２５は、例えば、二項（バイナリ）モーダル区間演算の関数要素３７における計算を示している。要素３７は、一以上の部分要素を含み、ハードウェア、ファームウェア、またはソフトウェアとして実装され得る。要素３７は、入力としてレジスタ２７，２８に各々保持されるオペランド［ａ１，ａ２］および［ｂ１，ｂ２］を取り、結果レジスタ２９に保持される結果［ｃ１，ｃ２］を生じる。
【００９８】
図２６は、図２５をより詳細に示す論理図である。コンパレータ４４は、オペランド２７，２８から得られた追跡装飾ビットを受け取り、その後、３個の追跡ビットＴ（ａ１，ａ２）が３個の追跡ビットＴ（ｂ１，ｂ２）より数値的に大きいとき、「１」の出力を提供し、そうでない場合は「０」の出力を提供する。論理要素５０は、結果レジスタ２９において値を特定する真理値表５８を生成する。真理値表の値「００」は、特定の演算に関連付けられる計算関数を選択する。真理値表の値「１１」は、コンパレータ４４の出力に基づいてオペランド２７，２８を乗算する（multiplex）ことによって生成された値［ｄ１，ｄ２］を選択する。他の真理値表の値は、その真理値表の値に対して定義された結果を指定する。論理要素５０はそれぞれオペランド２７，２８に関連付けられる「空」（Ｅ）ビットと追跡装飾（Ｔ）ペア４２，４３との関数である。［ａ１，ａ２］または［ｂ１，ｂ２］が無区間データの符号化である場合、即ち、［ａ１，ａ２］または［ｂ１，ｂ２］が装飾された空集合の符号化である場合、演算結果はオペランド［ａ１，ａ２］または［ｂ１，ｂ２］の一つである。両方のオペランドが装飾された空集合である場合、最小追跡装飾を有するオペランドが結果であることから、両オペランドが同じ追跡装飾で装飾された空集合である場合、オペランド［ａ１，ａ２］を戻すことも考えられ、唯一のオペランドが装飾された空集合である場合、装飾された空集合であるオペランドが演算の結果であり、そうでない場合、［ａ１，ａ２］および［ｂ１，ｂ２］は共に有界または非有界のモーダル区間の符号化であり、結果は演算ごとに異なるように定義される。
【００９９】
図２７〜図３４は、図２６におけるオペランド［ａ１，ａ２］および［ｂ１，ｂ２］が共に有界または非有界のモーダル区間の符号化であると判断した後のいくつかの二項モーダル区間演算の結果を示す図である。
【０１００】
図２７は、二項モーダル区間加算演算のための論理図である。演算は、ａ１＋ｂ１またはａ２＋ｂ２が逆数符号の無限大の和である場合、または、これらの和ａ１＋ｂ１またはａ２＋ｂ２が同じ符号の無限大である場合、定義されない。演算が定義されない場合、結果は装飾された空集合（φ，ＧＡＰ）の符号化である。
【０１０１】
図２８は、二項モーダル区間減算演算のための論理図である。演算は、ａ１−ｂ２またはａ２−ｂ１が同じ符号の無限大の差である場合、またはこれらの差ａ１−ｂ２またはａ２−ｂ１が同じ符号の無限大である場合、定義されない。演算が定義されない場合、結果は装飾された空集合（φ，ＧＡＰ）の符号化である。
【０１０２】
図２９は、二項モーダル区間乗算演算のための論理図である。ａ１、ａ２、ｂ１またはｂ２が無限大またはゼロである場合、演算結果は無限大とゼロの浮動小数点乗算を必要とする。ＩＥＥＥ７５４−２００８標準規格によれば、無限大とゼロの浮動小数点乗算は未定義の演算であり、ＮａＮを戻す可能性がある。モーダル区間乗算演算は、この規則から逸脱し、代わりに、「Reliable and Efficient Computation of Modal Interval Arithmetic Operations」と題された本出願人の特許文献２に基づいて、無限大とゼロの浮動小数点乗算を、次式、
（−∞）（−０）＝（−０）（−∞）＝＋０
（−∞）（＋０）＝（＋０）（−∞）＝−０
（＋∞）（−０）＝（−０）（＋∞）＝−０
（＋∞）（＋０）＝（＋０）（＋∞）＝＋０
により定義する。これにより、モーダル区間乗算演算は、オペランド［ａ１，ａ２］および［ｂ１，ｂ２］が有界または非有界モーダル区間であれば、常に定義される。
【０１０３】
図３０は、二項モーダル区間除算演算のための論理図である。
図３１〜図３４は、それぞれ最大値、最小値が遭遇し結合する二項モーダル区間格子演算に対する論理図である。浮動小数点数の最小値と最大値が正確なので、全ての格子演算も正確であり、丸め演算子を必要としない。最小値と最大値の演算は、最小値演算が［−∞，−∞］および最大値演算が［＋∞，＋∞］として符号化される装飾された「空」集合（φ，ＧＡＰ）の表現である結果を生成することが可能である。
【図１】
0006290886.tif 000002
【図２】
0006290886.tif 000003
【図３】
0006290886.tif 000004
【図４】
0006290886.tif 000005
【図５】
0006290886.tif 000006
【図６】
0006290886.tif 000007
【図７】
0006290886.tif 000008
【図８】
0006290886.tif 000009
【図９】
0006290886.tif 000010
【図１０】
0006290886.tif 000011
【図１１】
0006290886.tif 000012
【図１２】
0006290886.tif 000013
【図１３】
0006290886.tif 000014
【図１４】
0006290886.tif 000015
【図１５】
0006290886.tif 000016
【図１６】
0006290886.tif 000017
【図１７】
0006290886.tif 000018
【図１８】
0006290886.tif 000019
【図１９】
0006290886.tif 000020
【図２０】
0006290886.tif 000021
【図２１】
0006290886.tif 000022
【図２２】
0006290886.tif 000023
【図２３】
0006290886.tif 000024
【図２４】
0006290886.tif 000025
【図２５】
0006290886.tif 000026
【図２６】
0006290886.tif 000027
【図２７】
0006290886.tif 000028
【図２８】
0006290886.tif 000029
【図２９】
0006290886.tif 000030
【図３０】
0006290886.tif 000031
【図３１】
0006290886.tif 000032
【図３２】
0006290886.tif 000033
【図３３】
0006290886.tif 000034
【図３４】
0006290886.tif 000035