JPS6051733B2 - 指数関数演算装置 - Google Patents

指数関数演算装置

Info

Publication number
JPS6051733B2
JPS6051733B2 JP52138440A JP13844077A JPS6051733B2 JP S6051733 B2 JPS6051733 B2 JP S6051733B2 JP 52138440 A JP52138440 A JP 52138440A JP 13844077 A JP13844077 A JP 13844077A JP S6051733 B2 JPS6051733 B2 JP S6051733B2
Authority
JP
Japan
Prior art keywords
storage means
value
register
contents
exponential function
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.)
Expired
Application number
JP52138440A
Other languages
English (en)
Other versions
JPS5471957A (en
Inventor
浩 門田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP52138440A priority Critical patent/JPS6051733B2/ja
Priority to US05/961,474 priority patent/US4225933A/en
Publication of JPS5471957A publication Critical patent/JPS5471957A/ja
Publication of JPS6051733B2 publication Critical patent/JPS6051733B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 本発明は計算機における指数関数の演算装置に関するも
のである。
指数関数はaを正数としXをべき指数としてaXと表わ
される関数てあり、この関数の演算は科学技術計算を取
り扱う計算機にとつて是非とも備えなければならない機
能の一つである。
従来、この関数を演算する方式として例えはaX=ey
すなわちy=x・ lna(1)の関係を利用し、べき
級数eX=1+X+X2/2 +・・・+Xn/n!
+・・・たた七、1X1<1(2)のXにy=x−1n
aを代入して求める方式や、連分数展開や有理近似など
を用いる方式がある。
しかしながら、いずれの方式も多くの乗算や除算を必要
とするため演算時間が長くなりしかも演算精度も満足す
べきものが得られないという欠点があつた。本発明は上
述した欠点に鑑み乗算をデータシフトおよび加算によつ
て短時間に実行するようにし、演算精度を内部定数の語
長によつて自在に制御可能とし、かつ該定数を変更する
だけで容易に底の異つた指数関数を演算可能とした指数
関数演算装置を提供するものてある。
以下の本発明の原理および実施例の説明では10進計算
機における指数関数a゛の演算装置について主に述べら
れるが、本発明は2進計算機等一般にN進計算機に適用
可能である。
本発明の演算原理は関数近似を行なわす指数関数の加法
定理を用いて直接AXを求めることである。
今、x(x≧0とする)が次式のように適当な数列(X
)の和に分解されたとする。加法定理を上式に適用する
と次式が成立する。
iに臀1′o瓜Y7iなる様にX5を選べば(4)式は
と既知の数列(Yn)の積として表現される。しかし(
5)式ではまだ乗算がn回必要であり、従来方法と比較
し特に有利とはいえない。しかしここでY,がとなる様
に取を選ぶことにより(5)式の右辺の乗算はk回の右
シフトと加算によつて簡単に実行できる。
例えばYk(5yk−1の積はとなる。
ここで10−ゝ×Yk−1の値はYk−1の値をk桁シ
フトして得られることは明らかであり通常の乗算に比べ
大幅に演算時間を短縮できる。一般に(3)式の分解は
Cr(r=0〜n−1)を0または正整数としてと表わ
される。
この時は(5)式はすなわち となるだけで本質的な違いはない。
以上のように本発明は10進計算機の場合はXk=10
ga(1+10?k)と選べばよいが、一般N進計算機
の場合には取=10?(1+N−リと選べば良いことは
言うまでもない。
特に、a=eすなわちe゛を演算する場合には(9)式
はとなる。
これにYk=1+10−ゝを代人するとを得る。ここで
nを計算機の処理桁数とすると、k〉〔n/2〕+1
ただし、〔 〕はガウスの記号
(12)を満足するkの値に対する(1+10
−k)0kの値は、10−ゝに対する二次以上の項が計
算機の演算桁よりシフトアウトされ有効データとはなら
ず、これを考慮して(11)式を書き直せば次式を得る
。ここで(12)式を満足するkに対しては、1n(1
+10?k)々10−ゞであることを考慮すれば(13
)式の最終項は、(8)式の分解においてXよりCrX
r=0〜k−1まで減じた残余に1を加えた値と等しい
ことがわかる。すなわちこの事実を利用すれば8式の分
解の作業も、また(10式の乗算も(12)式を満足す
るkに対しO−k−1までの処理で済むことがわかる。
この原理にようて更に演算時間の短縮が図られ、かつ(
8)式において残余を全面的に演算に繰り入れるため演
算精度の向上が図られる。次に図面を用いて本発明の実
施例を説明する。
第1図は本発明に従つて指数関数a゛を演算する場合の
ハーウエアの第1の実施例を示したものである。図にお
いて、XおよびXを含む部分はゲート1a,2a,3a
を介しデータ循環保持するシフトレジスタであり、以下
これをXレジスタと称する。Yおよびyを含む部分はゲ
ート1b,2b,3cを介しデータを循環保持するシフ
トレジスタであり、以下これをYレジスタと称する。Z
およびzを含む部分はゲート1c,2c,3cを介し循
環保持するシフトレジスタであり、以下これをZレジス
タと称する。FAは入力信号Cによ.つて加算と減算を
制御可能なw進計算用のデイレイド・フル・アダーであ
り、入力A,Bに対し(A−B),(A+B)を計算す
る。4および5はそれぞれフル・アダーFA(17)A
側およびB側の入力信号を選択するゲートであり、4に
はXレジスノタ、Yレジスタ、Zレジスタの各出力が入
力され、5にはYレジスタ、Zレジスタ、数値発生器N
の各出力が入力されている。
数値発生器Nは種種の数値データを発生することができ
る。Jはフル・アダーFAで計算された結果キャリー(
Ca)やポロー(BO)が発生した時あるいはゲート6
を介してフル・アダーFAの出力によつてセットされる
フリップフロップである。ROMは各ゲートの動作を支
配する命令コードを格納するリード・オンリ・メモl)
..ADCはリード・オンリ・メモリROMのアドレス
を指定しプログラム・シーケンスを制御するアドレス・
カウンタであり、フリップフロップJの出力によつてリ
ード●オンリ・メモリROMのアドレスが修飾される。
IDはリード・オンリ・メモリROMから読み出された
命令コードを解読し各ゲート類を動作させるマイクロ命
令を発生するインストラクション・デコーダ、TEはデ
コーダIDからの命令に対応して各ゲートの動作タイミ
ングを発生するタイミング発生器である。第2図にXレ
ジスタの詳細な構成を示す。
図示の如くXレジスタはディジットタイミングT。〜T
m+2に対応したm+3桁の長さを持ち、TOに対応す
る桁をX,Tl〜Tm+1に対応する桁X。−XmをX
,Tm+2に対応する桁をXkと称する。通常xは数値
データの小数点位置を、Xは数値データを記憶し、Xk
は種々のコントロールに用いられる。以下の説明におい
て、Xと称する場合烏〜Xmを意味し、Xレジスタと称
する場合レジスタ全体を意味するものとする。なお、Y
レジスタお,よびzレジスタもXレジスタと同様の構成
および意味を持つものとする。次に第1図の基本動作を
説明する。
1 レジスタ右シフト xレジスタは通常はx→2a→X→3a→1a−)Xの
ループにより保持されているが、Xレジスタの右シフト
命令が発生するとT1〜Tm+1時間X→3a→2a−
+Xのループが開くことによりxレジスタは右シフトさ
れる。
この場合、Xが1桁分であるので1桁右シフトされる。
Yレジスタ、Zレジスタおよび他のタイミングに関して
も同様である。2 レジスタ左シフト Xレジスタ左シフト命令が発生すると、X→3a→4→
FA→6→1a−+x→2a−+XのループがT1〜T
m+1の間開く。
フル・アダーFAは1桁分の時間遅れを持つためXレジ
スタの内容は1桁左シフトされる。但しこの時のフル・
アダーFA(7)B側入力としてどの信号も選択されず
、従つてフル・アダーFAは(A+0)または(A−0
)の動作をすることになりXレジスタの内容は変化しな
い。なお、他のレジスタの場合も同様に動作する。(
レジスタ間の加減算 この命令が発生した場合、フル・アダーFAのA側入力
にはゲート3aの出力すなわちXレジスタの出力が入力
され、B側入力には他のレジスタ例えばYレジスタなら
ばゲート3bの出力が入力される。
この時、信号Cによつて加算、減算のどちらかを指定し
、フル・アダーFAの出力はゲート6を通じXレジスタ
へ格納される。またフル・アダーFAによる計算の結果
桁上り(Ca)や桁借り(BO)が生じた時はフリップ
フロップJをセットしこのフリップフロップJの出力に
よつてアドレス・カウンタADCを修飾する。次の命令
がデコードされるとフリップフロップJはリセットされ
る。タイミング発生器TEは演算を実行すべきタイミン
グ信号を発生し上記のゲート類を開成させるが、ゲート
1a〜1cにはフル・アダーFAの遅れに合わせるため
1ディジット遅れのタイミングが加えられる。レジスタ
と数値データの加減算 この命令が発生すると、フル・アダーFAのA側入力に
はX−Zレジスタのいずれかが入力され、B側入力には
数値発生器Nより発生された数値データが入力される。
たた七数値nは演算実行タイミングの最初のディジット
のみに発生され他のタイミングでは0とする。例えば、
X(T1〜T.n+1)ならばT1の時間に数値nが発
生されることになる。フル・アダーFAによる加減算は
上記3の場合と同様に行われる。〕 レジスタの内容と
数値との比較 Xレジスタを例にとると、ゲート3aの出力は通常の保
持を行うべくゲート1cに戻るとともにゲート4に入力
されているが、この命令が発生すると実行タイミング間
ゲート4はフル・アダーFA(7)A側入力としてゲー
ト3aの出力を選択しゲート5はB側入力として数値発
生器Nの出力を選択し、減算を行う。
この演算結果はゲート6を介してフリップフロップJに
入力されるがゲート1aには入力されない。従つて減算
結果がOの場合フリップフロップJはセツトされずその
他の場合セットされ、またレジスタの内容は変化しない
。なお、他のレジスタの場合も同様の動作をする。6
レジスタへの数値データのロード この命令が発生すると、ゲータ4はフル・アダーFA(
7)A側入力としてどの信号も選択せずゲート5はB側
入力として数値発生器Nの出力を選択しフル・アダーF
Aによる加算が指示される。
フル・アダーFAの出力はゲート6により選択されたレ
ジスタの入力ゲート(例えばXレジスタならばゲート1
a)に実行タイミング間入力される。この時、数値発生
器Nはディジット毎に異つたデータを発生することが可
能である。レジスタの入力ゲート1a〜1cのタイミン
グは上記3と同様1ディジット遅れとなる。7Xレジス
タから他のレジスタへのデータ転送Yレジスタへのデー
タ転送命令を例にとると、X(T1〜Tm+1)の出力
は3a→4→FAのA側入力と入力され、一方FA(7
)B側入力としてはゲート5はどの信号も選択しない。
フル・アダーFAの出力はゲート6を介しゲート1bに
入力される。フル・アダーFAからの出力は1ディジッ
ト遅れるので、ゲート1bはT2〜T.n+2間ゲート
6の出力をyへ送りその他にはゲート3bの出力をyへ
送る。次に本発明に従つて第1図のハードウェアにAO
を演算させるフローチャートの第1の実施例を示した第
3図aを参照して本実施例による演算動作を説明する。
まず、ステップ1によりXkにk=0をセットする。次
にステップ2によりYに10k・10&(1+10?k
)をロードする。例えばa=e(=2.71828・・
・)の場合、k=0の時は0.693147・・・、k
=1の時は0.95310・・・となる。この時べき指
数(被演算数)はすでにXにロードされているものとし
、小数点はXmの位置に固定されているものとする。従
つてYにロードされるデータは、k=0、a=eの場合
、第4図に示す様になる。ステップ3ではXにロードさ
れているべき指数から101′・10ga(1+10−
k)を減じ、ボローBOが生じなければステップ4に移
り4に1を加えることにより減算回数を記憶し、ボロー
BOが生じるとステップ5に移る。ステップ3でボロー
BOが生じると1回多く減算したことになるので、この
ステップ5で加算しXの値を元に戻す。
この時、Xの値は1桁小さくなつているため、ステップ
6で1桁左シフトする。これはステップ2で常にデータ
をX..−1からロードし演算の有効桁数を減らさない
様にしているために必要となる。従つて簡便な計算機に
おいてはステップ2において10&(1+10−リをロ
ードすることによりステップ6は不要となる。次にステ
ップ7でX,の値とあらかじめ設定されたk”の値mと
を比較し、Xk(5mとが一致すればステップ9へ、X
k半mならばステップ8へ移る。ステップ8ではXk<
mであるから次のkの値に対応するステップ3の減算回
数を記憶するためにZを1桁左シフトする。次にステッ
プ18によつてXkの値に1を加算しkの値を゜゜1゛
インクリメントし、次のkに対する分解操作をすべくス
テップ2に移り、X,=mになるまで上述のループを繰
り返す。Xk=mとなるとステップ9ヘプログラムシー
ケンスが移り、この時Zの内容はZ,にk=m一1(1
=0,m)の減算回数が記憶されている。
またXには減算の余りが残つており、演算精度を上げる
ためにこれを利用する方法もあるが、ここでは説明を簡
単にするために残余をクリアしその後ステップ10で初
期値1をXrrlにロードするものとする。ステップ1
1以降ステップ17までは本発明の原理による右シフト
と加算による乗算の実行のためのルーチンである。
ステップ11で乙から1を減する゛のでZ。=0であれ
ばボロー田が生じステップ15へ移り、ボローBOが生
じなければステップ12へ移る。ステップ12ではXの
内容をYへ転送し、しかる後ステップ13によつてYを
k桁右シフトしたデータを作り、次のこの値とXをステ
ップ14で加算しステップ11へ戻る。なお、上述のご
ときk桁右シフトは例えば第3図bの如き命令の組合せ
で実現できる。
すなわちXkの値をZkへ転送し(ステップ1)、Zk
をカウントとして用いながらそのカウンタから゜゜1゛
を減じながら(ステップ2)、ボローBOを生じない範
囲においてXを右シフトすればよい(ステップ3)。ス
テップ11〜ステップ14は特定のkに対する乗算ルー
チンである。
ステップ11でボローBOが生じると現在のkに対する
乗算はすべて終了したことになる。従つてステップ15
により次のkの値に対応する減算回数を4へ移すためZ
を1桁右シフトする。この時、kの値は1少ないのでス
テップ16でXkより1を減じる必要がある。Zに記憶
された減算回数はすべてOになれば演算は終了であり、
これをステップ17で検出する。Z=0になればk〉0
であつても演算の必要はない。ステップ17でZ=0と
なつた演算終了時点でのXの値が求める指数関数値であ
る。なお上述した第1の実施例においては、ステップ2
で10g,(1+10−リまたは匍・IO&(1+10
?k)の値をYにロードしその値を用いてステップ3で
減算を行つているが、数値発生器NをタイミングT1に
最下位桁の値、T2に次の桁の値と次次にタイミングに
同期してフル・アダーFA(7)B側入力に送るべく構
成し、一方フル・アダーFAのA側入カへXの出力を送
り込み、かつ減算命令を出すようにすれば、第3図aの
ステップ2は不要となりステップ3はRX−10ga(
1+10−リ→XJまたはRX−10k●10ga(1
+10−リ→Xョと表現できる。
また、第1図のレジスタの代りに他の記憶装置例えばラ
ンダム・アクセス・メモリ(RAM)を用いてもよい。
以上説明した如く本実施例によれば一般の電子式卓上計
算機程度の簡単な装置構成により指数関数AXを求める
装置を提供できる。
第5図は本発明に従つて指数関数a゛を演算する場合の
ハードウェアの第2の実施例を示したものてある。
第5図において第1図と異る部分は次のとおりである。
すなわちWおよびwを含みゲート1d,2d,3dを介
しデータを循環保持するシフトレジスタ(以下、Wレジ
スタという)が追加され、ゲート3dの出力がゲート4
および5にそれぞれ入力として接続されたことである。
Wレジスタも第2図を参照して説明したXレジスタと同
様の構成および意味をもつものとする。第5図の基本動
作も以下の点を除いてほぼ第1図と同様に行われる。
すなわち前述した3レジスタ間の加減算において、この
命令が発生した場合、フル●アダーFA(7)A側入力
にはXレジスタあるいはWレジスタの出力が選択される
ように構成され、加減算の結果としてフル・アダーFA
の出力がゲート6を通じXレジスタあるいはWレジスタ
に格納されるように構成されている。また、ゲート1d
もゲート1aと同様にフル・アダーFAの遅れに合わせ
るため1ディジット遅れのタイミングが加えられる。さ
らに前述した4レジスタと数値データの加減算において
、フル・アダーFA(7)A側入力としてX−Wレジス
タのいずれかが選択されるように構成されている。次に
本発明に従つて第5図のハードウェアにA8を演算させ
るフローチャートの第2の実施例を示した第6図aを参
照して本実施例による演算動作を説明する。
まずステップ1によりXkにk=0をセットする。次に
ステップ2によりWmに初期値1をロードする。各レジ
スタのデータはTm+1の位置に小数点を持つべく正規
化されているものとする。したがつてWには数値“1゛
がロードされている。次にkの値に従つてステップ3で
Yレジスタに10k−10ga(1+10−リをロード
する。a=10の場合k=0ならば0.301029・
・k=1ならば0.413926・・・である。第7図
に0.413926・・・がYレジスタにロードされた
状態を示す。被演算数(べき指数)はすでにXレジスタ
にロードされているのでステップ4〜7において各々の
kの値に対する本発明の演算原理による乗算が実行され
る。ステップ4においてXよりYを減じポ狛−を生じな
い場合ステップ5へ移る。すなわちあるkに対して乗算
を1回実行しなせればならない。従つてまずステップ5
によりWの内容をZへ転送しステップ6によりZの内容
をk桁右シフトする。このk桁右シフトのシステムは例
えば第6図bの如き命令構成を持つことにより実現でき
る。すなわちXkをZkへ転送し現時点のk値をXkに
保持し、しかる後Zkより1を減じながらボローを生じ
ない範囲においてZを右シフトすればよい。次にステッ
プ7によりW(5Zを加算する。これは上述の(7)式
を実行したことになる。しかる後ステップ4に戻りX−
+Y−+Xの命令を実行する。このループがくり返され
ステップ4においてボローが生じた場合、プログラム・
シーケンスはステップ8へ移る。この時点でXは1回多
くYを減じられているのでX.(5Yを加算し、元へ戻
す必要がある。この時Xの内容はYを減じられたため1
桁小さくなつている。このためステップ9でXを1桁左
シフトする。これはステップ3において常に対数値をX
m−1の桁よりロードしていることに対応するもので、
これにより、演算の有効桁を減らさずに高精度で指数関
数値が求まるのである。しかし簡便な計算機の場合は、
ステップ3において10ga(1+10−リをロードし
ステップ9を省略することができる。以上の演算が終了
後ステップ10においてXkの内容がmと一致するかど
うかを判定する。Xk半mならばXkに1を加え、kの
値を゜“1゛インクリメントする。Xk=mならばすべ
ての演算は終了しWを求める関数値が得られる。上記第
2の実施例では、ステップ3において10k−10ga
(1+10?k)あるいは10g.(1+10−k)を
Yにロードし、しかる後ステップ4によりXとYの間の
減算を実行しているが、数値発生器Nを特定の命令の場
合には、T1のタイミングに最下位桁の数値を、T2に
次の桁の数値・・・,Tm+1に最上位桁の数値を発生
する様に構成すれば、Rx−10&(1+10−リ→X
ョまたは1X−101C×IOg.(1+10−k)→
X.Jの命令をステップ3に用い、ステップ4を省略す
る。すなわちYレジスタは本質的には本発明に不要であ
る。また本実施例においては記憶装置としてレジスタが
使用されているがRAM(ランダム・アクセス●メモリ
)を用いても同様の効果が得られることは言うまでもな
い。以上説明したようにこの実施例によつても、一般の
電子式卓上計算機程度の簡単な装置構成により指数関数
を求める装置を提供できる。
次に本発明に従つて第5図のハードウェアにe゛を演算
させるフローチャートの第3の実施例を示した第8図a
を参照して本実施例により演算動作を説明する。
まずステップ1によりXkにk=0をセットする。次に
ステップ2によりYに1n(1+10−リをロードし、
ステップ3において既にXにロードされている求める指
数関数のべき指数より1n(1+10−k)を減じ、ボ
ローBOが生じなければステップ4へ移り、4に1を加
えることにより減算回数を記憶し、田が生ずるとステッ
プ5へ移る。ステップ5では、ステップ3において1回
多く減算がなされているのでこれを補正するため加算を
実行する。次にステップ3においてX5の値があらかじ
め設定されたkの値m″(0くm″〈m)と比較しXk
≠mであればステップ7へ゛移りカウンターZを左シフ
トする。これによりZ。の値を1桁移動し4をクリアで
きる。その後ステップ8においてkの値を゜゜1゛イン
クリメントし次のkに対する分解操作をすべくステップ
2へ移る。第9図aはYに1n(1+1)、1n(1+
0.1)をそれぞれロードした図である。この図から明
らから様に数値はT.m+1(ニーモニツクX.n)の
位置に小数点がある様に正規化されている。以上のルー
プをくり返しXk=m″となりステップ9へプログラム
・シーケンスが移つた時(8)式における分解は(12
)式で表わされるkの値までCrの値をZ”に格納した
ことにより、Xの残余が(13)式における(Ck・1
0′−k+・・・+Cn−1・10−1りとなる。ステ
ップ9においてX..に1を加えることにより(13)
式の最終項がXに格納される。ステップ10〜16が(
13)式の乗算ルーチンである。最初にステップ1ト、
プログラム●シーケンスが来た時Z。?値はXk=m″
に対応している。4半0ならばZ。
より1をボロー田を生ぜずに減算できるので、ステップ
11へ移り、Xの内容Yへ転送し、Xの内容を破壊せず
にYの内容をステップ12においてk″桁右シフトし、
その結果をステップ13においてXに加算する。これに
より、乗算が1回なされたことになる。Yをkに対応し
た回数右シフトするには例えば第8図bの様な方法が考
えられる。すなわちXkの値をZkへ転送しZ,をカウ
ンターとして用いながらカウンターから゜゜1゛を減算
可能な間Yを右シフトすればよい。ステップ10におい
てボロー田が生ずると現在のkに対する乗算はすべて終
了したことになる。従つてステップ14によりZを右シ
フトし新たなkに対応するデータをZ。へ送りこむ。こ
の時kの値は1少ないのでステップ15においてXkよ
り1を減する必要がある。Zに記憶された減算回数がす
べてOになれば演算は終了でありこれをステップ16で
コントロールする。以上の様に本実施例によれば電子式
卓上計算機等の簡単な装置により高速高精度で指数関数
e゛を求めることができる。
更に精度を高めるためにステップ2において1n(1+
10?k)の代りに101′・1n(1+10−k)を
ロードする方法がある。この場合第9図bの様に対数値
データはYの有効桁すべてにわたるためステップ3にお
ける減算精度が上る。ただし、このためステップ5とス
テップ6の間にx?→Xの命令が必要となり、またステ
ップ6でXk=m″となつた時Xの内容は10k×の形
式になつているため再び正規化するためXをk回右シフ
トする必要が生じて来るが、処理は簡単なものであり、
本発明の主旨をそこなうものではない。以上の説明から
明らかなように本発明によれば、乗算をデータシフトお
よび加算によつて短時間に実行するようにし、演算精度
を内部定数の語長によつて自在に制御可能とし、かつ該
定数を変更するだけて容易に底の異つた指数関数を演算
可能とした演算装置を、一般の電子式卓上計算機程度の
簡単な構成により提供することができる。
【図面の簡単な説明】
第1図は本発明に従つて指数関数a゛を演算する場合の
ハードウェアの第1の実施例を示したブロック図、第2
図は第1図のXレジスタの詳細な構成を示した図、第3
図aは本発明に従つて第1図のハードウェアにAXを演
算させる場合のフローチャートの第1の実施例を示した
図、第3図bは第3図aに用いられるk桁右シフトのフ
ローチャートの一例を示した図、第4図は10ge2を
Yレジスタにロードした状態を示した図、第5図は本発
明に従一つて指数関数AXを演算する場合のハードウェ
アの第2の実施例を示したブロック図、第6図aは本発
明に従つて第5図のハードウェアにa゛を演算させる場
合のフローチャートの第2の実施例を示した図、第6図
bは第6図aに用いられるk桁右シフトのフローチャー
トの一例を示した図、第7図はYレジスタに0.413
926・・・がロードされた状態を示した図、第8図a
は本発明に従つて第5図のハードウェアにEXを演算さ
せる場合のフローチャートの第3の実施例を示した図、
第8図bは第8図aに用いられるk桁右シフトのフロー
チャートの一例を示した図、第9図aおよびbはそれぞ
れIn(1+10−k)および10′・1n(1+10
−k)をk=0,1に対しYレジスタヘロードした状態
を示した図である。 X,y,z,w,X,Y,Wはレジスタ、1a〜1d,
2a〜2d,3a〜3d,4,5,6はゲート、Jはフ
リップフロップ、FAはデイレイドフル・アダー、AD
Cはアドレス・カウンタ、ROMはリード・オンリー・
メモリー、IDはインストラクション・デコーダ、Nは
数値発生器、TEはタイミング発生器。

Claims (1)

    【特許請求の範囲】
  1. 1 N進計算機における指数関数a^x(aは正定数、
    xは変数)の演算装置において、上記a(a≠1)を底
    とする対数値log_a(1+N^−^k)またはN^
    k・log_a(1+N^−^k)(ただしk=0、1
    、2、・・・、m)をk=0よりk=mまで逐次発生す
    る手段と、任意正変数xを記憶する第1の記憶手段と、
    固定されたkに対する前記対数値を上記第1の記憶手段
    からボローが生ずる直前まで繰り返し減算する手段と、
    該減算回数を記憶する第2の記憶手段と、数値1を発生
    する手段と、1を初期値として持つ第3の記憶手段と、
    該第3の記憶手段の内容を他の記憶手段へ転送する手段
    と、第4の記憶手段と、該第4の記憶手段の内容をk桁
    右シフトする手段と、該第4の記憶手段の内容を上記第
    3の記憶手段へ加算する手段とを備え、上記第1の記憶
    手段の内容よりk=0からmまで逐次発生される対数値
    を固定されたkに対し減算しボローが生ずる直前までの
    減算回数をkに対応して上記第2の記憶手段へ記憶し、
    k=0からk=mまで上記演算が終了した後に上記第3
    の記憶手段に1を設定しkに対応した減算回数分だけ該
    第3の記憶手段の内容を上記第4の記憶手段へ転送しか
    つ該第4の記憶手段の内容をk桁右シフトし、その結果
    を上記第3の記憶手段に加算する操作をくりかえし、こ
    れをk=0よりmまでくり返した後の上記第3の記憶手
    段の内容を求める指数関数値a^xとすることを特徴と
    する指数関数演算装置。
JP52138440A 1977-11-19 1977-11-19 指数関数演算装置 Expired JPS6051733B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP52138440A JPS6051733B2 (ja) 1977-11-19 1977-11-19 指数関数演算装置
US05/961,474 US4225933A (en) 1977-11-19 1978-11-16 Exponential function computing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP52138440A JPS6051733B2 (ja) 1977-11-19 1977-11-19 指数関数演算装置

Publications (2)

Publication Number Publication Date
JPS5471957A JPS5471957A (en) 1979-06-08
JPS6051733B2 true JPS6051733B2 (ja) 1985-11-15

Family

ID=15222029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52138440A Expired JPS6051733B2 (ja) 1977-11-19 1977-11-19 指数関数演算装置

Country Status (2)

Country Link
US (1) US4225933A (ja)
JP (1) JPS6051733B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56147241A (en) * 1980-04-15 1981-11-16 Casio Comput Co Ltd Operation system
US4700319A (en) * 1985-06-06 1987-10-13 The United States Of America As Represented By The Secretary Of The Air Force Arithmetic pipeline for image processing
JP2822399B2 (ja) * 1988-10-28 1998-11-11 日本電気株式会社 対数関数演算装置
US5359551A (en) * 1989-06-14 1994-10-25 Log Point Technologies, Inc. High speed logarithmic function generating apparatus
US5177702A (en) * 1990-07-19 1993-01-05 Motorola, Inc. Device and method for evaluating exponentials
US5195052A (en) * 1991-12-13 1993-03-16 International Business Machines Corporation Circuit and method for performing integer power operations
US5535148A (en) * 1993-09-23 1996-07-09 Motorola Inc. Method and apparatus for approximating a sigmoidal response using digital circuitry
US5553012A (en) * 1995-03-10 1996-09-03 Motorola, Inc. Exponentiation circuit utilizing shift means and method of using same
US6055553A (en) * 1997-02-25 2000-04-25 Kantabutra; Vitit Apparatus for computing exponential and trigonometric functions
JPH10283340A (ja) * 1997-04-10 1998-10-23 Mitsubishi Electric Corp 演算プロセッサ
US5935200A (en) * 1997-11-21 1999-08-10 Unisys Corporation Exponential functional relationship generator method and system for implementation in digital logic
EP0935203A3 (en) 1998-02-04 2000-05-24 Matsushita Electric Industrial Co., Ltd. Exponential calculation device
US6304889B1 (en) * 1998-11-18 2001-10-16 International Business Machines Corporation Exponential optimization

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3436533A (en) * 1965-11-29 1969-04-01 Us Navy Digital log computer
US3632996A (en) * 1970-05-14 1972-01-04 Nasa Digital quasi-exponential function generator

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM J RES DEVELOP=1972 *

Also Published As

Publication number Publication date
JPS5471957A (en) 1979-06-08
US4225933A (en) 1980-09-30

Similar Documents

Publication Publication Date Title
JP4980834B2 (ja) 算術プロセッサ
US6539368B1 (en) Neural processor, saturation unit, calculation unit and adder circuit
JP3605181B2 (ja) 掛け算累算命令を使用したデータ処理
US3828175A (en) Method and apparatus for division employing table-lookup and functional iteration
JPS6051733B2 (ja) 指数関数演算装置
JPH0749772A (ja) 除算及び開平算に関して修正ニュートン−ラプソン技術を用いる浮動小数点演算装置
US5105378A (en) High-radix divider
KR101103893B1 (ko) 몽고메리 곱셈 내에서의 simd 명령어들의 사용
US9170776B2 (en) Digital signal processor having instruction set with a logarithm function using reduced look-up table
US6505288B1 (en) Matrix operation apparatus and digital signal processor capable of performing matrix operations
US4092723A (en) Computer for computing a discrete fourier transform
GB1364215A (en) Divider
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
US20060184594A1 (en) Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation
US4228518A (en) Microprocessor having multiply/divide circuitry
US4991132A (en) Apparatus for executing division by high-speed convergence processing
JP2508784B2 (ja) 指数関数演算装置
US5140545A (en) High performance divider with a sequence of convergence factors
US5317531A (en) Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division
US5734600A (en) Polynomial multiplier apparatus and method
US5696713A (en) Method for faster division by known divisor while maintaining desired accuracy
JPS5834037B2 (ja) アドレス計算装置
US7167885B2 (en) Emod a fast modulus calculation for computer systems
JP3727039B2 (ja) コンパイラにおける乗算実施方法
JPS6120134A (ja) 平方根計算装置