(57)【要約】【課題】無駄なデータ転送や演算処理を省略して、効率よくデータ演算を実施することができるデータ演算装置を得ることを目的とする。【解決手段】判定部４の判定結果が特定値Ｑと一致しない旨を示す場合、外部記憶装置１に格納されている被演算データの中から、その入力演算データＸの要素ｘｉに対応する被演算データＹを読み出し、その要素ｘｉと被演算データＹ間で所定の演算を実施して、その演算結果Ｚを出力する一方、判定部４の判定結果が特定値Ｑと一致する旨を示す場合、一意に特定される固定値Ｒを演算結果Ｚとして出力する。【選択図】        図１
2004240860.tif 000002
【特許請求の範囲】
【請求項１】
入力演算データの要素が特定値と一致するか否かを判定する判定手段と、上記判定手段の判定結果が特定値と一致しない旨を示す場合、外部記憶装置に格納されている被演算データの中から、その入力演算データの要素に対応する被演算データを読み出し、その要素と被演算データ間で所定の演算を実施する演算実施手段と、上記判定手段の判定結果が特定値と一致する旨を示す場合、一意に特定される固定値を演算結果として出力し、その判定結果が特定値と一致しない旨を示す場合、上記演算実施手段の演算結果を出力する演算結果出力手段とを備えたデータ演算装置。
【請求項２】
演算実施手段は、表形式の被演算データが外部記憶装置に格納されている場合、入力演算データの要素に対応する被演算データの列データを読み出すことを特徴とする請求項１記載のデータ演算装置。
【請求項３】
外部記憶装置は、表形式の被演算データを格納する際、その被演算データの列データをそれぞれブロック化し、各ブロックを列方向に順番に結合して格納することを特徴とする請求項２記載のデータ演算装置。
【請求項４】
判定手段は、入力演算データの要素が特定値と一致しない場合でも、その要素が所定の条件を満足する場合には、その要素が特定値と一致する旨を示す判定結果を出力することを特徴とする請求項１記載のデータ演算装置。
【請求項５】
演算実施手段は、入力演算データがベクトルのデータであり、外部記憶装置に格納されている被演算データが行列のデータである場合、そのベクトルの要素に対応する行列の列データを読み出すことを特徴とする請求項１記載のデータ演算装置。
【請求項６】
外部記憶装置は、行列である被演算データを格納する際、その被演算データの列データをそれぞれブロック化し、各ブロックを列方向に順番に結合して格納することを特徴とする請求項５記載のデータ演算装置。
【請求項７】
ベクトルの要素と特定値との差の絶対値が閾値より小さい場合、その要素を特定値に近似する近似手段を設けたことを特徴とする請求項５記載のデータ演算装置。
【請求項８】
近似手段は、演算実施手段が行列とベクトルの積演算を実施する場合、そのベクトルの要素を零値に近似することを特徴とする請求項７記載のデータ演算装置。
【請求項９】
演算実施手段が行列とベクトルの積演算を実施する場合、そのベクトルを構成する複数の要素の絶対値を相互に比較し、他の要素より絶対値が小さい数個の要素を零値に近似する近似手段を設けたことを特徴とする請求項５記載のデータ演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、外部記憶装置に格納されている被演算データを読み出して、所定の演算処理を実施するデータ演算装置に関するものである。
【０００２】
【従来の技術】
従来のデータ演算装置は、演算部と内部記憶装置間のデータ転送と、その内部記憶装置と外部記憶装置間のデータ転送の効率化を図るため、その内部記憶装置を複数の記憶ブロックに分割して、各記憶ブロック毎にデータの入出力を行えるようにしている（以下の特許文献１を参照）。
【０００３】
【特許文献１】
特開平９−２１２６６０号公報（段落番号［００３２］から［００５７］、図１）
【０００４】
【発明が解決しようとする課題】
従来のデータ演算装置は以上のように構成されているので、例えば、ユーザから与えられた入力演算データと外部記憶装置に格納されている被演算データ間で所定の演算処理を実施する必要がある場合、その外部記憶装置に格納されている全ての被演算データを内部記憶装置に読み出してから、その入力演算データと被演算データ間で所定の演算処理を実施する。しかし、入力演算データの要素が零値などの特定値と一致する場合には、被演算データの値に拘わらず、その演算結果が一意に決定される場合であっても、入力演算データの要素が特定値と一致するか否かに拘わらず、常に全ての被演算データを読み出して所定の演算処理を実施するため、無駄なデータ転送と演算処理が実施される課題があった。
【０００５】
例えば、外部記憶装置に格納されている被演算データである行列Ｍと、入力演算データであるベクトルｖの積演算は、行列Ｍを読み出した後に、次のような演算が行われる。
【数１】
2004240860.tif 000003
上記のように、行列Ｍとベクトルｖの積の演算結果は要素数ｎのベクトルｗとなる。このとき、ベクトルｗのｉ番目の要素ｗｉは、行列のｉ番目の行ベクトルＭｉとベクトルｖとの内積計算によって求められる。
ここで、ｖｊの値が０ならば、対応するＭｉのｊ番目の要素Ｍｉｊに対してＭｉｊ×０＝０となるため、ＭｉｊはＭｉとｖの内積計算の結果に影響を与えない。よって、行列とベクトルの積の演算において、ベクトルｖの要素ｖｊの値が０ならば、行列の列データ（Ｍ１ｊ  Ｍ２ｊ・・・Ｍｎｊ）は積演算の実施に必要のないデータである。
【０００６】
この発明は上記のような課題を解決するためになされたもので、無駄なデータ転送や演算処理を省略して、効率よくデータ演算を実施することができるデータ演算装置を得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係るデータ演算装置は、判定手段の判定結果が特定値と一致しない旨を示す場合、外部記憶装置に格納されている被演算データの中から、その入力演算データの要素に対応する被演算データを読み出し、その要素と被演算データ間で所定の演算を実施して、その演算結果を出力する一方、判定手段の判定結果が特定値と一致する旨を示す場合、一意に特定される固定値を演算結果として出力するようにしたものである。
【０００８】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるデータ演算装置を示す構成図であり、図において、外部記憶装置１は表形式の被演算データを格納している。入力部２は例えばユーザから与えられる入力演算データＸを入力する。
演算処理部３は判定部４、演算実施部５、結果出力部６及び内部記憶装置７から構成され、判定部４は入力演算データＸの要素ｘｉ（ｉ＝１，２，・・・，ｎ）が特定値Ｑと一致するか否かを判定する。なお、判定部４は判定手段を構成している。演算実施部５は判定部４の判定結果が特定値Ｑと一致しない旨を示す場合、外部記憶装置１に格納されている被演算データの中から、その入力演算データＸの要素ｘｉに対応する被演算データＹを読み出して、その被演算データＹを一時的に内部記憶装置７に格納したのち、その要素ｘｉと被演算データＹ間で所定の演算を実施する。なお、演算実施部５は演算実施手段を構成している。
【０００９】
結果出力部６は判定部４の判定結果が特定値Ｑと一致する旨を示す場合、一意に特定される固定値Ｒを演算結果Ｚとして出力し、その判定結果が特定値Ｑと一致しない旨を示す場合、演算実施部５の演算結果Ｚを出力する。なお、結果出力部６は演算結果出力手段を構成している。演算結果提示部８は結果出力部６から演算結果Ｚを受けると、その演算結果Ｚを他の計算機に出力したり、ディスプレイに表示したりすることにより、その演算結果Ｚを提示する。
図２はこの発明の実施の形態１によるデータ演算装置の処理内容を示すフローチャートである。
【００１０】
次に動作について説明する。
ただし、この実施の形態１では、説明の簡単化のため２項演算を実施する場合について説明する。具体的には、入力演算データＸの要素ｘｉと、その要素ｘｉに対応する被演算データＹとの積演算を実施する場合について説明する。
まず、入力部２が例えばユーザから与えられる入力演算データＸを入力すると（ステップＳＴ１）、判定部４は、入力演算データＸの要素ｘｉが特定値Ｑと一致するか否かを判定する（ステップＳＴ２）。
即ち、積演算を実施する場合、入力演算データＸの要素ｘｉが０の場合、被演算データＹが如何なる値であっても、その演算結果Ｚは０になるので、入力演算データＸの要素ｘｉが零値（＝特定値Ｑ）であるか否かを判定する。
【００１１】
演算実施部５は、判定部４の判定結果が零値（＝特定値Ｑ）と一致しない旨を示す場合、積演算の演算結果Ｚが一意に特定されないので（必ずしも演算結果Ｚが０にならない）、外部記憶装置１に格納されている被演算データの中から、その入力演算データＸの要素ｘｉに対応する被演算データＹを読み出して、その被演算データＹを一時的に内部記憶装置７に格納し（ステップＳＴ３）、その後、その要素ｘｉと被演算データＹ間で積演算を実施する（ステップＳＴ４）。
【００１２】
ここで、被演算データの読み出し方法であるが、図３に示すような表形式の被演算データを読み出す場合、一般的には、表形式の被演算データは行方向に結合させて外部記憶装置１に記録されるため、全ての被演算データのうち、演算の実施に必要な被演算データが一部のデータ１１のみであっても、一度必要な行１２を読み出した後、その行１２から必要な列（データ１１）を抽出する必要があった。
しかし、この実施の形態１の演算実施部５は、入力演算データＸの要素ｘｉが零値（＝特定値Ｑ）と一致しない場合に限り、外部記憶装置１から演算に必要な被演算データを読み出すようにしているので、図４に示すように、演算の実施に必要な被演算データ１３（列データ）のみが読み出され、不要な列のデータを読み出す手間が省かれる。
【００１３】
結果出力部６は、判定部４の判定結果が零値（＝特定値Ｑ）と一致しない旨を示す場合、演算実施部５の演算結果Ｚを演算結果提示部８に出力する（ステップＳＴ５）。一方、判定部４の判定結果が零値（＝特定値Ｑ）と一致する旨を示す場合、被演算データＹが如何なる値であっても、その演算結果Ｚが固定値Ｒ（＝０）になるので、その固定値Ｒを演算結果Ｚとして演算結果提示部８に出力する（ステップＳＴ６）。
演算結果提示部８は、結果出力部６から演算結果Ｚを受けると、その演算結果Ｚを他の計算機に出力したり、ディスプレイに表示したりすることにより、その演算結果Ｚを提示する（ステップＳＴ７）。
【００１４】
以上で明らかなように、この実施の形態１によれば、判定部４の判定結果が特定値Ｑと一致しない旨を示す場合、外部記憶装置１に格納されている被演算データの中から、その入力演算データＸの要素ｘｉに対応する被演算データＹを読み出し、その要素ｘｉと被演算データＹ間で所定の演算を実施して、その演算結果Ｚを出力する一方、判定部４の判定結果が特定値Ｑと一致する旨を示す場合、一意に特定される固定値Ｒを演算結果Ｚとして出力するように構成したので、無駄なデータ転送や演算処理を省略して、効率よくデータ演算を実施することができる効果を奏する。
また、この実施の形態１によれば、表形式の被演算データが外部記憶装置１に格納されている場合、入力演算データＸの要素ｘｉに対応する被演算データの列データを読み出すように構成したので、表形式の被演算データのうち、演算の実施に必要なデータのみを効率よく読み出すことができる効果を奏する。
【００１５】
なお、この実施の形態１では、入力演算データＸの要素ｘｉが０のとき、被演算データＹの読み出しを行わずに固定値Ｒを演算結果Ｚとして出力するものについて示したが、被演算データＹの値に拘わらず演算結果Ｚが一意に特定されるような演算であれば、上記のような積演算に限るものではない。
例えば、被演算データＹに対して入力演算データＸの要素ｘｉ＝０を累乗する場合や、入力演算データｘｉが真であるときに行う被演算データＹと入力演算データＸの要素ｘｉとの論理和や、入力演算データｘｉが偽であるときに行う被演算データＹと入力演算データＸの要素ｘｉとの論理積などにおいては、被演算データＹの値に拘わらず演算結果Ｚが一意に特定されるので、被演算データＹの読み出しを行わずに固定値Ｒを演算結果Ｚとして出力するようにしてもよい。
また、巨大な値による商の演算は０との積演算とみなして、被演算データＹの読み出しを行わずに固定値Ｒを演算結果Ｚとして出力するようにしてもよい。
【００１６】
実施の形態２．
上記実施の形態１では、表形式の被演算データが外部記憶装置１に格納されている場合、入力演算データＸの要素ｘｉに対応する被演算データの列データを読み出すものについて示したが、入力演算データがベクトルのデータであり、外部記憶装置１に格納されている被演算データが行列のデータである場合、そのベクトルの要素に対応する行列の列データを読み出すようにしてもよい。
図５及び図６はこの発明の実施の形態２によるデータ演算装置の処理内容を示すフローチャートである。
【００１７】
具体的には下記の通りである。
例えば、ｎ行ｍ列の行列Ｍと、要素数ｍのベクトルｖとの積演算を実施する場合、入力部２がベクトルｖを入力すると（ステップＳＴ１１）、判定部４は、ベクトルｖの要素が特定値Ｑと一致するか否かを判定して、行列の読み出し列番号リストＣを生成する（ステップＳＴ１２）。
ここで、読み出し列番号リストＣは、行列Ｍとベクトルｖの積演算を実施する際に必要な行列の列番号からなる集合であり、例えば、ベクトルｖの要素ｖｉ，ｖｊの値が０でないとき、読み出し列番号リストはＣ＝｛ｉ，ｊ｝のように生成する。Ｃ＝｛ｉ，ｊ｝は、行列の第ｉ列と第ｊ列を読み出す必要があることを示している。
【００１８】
具体的には、判定部４は、ベクトルｖと空の読み出し列番号リストＣ＝φが与えられると（ステップＳＴ２１）、ベクトルｖの各要素ｖｉが０であるか否かを判定する（ステップＳＴ２２）。
そして、ｖｉ＝０ならば、読み出し列番号リストＣには何も加えず、ｖｉ≠０ならば、読み出し列番号リストＣにｉを加える（ステップＳＴ２３）。
ベクトルｖの全ての要素に対して、以上の処理が行われたら、最終的な読み出し列番号リストＣを出力する（ステップＳＴ２４，ＳＴ２５）。
【００１９】
演算実施部５は、上記のようにして判定部４が読み出し列番号リストＣを生成すると、その読み出し列番号リストＣにしたがって外部記憶装置１から列データを選択的に読み出す処理を実施する（ステップＳＴ１３）。
例えば、読み出し列番号リストがＣ＝｛ｊ，ｋ｝の場合、行列Ｍの第ｊ列と第ｋ列のみを読み出し、それ以外の列は読み出さないようにする。
演算実施部５は、外部記憶装置１から行列Ｍのｊ、ｋ列目の列データを選択的に読み出すと、その読み出した行列データとベクトルｖとの積演算を実施する（ステップＳＴ１４）。
【数２】
2004240860.tif 000004
【００２０】
結果出力部６は、演算実施部５が行データＭｉとベクトルｖとの積演算を実施すると、その演算結果ｗｉを演算結果提示部８に出力する（ステップＳＴ１５）。
演算結果提示部８は、結果出力部６から演算結果ｗｉを受けると、その演算結果ｗｉを他の計算機に出力したり、ディスプレイに表示したりすることにより、その演算結果ｗｉを提示する。
【００２１】
以上で明らかなように、この実施の形態２によれば、入力演算データがベクトルのデータであり、外部記憶装置１に格納されている被演算データが行列のデータである場合、そのベクトルの要素に対応する行列の列データを読み出すように構成したので、無駄なデータ転送や演算処理を省略して、効率よくデータ演算を実施することができる効果を奏する。
【００２２】
実施の形態３．
上記実施の形態１，２では、特に言及していないが、表形式又は行列の被演算データを外部記憶装置１に格納する際、その被演算データの列データをそれぞれブロック化し、各ブロックを列方向に順番に結合して格納するようにしてもよい。具体的には下記の通りである。
【００２３】
まず、一般的な外部記憶上のリレーショナルデータベースや行列のような表形式のデータへのアクセスは、図８に示すように行方向に行われる。例えば、図８のような表形式のデータから列２１のデータが欲しいときでも、行方向にアクセスが行われる。
また、上記実施の形態２に示すような行列とベクトルの積演算を実施する場合においても、外部記憶装置１から読み出す行列のデータは、図９に示すように、ベクトルｖの要素（９，１７，２）に対応する図中太枠に囲まれているデータであるが、そのデータを読み出すには、行列に対して行方向のアクセスが行われるため、結果的には全ての行列の要素を読むことになる。
【００２４】
そこで、この実施の形態３では、外部記憶装置１に対するアクセスの効率化を図るため、図７に示すように、予め、設定した自然数Ｎに対して、元のデータから２２ａ，２２ｂのように列毎にＮ行分の要素を順次取り出して、ブロック２３ａ，２３ｂを生成する。ここで、表形式のデータの各要素及び各行の長さは固定長でも可変長でもよい。
上記のようにして、ブロック２３ａ，２３ｂの生成を完了すると、次に分割されている全てのブロック２３ａ，２３ｂを列方向に順番に結合し、ブロック化転置ファイル２４を生成する。この方法において、ブロック２３ａ，２３ｂに圧縮などのデータ変換を施してからブロック化転置ファイル２４を生成してもよい。ブロック化転置ファイル２４を構成するデータは、図７に示すように、ブロック単位（列方向）にデータを読むことが可能となる。
【００２５】
例えば、行列とベクトルの積演算を実施する場合、行列データの読み出し時には、図１０に示すように、行列Ｍの要素を読むことになる。ベクトルｖが与えられると、ベクトルｖの値が０でない要素に対応する行列Ｍの列（図中太枠に囲まれているデータ）の読み出しを行う。
外部記憶装置１に格納された行列Ｍに対して、ブロック（列）単位でのアクセスが行われ、行列データの中で演算の実施に必要な列がブロック単位で内部記憶装置７に読み出される。
【００２６】
以上で明らかなように、この実施の形態３によれば、表形式又は行列の被演算データを外部記憶装置１に格納する際、その被演算データの列データをそれぞれブロック化し、各ブロックを列方向に順番に結合して格納するように構成したので、被演算データを列単位で読み出す際、外部記憶装置１に対する無駄なアクセスが発生せず、効率よく表形式又は行列の被演算データを読み出すことができる効果を奏する。
【００２７】
実施の形態４．
上記実施の形態１では、入力演算データＸの要素ｘｉが特定値Ｑと一致しない場合、特定値Ｑと一致しない旨を示す判定結果を出力するものについて示したが、入力演算データＸの要素ｘｉが特定値Ｑと一致しない場合でも、その要素ｘｉが所定の条件を満足する場合には、その要素ｘｉが特定値Ｑと一致する旨を示す判定結果を出力するようにしてもよい。なお、この発明の実施の形態４では、判定部４が近似手段を構成する。
図１１はこの発明の実施の形態４によるデータ演算装置の処理内容を示すフローチャートである。
【００２８】
具体的には次の通りである。
まず、入力部２が例えばユーザから与えられる入力演算データＸを入力すると（ステップＳＴ１）、判定部４は、入力演算データＸの要素ｘｉ（ｉ＝１，２，・・・，ｎ）が特定値Ｑと一致するか否かを判定する（ステップＳＴ２）。
判定部４は、入力演算データＸの要素ｘｉが特定値Ｑと一致しない場合、その要素ｘｉが所定の条件を満足しているか否かを判定する。即ち、入力演算データＸの要素ｘｉを特定値Ｑに近似することが可能であるか否かを判定する（ステップＳＴ３１）。
例えば、｜ｘｉ−Ｑ｜≦Ｔが成立する場合には、入力演算データＸの要素ｘｉを特定値Ｑに近似することが可能であると判定する。ただし、Ｔは予め設定された閾値である。
【００２９】
演算実施部５は、入力演算データＸの要素ｘｉを特定値Ｑに近似することが不可能であると判定された場合には、上記実施の形態１と同様に、被演算データを読み出して所定の演算を実施する（ステップＳＴ３，ＳＴ４）。
結果出力部６は、入力演算データＸの要素ｘｉを特定値Ｑに近似することが不可能であると判定された場合には、上記実施の形態１と同様に、演算実施部５の演算結果Ｚを演算結果提示部８に出力する（ステップＳＴ５）。
一方、判定部４の判定結果が零値（＝特定値Ｑ）と一致する旨を示す場合、あるいは、入力演算データＸの要素ｘｉを特定値Ｑに近似することが可能であると判定された場合には、上記実施の形態１と同様に、固定値Ｒを演算結果Ｚとして演算結果提示部８に出力する（ステップＳＴ６）。
演算結果提示部８は、結果出力部６から演算結果Ｚを受けると、その演算結果Ｚを他の計算機に出力したり、ディスプレイに表示したりすることにより、その演算結果Ｚを提示する（ステップＳＴ７）。
【００３０】
以上で明らかなように、この実施の形態４によれば、入力演算データＸの要素ｘｉが特定値Ｑと一致しない場合でも、その要素ｘｉが所定の条件を満足する場合には、その要素ｘｉが特定値Ｑと一致する旨を示す判定結果を出力するように構成したので、上記実施の形態１よりも更に効率よくデータ演算を実施することができる効果を奏する。
【００３１】
実施の形態５．
上記実施の形態２では、ベクトルｖの要素が特定値Ｑと一致するか否かを判定して、行列の読み出し列番号リストＣを生成するものについて示したが、ベクトルｖの要素ｖｉと特定値ｑとの差の絶対値が閾値Ｔより小さい場合、その要素ｖｉを特定値ｑに近似（特定値ｑ＝０の場合は、零値に近似）するようにしてもよい。
図１２及び図１３はこの発明の実施の形態５によるデータ演算装置の処理内容を示すフローチャートである。
【００３２】
具体的には次の通りである。
判定部４は、ベクトルｖと閾値Ｔが与えられると（ステップＳＴ４１）、各要素ｖｉと特定値ｑとの差の絶対値を閾値Ｔと比較する（ステップＳＴ４２）。
そして、ベクトルｖの要素ｖｉと特定値ｑとの差の絶対値が閾値Ｔより小さい場合には（｜ｖｉ−ｑ｜≦Ｔ）、ベクトルｖの要素ｖｉの値を０（ｑ＝０の場合）に近似して出力する（ステップＳＴ４３，ＳＴ４４，ＳＴ４５）。
一方、ベクトルｖの要素ｖｉと特定値ｑとの差の絶対値が閾値Ｔより大きい場合には（｜ｖｉ−ｑ｜＞Ｔ）、ベクトルｖの要素ｖｉをそのまま出力する（ステップＳＴ４４，ＳＴ４５）。
【００３３】
もう少し具体的に説明すると、ベクトルｖとしてｖ＝（３０，２，１０）が与えられ、特定値ｑとしてｑ＝０が与えられ、閾値ＴとしてＴ＝３が与えられた場合（ステップＳＴ１１）、ｖ１＞３，ｖ２≦３，ｖ３＞３であるためｖ２の値を０に近似する（ステップＳＴ５１）。近似後のベクトルをＶ’＝（３０，０，１０）とする。
判定部４は、近似後のベクトルｖ’の各要素ｖｉが０であるか否かを判定し、ｖｉ＝０ならば、読み出し列番号リストＣには何も加えず、ｖｉ≠０ならば、読み出し列番号リストＣにｉを加えることにより、読み出し列番号リストＣを生成する（ステップＳＴ１２）。即ち、ｖ１≠０，ｖ２＝０，ｖ３≠０なので、読み出し列番号リストＣとしてＣ＝｛１，３｝を生成する。
【００３４】
演算実施部５は、上記のようにして判定部４が読み出し列番号リストＣを生成すると、上記実施の形態２と同様に、その読み出し列番号リストＣにしたがって外部記憶装置１から列データを選択的に読み出す処理を実施する（ステップＳＴ１３）。
例えば、外部記憶装置１に以下の行列Ｍが格納されている場合、その行列Ｍの第１列と第３列のみを読み出すようにする。ここで、読み出された行列データをＭ’とする。
【数３】
2004240860.tif 000005
【００３５】
演算実施部５は、外部記憶装置１から列データＭ’を選択的に読み出すと、下記に示すように、その列データＭ’と近似後のベクトルｖ’との積演算を実施する（ステップＳＴ１４）。下式において、“＿”はデータが読み出されていないことを示している。
【数４】
2004240860.tif 000006
【００３６】
結果出力部６は、演算実施部５が列データＭ’と近似後のベクトルｖ’との積演算を実施すると、その演算結果を演算結果提示部８に出力する（ステップＳＴ１５）
演算結果提示部８は、結果出力部６から演算結果を受けると、その演算結果を他の計算機に出力したり、ディスプレイに表示したりすることにより、その演算結果を提示する。
【００３７】
以上で明らかなように、この実施の形態５によれば、ベクトルｖの要素ｖｉと特定値ｑとの差の絶対値が閾値Ｔより小さい場合、その要素ｖｉを特定値ｑに近似（特定値ｑ＝０の場合は、零値に近似）するように構成したので、上記実施の形態２よりも更に効率よくデータ演算を実施することができる効果を奏する。
【００３８】
なお、この実施の形態５では、ベクトルｖの要素ｖｉと特定値ｑとの差の絶対値が閾値Ｔより小さいとき、ベクトルｖの要素ｖｉの値を０に近似するものについて示したが、閾値Ｔを次のようにして設定してもよい。
例えば、ユーザが所定のパーセンテージＰを設定し、ベクトルｖの要素ｖｉと特定値ｑとの差の絶対値の最大値、最小値又は平均値のＰ％を閾値Ｔに設定するようにする。
【００３９】
実施の形態６．
上記実施の形態５では、ベクトルｖの要素ｖｉと特定値ｑとの差の絶対値が閾値Ｔより小さいとき、ベクトルｖの要素ｖｉの値を特定値ｑに近似するものについて示したが、ベクトルｖを構成する複数の要素ｖｉの絶対値を相互に比較し、他の要素より絶対値が小さい数個の要素を零値に近似するようにしてもよい。
図１４はこの発明の実施の形態６によるデータ演算装置の処理内容を示すフローチャートである。
【００４０】
具体的には次の通りである。
判定部４は、ベクトルｖと近似条件が与えられると（ステップＳＴ６１）、その近似条件にしたがってベクトルｖの要素ｖｉを近似する。ここでは、説明の便宜上、ベクトルｖの要素ｖｉの絶対値を相互に比較したとき、絶対値が小さい下位Ｎ個（例えば、Ｎ＝３）の要素の値を０に近似するものとする。
【００４１】
即ち、判定部４は、ベクトルｖと近似条件が与えられると、そのベクトルｖの要素ｖｉを絶対値の降順に並び替えて、リストＡからリストＢを生成する（ステップＳＴ６２）。リストＡは与えられたベクトルｖの要素ｖｉを示し、リストＢは並び替えられた後のベクトルｖの要素ｖｉを示している。
次に、判定部４は、リストＣに示すように、絶対値が小さい下位Ｎ個（例えば、Ｎ＝３）の要素の値を０に近似する（ステップＳＴ６３）。
【００４２】
判定部４は、絶対値が小さい下位Ｎ個（例えば、Ｎ＝３）の要素の値を０に近似すると、ベクトルｖの要素Ｎｏ．の昇順に、要素ｖｉの並び替えを実施し、リストＣからリストＤを生成する（ステップＳＴ６４）。
判定部４は、リストＤに係るベクトルを近似後のベクトルｖ’として、以下使用する（ステップＳＴ６５）。
【００４３】
以上で明らかなように、この実施の形態６によれば、ベクトルｖを構成する複数の要素ｖｉの絶対値を相互に比較し、他の要素より絶対値が小さい数個の要素を零値に近似するように構成したので、上記実施の形態５と同様に、効率よくデータ演算を実施することができる効果を奏する。
【００４４】
なお、この実施の形態６では、特にＮ個の設定方法について言及していないが、例えば、ある割合Ｐを設定して、ベクトルｖの要素数のＰ％をＮとするようにしてもよい。
【００４５】
【発明の効果】
以上のように、この発明によれば、判定手段の判定結果が特定値と一致しない旨を示す場合、外部記憶装置に格納されている被演算データの中から、その入力演算データの要素に対応する被演算データを読み出し、その要素と被演算データ間で所定の演算を実施して、その演算結果を出力する一方、判定手段の判定結果が特定値と一致する旨を示す場合、一意に特定される固定値を演算結果として出力するように構成したので、無駄なデータ転送や演算処理を省略して、効率よくデータ演算を実施することができる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるデータ演算装置を示す構成図である。
【図２】この発明の実施の形態１によるデータ演算装置の処理内容を示すフローチャートである。
【図３】表形式の被演算データの読み出しを示す説明図である。
【図４】表形式の被演算データの読み出しを示す説明図である。
【図５】この発明の実施の形態２によるデータ演算装置の処理内容を示すフローチャートである。
【図６】この発明の実施の形態２によるデータ演算装置の処理内容を示すフローチャートである。
【図７】ブロック単位（列方向）のデータの読み出しを示す説明図である。
【図８】行方向のアクセスを示す説明図である。
【図９】行方向のアクセスを示す説明図である。
【図１０】ブロック単位（列方向）のデータの読み出しを示す説明図である。
【図１１】この発明の実施の形態４によるデータ演算装置の処理内容を示すフローチャートである。
【図１２】この発明の実施の形態５によるデータ演算装置の処理内容を示すフローチャートである。
【図１３】この発明の実施の形態５によるデータ演算装置の処理内容を示すフローチャートである。
【図１４】この発明の実施の形態６によるデータ演算装置の処理内容を示すフローチャートである。
【符号の説明】
１  外部記憶装置、２  入力部、３  演算処理部、４  判定部（判定手段、近似手段）、５  演算実施部（演算実施手段）、６  結果出力部（演算結果出力手段）、７  内部記憶装置、８  演算結果提示部、１１  一部のデータ、１２  必要な行、１３  必要な被演算データ、２１  列、２２ａ，２２ｂ  Ｎ行分の要素、２３ａ，２３ｂ  ブロック、２４  ブロック化転置ファイル。
【図１】
2004240860.tif 000007
【図２】
2004240860.tif 000008
【図３】
2004240860.tif 000009
【図４】
2004240860.tif 000010
【図５】
2004240860.tif 000011
【図６】
2004240860.tif 000012
【図７】
2004240860.tif 000013
【図８】
2004240860.tif 000014
【図９】
2004240860.tif 000015
【図１０】
2004240860.tif 000016
【図１１】
2004240860.tif 000017
【図１２】
2004240860.tif 000018
【図１３】
2004240860.tif 000019
【図１４】
2004240860.tif 000020