JPH08123785A - 近似計算用テーブルの作成方法およびそのための装置ならびに近似計算方法およびそのための装置 - Google Patents
近似計算用テーブルの作成方法およびそのための装置ならびに近似計算方法およびそのための装置Info
- Publication number
- JPH08123785A JPH08123785A JP26052494A JP26052494A JPH08123785A JP H08123785 A JPH08123785 A JP H08123785A JP 26052494 A JP26052494 A JP 26052494A JP 26052494 A JP26052494 A JP 26052494A JP H08123785 A JPH08123785 A JP H08123785A
- Authority
- JP
- Japan
- Prior art keywords
- range
- constant
- calculation
- division
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 比較的小さなテーブルで高い近似精度を確保
して近似計算性能を上げることをことを目的とする。 【構成】 arctan(x) などの関数f(x) の近似計算式で
用いられている定数をxの分割範囲ごとに求め、この定
数の値をテーブルに格納するようにした近似計算用テー
ブルの作成方法において、前記分割範囲として、N(N
は2以上の整数)についての異なる巾乗に基づいてxの
範囲を分割し、さらにこの単位領域を略等分割した後の
再分割領域を用いている。また、巾乗として、浮動小数
点数表示のxの指数部により決定される値を用いる。関
数f(x) の近似計算のさいには、xが分割範囲のどこに
属するかを特定するとともに、この特定された分割範囲
における前記定数をテーブルを参照することにより求
め、続いてこの定数の下で近似計算式による計算を実行
する。
して近似計算性能を上げることをことを目的とする。 【構成】 arctan(x) などの関数f(x) の近似計算式で
用いられている定数をxの分割範囲ごとに求め、この定
数の値をテーブルに格納するようにした近似計算用テー
ブルの作成方法において、前記分割範囲として、N(N
は2以上の整数)についての異なる巾乗に基づいてxの
範囲を分割し、さらにこの単位領域を略等分割した後の
再分割領域を用いている。また、巾乗として、浮動小数
点数表示のxの指数部により決定される値を用いる。関
数f(x) の近似計算のさいには、xが分割範囲のどこに
属するかを特定するとともに、この特定された分割範囲
における前記定数をテーブルを参照することにより求
め、続いてこの定数の下で近似計算式による計算を実行
する。
Description
【0001】
【産業上の利用分野】本発明は、関数f(x) の近似計算
式に含まれる定数についてのテーブルを作成すること、
およびこのテーブルを用いて関数f(x) の近似計算をお
こなうことに関し、特に、あらかじめこの定数の値をx
の分割範囲ごとに求めてテーブルに格納しておき、近似
計算の際には任意のxに対してそれが属する分割範囲の
定数をテーブルから取り出して関数f(x) の近似計算式
の内容を特定するようにした近似計算用テーブルの作成
およびこれを用いた近似計算に関する。
式に含まれる定数についてのテーブルを作成すること、
およびこのテーブルを用いて関数f(x) の近似計算をお
こなうことに関し、特に、あらかじめこの定数の値をx
の分割範囲ごとに求めてテーブルに格納しておき、近似
計算の際には任意のxに対してそれが属する分割範囲の
定数をテーブルから取り出して関数f(x) の近似計算式
の内容を特定するようにした近似計算用テーブルの作成
およびこれを用いた近似計算に関する。
【0002】一般に、コンピュータを用いた数値計算に
より各種関数、例えばarctan(x) の近似値を求めること
がおこなわれているが、この場合、xの範囲を複数の領
域に分けたときの分割範囲ごとにそこで使用される近似
計算式を特定している。
より各種関数、例えばarctan(x) の近似値を求めること
がおこなわれているが、この場合、xの範囲を複数の領
域に分けたときの分割範囲ごとにそこで使用される近似
計算式を特定している。
【0003】本発明は、この分割範囲の設定のさいに、
例えばf(x) の変化率が小さなxの範囲ではその幅を狭
くし、またf(x) の変化率が大きなxの範囲ではその幅
を広くするなどのようにして近似精度や近似計算量など
の点で特に問題となる分割範囲が発生しないようにした
ものである。
例えばf(x) の変化率が小さなxの範囲ではその幅を狭
くし、またf(x) の変化率が大きなxの範囲ではその幅
を広くするなどのようにして近似精度や近似計算量など
の点で特に問題となる分割範囲が発生しないようにした
ものである。
【0004】
【従来の技術】例えば、arctan(x) の関数の場合、理論
上は、これをテーラ展開した次の近似式(1) などを用い
れば|x|≦1の値に対する関数値を算出できる。な
お、arctan(x) は奇関数であるので、以下の説明ではx
が正の場合について説明する。
上は、これをテーラ展開した次の近似式(1) などを用い
れば|x|≦1の値に対する関数値を算出できる。な
お、arctan(x) は奇関数であるので、以下の説明ではx
が正の場合について説明する。
【0005】
【数1】
【0006】また、「x>1」の場合には、次式(2) が
成立することに着目してその逆数に対する近似式(1) の
近似計算をおこない、その結果をπ/2から引くといっ
た計算手法が用いられている。
成立することに着目してその逆数に対する近似式(1) の
近似計算をおこない、その結果をπ/2から引くといっ
た計算手法が用いられている。
【0007】
【数2】
【0008】この逆数化の採用によりすべての範囲のx
についての計算が可能となるが、このときxの値が
「1」に近くなるほど近似式(1) は高次の項まで計算す
る必要がある。
についての計算が可能となるが、このときxの値が
「1」に近くなるほど近似式(1) は高次の項まで計算す
る必要がある。
【0009】しかしながら、実際にコンピュータを用い
てこの近似式の高次の項までの数値計算をすることは処
理時間が長いものとなって実用的ではないので、従来、
この近似式(1) を用いるxの範囲をゼロに近い部分だけ
にして高速化を図ろうとする各種の計算手法が用いられ
ている。これは、xがゼロの近傍部分では近似式(1)が
低次の項のみで成立するためである。
てこの近似式の高次の項までの数値計算をすることは処
理時間が長いものとなって実用的ではないので、従来、
この近似式(1) を用いるxの範囲をゼロに近い部分だけ
にして高速化を図ろうとする各種の計算手法が用いられ
ている。これは、xがゼロの近傍部分では近似式(1)が
低次の項のみで成立するためである。
【0010】先ず、xのこの近似計算範囲を等分割し
て、例えば ・0.00≦x<0.25 ・0.25≦x<0.50 ・0.50≦x<0.75 ・0.75≦x<1.00 の四つに等分割して、これらの分割範囲ごとに次式(3)
を用いるといった第1の計算手法がある。
て、例えば ・0.00≦x<0.25 ・0.25≦x<0.50 ・0.50≦x<0.75 ・0.75≦x<1.00 の四つに等分割して、これらの分割範囲ごとに次式(3)
を用いるといった第1の計算手法がある。
【0011】
【数3】
【0012】ここで、1項目のarctan(w) はxの各分割
範囲に対応するかたちで後記のテーブルに格納された定
数であり、2項目のarctan(t) が近似式(1) の適用対象
となる。
範囲に対応するかたちで後記のテーブルに格納された定
数であり、2項目のarctan(t) が近似式(1) の適用対象
となる。
【0013】なお、tは、式(4) で定義されるようなw
とxの関数であって、任意のxの値に対応してwが後記
のルールで求まるとこのwとそのときのxによって値が
決定され、その結果、xの各分割範囲に応じたtの範囲
が発生する。
とxの関数であって、任意のxの値に対応してwが後記
のルールで求まるとこのwとそのときのxによって値が
決定され、その結果、xの各分割範囲に応じたtの範囲
が発生する。
【0014】そして、このtの範囲(図8参照)を考慮
した上での最良近似式(1) 、すなわち所定の近似精度が
確保できる範囲で項数nをできるだけ小さくしたかたち
の近似式(1) による近似計算がおこなわれる。
した上での最良近似式(1) 、すなわち所定の近似精度が
確保できる範囲で項数nをできるだけ小さくしたかたち
の近似式(1) による近似計算がおこなわれる。
【0015】図7は、任意のxに対するwの値の決定手
法を示しており、 ・固定小数点表示のxの仮数部の先頭2ビットはそのま
まとし、 ・仮数部の3ビット目を「1」にし、 ・仮数部の4ビット目以降は「0」にする、 といった内容になっている。なお、結果的には、wは各
分割範囲の中間値、例えば「0.25≦x<0.50」の分割範
囲に対しては「0.375 」が設定される。
法を示しており、 ・固定小数点表示のxの仮数部の先頭2ビットはそのま
まとし、 ・仮数部の3ビット目を「1」にし、 ・仮数部の4ビット目以降は「0」にする、 といった内容になっている。なお、結果的には、wは各
分割範囲の中間値、例えば「0.25≦x<0.50」の分割範
囲に対しては「0.375 」が設定される。
【0016】図8は、このようにして求めたテーブルを
示すもので、xの各分割範囲と、m、wの値、tの範囲
およびarctan(w) の各値とを対応付けたかたちで格納し
ている。なお、mの値はwの仮数部分の先頭2ビットで
ある。
示すもので、xの各分割範囲と、m、wの値、tの範囲
およびarctan(w) の各値とを対応付けたかたちで格納し
ている。なお、mの値はwの仮数部分の先頭2ビットで
ある。
【0017】図9は、第1の計算手法を用いた、従来の
arctan(x) の近似計算手順を示す説明図であり、その内
容は次のようになっている。 (31)「x≦1」ならば「x′=x」とし、「x>1」な
らば「x′=1/x」とする。 (32)x′の仮数部よりwおよびmの値をそれぞれ求める
(図7参照)。なお、これらの値を図8のテーブルから
求めるようにしてもよいが、この場合にはx′がどの分
割範囲に属するかの判定処理に時間を要することにな
る。 (33)式(4) の計算によりtの値を求める。 (34)式(3) の2項目であるarctan(t) を最良近似式(1)
により近似計算する。 (35)式(3) の1項目であるarctan(w) を図8(a) のテー
ブルから求める。 (36)これらarctan(t) とarctan(w) の値を加算する。 (37)入力デ−タが「x>1」であった場合にはπ/2か
らこの加算値を引く。
arctan(x) の近似計算手順を示す説明図であり、その内
容は次のようになっている。 (31)「x≦1」ならば「x′=x」とし、「x>1」な
らば「x′=1/x」とする。 (32)x′の仮数部よりwおよびmの値をそれぞれ求める
(図7参照)。なお、これらの値を図8のテーブルから
求めるようにしてもよいが、この場合にはx′がどの分
割範囲に属するかの判定処理に時間を要することにな
る。 (33)式(4) の計算によりtの値を求める。 (34)式(3) の2項目であるarctan(t) を最良近似式(1)
により近似計算する。 (35)式(3) の1項目であるarctan(w) を図8(a) のテー
ブルから求める。 (36)これらarctan(t) とarctan(w) の値を加算する。 (37)入力デ−タが「x>1」であった場合にはπ/2か
らこの加算値を引く。
【0018】次に、この第1の計算手法において時間が
かかる1/xの計算をしないですむように、xが1より
大きい場合でも「x≦1」のときと同じようにその領域
を等分割して得られる分割範囲ごとにそこでのw、mお
よびarctan(w) をあらかじめテーブル〔図8(b) 参照〕
に格納しておき、x′への変換をすることなしに図9の
ステップ(32)〜(36)に対応の処理をおこなってステップ
(31)および(37)を省略するようにした第2の計算手法が
ある。
かかる1/xの計算をしないですむように、xが1より
大きい場合でも「x≦1」のときと同じようにその領域
を等分割して得られる分割範囲ごとにそこでのw、mお
よびarctan(w) をあらかじめテーブル〔図8(b) 参照〕
に格納しておき、x′への変換をすることなしに図9の
ステップ(32)〜(36)に対応の処理をおこなってステップ
(31)および(37)を省略するようにした第2の計算手法が
ある。
【0019】さらには、 ・xが十分小さい(例えば「x≦1/8」)ときや、ま
たxが十分大きい(例えば「x>8」)ときには最良近
似式(1) で直接arctan(x) を求め、 ・xがその間の数値であるときには前記第1〜第2の計
算手法を用いる、 といった第3の計算手法も行われており、これによって
有効桁数のけた落ちを防ぐことができる。なお、xが十
分大きいときにはx′に対する最良近似式(1) が用いら
れる。
たxが十分大きい(例えば「x>8」)ときには最良近
似式(1) で直接arctan(x) を求め、 ・xがその間の数値であるときには前記第1〜第2の計
算手法を用いる、 といった第3の計算手法も行われており、これによって
有効桁数のけた落ちを防ぐことができる。なお、xが十
分大きいときにはx′に対する最良近似式(1) が用いら
れる。
【0020】
【発明が解決しようとする課題】このように、従来の計
算手法の内でもっとも高速処理が図れるのは第2の計算
手法(およびこれを用いた第3の計算手法)であるが、
ここで「x≧1」の場合に用いられる図8(b) のテーブ
ルは、xの近似計算範囲を「2.0 」などの幅で等分割し
た後の分割範囲ごとにそこでのwの値、tの範囲、arct
an(w) などを格納したものである。
算手法の内でもっとも高速処理が図れるのは第2の計算
手法(およびこれを用いた第3の計算手法)であるが、
ここで「x≧1」の場合に用いられる図8(b) のテーブ
ルは、xの近似計算範囲を「2.0 」などの幅で等分割し
た後の分割範囲ごとにそこでのwの値、tの範囲、arct
an(w) などを格納したものである。
【0021】このテーブルによれば、各分割範囲に対応
のtの絶対値の最大値(0.333333)と最少値(0.01754
4)との比が約19となっており、xの値が大きくなる
につれてxとtとの間の変換精度が悪くなるといった問
題点がうかがえる。
のtの絶対値の最大値(0.333333)と最少値(0.01754
4)との比が約19となっており、xの値が大きくなる
につれてxとtとの間の変換精度が悪くなるといった問
題点がうかがえる。
【0022】また、tの範囲の絶対値を小さくする、例
えばこの絶対値を0.06以下の範囲に収めようとする場合
には、wの値は0.25幅としなければならずこれに必要な
xの分割単位数は28〔(8−1)÷0.25〕となってテー
ブルのサイズが大きくなるという問題点があった。
えばこの絶対値を0.06以下の範囲に収めようとする場合
には、wの値は0.25幅としなければならずこれに必要な
xの分割単位数は28〔(8−1)÷0.25〕となってテー
ブルのサイズが大きくなるという問題点があった。
【0023】また、各分割範囲においてtの絶対値の範
囲が一定になるようにxを分割することも考えられる
が、その場合にはwを決定するための計算量が多いもの
となって性能向上が見込めないという問題点があった。
囲が一定になるようにxを分割することも考えられる
が、その場合にはwを決定するための計算量が多いもの
となって性能向上が見込めないという問題点があった。
【0024】そこで、本発明では、xの範囲を、N(N
は2以上の整数)についての異なる巾乗に基づいて分割
した後の単位領域を基準に設定される範囲を分割範囲と
することにより、比較的小さなテーブルで高い近似精
度、例えば各分割範囲でのtの絶対値の変化幅が0.06以
下となるような近似精度を確保して近似計算性能を上げ
ることを目的とする。
は2以上の整数)についての異なる巾乗に基づいて分割
した後の単位領域を基準に設定される範囲を分割範囲と
することにより、比較的小さなテーブルで高い近似精
度、例えば各分割範囲でのtの絶対値の変化幅が0.06以
下となるような近似精度を確保して近似計算性能を上げ
ることを目的とする。
【0025】なお、本明細書では、説明の便宜上、近似
計算対象の関数f(x) としてarctan(x) を用いている
が、これはあくまで一例にすぎず、本発明の対象は、x
を等分割するよりも前記巾乗に基づいて分割した単位領
域を基準として近似式の定数を求めるほうが近似計算精
度の向上を図ることができるすべての関数である。
計算対象の関数f(x) としてarctan(x) を用いている
が、これはあくまで一例にすぎず、本発明の対象は、x
を等分割するよりも前記巾乗に基づいて分割した単位領
域を基準として近似式の定数を求めるほうが近似計算精
度の向上を図ることができるすべての関数である。
【0026】例えば、「0≦x≦1」を4等分した各分
割範囲での最良近似式が次式(5) のように、すなわちx
の値が小さい領域では次数が高い近似式となり、そのた
め計算量が多くて近似計算性能がいちじるしく悪くなる
ときに、この領域でのxの分割範囲をそれ以外のxの値
が大きな領域よりも小さくして当該次数を下げようとす
る場合などに用いられる。なお、この近似式ではa0 、
a1 ・・・の各係数がテーブルに格納される。
割範囲での最良近似式が次式(5) のように、すなわちx
の値が小さい領域では次数が高い近似式となり、そのた
め計算量が多くて近似計算性能がいちじるしく悪くなる
ときに、この領域でのxの分割範囲をそれ以外のxの値
が大きな領域よりも小さくして当該次数を下げようとす
る場合などに用いられる。なお、この近似式ではa0 、
a1 ・・・の各係数がテーブルに格納される。
【0027】
【数4】
【0028】
【課題を解決するための手段】図1および図2は本発明
の原理説明図である。図において、1は、入力手段であ
り、関数f(x) の近似計算式およびその中のテーブル化
対象の定数が何であるかなどを入力している。2は、制
御・処理手段であり、xに対する巾乗分割に基づく単位
領域を基準に分割範囲を設定してこれに対応の前記定数
をテーブルに格納し、またこのテーブルの定数を用いた
近似計算をおこなっている。3は、テーブルであり、巾
乗分割に基づいて設定された分割範囲とそこでの定数
〔例えば、前記のarctan(w) 〕を保持している。4は、
近似計算対象関数であり、例えば前記の式(1) 〜(5) な
どが該当する。
の原理説明図である。図において、1は、入力手段であ
り、関数f(x) の近似計算式およびその中のテーブル化
対象の定数が何であるかなどを入力している。2は、制
御・処理手段であり、xに対する巾乗分割に基づく単位
領域を基準に分割範囲を設定してこれに対応の前記定数
をテーブルに格納し、またこのテーブルの定数を用いた
近似計算をおこなっている。3は、テーブルであり、巾
乗分割に基づいて設定された分割範囲とそこでの定数
〔例えば、前記のarctan(w) 〕を保持している。4は、
近似計算対象関数であり、例えば前記の式(1) 〜(5) な
どが該当する。
【0029】図1は、近似計算用テーブル作成の原理説
明図であり、このときの制御・処理手段2の処理手順は
次のようになっている。 関数f(x) の近似計算式およびその中のテーブル化対
象の定数を特定して、次のステップに進む。 xの範囲を等分割したときの各分割範囲における近似
態様(近似精度や近似計算量)などを調べて、次のステ
ップに進む。 xの各分割範囲の近似態様の違いは所定範囲内のもの
かどうか、例えば前記のarctan(w) におけるtの絶対値
の変化幅がすべて0.06以下となっているかどうかを判断
し、「YES 」の場合はステップに進み「NO」の場合は
次のステップに進む。 xの範囲を、N(2以上の整数)についての異なる巾
乗に基づいて分割して、次のステップに進む。なお、後
述のように、この巾乗として、浮動小数点数表示のxの
指数部に基づいて決められる値を用いるようにしてもよ
い。 この巾乗分割で得られた単位領域をほぼ等分割するこ
とにより分割範囲を特定して、次のステップに進む。 この分割範囲ごとのテーブル化対象の定数を求めて、
次のステップに進む。 求めた定数の値を分割範囲に対応付けたかたちでテー
ブル3に格納する。
明図であり、このときの制御・処理手段2の処理手順は
次のようになっている。 関数f(x) の近似計算式およびその中のテーブル化対
象の定数を特定して、次のステップに進む。 xの範囲を等分割したときの各分割範囲における近似
態様(近似精度や近似計算量)などを調べて、次のステ
ップに進む。 xの各分割範囲の近似態様の違いは所定範囲内のもの
かどうか、例えば前記のarctan(w) におけるtの絶対値
の変化幅がすべて0.06以下となっているかどうかを判断
し、「YES 」の場合はステップに進み「NO」の場合は
次のステップに進む。 xの範囲を、N(2以上の整数)についての異なる巾
乗に基づいて分割して、次のステップに進む。なお、後
述のように、この巾乗として、浮動小数点数表示のxの
指数部に基づいて決められる値を用いるようにしてもよ
い。 この巾乗分割で得られた単位領域をほぼ等分割するこ
とにより分割範囲を特定して、次のステップに進む。 この分割範囲ごとのテーブル化対象の定数を求めて、
次のステップに進む。 求めた定数の値を分割範囲に対応付けたかたちでテー
ブル3に格納する。
【0030】なお、基本的には、巾乗分割で得られた単
位領域に対するステップの再分割を実行するかどう
か、この再分割をおこなう場合にそれを略等分割とする
かどうかなどは任意である。
位領域に対するステップの再分割を実行するかどう
か、この再分割をおこなう場合にそれを略等分割とする
かどうかなどは任意である。
【0031】また、本明細書で用いる「分割範囲」と
は、 ・xの範囲を、N(Nは2以上の整数)についての異な
る巾乗に基づいて分割した後の単位領域を基準に設定さ
れる範囲の全体に加えて、 ・この範囲の全体を代表するもの、例えば前記のarctan
(x) の近似計算の際に分割範囲ごとに設定されるwの
値、 なども含む概念である。
は、 ・xの範囲を、N(Nは2以上の整数)についての異な
る巾乗に基づいて分割した後の単位領域を基準に設定さ
れる範囲の全体に加えて、 ・この範囲の全体を代表するもの、例えば前記のarctan
(x) の近似計算の際に分割範囲ごとに設定されるwの
値、 なども含む概念である。
【0032】図2は、図1で作成したテーブルを用いた
近似計算の原理説明図であり、このときの制御・処理手
段2の処理手順は次のようになっている。 ′近似計算対象のxの値を決めて、次のステップに進
む。 ′このxが属する分割範囲を特定して、次のステップ
に進む。arctan(x) の近似計算の場合には、後記の手法
により、浮動小数点数表示のxの指数部および仮数部か
らwの値を求めることがこのステップに該当する。 ′テーブル3を参照してこの分割範囲の前記定数を求
めて、次のステップに進む。 ′この定数の下、近似計算を実行して関数f(x) の値
を求め、ステップに戻る。
近似計算の原理説明図であり、このときの制御・処理手
段2の処理手順は次のようになっている。 ′近似計算対象のxの値を決めて、次のステップに進
む。 ′このxが属する分割範囲を特定して、次のステップ
に進む。arctan(x) の近似計算の場合には、後記の手法
により、浮動小数点数表示のxの指数部および仮数部か
らwの値を求めることがこのステップに該当する。 ′テーブル3を参照してこの分割範囲の前記定数を求
めて、次のステップに進む。 ′この定数の下、近似計算を実行して関数f(x) の値
を求め、ステップに戻る。
【0033】本発明の、近似計算用テーブルの作成方法
の基本的構成は、「関数f(x) の近似計算式で用いる定
数をxの分割範囲ごとに求め、この定数の値をテーブル
に格納するようにした近似計算用テーブルの作成方法に
おいて、前記分割範囲として、xの範囲を、N(Nは2
以上の整数)についての異なる巾乗に基づいて分割した
後の単位領域を基準に設定される範囲を用いるようにし
たこと」である。
の基本的構成は、「関数f(x) の近似計算式で用いる定
数をxの分割範囲ごとに求め、この定数の値をテーブル
に格納するようにした近似計算用テーブルの作成方法に
おいて、前記分割範囲として、xの範囲を、N(Nは2
以上の整数)についての異なる巾乗に基づいて分割した
後の単位領域を基準に設定される範囲を用いるようにし
たこと」である。
【0034】また、本発明の、近似計算用テーブルの作
成装置の基本的構成は、「関数f(x) の近似計算式およ
びその中のテーブル化対象の定数が何であるかを入力す
る入力手段と、N(Nは2以上の整数)についての異な
る巾乗に基づいてxの範囲を分割した後の単位領域を基
準にxの分割範囲を設定するとともに、この分割範囲ご
とに前記定数の値を求める機能を持った制御・処理手段
と、この値が前記分割範囲に対応付けて格納されるテー
ブルとを備えたこと」である。
成装置の基本的構成は、「関数f(x) の近似計算式およ
びその中のテーブル化対象の定数が何であるかを入力す
る入力手段と、N(Nは2以上の整数)についての異な
る巾乗に基づいてxの範囲を分割した後の単位領域を基
準にxの分割範囲を設定するとともに、この分割範囲ご
とに前記定数の値を求める機能を持った制御・処理手段
と、この値が前記分割範囲に対応付けて格納されるテー
ブルとを備えたこと」である。
【0035】また、本発明の、近似計算方法の基本的構
成は、「関数f(x) の近似計算を、定数を含んだ近似計
算式に基づいておこなうようにした近似計算方法におい
て、N(Nは2以上の整数)についての異なる巾乗に基
づいてxの範囲を分割した後の単位領域を基準に設定し
たxの分割範囲と、この分割範囲における前記定数の値
とを対応付けてテーブルにあらかじめ格納しておき、あ
るxの値に対して、これが前記分割範囲のどこに属する
かを特定するとともに、特定された分割範囲の前記定数
を前記テーブルを参照することにより求め、続いてこの
定数の下で前記近似計算式による計算を実行すること」
である。
成は、「関数f(x) の近似計算を、定数を含んだ近似計
算式に基づいておこなうようにした近似計算方法におい
て、N(Nは2以上の整数)についての異なる巾乗に基
づいてxの範囲を分割した後の単位領域を基準に設定し
たxの分割範囲と、この分割範囲における前記定数の値
とを対応付けてテーブルにあらかじめ格納しておき、あ
るxの値に対して、これが前記分割範囲のどこに属する
かを特定するとともに、特定された分割範囲の前記定数
を前記テーブルを参照することにより求め、続いてこの
定数の下で前記近似計算式による計算を実行すること」
である。
【0036】また、本発明の、近似計算装置の基本的構
成は、「あらかじめ、関数f(x) の近似計算式に含まれ
る定数を、N(Nは2以上の整数)についての異なる巾
乗に基づいてxの範囲を分割した後の単位領域を基準に
設定したxの分割範囲に対応付けて格納したテーブル
と、あるxの値に対して、これが前記分割範囲のどこに
属するかを特定するとともに、この特定された分割範囲
の前記定数を前記テーブルを参照することにより求め、
続いてこの定数の下で前記近似計算式による計算を実行
する機能を持った制御・処理手段とを備えたこと」であ
る。
成は、「あらかじめ、関数f(x) の近似計算式に含まれ
る定数を、N(Nは2以上の整数)についての異なる巾
乗に基づいてxの範囲を分割した後の単位領域を基準に
設定したxの分割範囲に対応付けて格納したテーブル
と、あるxの値に対して、これが前記分割範囲のどこに
属するかを特定するとともに、この特定された分割範囲
の前記定数を前記テーブルを参照することにより求め、
続いてこの定数の下で前記近似計算式による計算を実行
する機能を持った制御・処理手段とを備えたこと」であ
る。
【0037】
【作用】本発明は、このように、ある関数f(x) の近似
計算に用いる近似計算式に含まれる定数を、xの範囲を
巾乗分割して求めた分割範囲を基準にして設定すること
により、この各分割範囲における近似精度や近似計算量
などの均一化を図るものである。
計算に用いる近似計算式に含まれる定数を、xの範囲を
巾乗分割して求めた分割範囲を基準にして設定すること
により、この各分割範囲における近似精度や近似計算量
などの均一化を図るものである。
【0038】そして、arctan(x) の近似計算などにおい
て図1のステップで求めた定数が満足いくものでない
場合には、式(3) とは別の式、例えば式(3) のwを1/
wで置き換えたものについての定数を新たに求めること
もできる。
て図1のステップで求めた定数が満足いくものでない
場合には、式(3) とは別の式、例えば式(3) のwを1/
wで置き換えたものについての定数を新たに求めること
もできる。
【0039】
【実施例】図3〜図6を参照して本発明の実施例を説明
する。図3は、arctan(x) の式における定数wの値の求
め方を示す説明図であり、11は1ビットからなる符号ビ
ット、12は8ビットからなる指数部、13は23ビットから
なる仮数部を示すもので、全体としては4バイトの浮動
小数点数である。
する。図3は、arctan(x) の式における定数wの値の求
め方を示す説明図であり、11は1ビットからなる符号ビ
ット、12は8ビットからなる指数部、13は23ビットから
なる仮数部を示すもので、全体としては4バイトの浮動
小数点数である。
【0040】ここで、指数部12にはそこの値を正とする
ためのバイアス値として「127 」が加えられており、ま
た仮数部13の各ビットは小数点の前の「1」は省略した
かたちのものである。
ためのバイアス値として「127 」が加えられており、ま
た仮数部13の各ビットは小数点の前の「1」は省略した
かたちのものである。
【0041】そして、任意のxに対応のwは、仮数部の
3ビット目を丸めてそのときの仮数部の値と指数部の値
とから求められる。例えば「x=0.3 」の場合には、 ・仮数部の3ビット目の「1」を繰り上げ、 ・この繰り上げ後の仮数部「0100・・・」と指数部
「・・・101」とを求め、 ・両者の値を用いて「w=1.01×2-2=0.3125」の計算
がおこなわれる、 ことになる。なお、eは指数部の値(10進表示)、fは
仮数部の値(10進表示)をそれぞれ示している。
3ビット目を丸めてそのときの仮数部の値と指数部の値
とから求められる。例えば「x=0.3 」の場合には、 ・仮数部の3ビット目の「1」を繰り上げ、 ・この繰り上げ後の仮数部「0100・・・」と指数部
「・・・101」とを求め、 ・両者の値を用いて「w=1.01×2-2=0.3125」の計算
がおこなわれる、 ことになる。なお、eは指数部の値(10進表示)、fは
仮数部の値(10進表示)をそれぞれ示している。
【0042】また、このeおよびfの値を用いた次式
(6) によりmが計算され、例えば「x=0.3 」の場合、
wの指数部の値は「125 」であり、その仮数部fの値は
「1」であるので、「m=(125 −124 )×4+1=
5」となる。
(6) によりmが計算され、例えば「x=0.3 」の場合、
wの指数部の値は「125 」であり、その仮数部fの値は
「1」であるので、「m=(125 −124 )×4+1=
5」となる。
【0043】
【数5】
【0044】図4は、xの範囲(0.125000〜8.000000)
を2の巾乗(−3〜3)に基づく分割をしたときの各分
割範囲を示す説明図であって、m,e,f,wのそれぞ
れは図3の計算により求めたものである。
を2の巾乗(−3〜3)に基づく分割をしたときの各分
割範囲を示す説明図であって、m,e,f,wのそれぞ
れは図3の計算により求めたものである。
【0045】ここで、xの範囲の分割は、例えば「e=
0」の「0.937500〜1.875000」の範囲を基準とした巾乗
分割とこれに対する略等分割とからなっており、前者の
場合はこの基準範囲を2の巾乗(−3〜3)で分割し、
後者の場合はこの巾乗に基づく分割範囲のそれぞれを4
つに分割している。
0」の「0.937500〜1.875000」の範囲を基準とした巾乗
分割とこれに対する略等分割とからなっており、前者の
場合はこの基準範囲を2の巾乗(−3〜3)で分割し、
後者の場合はこの巾乗に基づく分割範囲のそれぞれを4
つに分割している。
【0046】すなわち、前者の巾乗分割では、0.937500
の幅を持つ「0.937500〜1.875000」の基準範囲に対し
て、 ・1/8弱の幅(0.109375)を持つ「0.125000〜0.2343
75」 ・1/4の幅(0.234375)を持つ「0.234375〜0.46875
0」 ・1/2の幅(0.468750)を持つ「0.468750〜0.93750
0」 ・2倍の幅(1.875000)を持つ「1.875000〜3.750000」 ・4倍の幅(3.750000)を持つ「3.750000〜7.500000」 などの各範囲を設定したかたちとなっている。
の幅を持つ「0.937500〜1.875000」の基準範囲に対し
て、 ・1/8弱の幅(0.109375)を持つ「0.125000〜0.2343
75」 ・1/4の幅(0.234375)を持つ「0.234375〜0.46875
0」 ・1/2の幅(0.468750)を持つ「0.468750〜0.93750
0」 ・2倍の幅(1.875000)を持つ「1.875000〜3.750000」 ・4倍の幅(3.750000)を持つ「3.750000〜7.500000」 などの各範囲を設定したかたちとなっている。
【0047】また、後者の4分割では、巾乗分割の各範
囲に対して、 ・「0.031250」を基本とする分割(m=0〜3) ・「0.062500」を基本とする分割(m=4〜7) ・「0.125000」を基本とする分割(m=8〜11) ・「0.250000」を基本とする分割(m=12〜15) ・「0.500000」を基本とする分割(m=16〜19) ・「1.000000」を基本とする分割(m=20〜23) がそれぞれおこなわれたかたちとなっている。
囲に対して、 ・「0.031250」を基本とする分割(m=0〜3) ・「0.062500」を基本とする分割(m=4〜7) ・「0.125000」を基本とする分割(m=8〜11) ・「0.250000」を基本とする分割(m=12〜15) ・「0.500000」を基本とする分割(m=16〜19) ・「1.000000」を基本とする分割(m=20〜23) がそれぞれおこなわれたかたちとなっている。
【0048】なお、この4分割の内でmが最少の各範囲
の幅はそのグループの幅の半分と隣のグループの幅の半
分とを加算した値、例えば「m=8」の範囲の幅は自グ
ループの基本分割幅の1/2である「0.062500」と、隣
のグループの基本分割幅の1/2である「0.031250」と
を加算した「0.937500」となっている。
の幅はそのグループの幅の半分と隣のグループの幅の半
分とを加算した値、例えば「m=8」の範囲の幅は自グ
ループの基本分割幅の1/2である「0.062500」と、隣
のグループの基本分割幅の1/2である「0.031250」と
を加算した「0.937500」となっている。
【0049】図5は、図4の分割範囲に対応のテーブル
の値を示す説明図である。これによれば、 ・xのすべての分割範囲におけるtの絶対値の変化幅が
0.06以下となっていること、 ・tの絶対値が最大のとき「0.058824(m=12) 」と最
少のとき「0.008197(m=24) 」との比はたかだか7倍
にすぎないこと、 などがわかる。
の値を示す説明図である。これによれば、 ・xのすべての分割範囲におけるtの絶対値の変化幅が
0.06以下となっていること、 ・tの絶対値が最大のとき「0.058824(m=12) 」と最
少のとき「0.008197(m=24) 」との比はたかだか7倍
にすぎないこと、 などがわかる。
【0050】図6は、arctan(x) の近似計算の処理手順
を示す説明図であり、その内容は次のようになってい
る。 (11)xの符号をワーク領域に保存して、次のステップに
進む。 (12)xの絶対値により、 ・「x≦1/8 」の場合はステップ(18)に進み、 ・「1/8 <x≦8」場合は次のステップに進み、 ・「x>8」の場合はステップ(19)に進む。 (13)図3および式(6) の計算によりwとmとを求めて、
次のステップに進む。なお、計算をしないでテーブルか
ら求めるようにしてもよい。 (14)既知のxとwとを用いた式(4) の計算によりtを求
めて、次のステップに進む。 (15)式(3) のarctan(t) の項について最良近似式(1) を
用いた近似計算をおこなって、次のステップに進む。 (16)式(3) の定数部分であるarctan(w) の値を図5のテ
ーブルから求めて、次のステップに進む。 (17)既知のarctan(w) とarctan(t) の各値を加算して、
ステップ(22)に進む。 (18)最良近似式(1) を用いた近似計算をおこなって、ス
テップ(22)に進む。 (19)「x′=1/x」として、次のステップに進む。 (20)arctan(x′) の最良近似式(1) を用いた近似計算を
おこなって、次のステップに進む。 (21)π/2からこの近似計算値を引いて、次のステップ
に進む。 (22)ステップ(11)で保存していた符号を復元する。
を示す説明図であり、その内容は次のようになってい
る。 (11)xの符号をワーク領域に保存して、次のステップに
進む。 (12)xの絶対値により、 ・「x≦1/8 」の場合はステップ(18)に進み、 ・「1/8 <x≦8」場合は次のステップに進み、 ・「x>8」の場合はステップ(19)に進む。 (13)図3および式(6) の計算によりwとmとを求めて、
次のステップに進む。なお、計算をしないでテーブルか
ら求めるようにしてもよい。 (14)既知のxとwとを用いた式(4) の計算によりtを求
めて、次のステップに進む。 (15)式(3) のarctan(t) の項について最良近似式(1) を
用いた近似計算をおこなって、次のステップに進む。 (16)式(3) の定数部分であるarctan(w) の値を図5のテ
ーブルから求めて、次のステップに進む。 (17)既知のarctan(w) とarctan(t) の各値を加算して、
ステップ(22)に進む。 (18)最良近似式(1) を用いた近似計算をおこなって、ス
テップ(22)に進む。 (19)「x′=1/x」として、次のステップに進む。 (20)arctan(x′) の最良近似式(1) を用いた近似計算を
おこなって、次のステップに進む。 (21)π/2からこの近似計算値を引いて、次のステップ
に進む。 (22)ステップ(11)で保存していた符号を復元する。
【0051】なお、xの範囲をNk で巾乗分割するとき
のNの値に複数のものを用いたり、kの値を「1」だけ
の順次のインクリメントとは違うかたちで変化させるよ
うにしてもよい。
のNの値に複数のものを用いたり、kの値を「1」だけ
の順次のインクリメントとは違うかたちで変化させるよ
うにしてもよい。
【0052】また、関数の内容によってはxの値が小さ
な範囲でその分割範囲を広くし、xの値が大きな範囲で
はその分割範囲を狭くすることもありえる。さらには、
巾乗分割のみで十分な近似精度なとが確保される単位領
域については再分割の必要はなく、さらには再分割の態
様として等分割以外の分割法を用いてもよいことは勿論
である。
な範囲でその分割範囲を広くし、xの値が大きな範囲で
はその分割範囲を狭くすることもありえる。さらには、
巾乗分割のみで十分な近似精度なとが確保される単位領
域については再分割の必要はなく、さらには再分割の態
様として等分割以外の分割法を用いてもよいことは勿論
である。
【0053】
【発明の効果】本発明は、このように、xの範囲を、N
(Nは2以上の整数)についての異なる巾乗に基づいて
分割した後の単位領域を基準に設定される範囲を分割範
囲とし、またこの巾乗として、もともと計算機における
xの表示態様である浮動小数点数の指数部により決定さ
れる値を用いている。
(Nは2以上の整数)についての異なる巾乗に基づいて
分割した後の単位領域を基準に設定される範囲を分割範
囲とし、またこの巾乗として、もともと計算機における
xの表示態様である浮動小数点数の指数部により決定さ
れる値を用いている。
【0054】そのため、比較的小さなテーブルで高い近
似精度、例えばarctan(x) の近似計算では各分割範囲で
のtの絶対値の変化幅が0.06以下となるような近似精度
を確保して近似計算性能を上げることができ、また巾乗
処理にともなう負担の増加を抑えることができる。
似精度、例えばarctan(x) の近似計算では各分割範囲で
のtの絶対値の変化幅が0.06以下となるような近似精度
を確保して近似計算性能を上げることができ、また巾乗
処理にともなう負担の増加を抑えることができる。
【図1】本発明の、近似計算用テーブル作成の原理説明
図である。
図である。
【図2】本発明の、図1で作成したテーブルを用いる近
似計算の原理説明図である。
似計算の原理説明図である。
【図3】本発明の、arctan(x) の式における定数wの求
め方を示す説明図である。
め方を示す説明図である。
【図4】本発明の、xの範囲を2の巾乗(−3〜3)に
基づいて分割したときの各分割範囲を示す説明図であ
る。
基づいて分割したときの各分割範囲を示す説明図であ
る。
【図5】本発明の、図4の分割範囲に対応のテーブルの
値を示す説明図である。
値を示す説明図である。
【図6】本発明の、arctan(x) の近似計算手順を示す説
明図である。
明図である。
【図7】従来の、arctan(x) の式における定数wの値の
求め方を示す説明図である。
求め方を示す説明図である。
【図8】従来の、arctan(x) の近似計算で用いられるテ
ーブルを示す説明図である。
ーブルを示す説明図である。
【図9】従来の、arctan(x) の近似計算手順を示す説明
図である。
図である。
図1において、 1・・・入力手段 2・・・制御・処理手段 3・・・テーブル 4・・・近似計算対象関数
Claims (10)
- 【請求項1】 関数f(x) の近似計算式で用いる定数を
xの分割範囲ごとに求め、この定数の値をテーブルに格
納するようにした近似計算用テーブルの作成方法におい
て、 前記分割範囲として、xの範囲を、N(Nは2以上の整
数)についての異なる巾乗に基づいて分割した後の単位
領域を基準に設定される範囲を用いるようにしたことを
特徴とする近似計算用テーブルの作成方法。 - 【請求項2】 前記巾乗として、浮動小数点数表示のx
の指数部に基づいて決められる値を用いることを特徴と
する請求項1記載の近似計算用テーブルの作成方法。 - 【請求項3】 前記分割範囲として、前記単位領域を略
等分割した後の再分割領域を用いることを特徴とする請
求項1または2記載の近似計算用テーブルの作成方法。 - 【請求項4】 関数f(x) の近似計算式およびその中の
テーブル化対象の定数が何であるかを入力する入力手段
と、 N(Nは2以上の整数)についての異なる巾乗に基づい
てxの範囲を分割した後の単位領域を基準にxの分割範
囲を設定するとともに、この分割範囲ごとに前記定数の
値を求める機能を持った制御・処理手段と、 この値が前記分割範囲に対応付けて格納されるテーブ
ル、とを備えるようにしたことを特徴とする近似計算用
テーブルの作成装置。 - 【請求項5】 前記制御・処理手段は、前記巾乗とし
て、浮動小数点数表示のxの指数部に基づいて決められ
る値を用いることを特徴とする請求項4記載の近似計算
用テーブルの作成装置。 - 【請求項6】 前記制御・処理手段は、前記分割範囲と
して、前記単位領域を略等分割した後の再分割領域を用
いることを特徴とする請求項4または5記載の近似計算
用テーブルの作成装置。 - 【請求項7】 関数f(x) の近似計算を、定数を含んだ
近似計算式に基づいておこなうようにした近似計算方法
において、 N(Nは2以上の整数)についての異なる巾乗に基づい
てxの範囲を分割した後の単位領域を基準に設定したx
の分割範囲と、この分割範囲における前記定数の値とを
対応付けてテーブルにあらかじめ格納しておき、 あるxの値に対して、これが前記分割範囲のどこに属す
るかを特定するとともに、特定された分割範囲の前記定
数を前記テーブルを参照することにより求め、続いてこ
の定数の下で前記近似計算式による計算を実行するよう
にしたことを特徴とする近似計算方法。 - 【請求項8】 前記分割範囲として、前記単位領域を略
等分割した後の再分割領域が用いられていることを特徴
とする請求項7記載の近似計算方法。 - 【請求項9】 あらかじめ、関数f(x) の近似計算式に
含まれる定数を、N(Nは2以上の整数)についての異
なる巾乗に基づいてxの範囲を分割した後の単位領域を
基準に設定したxの分割範囲に対応付けて格納したテー
ブルと、 あるxの値に対して、これが前記分割範囲のどこに属す
るかを特定するとともに、この特定された分割範囲の前
記定数を前記テーブルを参照することにより求め、続い
てこの定数の下で前記近似計算式による計算を実行する
機能を持った制御・処理手段と、を備えたことを特徴と
する近似計算装置。 - 【請求項10】 前記分割範囲として、前記単位領域を
略等分割した後の再分割領域が用いられていることを特
徴とする請求項9記載の近似計算装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26052494A JPH08123785A (ja) | 1994-10-25 | 1994-10-25 | 近似計算用テーブルの作成方法およびそのための装置ならびに近似計算方法およびそのための装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26052494A JPH08123785A (ja) | 1994-10-25 | 1994-10-25 | 近似計算用テーブルの作成方法およびそのための装置ならびに近似計算方法およびそのための装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08123785A true JPH08123785A (ja) | 1996-05-17 |
Family
ID=17349170
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP26052494A Withdrawn JPH08123785A (ja) | 1994-10-25 | 1994-10-25 | 近似計算用テーブルの作成方法およびそのための装置ならびに近似計算方法およびそのための装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08123785A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6501470B1 (en) | 1997-05-21 | 2002-12-31 | Namco, Ltd. | Look-up table device and image generation device |
| WO2021137691A1 (en) * | 2019-12-31 | 2021-07-08 | Mimos Berhad | A circuit for determining an arctangent of an input operand and a method thereof |
-
1994
- 1994-10-25 JP JP26052494A patent/JPH08123785A/ja not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6501470B1 (en) | 1997-05-21 | 2002-12-31 | Namco, Ltd. | Look-up table device and image generation device |
| WO2004088586A1 (ja) * | 1997-05-21 | 2004-10-14 | Katsuhiro Miura | ルックアップテーブル装置及び画像生成装置 |
| WO2021137691A1 (en) * | 2019-12-31 | 2021-07-08 | Mimos Berhad | A circuit for determining an arctangent of an input operand and a method thereof |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Markstein | Software division and square root using Goldschmidt’s algorithms | |
| US11263288B2 (en) | Rendering a scene using a reduced memory representation of a polynomial function to determine an output value approximating a mathematical function | |
| KR920005226B1 (ko) | 부동 소수점 연산장치 | |
| TW494351B (en) | Floating-point arithmetic unit | |
| US8639737B2 (en) | Method to compute an approximation to the reciprocal of the square root of a floating point number in IEEE format | |
| JPH0235348B2 (ja) | ||
| US20040167956A1 (en) | Method and apparatus for executing division | |
| CN120780271A (zh) | 基于定点数开方的数据输出方法、设备和存储介质 | |
| JPS648856B2 (ja) | ||
| EP0352029B1 (en) | Transformation of divisor and dividend in digital division | |
| KR100847934B1 (ko) | 스케일링된 정수를 사용하는 부동 소수점 연산 | |
| EP0366155A2 (en) | Logarithmic function arithmetic unit including means for separately processing pseudo division and multiplication | |
| JPH08123785A (ja) | 近似計算用テーブルの作成方法およびそのための装置ならびに近似計算方法およびそのための装置 | |
| US6549924B1 (en) | Function generating interpolation method and apparatus | |
| US6792443B2 (en) | Economical on-the-fly rounding for digit-recurrence algorithms | |
| JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
| JPH0251732A (ja) | 浮動小数点演算器 | |
| US6256656B1 (en) | Apparatus and method for extending computational precision of a computer system having a modular arithmetic processing unit | |
| KR101063814B1 (ko) | 디지털 회로 구현을 위한 효율적인 제곱근과 역제곱근 연산기 구조 및 방법 | |
| JPS63186329A (ja) | 三角関数前処理装置 | |
| JP2527373B2 (ja) | 浮動小数点演算器 | |
| JPH0831024B2 (ja) | 演算プロセッサ | |
| JP2518532B2 (ja) | 減算シフト型除算器 | |
| JPH08202533A (ja) | 除算処理装置 | |
| JP4445917B2 (ja) | 剰余計算装置および剰余計算方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20020115 |