(57)【要約】【課題】容易に実装することのできる平方根演算装置を提供する。【解決手段】所定の数を２進数表記に変換する２進数表記手段２２と、２進数表記された所定の数の桁数を算出する桁数算出手段２３と、２進数表記された所定の数の上位２番目のビットから、所定の有効数字の桁数までの２進数の組み合わせと、算出した桁数を２で割った余りの数に応じて決定された定数を取得する定数取得手段２６と、２進数表記された所定の数に応じて決定される、ビットシフト量を取得するビットシフト量算出手段２４と、定数を、取得したビットシフト量のビットシフトを実行するビットシフト実行手段２７と、ビットシフトを実行した定数を、所定の数の平方根として出力する出力装置１２を備えている。【選択図】      図１
2004178188.tif 000002
【特許請求の範囲】
【請求項１】
所定の数を、近似して演算する演算方法において、
前記所定の数を２進数表記に変換するステップと、
２進数表記された前記所定の数の属性に応じて決定される定数を取得するステップと、
前記２進数表記された前記所定の数の属性に応じて決定されるビットシフト量を取得するステップと、
前記定数を、取得した前記ビットシフト量のビットシフトを実行するステップと、
前記ビットシフトを実行した前記定数を、前記所定の数の演算結果として出力するステップ
とを備えることを特徴とする演算方法。
【請求項２】
所定の数の平方根を、近似して演算する平方根演算方法において、
前記所定の数が整数の場合、
前記所定の数を２進数表記に変換するステップと、
２進数表記された前記所定の数の桁数を算出するステップと、
前記２進数表記された前記所定の数の上位２番目のビットから、所定の有効数字の桁数までの２進数の組み合わせと、算出された前記所定の数の桁数を２で割った余りの数と、に応じて決定された定数を取得するステップと、
前記２進数表記された前記所定の数の桁数に応じて決定される、ビットシフト量を取得するステップと、
前記定数を、取得した前記ビットシフト量のビットシフトを実行するステップと、
前記ビットシフトを実行した前記定数を、前記所定の数の平方根として出力するステップ
とを備えることを特徴とする平方根演算方法。
【請求項３】
前記所定の数が小数の場合、
前記所定の数を２進数表記に変換するステップにおいて、前記所定の数が整数になるように、前記所定の数を乗数で乗して、乗した前記所定の数を２進数表記に変換し、
前記所定の数の平方根として出力するステップにおいて、前記ビットシフトを実行した前記定数を、前記乗数の平方根で除して、前記所定の数の平方根として出力する
ことを特徴とする請求項２に記載の平方根演算方法。
【請求項４】
所定の数の累乗根を、近似して演算する累乗根演算方法において、
前記所定の数が整数の場合、
前記所定の数を２進数表記に変換するステップと、
２進数表記された前記所定の数の桁数を算出するステップと、
前記２進数表記された前記所定の数の上位２番目のビットから、所定の有効数字の桁数までの２進数の組み合わせと、前記累乗根の累乗根数と、算出された前記所定の数の桁数を前記累乗根の累乗根数で割った余りの数と、に応じて決定された定数を取得するステップと、
前記２進数表記された前記所定の数の桁数と前記累乗根数に応じて決定される、ビットシフト量を取得するステップと、
前記定数を、取得した前記ビットシフト量のビットシフトを実行するステップと、
前記ビットシフトを実行した前記定数を、前記所定の数の累乗根として出力するステップ
とを備えることを特徴とする累乗根演算方法。
【請求項５】
前記所定の数が小数の場合、
前記所定の数を２進数表記に変換するステップにおいて、前記所定の数が整数になるように、前記所定の数を乗数で乗して、乗した前記所定の数を２進数表記に変換し、
前記所定の数の累乗根として出力するステップにおいて、前記ビットシフトを実行した前記定数を、前記乗数の累乗根で除して、前記所定の数の累乗根として出力する
ことを特徴とする請求項４に記載の累乗根演算方法。
【請求項６】
所定の数の累乗を、近似して演算する累乗演算方法において、
前記所定の数が整数の場合、
前記所定の数を２進数表記に変換するステップと、
２進数表記された前記所定の数の桁数を算出するステップと、
前記２進数表記された前記所定の数の上位２番目のビットから、所定の有効数字の桁数までの、２進数の組み合わせと、累乗の累乗数に応じて決定された定数を取得するステップと、
前記２進数表記された前記所定の数の桁数と前記累乗数と、に応じて決定される、ビットシフト量を取得するステップと、
前記定数を、取得した前記ビットシフト量のビットシフトを実行するステップと、
前記ビットシフトを実行した前記定数を、前記所定の数の累乗として出力するステップ
とを備えることを特徴とする累乗演算方法。
【請求項７】
前記所定の数が小数の場合、
前記所定の数を２進数表記に変換するステップにおいて、前記所定の数が整数になるように、前記所定の数を乗数で乗して、乗した前記所定の数を２進数表記に変換し、
前記所定の数の累乗として出力するステップにおいて、前記ビットシフトを実行した前記定数を、前記乗数の累乗で除して、前記所定の数の累乗として出力する
ことを特徴とする請求項６に記載の累乗演算方法。
【請求項８】
所定の数のｇ／ｈ乗（ｇ、ｈは整数）を、近似して演算するｇ／ｈ乗演算方法において、
前記所定の数が整数の場合、
前記所定の数を２進数表記に変換するステップと、
２進数表記された前記所定の数の桁数を算出するステップと、
前記２進数表記された前記所定の数の上位２番目のビットから、所定の有効数字の桁数までの２進数の組み合わせと、前記ｇと、前記ｈと、算出された前記所定の数の桁数を前記ｈで割った余りの数と、に応じて決定された定数を取得するステップと、
前記２進数表記された前記所定の数の桁数と前記累乗数に応じて決定される、ビットシフト量を取得するステップと、
前記定数を、取得した前記ビットシフト量のビットシフトを実行するステップと、
前記ビットシフトを実行した前記定数を、前記所定の数のｇ／ｈ乗として出力するステップ
とを備えることを特徴とするｇ／ｈ乗演算方法。
【請求項９】
前記所定の数が小数の場合、
前記所定の数を２進数表記に変換するステップにおいて、前記所定の数が整数になるように、前記所定の数を乗数で乗して、乗した前記所定の数を２進数表記に変換し、
前記所定の数のｇ／ｈ乗として出力するステップにおいて、前記ビットシフトを実行した前記定数を、前記乗数のｇ／ｈ乗で除して、前記所定の数のｇ／ｈ乗として出力する
ことを特徴とする請求項８に記載のｇ／ｈ乗演算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、容易に実装することのできる演算方法、平方根演算方法、累乗根演算方法、累乗演算方法及びｇ／ｈ乗演算方法に関する。
【０００２】
【従来の技術】
近年、ハードワイヤードロジック等の回路を用いて様々な計算を行うことが増えてきた。
【０００３】
例えば、ニュートン法を用いて所定の数の平方根を求める場合の計算方法を説明する。
【０００４】
まず、図１２に示すように、以下のような式１で示した曲線ｌを考える。
【０００５】
【数１】
2004178188.tif 000003
この式１の両辺を微分すると、以下の式２のようになる。
【０００６】
【数２】
2004178188.tif 000004
ここで、図１２において、（ｘ０，  ０）、（ｘ１，  ０）、（ｘ０，  ｙ（ｘ０））を頂点とする三角形に注目すると、以下のような式３を得ることができる。
【０００７】
【数３】
2004178188.tif 000005
式３を参照して、ｘ１について解くと、式４の様になる。
【０００８】
【数４】
2004178188.tif 000006
これを、ｘｎについて一般化すると、式５の様になる。
【０００９】
【数５】
2004178188.tif 000007
即ち、所定の数の平方根を求める場合、式５の除算の計算を、繰り返しを行わなければならない。
【００１０】
この様に、ニュートン法で所定の数の平方根を求める場合、除算と繰り返し処理が必要となり、ハードワイヤードロジックでの実装が難しくなる。
【００１１】
例えば、平方根を演算する装置として、１回の開平演算ステップで被開平数を４ビットずつ除算して２ビットの平方根を算出し、ｎ／２クロックでｎ桁の平方根を得るものがある（例えば、特許文献１。）。
【００１２】
一方、１クロックで一つの計算を行うハードワイヤードロジックを実装することにより、より簡易に素早く計算を行うことが求められている。
【００１３】
【特許文献１】
特開平１０−７８９８１
【００１４】
【発明が解決しようとする課題】
しかし、ハードワイヤードロジックで平方根の計算を実装するために、計算された平方根を記録したテーブルを参照する方法を挙げることができる。この方法では、演算速度は高速になる。しかし、予想される入力値のダイナミックレンジの大きさだけメモリ量が必要になるので、用意しなければならないメモリ量が莫大に大きくなってしまう。
【００１５】
従って、本発明の目的は、容易に実装することのできる演算方法、平方根演算方法、累乗根演算方法、累乗演算方法及びｇ／ｈ乗演算方法を提供することである。
【００１６】
【課題を解決するための手段】
上記課題を解決するために、本発明の第１の特徴は、所定の数を、近似して演算する演算方法に関する。即ち、本発明の第１の特徴に係る演算方法は、所定の数を２進数表記に変換するステップと、２進数表記された所定の数の属性に応じて決定される定数を取得するステップと、２進数表記された所定の数の属性に応じて決定されるビットシフト量を取得するステップと、定数を、取得したビットシフト量のビットシフトを実行するステップと、ビットシフトを実行した定数を、所定の数の演算結果として出力するステップとを備える。
【００１７】
ここで、本発明の第１の特徴に係る演算方法で行う演算は、所定の数の平方根、累乗根、累乗、ｇ／ｈ乗（ｇ及びｈは整数）などの計算のことである。
【００１８】
本発明の第１の特徴に係る演算方法によれば、所定の数を２進数表記で表し、そのビットパターンや桁数などの、２進数表記された所定の数の属性に応じて、定数を取得し、その定数をビットシフトすることにより、所定の数の演算結果の近似値を得ることができる。定数をビットシフトするので、煩雑な計算を行うことなく、演算結果を取得することができる。
【００１９】
本発明の第２の特徴は、所定の数の平方根を、近似して演算する平方根演算方法に関する。即ち、本発明の第２の特徴に係る平方根演算方法は、所定の数が整数の場合、所定の数を２進数表記に変換するステップと、２進数表記された所定の数の桁数を算出するステップと、２進数表記された所定の数の上位２番目のビットから、所定の有効数字の桁数までの２進数の組み合わせと、算出された前記所定の数の桁数を２で割った余りの数と、に応じて決定された定数を取得するステップと、２進数表記された所定の数の桁数に応じて決定される、ビットシフト量を取得するステップと、定数を、取得したビットシフト量のビットシフトを実行するステップと、ビットシフトを実行した定数を、所定の数の平方根として出力するステップとを備える。
【００２０】
本発明の第２の特徴に係る平方根演算方法によれば、予め有効桁数を決めて、２進数で示した有効数字の数字パターンに対応づけた定数を取得し、その定数を使って平方根の値を近似することにより、簡単な回路で、平方根の算出を実現することができる。
【００２１】
ここで更に、所定の数が小数の場合、所定の数を２進数表記に変換するステップにおいて、所定の数が整数になるように、所定の数を乗数で乗して、乗した所定の数を２進数表記に変換し、所定の数の平方根として出力するステップにおいて、ビットシフトを実行した定数を、乗数の平方根で除して、所定の数の平方根として出力することが好ましい。
【００２２】
これにより、小数を含む数の場合も、同様の方法で算出することができる。
【００２３】
本発明の第３の特徴は、所定の数の累乗根を、近似して演算する累乗根演算方法に関する。即ち、本発明の第３の特徴に係る累乗根演算方法は、所定の数が整数の場合、所定の数を２進数表記に変換するステップと、２進数表記された所定の数の桁数を算出するステップと、２進数表記された所定の数の上位２番目のビットから、所定の有効数字の桁数までの、２進数の組み合わせと、累乗根の累乗根数と、算出された前記所定の数の桁数を累乗根の累乗根数で割った余りの数と、に応じて決定された定数を取得するステップと、２進数表記された所定の数の桁数と累乗根数に応じて決定される、ビットシフト量を取得するステップと、定数を、取得したビットシフト量のビットシフトを実行するステップと、ビットシフトを実行した定数を、所定の数の累乗根として出力するステップとを備える。
【００２４】
本発明の第３の特徴に係る累乗根演算方法は、本発明の第２の特徴に係る平方根演算方法と同様の方法で、簡単な回路で累乗根の算出を実現することができる。
【００２５】
ここで更に、所定の数が小数の場合、所定の数を２進数表記に変換するステップにおいて、所定の数が整数になるように、所定の数を乗数で乗して、乗した所定の数を２進数表記に変換し、所定の数の累乗根として出力するステップにおいて、ビットシフトを実行した定数を、乗数の累乗根で除して、所定の数の累乗根として出力することが好ましい。
【００２６】
これにより、小数を含む数の場合も、同様の方法で算出することができる。
【００２７】
本発明の第４の特徴は、所定の数の累乗を、近似して演算する累乗演算方法に関する。即ち、本発明の第４の特徴に係る累乗演算方法は、所定の数が整数の場合、所定の数を２進数表記に変換するステップと、２進数表記された所定の数の桁数を算出するステップと、２進数表記された所定の数の上位２番目のビットから、所定の有効数字の桁数までの、２進数の組み合わせと、累乗の累乗数に応じて決定された定数を取得するステップと、２進数表記された所定の数の桁数と累乗数と、に応じて決定される、ビットシフト量を取得するステップと、定数を、取得したビットシフト量のビットシフトを実行するステップと、ビットシフトを実行した定数を、所定の数の累乗として出力するステップとを備える。
【００２８】
本発明の第４の特徴に係る累乗根演算方法は、本発明の第２の特徴に係る平方根演算方法と同様の方法で、簡単な回路で累乗の算出を実現することができる。
【００２９】
ここで更に、所定の数が小数の場合、所定の数を２進数表記に変換するステップにおいて、所定の数が整数になるように、所定の数を乗数で乗して、乗した所定の数を２進数表記に変換し、所定の数の累乗として出力するステップにおいて、ビットシフトを実行した定数を、乗数の累乗で除して、所定の数の累乗として出力することが好ましい。
【００３０】
これにより、小数を含む数の場合も、同様の方法で算出することができる。
【００３１】
本発明の第５の特徴は、所定の数のｇ／ｈ乗（ｇ、ｈは整数）を、近似して演算するｇ／ｈ乗演算方法に関する。即ち、本発明の第５の特徴に係るｇ／ｈ乗演算方法は、前記所定の数が整数の場合、前記所定の数を２進数表記に変換するステップと、２進数表記された前記所定の数の桁数を算出するステップと、前記２進数表記された前記所定の数の上位２番目のビットから、所定の有効数字の桁数までの２進数の組み合わせと、前記ｇと、前記ｈと、算出された前記所定の数の桁数を前記ｈで割った余りの数と、に応じて決定された定数を取得するステップと、前記２進数表記された前記所定の数の桁数と前記累乗数に応じて決定される、ビットシフト量を取得するステップと、前記定数を、取得した前記ビットシフト量のビットシフトを実行するステップと、前記ビットシフトを実行した前記定数を、前記所定の数の累乗として出力するステップとを備える。
【００３２】
本発明の第５の特徴に係るｇ／ｈ乗演算方法は、本発明の第２の特徴に係る平方根演算方法と同様の方法で、簡単な回路でｇ／ｈ乗の算出を実現することができる。
【００３３】
ここで更に、前記所定の数が小数の場合、前記所定の数を２進数表記に変換するステップにおいて、前記所定の数が整数になるように、前記所定の数を乗数で乗して、乗した前記所定の数を２進数表記に変換し、前記所定の数の累乗として出力するステップにおいて、前記ビットシフトを実行した前記定数を、前記乗数のｇ／ｈ乗で除して、前記所定の数のｇ／ｈ乗として出力するのが好ましい。
【００３４】
これにより、小数を含む数の場合も、同様の方法で算出することができる。
【００３５】
【発明の実施の形態】
次に、図面を参照して、本発明の最良の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、システム構成を示すブロック図等は模式的なものである。
【００３６】
（第１の実施の形態）
本発明の第１の実施の形態においては、整数ａの平方根を計算する場合について説明する。
【００３７】
図１を参照して、本発明の第１の実施の形態について説明する。
【００３８】
本発明の第１の実施の形態に係る演算装置１は、入力装置１１、出力装置１２、定数テーブル記憶装置１３、０判定手段２１、２進数表記手段２２、桁数算出手段２３、ビットシフト量算出手段２４、テーブルインデックス取得手段２５、定数取得手段２６、ビットシフト実行手段２７を備えている。
【００３９】
入力装置１１は、平方根演算装置の入力部分であり、平方根を求める数ａを入力する装置である。出力装置１２は、平方根演算装置の出力部分であり、求めた数ａの平方根を出力する装置である。
【００４０】
０判定手段２１は、入力装置１１から入力された数値が０であるか否か、判定する手段である。０である場合、０判定手段２１は、出力装置１２に０を出力する。０でない場合、０判定手段２１は、入力装置１１から入力された数ａを２進数表記手段２２に入力する。
【００４１】
２進数表記手段２２においては、０判定手段２１から入力された数ａを２進数表記に変換する。
【００４２】
ここで、入力された数ａを２進数表記に変換した場合の桁数をｋとすると、式６の様に表すことができる。
【００４３】
【数６】
2004178188.tif 000008
ここで、ｑｉは、０及び１のいずれか一つの値をとる。式６の右辺を２ｋ−１でくくると、式７の様になる。
【００４４】
【数７】
2004178188.tif 000009
更に、式７の両辺の平方根をとると、式８の様になる。
【００４５】
【数８】
2004178188.tif 000010
ここで、式８を、ｋの値により、以下のように場合分けすると、式９及び式１０で示すことができる。
【００４６】
【数９】
2004178188.tif 000011
【数１０】
2004178188.tif 000012
更に、上記の式９及び式１０について、上位３桁を有効桁数として、残りの項を無視する近似を行うと、以下のような式１１及び式１２を取得することができる。
【００４７】
【数１１】
2004178188.tif 000013
【数１２】
2004178188.tif 000014
定数テーブル記憶装置１３は、式１１及び式１２のｂの値が格納されている。
【００４８】
即ち、定数テーブル記憶装置１３は、２進数表記された所定の数（ａ）の上位２番目のビットから、所定の有効数字の桁数までの２進数の組み合わせと、算出された所定の数（ａ）の桁数を２で割った余りの数に応じて決定された定数が格納されている。例えば、有効数字の桁数が３ビットの場合は、上位１ビットは必ず「１」になるので、上位２番目のビットと３番目のビットの２進数の組み合わせに対応して、それぞれ定数が格納されている。
【００４９】
具体的には、図２（ａ）に示したｋが奇数の場合の定数と、図２（ｂ）に示したｋが偶数の場合の定数は、それぞれ、上位２番目のビットと３番目のビットの組み合わせが、「００」、「０１」、「１０」、「１１」について決定された定数が、定数テーブル記憶装置１３に格納されている。
【００５０】
例えば、ｋが奇数で、上位２番目のビットと３番目のビットの組み合わせが「０１」の場合、１＋１／４＝１．２５の平方根の２進数表記の近似値が、定数として登録されている。
【００５１】
桁数算出手段２３は、２進数表記されたａの桁数ｋを算出する手段である。
【００５２】
ビットシフト量算出手段２４は、定数テーブル記憶装置１３に登録された定数を左シフトするビットシフト量ｓを算出する手段である。ビットシフト量は、桁数算出手段２３で求められた桁数ｋが奇数の場合、ｓ＝（ｋ−１）／２で、桁数ｋが偶数の場合、ｓ＝（ｋ−２）／２として算出される。
【００５３】
テーブルインデックス取得手段２５は、定数テーブル記憶装置１３から取得する定数のテーブルインデックスｉを求める手段である。具体的には、有効桁数が３桁の場合、２進数表記されたａをｋ−３だけ右ビットシフトする。これにより、３桁の２進数表記の数値を得ることができる。ここで、ｉは、この３桁の２進数表記の数値の下位２ビットの組み合わせで求めることができる。
【００５４】
定数取得手段２６は、定数テーブル記憶装置１３を参照する手段である。テーブルインデックス取得手段２５で取得したテーブルインデックスｉと、桁数算出手段２３算出したｋの値に相当する定数ｂを、定数テーブル記憶装置１３から取得する。
【００５５】
ビットシフト実行手段２７は、定数取得手段２６で取得した定数ｂを、ビットシフト量算出手段２４で取得した左ビットシフト量ｓの値だけ左ビットシフトして、ａの平方根の出力値を求める手段である。
【００５６】
次に、図３を参照して、本発明の第１の実施の形態に係る演算方法について説明する。
【００５７】
まず、ステップＳ１０１において、入力装置１１により、１０進数表記されたａの値を取得する。次に、ステップＳ１０２において、０判定手段２１により、ａが０か否かを判定する。ａが０の場合、ステップＳ１０３において、Ｘに０を代入し、ステップＳ１０８において、Ｘを出力する。
【００５８】
一方、ステップＳ１０２において、ａが０でない場合、ステップＳ１０４において、２進数表記手段２２により、１０進数表記されたａを２進数表記に変換する。
【００５９】
次、ステップＳ１０５において、桁数算出手段２３及びビットシフト量算出手段２４により、２進数表記されたａの桁数から、左ビットシフト量を算出する。更に、ステップＳ１０６において、テーブルインデックス取得手段２５及び定数取得手段２６により、２進数表記で示されたａに対応する定数を、定数テーブル記憶装置１３から取得する。
【００６０】
更に、ステップＳ１０７において、ビットシフト実行手段２７によって、ステップＳ１０６で取得した定数を、ステップＳ１０５で算出した左ビットシフト量だけ、左ビットシフトを実行し、Ｘに代入する。更に、ステップＳ１０８において、出力装置１２によって、Ｘを出力する。
【００６１】
図４を参照して、本発明の実施の形態によって近似して得られた結果と、本来の値とを比較する。３ｂｉｔのラインは有効桁数を３桁として、６ビットのラインは有効桁数を６桁として、得られた結果である。この様に、本発明の実施の形態に係る演算方法は、高い精度を必要としない場合に、有効である。
【００６２】
又、有効桁数を多くすることにより、より本来の値に近づけることができる。従って、要求される制度に従って有効桁数を設定することにより、効率よく演算することができる。
【００６３】
（第２の実施の形態）
本発明の第１の実施の形態の変形例として、図５を参照して、本発明の第２の実施の形態を説明する。
【００６４】
本発明の第２の実施の形態に係る演算装置１は、本発明の第１の実施の形態に係る演算装置１に比べて、０判定手段２１を備えていない点が異なる。本発明の第２の実施の形態においては、桁数算出手段２３において、桁数が０である場合、入力されたａが０であることを判定し、出力装置１２に０を出力する。
【００６５】
図６を参照して、本発明の第２の実施の形態に係る演算方法を説明する。
【００６６】
まず、ステップＳ２０１において、入力装置１１により、１０進数表記されたａの値を取得する。次に、ステップＳ２０２において、２進数表記手段２２により、１０進数表記されたａを２進数表記に変換する。
【００６７】
次に、ステップＳ２０３において、桁数算出手段２３によって、２進数表記されたａの桁数が０か否かを判定する。ａの桁数が０の場合、ステップＳ２０４において、Ｘに０を代入し、ステップＳ２０８において、Ｘを出力する。
【００６８】
一方、ステップＳ２０３において、ａの桁数が０でない場合、ステップＳ２０５において、桁数算出手段２３及びビットシフト量算出手段２４により、２進数表記されたａの桁数から、左ビットシフト量を算出する。次に、ステップＳ２０６において、テーブルインデックス取得手段２５及び定数取得手段２６により、２進数表記で示されたａに対応する定数を、定数テーブル記憶装置１３から取得する。
【００６９】
更に、ステップＳ２０７において、ビットシフト実行手段２７によって、ステップＳ２０６で取得した定数を、ステップＳ２０５で算出した左ビットシフト量だけ、左ビットシフトを実行し、Ｘに代入する。更に、ステップＳ２０８において、出力装置１２によって、Ｘを出力する。
【００７０】
この様に、本発明の第２の実施の形態においては、本発明の第１の実施の形態に比べて簡略な構成で、同様の演算を行うことができる。
【００７１】
（第３の実施の形態）
本発明の第３の実施の形態においては、数ａの累乗根（ｎ乗根）を計算する場合、特に数ａの３乗根を計算する場合について説明する。
【００７２】
図７を参照して、本発明の第３の実施の形態について説明する。
【００７３】
本発明の第３の実施の形態に係る演算装置１は、本発明の第１の実施の形態に係る演算装置１と比べて、０判定手段２１の代わりに、数値判定手段２８を備えている点が異なる。
【００７４】
数値判定手段２８は、入力装置１１から入力された数値ａについて判定する。第１及び第２の実施の形態においては、ａが整数の場合について説明したが、第３の実施の形態においては、ａが整数でなくても良い。数値判定手段２８は、数値ａが０の場合、０判定手段２１と同様に、０を出力装置１２に出力する。又、数値ａが小数点を含む数値の場合は、数値ａに乗算して、整数にする。このとき、例えば、１０ｕｎ倍（ｕは整数）して、ａを整数にするのがより好ましい、この場合、ビットシフト実行手段２７で、１／１０ｕして、結果を出せば良く、桁をずらすだけで、計算を行うことができる。
【００７５】
ビットシフト量算出手段２４は、定数テーブル記憶装置１３に登録された定数を左シフトするビットシフト量ｓを算出する手段である。ビットシフト量は、桁数算出手段２３で求められた桁数ｋがｋ＝ｎｍ＋ｉ（ｍは整数、ｉは１〜ｎ−１の整数）の場合、ｓ＝（ｋ−ｉ）／ｎで、桁数ｋがｋ＝ｎｍ（ｍは整数）の場合、ｓ＝（ｋ−ｎ）／ｎとして算出される。
【００７６】
次に、一般化したｎ乗根を算出する場合の定数テーブル記憶装置１３に格納される定数について説明する。
【００７７】
２進数表記手段２２によって得られる２進数表記は、入力された数ａを２進数表記に変換した場合の桁数をｋとすると、式１３の様に表すことができる。
【００７８】
【数１３】
2004178188.tif 000015
ここで、ｑｉは、０及び１のいずれか一つの値をとる。式１３の右辺を２ｋ−１でくくると、式１４の様になる。
【００７９】
【数１４】
2004178188.tif 000016
更に、式１４の両辺のｎ乗根をとると、式１５の様になる。
【００８０】
【数１５】
2004178188.tif 000017
ここで、式１５を、ｋの値により、以下のように場合分けすると、式１６及び式１７で示すことができる。
【００８１】
【数１６】
2004178188.tif 000018
【数１７】
2004178188.tif 000019
更に、上記の式１６及び式１７について、上位３桁を有効桁数として、残りの項を無視する近似を行うと、第１の実施の形態と同様に演算を行うことができる。
【００８２】
例えば、有効桁数を３桁として３乗根を計算する場合について説明すると、図８（ａ）に示したｋ＝３ｍ＋１の場合の定数と、図８（ｂ）に示したｋ＝３ｍ＋２の場合の定数と、図８（ｃ）に示したｋ＝３ｍの場合の定数は、それぞれ、上位２番目のビットと３番目のビットの組み合わせが、「００」、「０１」、「１０」、「１１」について決定された定数が、定数テーブル記憶装置１３に格納されている。
【００８３】
例えば、ｋが３ｍ＋１で、上位２番目のビットと３番目のビットの組み合わせが「０１」の場合、１＋１／４＝１．２５の３乗根の２進数表記の近似値が、定数として登録されている。
【００８４】
第３の実施の形態においては、上記の様な定数が格納された定数テーブル記憶装置１３を用いと、ビットシフト量算出手段２４と、を用いて第１の実施の形態と同様の計算を行うと、所定の数の３乗根を得ることができる。
【００８５】
次に、図９を参照して、本発明の第３の実施の形態に係る演算方法について説明する。
【００８６】
まず、ステップＳ３０１において、入力装置１１により、１０進数表記されたａの値を取得する。次に、ステップＳ３０２において、数値判定手段２８により、ａが０か否かを判定する。ａが０の場合、ステップＳ３０３において、Ｘに０を代入し、ステップＳ３１４において、出力装置１２にＸを出力する。
【００８７】
一方、ステップＳ３０２において、ａが０でない場合、更に、ステップＳ３０４において、１０進数表記されたａが、整数であるか否かを判定する。整数である場合、ステップＳ３０６において、ｃにａを代入する。又、整数でない場合、ステップＳ３０５において、１０進数表記されたａを、整数になるように１０ｕｎ倍して、ｃに代入する。
【００８８】
次に、ステップＳ３０７において、２進数表記手段２２により、１０進数表記されたｃを２進数表記に変換する。次に、ステップＳ３０８において、桁数算出手段２３及びビットシフト量算出手段２４により、２進数表記されたｃの桁数から、左ビットシフト量を算出する。更に、ステップＳ３０９において、テーブルインデックス取得手段２５及び定数取得手段２６により、２進数表記で示されたｃに対応する定数を、定数テーブル記憶装置１３から取得する。
【００８９】
更に、ステップＳ３１０において、ビットシフト実行手段２７によって、ステップＳ３０９で取得した定数を、ステップＳ３０８で算出した左ビットシフト量だけ、左ビットシフトを実行し、Ｙに代入する。
【００９０】
次に、ステップＳ３１１において、入力されたａが整数であるか否かを判定する。ａが整数である場合、ステップＳ３１３において、ＸにＹを代入して、ステップＳ３１４において、出力装置１２にＸを出力する。一方、ａが整数でない場合、ステップＳ３１２において、Ｙを１／１０ｕ倍した値をＸに代入して、ステップＳ３１４において、出力装置１２にＸを出力する。
【００９１】
第３の実施の形態によれば、整数に限らず、小数を含む数の累乗根を求めることができる。更に、平方根の算出も、定数テーブル記憶装置１３に登録する定数と、ビットシフト量算出手段２４の計算方法を変更するだけで、第１の実施の形態と同様の方法で求めることができる。
【００９２】
（第４の実施の形態）
本発明の第４の実施の形態においては、数ａの累乗（ｎ乗）を計算する場合について説明する。
【００９３】
第４の実施の形態においては、第３の実施の形態と同様に定数テーブル記憶装置１３と、ビットシフト量算出手段２４の計算方法を変更することにより、数ａの累乗を計算することができる。
【００９４】
次に、一般化したｎ乗を算出する場合の定数テーブル記憶装置１３に格納される定数について説明する。
【００９５】
２進数表記手段２２によって得られる２進数表記は、入力された数ａを２進数表記に変換した場合の桁数をｋとすると、式１３の様に表すことができる。ここで、ｑｉは、０及び１のいずれか一つの値をとる。式１３の右辺を２ｋ−１でくくると、式１４の様になる。
【００９６】
更に、式１４の両辺のｎ乗をとると、式１８の様になる。
【００９７】
【数１８】
2004178188.tif 000020
ここで、式１８は、式１９の様に示すことができる。
【００９８】
【数１９】
2004178188.tif 000021
更に、上記の式１９について、上位３桁を有効桁数として、残りの項を無視する近似を行うと、第１の実施の形態と同様に演算を行うことができる。
【００９９】
例えば、有効桁数を３桁として３乗を計算する場合について説明すると、図１０を参照するように、上位２番目のビットと３番目のビットの組み合わせが、「００」、「０１」、「１０」、「１１」について決定された定数が、定数テーブル記憶装置１３に格納されている。
【０１００】
例えば、上位２番目のビットと３番目のビットの組み合わせが「０１」の場合、１＋１／４＝１．２５の３乗の２進数表記の近似値が、定数として登録されている。
【０１０１】
ここで、第４の実施の形態に係るビットシフト量算出手段２４において、ビットシフト量を計算する場合、ビットシフト量ｓは、桁数算出手段２３で求められた桁数ｋからｓ＝（ｋ−１）＊ｎと算出される。
【０１０２】
第４の実施の形態によれば、ｎ乗の算出も、定数テーブル記憶装置１３に登録する定数と、ビットシフト量算出手段２４での計算方法と、を変更するだけで、第１の実施の形態と同様の方法で求めることができる。
【０１０３】
（第５の実施の形態）
本発明の第５の実施の形態においては、数ａのｇ／ｈ乗（ｇ、ｈは整数）を計算する場合、特に、２／３乗を計算する場合について説明する。
【０１０４】
第５の実施の形態においては、第３の実施の形態と同様に、定数テーブル記憶装置１３と、ビットシフト量算出手段２４を変更することにより、数ａのｇ／ｈ乗を計算することができる。
【０１０５】
次に、一般化したｇ／ｈ乗を算出する場合の定数テーブル記憶装置１３に格納された定数について説明する。
【０１０６】
２進数表記手段２２によって得られる２進数表記は、入力された数ａを２進数表記に変換した場合の桁数をｋとすると、式１３の用に表すことができる。
【０１０７】
ここで、ｑｉは、０及び１のいずれか一つの値をとる。式１３の右辺を２ｋ−１でくくると、式１４の様になる。
【０１０８】
更に、式１４の両辺のｇ／ｈ乗をとると、式２０の様になる。
【０１０９】
【数２０】
2004178188.tif 000022
ここで、式２０を、ｋの値により場合分けすると、式２１及び式２２で示すことができる。
【０１１０】
【数２１】
2004178188.tif 000023
【数２２】
2004178188.tif 000024
更に、上記の式２１及び式２２について、上位３桁を有効桁数として、残りの項を無視する近似を行うと、第１の実施の形態と同様に演算を行うことができる。
【０１１１】
例えば、有効桁数を３桁として２／３乗を計算する場合について説明すると、図１１（ａ）に示したｋ＝３ｍ＋１の場合の定数と、図１１（ｂ）に示したｋ＝３ｍ＋２の場合の定数と、図１１（ｃ）に示したｋ＝３ｍの場合の定数は、それぞれ、上位２番目のビットと３番目のビットの組み合わせが、「００」、「０１」、「１０」、「１１」について決定された定数が、定数テーブル記憶装置１３に格納されている。
【０１１２】
例えば、ｋが３ｍ＋１で、上位２番目のビットと３番目のビットの組み合わせが「０１」の場合、１＋１／４＝１．２５の２／３乗の２進数表記の近似値が、定数として登録されている。
【０１１３】
第５の実施の形態におけるビットシフト量算出手段２４は、桁数算出手段２３で求められた桁数ｋがｋ＝ｈｍ＋ｉ（ｍは整数、ｉは１〜ｎ−１の整数）の場合、ｓ＝（ｋ−ｉ）＊ｇ／ｈで、ｋ＝ｈｍ（ｍは整数）の場合、ｓ＝（ｋ−ｈ）＊ｇ／ｈとして算出される。
【０１１４】
第５の実施の形態によれば、ｇ／ｈ乗の算出も、定数テーブル記憶装置１３に登録する定数と、ビットシフト量算出手段２４での計算方法と、を変更するだけで、第１の実施の形態と同様の方法で求めることができる。
【０１１５】
（その他の実施の形態）
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【０１１６】
本発明の第１乃至第５の実施の形態を別々に記載したが、定数テーブル記憶装置に、平方根、３乗根、４乗根、３乗、４乗などの様々な演算に必要な定数を格納することにより、同様の演算回路で、これら全ての演算を行うことができる。
【０１１７】
この様に、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【０１１８】
【発明の効果】
本発明によれば、容易に実装することのできる演算方法、平方根演算方法、累乗根演算方法、累乗演算方法及びｇ／ｈ乗演算方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る演算装置の機能ブロック図である。
【図２】本発明の第１の実施の形態に係る演算装置に備えられた定数テーブル記憶装置のデータ項目とデータの例である。
【図３】本発明の第１の実施の形態に係る演算方法を示したフローチャートである。
【図４】本発明の第１の実施の形態によって近似して得られた結果と、本来の値とを比較したグラフである。
【図５】本発明の第２の実施の形態に係る演算装置の機能ブロック図である。
【図６】本発明の第２の実施の形態に係る演算方法を示したフローチャートである。
【図７】本発明の第３の実施の形態に係る演算装置の機能ブロック図である。
【図８】本発明の第３の実施の形態に係る演算装置に備えられた定数テーブル記憶装置のデータ項目とデータの例である。
【図９】本発明の第３の実施の形態に係る演算方法を示したフローチャートである。
【図１０】本発明の第４の実施の形態に係る演算装置に備えられた定数テーブル記憶装置のデータ項目とデータの例である。
【図１１】本発明の第５の実施の形態に係る演算装置に備えられた定数テーブル記憶装置のデータ項目とデータの例である。
【図１２】従来の平方根を演算する方法を説明したグラフである。
【符号の説明】
１…演算装置
１１…入力装置
１２…出力装置
１３…定数テーブル記憶装置
２１…０判定手段
２２…２進数表記手段
２３…桁数算出手段
２４…ビットシフト量算出手段
２５…テーブルインデックス取得手段
２６…定数取得手段
２７…ビットシフト実行手段
２８…数値判定手段
【図１】
2004178188.tif 000025
【図２】
2004178188.tif 000026
【図３】
2004178188.tif 000027
【図４】
2004178188.tif 000028
【図５】
2004178188.tif 000029
【図６】
2004178188.tif 000030
【図７】
2004178188.tif 000031
【図８】
2004178188.tif 000032
【図９】
2004178188.tif 000033
【図１０】
2004178188.tif 000034
【図１１】
2004178188.tif 000035
【図１２】
2004178188.tif 000036