(57)【要約】【課題】従来の演算処理装置においては、高速に対数演算できない、という課題があった。【解決手段】「０＜Ａ１＜１」、「Ａ１≒１」、「Ａ２＝１／Ａ１」、「Ｂ＝ｌｏｇＡ２」を満たす定数値Ａ１、Ａ２、Ｂを格納しており、受け付けた正数ｘが１より大きいか、または、Ａ１以下であるかを判断し、ｘが１より大きいと判断した場合に「ｘ←ｘ×Ａ１」を、ｘが１以下になるまでｍ回実行し、ｘがＡ１以下であると判断した場合に「ｘ←ｘ×Ａ２」を、ｘがＡ１より大きくなるまでｍ回実行し、−ｍをｍとし、「β＝１−ｘ」によりβを得て、「ｙ＝Ｂ×ｍ−（β＋β２／２＋β３／３＋・・・＋βｐ／ｐ）」を実行し、実行結果ｙを出力する演算処理装置により、高速な対数演算ができる。【選択図】図１
2008152614.tif 000002
【特許請求の範囲】
【請求項１】
正数ｘの対数演算を行う演算処理装置であって、
「０＜Ａ１＜１」、「Ａ１≒１」、「Ａ２＝１／Ａ１」、「Ｂ＝ｌｏｇＡ２」を満たす定数値Ａ１、Ａ２、Ｂを格納している定数値格納部と、
正数ｘを受け付け、メモリ上に配置する受付部と、
前記受付部が受け付けたｘが１より大きいか、または、前記ｘがＡ１以下であるか、を判断する第一判断部と、
前記第一判断部が、ｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、前記第一演算を繰り返し実行し、最後のｘとｍをメモリ上に配置する第一処理部と、
前記第一判断部が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、前記第二演算を繰り返し実行し、−ｍをｍとし、最後のｘとｍをメモリ上に配置する第二処理部と、
１以下でありＡ１より大きいｘであり、前記受付部が受け付けたｘ、または前記第一処理部または前記第二処理部が取得したｘを１から減算し、減算した結果であるβを得て、メモリ上に配置する減算処理部と、
前記定数値格納部からＢを読み出し、当該Ｂ、予め決められた定数ｐ、前記ｍ、および前記減算処理部が取得したβを用いて、数式１を実行し、実行結果ｙをメモリ上に配置する出力値演算部と、
【数１】
2008152614.tif 000013
前記出力値演算部が取得した実行結果ｙを出力する出力部を具備する演算処理装置。
【請求項２】
正数ｘの対数演算を行う演算処理装置であって、
「０＜Ａ１＜１」、「Ａ２＝１／Ａ１」、「Ａ１＜＝Ａ３＜１」、「Ａ３≒１」、「Ａ４＝１／Ａ３」、「Ｂ１＝ｌｏｇＡ２」、「Ｂ２＝ｌｏｇＡ４」を満たす定数値Ａ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２を格納している定数値格納部と、
正数ｘを受け付け、メモリ上に配置する受付部と、
前記受付部が受け付けたｘが１より大きいか、または、ｘがＡ３以下でありＡ１より大きいか、または、ｘがＡ１以下であるか、を判断する第一判断部と、
前記第一判断部が、ｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、前記第一演算を繰り返し実行し、最後のｘとｍをメモリ上に配置する第一処理部と、
前記第一判断部が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、前記第二演算を繰り返し実行し、−ｍをｍとし、最後のｘとｍをメモリ上に配置する第二処理部と、
前記ｘがＡ３以下であるか否かを判断する第二判断部と、
前記第一判断部が、前記ｘがＡ３以下でありＡ１より大きいと判断した場合、
または前記第二判断部が、前記ｘがＡ３以下であると判断した場合に、
演算式「ｘ×Ａ４」で示される第三演算を実行し、算出した値をｘとし、ｘがＡ３より大きくなるまで、ｎ回、前記第三演算を繰り返し実行し、−ｎをｎとし、最後のｘとｎをメモリ上に配置する第三処理部と、
１以下でありＡ３より大きいｘであり、前記受付部が受け付けたｘ、または前記第一処理部または前記第二処理部または前記第三処理部が取得したｘを１から減算し、減算した結果であるβを得て、当該βをメモリ上に配置する減算処理部と、
前記定数値格納部からＢ１およびＢ２を読み出し、当該Ｂ１、Ｂ２、予め決められた定数ｐ、前記ｍ、前記ｎ、および前記減算処理部が取得したβを用いて、以下の数式２を実行し、実行結果ｙをメモリ上に配置する出力値演算部と、
【数２】
2008152614.tif 000014
前記出力値演算部が取得した実行結果ｙを出力する出力部を具備する演算処理装置。
【請求項３】
前記定数値格納部に格納されている定数値Ａ１およびＡ２、または、定数値Ａ１およびＡ２およびＡ３およびＡ４は有限桁の実数である請求項１または請求項２記載の演算処理装置。
【請求項４】
前記減算処理部が取得したβの値に応じて、ｐの値を決定し、当該ｐの値をメモリ上に配置する次数決定部をさらに具備し、
前記出力値演算部は、
前記次数決定部が決定したｐを用いて、数式１または数式２を実行し、実行結果ｙをメモリ上に配置する請求項１から請求項３いずれか記載の演算処理装置。
【請求項５】
記憶媒体に、「０＜Ａ１＜１」、「Ａ１≒１」、「Ａ２＝１／Ａ１」、「Ｂ＝ｌｏｇＡ２」を満たす定数値Ａ１、Ａ２、Ｂを格納しており、
コンピュータを、
正数ｘを受け付け、メモリ上に配置する受付部と、
前記受付部が受け付けたｘが１より大きいか、または、前記ｘがＡ１以下であるか、を判断する第一判断部と、
前記第一判断部が、ｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、前記第一演算を繰り返し実行し、最後のｘとｍをメモリ上に配置する第一処理部と、
前記第一判断部が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、前記第二演算を繰り返し実行し、−ｍをｍとし、最後のｘとｍをメモリ上に配置する第二処理部と、
１以下でありＡ１より大きいｘであり、前記受付部が受け付けたｘ、または前記第一処理部または前記第二処理部が取得したｘを１から減算し、減算した結果であるβを得て、メモリ上に配置する減算処理部と、
前記定数値格納部からＢを読み出し、当該Ｂ、予め決められた定数ｐ、前記ｍ、および前記減算処理部が取得したβを用いて、数式１を実行し、実行結果ｙをメモリ上に配置する出力値演算部と、
前記出力値演算部が取得した実行結果ｙを出力する出力部として機能させるためのプログラム。
【請求項６】
記憶媒体に、「０＜Ａ１＜１」、「Ａ２＝１／Ａ１」、「Ａ１＜＝Ａ３＜１」、「Ａ３≒１」、「Ａ４＝１／Ａ３」、「Ｂ１＝ｌｏｇＡ２」、「Ｂ２＝ｌｏｇＡ４」を満たす定数値Ａ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２を格納しており、
コンピュータを、
正数ｘを受け付け、メモリ上に配置する受付部と、
前記受付部が受け付けたｘが１より大きいか、または、ｘがＡ３以下でありＡ１より大きいか、または、ｘがＡ１以下であるか、を判断する第一判断部と、
前記第一判断部が、ｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、前記第一演算を繰り返し実行し、最後のｘとｍをメモリ上に配置する第一処理部と、
前記第一判断部が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、前記第二演算を繰り返し実行し、−ｍをｍとし、最後のｘとｍをメモリ上に配置する第二処理部と、
前記ｘがＡ３以下であるか否かを判断する第二判断部と、
前記第一判断部が、前記ｘがＡ３以下でありＡ１より大きいと判断した場合、
または前記第二判断部が、前記ｘがＡ３以下であると判断した場合に、
演算式「ｘ×Ａ４」で示される第三演算を実行し、算出した値をｘとし、ｘがＡ３より大きくなるまで、ｎ回、前記第三演算を繰り返し実行し、−ｎをｎとし、最後のｘとｎをメモリ上に配置する第三処理部と、
１以下でありＡ３より大きいｘであり、前記受付部が受け付けたｘ、または前記第一処理部または前記第二処理部または前記第三処理部が取得したｘを１から減算し、減算した結果であるβを得て、当該βをメモリ上に配置する減算処理部と、
前記記憶媒体からＢ１およびＢ２を読み出し、当該Ｂ１、Ｂ２、予め決められた定数ｐ、前記ｍ、前記ｎ、および前記減算処理部が取得したβを用いて、数式２を実行し、実行結果ｙをメモリ上に配置する出力値演算部と、
前記出力値演算部が取得した実行結果ｙを出力する出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、正数の対数演算を行う演算処理装置等に関するものである。
【背景技術】
【０００２】
発音の良し悪しを評定する発音評定装置や、音声認識処理を行う音声認識装置などの音声処理を行う装置において、音声の特徴抽出が行われる。この音声の特徴抽出法の一つとしてＭＦＣＣ法が知られている。このＭＦＣＣ法において、正数の対数演算が必要となる。
【０００３】
従来の演算処理装置において、入力された計算式の状況に応じて対数関数の計算処理を行い、桁落ちのない高精度な計算結果を得るこができる演算処理装置があった（例えば、特許文献１参照）。本演算処理装置では、所望の計算式を伴う計算依頼に応じた計算処理の過程において、対数関数の［ｌｏｇ１ｐ（ｘ）］関数によるテイラー展開を使用した高精度な計算処理が必要と仮定される「１＋−数値」部分を検知して、その内容を状況検知レジスタで保持し、当該レジスタで保持された数値が１未満であると判断された場合には前記［ｌｏｇ１ｐ（ｘ）］関数による高精度な計算処理を行い、１以上であると判断された場合には［ｌｏｇ（ｘ）］関数による通常の対数関数計算処理を行うことで、対数関数の計算処理を行なう。
【０００４】
また、対数値の演算を行う演算処理装置を内部に組み込んだ装置の例として、以下の発音評定装置がある。本発音評定装置は、比較対象の音声に関するデータである教師データを格納している教師データ格納部と、教師データに対応する音声を出力する音声出力部と、前記音声出力部が音声データの少なくとも一部を出力した後、音声の入力を受け付ける音声受付部と、前記音声受付部が受け付けた音声と、前記教師データに基づいて、前記音声受付部が受け付けた音声の評定を行う評定部と、前記評定部の評定結果を出力する出力部を具備する（特許文献２参照）。かかる発音評定装置により、追唱を行いながら、練習対象の模範の音声と、練習者が発声する音声との類似度を把握できる。
【特許文献１】特開２００６−１６３５２９号公報（第１頁、第１図等）
【特許文献２】特開２００６−２０１４９１号公報（第１頁、第１図等）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の演算処理装置においては、十分に高速な対数演算が困難である、という課題があった。
【課題を解決するための手段】
【０００６】
本第一の発明の演算処理装置は、正数ｘの対数演算を行う演算処理装置であって、「０＜Ａ１＜１」、「Ａ１≒１」、「Ａ２＝１／Ａ１」、「Ｂ＝ｌｏｇＡ２」を満たす定数値Ａ１、Ａ２、Ｂを格納している定数値格納部と、正数ｘを受け付け、メモリ上に配置する受付部と、前記受付部が受け付けたｘが１より大きいか、または、前記ｘがＡ１以下であるか、を判断する第一判断部と、前記第一判断部が、ｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、前記第一演算を繰り返し実行し、最後のｘとｍをメモリ上に配置する第一処理部と、前記第一判断部が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、前記第二演算を繰り返し実行し、−ｍをｍとし、最後のｘとｍをメモリ上に配置する第二処理部と、１以下でありＡ１より大きいｘであり、前記受付部が受け付けたｘ、または前記第一処理部または前記第二処理部が取得したｘを１から減算し、減算した結果であるβを得て、メモリ上に配置する減算処理部と、前記定数値格納部からＢを読み出し、当該Ｂ、予め決められた定数ｐ、前記ｍ、および前記減算処理部が取得したβを用いて、数式１を実行し、実行結果ｙをメモリ上に配置する出力値演算部と、前記出力値演算部が取得した実行結果ｙを出力する出力部を具備する演算処理装置である。
【数１】
2008152614.tif 000003
【０００７】
かかる構成により、十分に高速な対数演算ができる。
【０００８】
また、本第二の発明の演算処理装置は、正数ｘの対数演算を行う演算処理装置であって、「０＜Ａ１＜１」、「Ａ２＝１／Ａ１」、「Ａ１＜＝Ａ３＜１」、「Ａ３≒１」、「Ａ４＝１／Ａ３」、「Ｂ１＝ｌｏｇＡ２」、「Ｂ２＝ｌｏｇＡ４」を満たす定数値Ａ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２を格納している定数値格納部と、正数ｘを受け付け、メモリ上に配置する受付部と、前記受付部が受け付けたｘが１より大きいか、または、ｘがＡ３以下でありＡ１より大きいか、または、ｘがＡ１以下であるか、を判断する第一判断部と、前記第一判断部が、ｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、前記第一演算を繰り返し実行し、最後のｘとｍをメモリ上に配置する第一処理部と、前記第一判断部が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、前記第二演算を繰り返し実行し、−ｍをｍとし、最後のｘとｍをメモリ上に配置する第二処理部と、前記ｘがＡ３以下であるか否かを判断する第二判断部と、前記第一判断部が、前記ｘがＡ３以下でありＡ１より大きいと判断した場合、または前記第二判断部が、前記ｘがＡ３以下であると判断した場合に、演算式「ｘ×Ａ４」で示される第三演算を実行し、算出した値をｘとし、ｘがＡ３より大きくなるまで、ｎ回、前記第三演算を繰り返し実行し、−ｎをｎとし、最後のｘとｎをメモリ上に配置する第三処理部と、１以下でありＡ３より大きいｘであり、前記受付部が受け付けたｘ、または前記第一処理部または前記第二処理部または前記第三処理部が取得したｘを１から減算し、減算した結果であるβを得て、当該βをメモリ上に配置する減算処理部と、前記定数値格納部からＢ１およびＢ２を読み出し、当該Ｂ１、Ｂ２、予め決められた定数ｐ、前記ｍ、前記ｎ、および前記減算処理部が取得したβを用いて、以下の数式２を実行し、実行結果ｙをメモリ上に配置する出力値演算部と、前記出力値演算部が取得した実行結果ｙを出力する出力部を具備する演算処理装置である。
【数２】
2008152614.tif 000004
【０００９】
かかる構成により、さらに十分に高速な対数演算ができる。
【００１０】
また、本第三の発明の演算処理装置は、第一、第二いずれかの発明に対して、前記定数値格納部に格納されている定数値Ａ１およびＡ２、または、定数値Ａ１およびＡ２およびＡ３およびＡ４は、有限桁の実数である。
【００１１】
かかる構成により、さらに十分に高速な対数演算ができる。
【００１２】
また、本第四の発明の演算処理装置は、第一から第三いずれかの発明に対して、前記減算処理部が取得したβの値に応じて、ｐの値を決定し、当該ｐの値をメモリ上に配置する次数決定部をさらに具備し、前記出力値演算部は、前記次数決定部が決定したｐを用いて、数式１または数式２を実行し、実行結果ｙをメモリ上に配置する演算処理装置である。
【００１３】
かかる構成により、さらに十分に好適で、高速な対数演算ができる。
【発明の効果】
【００１４】
本発明による演算処理装置によれば、高速な対数演算が可能である。
【発明を実施するための最良の形態】
【００１５】
以下、演算処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
（実施の形態１）
【００１６】
図１は、本実施の形態における演算処理装置のブロック図である。本演算処理装置は、正数の対数演算を行う演算処理装置１である。
【００１７】
演算処理装置１は、定数値格納部１１、受付部１２、第一判断部１３、第一処理部１４、第二処理部１５、減算処理部１６、次数決定部１７、出力値演算部１８、出力部１９を具備する。
【００１８】
定数値格納部１１は、「０＜Ａ１＜１」、「Ａ１≒１」、「Ａ２＝１／Ａ１」、「Ｂ＝ｌｏｇＡ２」を満たす定数値Ａ１、Ａ２、Ｂを格納している。定数値Ａ１およびＡ２は、有限桁の実数であることが好適である。例えば、「Ａ１＝０．５」、「Ａ２＝２」などは好適である。また、Ａ１、Ａ２、Ｂは、キーボード等の入力手段により、予め人手により入力されても良いし、Ａ１のみ入力され、演算処理装置１の図示しない手段により、演算式「Ａ２＝１／Ａ１」の情報を読み出し、当該演算式に入力されたＡ１を代入し、Ａ２を取得し、Ａ２を定数値格納部１１に少なくとも一時蓄積しても良い。また、同様に、演算処理装置１の図示しない手段により、演算式「Ｂ＝ｌｏｇＡ２」の情報を読み出し、当該演算式に入力されたＡ２、または算出されたＡ２を代入し、Ｂを取得し、Ｂを定数値格納部１１に少なくとも一時蓄積しても良い。その他、定数値Ａ１、Ａ２、Ｂの取得方法は問わない。定数値格納部１１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００１９】
受付部１２は、正数ｘを受け付け、メモリ上に配置する。正数ｘは、任意の正の実数である。正数ｘの入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部１２は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００２０】
第一判断部１３は、受付部１２が受け付けたｘを読み出し、かつ、定数値格納部１１からＡ１を読み出し、受付部１２が受け付けたｘが１より大きいか、または、ｘがＡ１以下であるか、を判断する。第一判断部１３は、比較回路等により実現され得る。第一判断部１３は、通常、ＭＰＵやメモリ等から実現され得る。第一判断部１３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２１】
第一処理部１４は、第一判断部１３がｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、第一演算を繰り返し実行し、最後のｘ（少なくとも最後のｘ）とｍをメモリ上に配置する。第一処理部１４は、演算式「ｘ×Ａ１」の情報を格納しており、当該情報を読み出し、かつ、受付部１２が受け付けたｘを読み出し、かつ、定数値格納部１１からＡ１を読み出し、上記の処理を行う。第一処理部１４は、乗算回路と比較回路等で実現され得る。第一処理部１４は、通常、ＭＰＵやメモリ等から実現され得る。第一処理部１４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２２】
第二処理部１５は、第一判断部１３が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、第二演算を繰り返し実行し、−ｍをｍとし、最後のｘとｍをメモリ上に配置する。第二処理部１５は、演算式「ｘ×Ａ２」の情報を格納しており、当該情報を読み出し、かつ、受付部１２が受け付けたｘを読み出し、かつ、定数値格納部１１からＡ１とＡ２を読み出し、上記の処理を行う。第二処理部１５は、乗算回路と比較回路等で実現され得る。第二処理部１５は、通常、ＭＰＵやメモリ等から実現され得る。第二処理部１５の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２３】
減算処理部１６は、１以下でありＡ１より大きいｘであり、受付部１２が受け付けたｘ、または、第一処理部１４または第二処理部１５が取得したｘを１から減算し、減算した結果であるβを得て、当該βをメモリ上に配置する。なお、受付部１２が受け付けたｘが１以下でありＡ１より大きい場合、第一処理部１４または第二処理部１５により、何らｘは処理されず、そのまま減算処理部１６に渡される。減算処理部１６は、減算回路で実現され得る。減算処理部１６は、通常、ＭＰＵやメモリ等から実現され得る。減算処理部１６の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２４】
次数決定部１７は、減算処理部１６が取得したβの値に応じて、ｐの値を決定し、当該ｐの値をメモリ上に配置する。次数決定部１７は、通常、βの値が小さいほど、ｐの値を小さくするように決定する。βの値が極めて小さい場合、ｐの値を小さくしても、出力値演算部１８が行う演算結果において、誤差が小さくなる。そして、ｐの値が小さいほど、出力値演算部１８が行う演算が高速になる。次数決定部１７は、例えば、βの大きさの範囲と、ｐの値を対応付けた表（図２参照）を保持している。かかる表は、例えば、βが「０以上０．１以下」の場合はｐは「３」、βが「０．１より大きく０．２以下」の場合はｐは「４」、βが「０．２より大きく０．３以下」の場合はｐは「５」、βが「０．３より大きく０．４以下」の場合はｐは「６」、βが「０．４より大きい」の場合はｐは「７」等である。なお、次数決定部１７は、必須の構成要素ではない。ｐの値を固定して、後述する出力値演算部１８の演算処理を行っても良い。次数決定部１７は、通常、ＭＰＵやメモリ等から実現され得る。次数決定部１７の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２５】
出力値演算部１８は、定数値格納部１１からＢを読み出し、当該Ｂ、定数ｐ、ｍ、および減算処理部１６が取得したβを用いて、上記の数式１を実行し、実行結果ｙをメモリ上に配置する。また、βの値により、動的にｐを決定する場合、次数決定部１７が決定したｐを用いて、数式１を実行し、実行結果ｙをメモリ上に配置する。つまり、出力値演算部１８は、予め決められた定数ｐを用いても良いし、次数決定部１７が決定したｐを用いても良い。出力値演算部１８は、予め数式１の演算式の情報を格納しており、かかる情報を読み出し、取得したＢ、ｐ、ｍ、βを、演算式に代入し、当該演算式を実行し、実行結果であるｙを、少なくとも一時的にメモリ上に配置する。出力値演算部１８は、通常、ＭＰＵやメモリ等から実現され得る。出力値演算部１８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２６】
出力部１９は、出力値演算部１８が取得した実行結果ｙを出力する。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理ルーチンへの引渡し等を含む概念である。出力部１９は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部１９は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００２７】
次に、演算処理装置１の動作について図３のフローチャートを用いて説明する。
【００２８】
（ステップＳ３０１）演算処理装置１は、カウンタｍに０を代入する。
【００２９】
（ステップＳ３０２）受付部１２は、正数ｘを受け付けたか否かを判断する。正数ｘを受け付ければステップＳ３０３に行き、正数ｘを受け付けなければステップＳ３０２に戻る。
【００３０】
（ステップＳ３０３）第一判断部１３は、ステップＳ３０２で受け付けたｘを取得し、メモリ上に配置する。
【００３１】
（ステップＳ３０４）第一判断部１３は、定数値格納部１１から、定数値Ａ１、Ａ２、Ｂを読み出し、メモリ上に配置する。
【００３２】
（ステップＳ３０５）第一判断部１３は、ステップＳ３０３でメモリ上に配置されたｘを用いて、「１＜ｘ」を満たすか否かを判断する。「１＜ｘ」を満たせばステップＳ３０６に行き、「１＜ｘ」を満たさなければステップＳ３０９に行く。
【００３３】
（ステップＳ３０６）第一処理部１４は、カウンタｍを１、インクリメントする。
【００３４】
（ステップＳ３０７）第一処理部１４は、演算式「ｘ×Ａ１」の情報を読み出し、ステップＳ３０３、ステップＳ３０４でメモリ上に置かれたｘ、およびＡ１を前記演算式に代入し、実行する。そして、第一処理部１４は、実行結果をｘに代入する。なお、本ステップのループ処理において、演算式「ｘ×Ａ１」の情報の読み出し処理は、一度でも良いことは言うまでもない。
【００３５】
（ステップＳ３０８）第一処理部１４は、「ｘ＜＝１」を満たすか否かを判断する。「ｘ＜＝１」を満たせばステップＳ３１３に行き、「ｘ＜＝１」を満たさなければステップＳ３０６に戻る。
【００３６】
（ステップＳ３０９）第一判断部１３は、ステップＳ３０３、ステップＳ３０４でメモリ上に配置されたｘ、およびＡ１とを用いて、「ｘ＜＝Ａ１」を満たすか否かを判断する。「ｘ＜＝Ａ１」を満たせばステップＳ３１０に行き、「ｘ＜＝Ａ１」を満たさなければステップＳ３１３に行く。
【００３７】
（ステップＳ３１０）第二処理部１５は、カウンタｍを１、デクリメントする。
【００３８】
（ステップＳ３１１）第二処理部１５は、演算式「ｘ×Ａ２」の情報を読み出し、ステップＳ３０３、ステップＳ３０４でメモリ上に置かれたｘ、およびＡ２を前記演算式に代入し、実行する。そして、第二処理部１５は、実行結果をｘに代入する。なお、本ステップのループ処理において、演算式「ｘ×Ａ２」の情報の読み出し処理は、一度でも良いことは言うまでもない。
【００３９】
（ステップＳ３１２）第二処理部１５は、「Ａ１＜ｘ」を満たすか否かを判断する。「Ａ１＜ｘ」を満たせばステップＳ３１３に行き、「Ａ１＜ｘ」を満たさなければステップＳ３１０に戻る。
【００４０】
（ステップＳ３１３）減算処理部１６は、メモリ上のｘを取得する。
【００４１】
（ステップＳ３１４）減算処理部１６は、ステップＳ３１３で取得したｘを用いて、「１−ｘ」を演算し、その結果をβに代入し、メモリ上に配置する。
【００４２】
（ステップＳ３１５）出力値演算部１８は、Ｂ、定数ｐ、ｍ、および減算処理部１６が取得したβを取得する。ここでは、ｐは、予め決められている、とする。そして、出力値演算部１８は、Ｂ、ｐ、ｍ、およびβを、数式１に代入し、実行する。そして、出力値演算部１８は、実行結果を変数ｙに代入する。そして、ｙの値は、メモリ上に置かれる。
【００４３】
（ステップＳ３１６）出力部１９は、ステップＳ３１５で取得したｙの値を出力し、処理を終了する。
【００４４】
なお、図３のフローチャートにおいて、ｐを動的に変更しても良い。つまり、ステップＳ３１５の処理の前に、出力値演算部１８は、減算処理部１６が取得したβを次数決定部１７に渡す。次数決定部１７は、βを受け取り、当該βに対応するｐを、上述したような表（図２参照）から読み出す。そして、次数決定部１７は、読み出したｐを出力値演算部１８に渡す。次に、ステップＳ３１５の処理において、出力値演算部１８は、次数決定部１７からｐを受け付け、当該ｐを用いて、数式１の演算を実行する。
【００４５】
以下、本実施の形態における演算処理装置１における演算の原理について説明する。まず、任意の正の実数ｘの対数を、近似的ではあるが高精度かつ小さい演算負荷で計算するために、Ｔａｙｌｏｒ展開に基づく計算法を定式化する。まず、βを０以上１未満の実数として、以下の数式３の対数に関するＴａｙｌｏｒ展開が成り立つ。かかることは、公知である。
【数３】
2008152614.tif 000005
【００４６】
なお、ここでは対数の底をｅ（自然対数）とする。底がａある一般の対数に対しては、最終的な計算結果にｌｏｇａｅを掛ければよい。次に、一般の正数ｘの対数を計算する問題を考える。正数Ｌを、「０＜Ｌ・ｘ＜＝１」となるように定める。このＬの求め方の詳細は２通りあり、第一の方法を本実施の形態１で説明しており、第二の方法は実施の形態２で説明する。
【００４７】
そして、「β＝１?Ｌ・ｘ」と定めることにより、βの範囲が「０＜＝β＜１」となり、数式３を適用することが可能となる。結果的にｌｏｇ（ｘ）が、以下の数式４で表わされる。
【数４】
2008152614.tif 000006
【００４８】
上式右辺の級数は、βが０に近いほど収束が速いので、Ｌの値により、βが１より十分小さくなる。したがって、級数を適当な次数ｐで打ち切っても、上式の誤差は小さい。そこで、以下の数式５のような「Ｌｏｇ−Ｔａｙｌｏｒ関数」を定義する。
【数５】
2008152614.tif 000007
【００４９】
次にＬの求め方について解説する。ここでは基本的に、まず、予め１より十分小さい正の実数αを定め、「１?α＜Ｌ・ｘ＜＝１」となるように正数Ｌを求める。そうすると、「β＝１?Ｌ・ｘ」で与えられるβが、とりうる範囲が「０＜＝β＜α＜＜１」となり、数式３が適用可能になるばかりでなく、βが１より十分小さくなるため「Ｌｏｇ−Ｔａｙｌｏｒ関数」の誤差が小さい。
【００５０】
次に、第一のＬの算出方法について述べる。なお、第二のＬの算出方法については、実施の形態２で説明する。
【００５１】
予め、１より十分小さい正の実数αを定めておく。まず、最初に入力されたｘが「ｘ＞１」の場合、ｘを「１?α」倍する手続きを繰り返し行ない、初めて１以下になるときの繰り返し回数をｍとする。これにより、繰り返しにより更新されたｘが「１?α＜ｘ＜＝１」を満たし、累積倍数が「Ｌ＝（１−α）ｍ」となる。なお、「１−α」は、上述したＡ１に相当する。
【００５２】
また、最初に入力されたｘが「ｘ＜＝１?α」の場合、ｘを「１／（１−α）」倍する手続きを繰り返し行ない、初めて「１?α」を越えるときの繰り返し回数をｍとする。これにより、繰り返しにより更新されたｘが「１?α＜ｘ＜＝１」を満たし、累積倍数が「Ｌ＝（１?α）−ｍ」となる。最初に入力されたｘが、「１?α＜ｘ＜＝１」である場合は、ｍ＝０とする。つまり、数式５の「?ｌｏｇ（Ｌ）」が、以下の数式６となる。
【数６】
2008152614.tif 000008
【００５３】
以上のＬｏｇ−Ｔａｙｌｏｒ（ｘ，ｐ）の計算手順が、上述した図３のフローチャートにおける処理である。
【００５４】
なお、本実施の形態における計算方法の効果について、実施の形態２の計算方法の効果と同様に、後述する。
【００５５】
以上、本実施の形態によれば、高速に正の実数の対数を演算できる演算処理装置を実現できる。
【００５６】
なお、本実施の形態における演算処理装置は、例えば、対数の演算が行われる発音評定装置（特許文献２参照）や、機械翻訳装置などの、種々の装置に組み込むことができる。かかることは、他の実施の形態における演算処理装置でも同様である。
【００５７】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における演算処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、「０＜Ａ１＜１」、「Ａ１≒１」、「Ａ２＝１／Ａ１」、「Ｂ＝ｌｏｇＡ２」を満たす定数値Ａ１、Ａ２、Ｂを格納しており、コンピュータを、正数ｘを受け付け、メモリ上に配置する受付部と、前記受付部が受け付けたｘが１より大きいか、または、前記ｘがＡ１以下であるか、を判断する第一判断部と、前記第一判断部が、ｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、前記第一演算を繰り返し実行し、最後のｘとｍをメモリ上に配置する第一処理部と、前記第一判断部が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、前記第二演算を繰り返し実行し、−ｍをｍとし、最後のｘとｍをメモリ上に配置する第二処理部と、１以下でありＡ１より大きいｘであり、前記受付部が受け付けたｘ、または前記第一処理部または前記第二処理部が取得したｘを１から減算し、減算した結果であるβを得て、メモリ上に配置する減算処理部と、前記定数値格納部からＢを読み出し、当該Ｂ、予め決められた定数ｐ、前記ｍ、および前記減算処理部が取得したβを用いて、数式１を実行し、実行結果ｙをメモリ上に配置する出力値演算部と、前記出力値演算部が取得した実行結果ｙを出力する出力部として機能させるためのプログラム、である。
【００５８】
また、上記プログラムは、前記減算処理部が取得したβの値に応じて、ｐの値を決定し、当該ｐの値をメモリ上に配置する次数決定部としても機能させるためのプログラム、であることは好適である。
（実施の形態２）
【００５９】
図４は、本実施の形態における演算処理装置のブロック図である。
【００６０】
演算処理装置２は、定数値格納部４１、受付部１２、第一判断部４３、第一処理部４４、第二処理部４５、第二判断部４６、第三処理部４７、減算処理部４８、次数決定部１７、出力値演算部４９、出力部１９を具備する。
【００６１】
定数値格納部４１は、「０＜Ａ１＜１」、「Ａ２＝１／Ａ１」、「Ａ１＜＝Ａ３＜１」、「Ａ３≒１」、「Ａ４＝１／Ａ３」、「Ｂ１＝ｌｏｇＡ２」、「Ｂ２＝ｌｏｇＡ４」を満たす定数値Ａ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２を格納している。定数値Ａ１、Ａ２、Ａ３、およびＡ４は、有限桁の実数であることが好適である。例えば、「Ａ１＝０．５」、「Ａ２＝２」、「Ａ３＝０．８」、「Ａ４＝１．２５」などは好適である。また、Ａ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２は、キーボード等の入力手段により、予め人手により入力されても良いし、Ａ１、Ａ３のみ入力され、演算処理装置２の図示しない手段により、演算式「Ａ２＝１／Ａ１」の情報を読み出し、当該演算式に入力されたＡ１を代入し、Ａ２を取得し、Ａ２を定数値格納部４１に少なくとも一時蓄積しても良い。また、演算処理装置２の図示しない手段により、演算式「Ａ４＝１／Ａ３」の情報を読み出し、当該演算式に入力されたＡ３を代入し、Ａ４を取得し、Ａ４を定数値格納部４１に少なくとも一時蓄積しても良い。また、同様に、演算処理装置２の図示しない手段により、演算式「Ｂ１＝ｌｏｇＡ２」、「Ｂ２＝ｌｏｇＡ４」の情報を読み出し、当該演算式にＡ２、Ａ４を代入し、Ｂ１、Ｂ２を取得し、Ｂ１、Ｂ２を定数値格納部４１に少なくとも一時蓄積しても良い。その他、定数値Ａ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２の取得方法は問わない。定数値格納部４１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００６２】
第一判断部４３は、受付部１２が受け付けたｘを読み出し、かつ、定数値格納部４１からＡ１およびＡ３を読み出し、受付部１２が受け付けたｘが１より大きいか、または、ｘがＡ３以下でありＡ１より大きいか、または、ｘがＡ１以下であるか、を判断する。なお、第一判断部４３は、ｘの範囲を上記の３つの範囲（「ｘ＞１」、「Ａ１＜ｘ＜＝Ａ３」、「ｘ＜＝Ａ１」）のいずれかであるかを判断した場合、ｘが残る範囲の「Ａ３＜ｘ＜＝１」を満たす場合があることも事実上、判断できることとなる。第一判断部４３は、比較回路等により実現され得る。第一判断部４３は、通常、ＭＰＵやメモリ等から実現され得る。第一判断部４３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６３】
第一処理部４４は、第一判断部４３が、ｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、第一演算を繰り返し実行し、最後のｘ（少なくとも最後のｘ）とｍをメモリ上に配置する。第一処理部４４は、演算式「ｘ×Ａ１」の情報を格納しており、当該情報を読み出し、かつ、受付部１２が受け付けたｘを読み出し、かつ、定数値格納部４１からＡ１を読み出し、上記の処理を行う。第一処理部４４は、乗算回路と比較回路等で実現され得る。第一処理部４４は、通常、ＭＰＵやメモリ等から実現され得る。第一処理部４４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６４】
第二処理部４５は、第一判断部４３が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、第二演算を繰り返し実行し、−ｍをｍとし、最後のｘ（少なくとも最後のｘ）とｍをメモリ上に配置する。第二処理部４５は、演算式「ｘ×Ａ２」の情報を格納しており、当該情報を読み出し、かつ、受付部１２が受け付けたｘを読み出し、かつ、定数値格納部４１からＡ１とＡ２を読み出し、上記の処理を行う。第二処理部４５は、通常、ＭＰＵやメモリ等から実現され得る。第二処理部４５の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６５】
第二判断部４６は、第一処理部４４または第二処理部４５で、上述した第一処理部４４または第二処理部４５の処理を行った場合に、処理結果であるｘがＡ３以下であるか否かを判断する。つまり、第二判断部４６は、メモリ上のｘを取得し、定数値格納部４１からＡ３を読み出し、ｘがＡ３以下であるか否かを判断する。第二判断部４６は、比較回路等により実現され得る。第二判断部４６は、通常、ＭＰＵやメモリ等から実現され得る。第二判断部４６の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６６】
第三処理部４７は、第一判断部４３がｘがＡ３以下でありＡ１より大きいと判断した場合、または第二判断部４６がｘがＡ３以下であると判断した場合に、演算式「ｘ×Ａ４」で示される第三演算を実行し、算出した値をｘとし、ｘがＡ３より大きくなるまで、ｎ回、第三演算を繰り返し実行し、−ｎをｎとし、最後のｘとｎをメモリ上に配置する。第三処理部４７は、演算式「ｘ×Ａ４」の情報を格納しており、当該情報を読み出し、かつ、メモリ上のｘを読み出し、かつ、定数値格納部４１からＡ３とＡ４を読み出し、上記の処理を行う。第三処理部４７は、通常、ＭＰＵやメモリ等から実現され得る。第三処理部４７の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６７】
減算処理部４８は、１以下でありＡ３より大きいｘであり、受付部１２が受け付けたｘ、または、第一処理部４４または第二処理部４５または第三処理部４７が取得したｘを１から減算し、減算した結果であるβを得て、当該βをメモリ上に配置する。減算処理部４８は、演算式「β＝１−ｘ」の情報を格納しており、当該演算式の情報を読み出し、メモリ上のｘを演算式に代入し、実行し、βを得る。減算処理部４８は、通常、ＭＰＵやメモリ等から実現され得る。減算処理部４８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６８】
出力値演算部４９は、定数値格納部４１からＢ１およびＢ２を読み出し、当該Ｂ１、Ｂ２、定数ｐ、ｍ、ｎ、および減算処理部４８が取得したβを用いて、数式２を実行し、実行結果ｙをメモリ上に配置する。出力値演算部４９は、次数決定部１７が決定したｐを用いて、数式２を実行し、実行結果ｙをメモリ上に配置しても良いし、予め決められたｐを用いて、数式２を実行し、実行結果ｙをメモリ上に配置しても良い。出力値演算部４９は、通常、ＭＰＵやメモリ等から実現され得る。出力値演算部４９の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６９】
次に、演算処理装置２の動作について図５のフローチャートを用いて説明する。
【００７０】
（ステップＳ５０１）演算処理装置２は、カウンタｍに０、カウンタｎに０を代入する。
【００７１】
（ステップＳ５０２）受付部１２は、正数ｘを受け付けたか否かを判断する。正数ｘを受け付ければステップＳ５０３に行き、正数ｘを受け付けなければステップＳ５０２に戻る。
【００７２】
（ステップＳ５０３）第一判断部４３は、ステップＳ５０２で受け付けたｘを取得し、メモリ上に配置する。
【００７３】
（ステップＳ５０４）第一判断部４３は、定数値格納部４１から、定数値Ａ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２を読み出し、メモリ上に配置する。
【００７４】
（ステップＳ５０５）第一判断部４３は、ステップＳ５０３でメモリ上に配置されたｘを用いて、「１＜ｘ」を満たすか否かを判断する。「１＜ｘ」を満たせばステップＳ５０６に行き、「１＜ｘ」を満たさなければステップＳ５０９に行く。
【００７５】
（ステップＳ５０６）第一処理部４４は、カウンタｍを１、インクリメントする。
【００７６】
（ステップＳ５０７）第一処理部４４は、演算式「ｘ×Ａ１」の情報を読み出し、ステップＳ５０３、ステップＳ５０４でメモリ上に置かれたｘ、およびＡ１を前記演算式に代入し、実行する。そして、第一処理部４４は、実行結果をｘに代入する。
【００７７】
（ステップＳ５０８）第一処理部４４は、「ｘ＜＝１」を満たすか否かを判断する。「ｘ＜＝１」を満たせばステップＳ５１３に行き、「ｘ＜＝１」を満たさなければステップＳ５０６に戻る。
【００７８】
（ステップＳ５０９）第一判断部４３は、ステップＳ５０３、ステップＳ５０４でメモリ上に配置されたｘ、およびＡ１とを用いて、「ｘ＜＝Ａ１」を満たすか否かを判断する。「ｘ＜＝Ａ１」を満たせばステップＳ５１０に行き、「ｘ＜＝Ａ１」を満たさなければステップＳ５１３に行く。
【００７９】
（ステップＳ５１０）第二処理部４５は、カウンタｍを１、デクリメントする。
【００８０】
（ステップＳ５１１）第二処理部４５は、演算式「ｘ×Ａ２」の情報を読み出し、ステップＳ５０３、ステップＳ５０４でメモリ上に置かれたｘ、およびＡ２を前記演算式に代入し、実行する。そして、第二処理部４５は、実行結果をｘに代入する。
【００８１】
（ステップＳ５１２）第二処理部４５は、「Ａ１＜ｘ」を満たすか否かを判断する。「Ａ１＜ｘ」を満たせばステップＳ５１３に行き、「Ａ１＜ｘ」を満たさなければステップＳ５１０に戻る。
【００８２】
（ステップＳ５１３）第一判断部４３または第二判断部４６は、「ｘ＜＝Ａ３」を満たすか否かを判断する。「ｘ＜＝Ａ３」を満たせばステップＳ５１４に行き、「ｘ＜＝Ａ３」を満たさなければステップＳ５１７に行く。
【００８３】
（ステップＳ５１４）第三処理部４７は、ｎを１、デクリメントする。
【００８４】
（ステップＳ５１５）第三処理部４７は、演算式「ｘ×Ａ４」の情報を読み出し、メモリ上に置かれたｘ、およびＡ４を前記演算式に代入し、実行する。そして、第三処理部４７は、実行結果をｘに代入する。
【００８５】
（ステップＳ５１６）第三処理部４７は、「Ａ３＜ｘ」を満たすか否かを判断する。「Ａ３＜ｘ」を満たせばステップＳ５１７に行き、「Ａ３＜ｘ」を満たさなければステップＳ３５１４に戻る。
【００８６】
（ステップＳ５１７）減算処理部４８は、メモリ上のｘを取得し、当該ｘを１から減算し、減算した結果であるβを得て、当該βをメモリ上に配置する。つまり、減算処理部４８は、演算式「β＝１−ｘ」の情報を読み出し、メモリ上のｘを演算式に代入し、βの値をメモリ上に置く。
【００８７】
（ステップＳ５１８）出力値演算部４９は、定数値格納部４１からＢ１およびＢ２を読み出し、当該Ｂ１、Ｂ２、メモリ上のｐ、ｍ、ｎ、およびβを用いて、数式２を実行し、実行結果ｙを得て、当該ｙをメモリ上に配置する。
【００８８】
（ステップＳ５１９）出力部１９は、ステップＳ５１８で取得したｙの値を出力し、処理を終了する。
【００８９】
なお、図５のフローチャートにおいて、ｐを動的に変更しても良い。つまり、ステップＳ５１８の処理の前に、出力値演算部４９は、減算処理部４８が取得したβを次数決定部１７に渡す。次数決定部１７は、βを受け取り、当該βに対応するｐを、上述したような表（図３参照）から読み出す。そして、次数決定部１７は、読み出したｐを出力値演算部４９に渡す。次に、ステップＳ５１８の処理において、出力値演算部４９は、次数決定部１７からｐを受け付け、当該ｐを用いて、数式２の演算を実行する。
【００９０】
また、演算処理装置２は、図５のフローチャートの処理に代えて、図６のフローチャートの処理を行っても良い。その他、演算処理装置２の具体的アルゴリズムは他のアルゴリズムでも良い。図６のフローチャートにおいて図５のフローチャートと同様の処理については説明を省略する。
【００９１】
（ステップＳ６０１）第一判断部４３は、フラグ「ｆｌａｇ」に「１」を代入する。ステップＳ６０５に行く。なお、ステップＳ６０１には、ステップＳ５０５の判断が「Ｙ」の場合に移行する。
【００９２】
（ステップＳ６０２）第一判断部４３は、フラグ「ｆｌａｇ」に「４」を代入する。ステップＳ６０５に行く。なお、ステップＳ６０２には、ステップＳ５０９の判断が「Ｙ」の場合に移行する。
【００９３】
（ステップＳ６０３）第一判断部４３は、フラグ「ｆｌａｇ」に「３」を代入する。ステップＳ６０５に行く。なお、ステップＳ６０３には、ステップＳ５１３の判断が「Ｙ」の場合に移行する。
【００９４】
（ステップＳ６０４）第一判断部４３は、フラグ「ｆｌａｇ」に「２」を代入する。ステップＳ６０５に行く。なお、ステップＳ６０４には、ステップＳ５１３の判断が「Ｎ」の場合に移行する。
【００９５】
（ステップＳ６０５）第一判断部４３は、フラグ「ｆｌａｇ」が「１」であるか否かを判断する。「１」であればステップＳ５０６に行き、「１」でなければステップＳ６０６に行く。
【００９６】
（ステップＳ６０６）第一判断部４３は、フラグ「ｆｌａｇ」が「４」であるか否かを判断する。「４」であればステップＳ５１０に行き、「４」でなければステップＳ６０７に行く。
【００９７】
（ステップＳ６０７）第一判断部４３は、フラグ「ｆｌａｇ」が「３」であるか否かを判断する。「３」であればステップＳ５１４に行き、「３」でなければステップＳ５１７に行く。
【００９８】
なお、図６のフローチャートにおいても、図５と同様に、ｐを動的に変更しても良い。
【００９９】
以下、本実施の形態における演算処理装置２における演算の原理について説明する。演算処理装置２の演算原理は、実施の形態１で述べた演算原理と比較して、Ｌの求め方のみ異なる。本実施の形態におけるＬは、２段階に計算する。
【０１００】
以下に、２段階にＬを計算する方法を示す。予め、「０＜α＜＝α２＜１」となるような，２つの正の実数α、α２を設定しておく。ただし、αは１より十分小さいのが望ましい。
【０１０１】
このとき、図７に示すように、「０＜１?α２＜＝１?α＜１」が成り立つ。なお、α＝α２に設定すると、本実施の形態で述べる計算方法は、実施の形態１で述べた計算方法と同じになる。そこで、ここでは、「α＜α２（すなわち、１?α２＜１?α）」とする。
【０１０２】
まず、最初に入力されたｘが「ｘ＞１」を満たす場合、ｘを「１?α２」倍する手続きを繰り返し行ない、初めて１以下になるときの繰り返し回数をｍとする。これにより、この繰り返しにより更新されたｘをｘ２とすると、「１?α２＜ｘ２＜＝１」を満たし（図７におけるＲ１）、ここまでの累積倍数が「Ｌ１＝（１?α２）ｍ」となる。なお、「１?α２」は、上述したＡ１である。
【０１０３】
また、最初に入力されたｘが「ｘ＜＝１?α２」を満たす場合、ｘを「１／（１?α２）」  倍する手続きを繰り返し行ない、初めて「１?α２」を越えるときの繰り返し回数をｍとする。これにより、この繰り返しにより更新されたｘをｘ２とすると、やはり「１?α２＜ｘ２＜＝１」を満たし（図７におけるＲ１）、ここまでの累積倍数が「Ｌ１＝（１?α２）?ｍ」となる。最初に入力されたｘが「１?α２＜ｘ＜＝１」の場合は、「ｍ＝０」、「ｘ２＝ｘ」とする。
【０１０４】
さらに、ｘ２が「ｘ２＜＝１?α」である場合（図７におけるＲ２）、ｘ２を「１／（１?α）」倍する手続きを繰り返し行ない、初めて「１?α」を越えるときの繰り返し回数をｎとする。これにより、最終的に更新されたｘをｘ３とすると、「１?α＜ｘ３＜＝１」となり（図７におけるＲ３）、トータルの倍数が「Ｌ＝Ｌ１×（１?α）?ｎ」として求まる。また、ｘ２が、「１?α＜ｘ２」であるときは、「ｎ＝０」とする。つまり、数式５における「?ｌｏｇ（Ｌ）」が次式となる。なお、「１?α」は上述したＡ３である。
【数７】
2008152614.tif 000009
【０１０５】
以上の処理により、数式５におけるＬｏｇ−Ｔａｙｌｏｒ（ｘ，ｐ）の計算手順が示される。そして、Ｌｏｇ−Ｔａｙｌｏｒ（ｘ，ｐ）の計算手順が、上述した図５のフローチャートにおける処理である。
【０１０６】
次に、実施の形態１、および実施の形態２で述べたＬｏｇ−Ｔａｙｌｏｒ（ｘ，ｐ）とｌｏｇ（ｘ）の誤差について示す。Ｌｏｇ−Ｔａｙｌｏｒ（ｘ，ｐ）とｌｏｇ（ｘ）の誤差（ε（β，ｐ））は、以下の数式８で示される。なお、ｐは、Ｔａｙｌｏｒ展開における次数である。
【数８】
2008152614.tif 000010
【０１０７】
実施の形態１、および実施の形態２で述べた計算方法のいずれにおいても、「０＜＝β＜ α」であり、「β→α」のときが誤差の上限であるので、例えば、「α=０．５（実施の形態１の方法においては、「Ａ１＝０．５」、実施の形態２の方法においては、「Ａ３＝０．５」）のとき、各次数ｐにおける誤差の上限は、以下の数式９に示すようになる。
【数９】
2008152614.tif 000011
【０１０８】
ここで、「ｐ＝１」の場合は、「ｓｕｐε（β，１）＝ｌｏｇ２−１／２≒０．１９３１５」である。「ｐ＝２」の場合は、「ｓｕｐε（β，２）＝ｌｏｇ２−５／８≒０．０６８１４７２」である。「ｐ＝３」の場合は、「ｓｕｐε（β，３）＝ｌｏｇ２−２／３≒０．０２６４８０５１４」である。「ｐ＝４」の場合は、「ｓｕｐε（β，４）＝ｌｏｇ２−１３１／１９２≒０．０１０８５５５１」である。「ｐ＝５」の場合は、「ｓｕｐε（β，５）＝ｌｏｇ２−６６１／９６０≒０．００４６０５５１」である。
【０１０９】
また、「α＝０．２」（実施の形態１の方法においては、「Ａ１＝０．８」、実施の形態２の方法においては、「Ａ３＝０．８」）のとき、各次数ｐにおける誤差の上限は、以下の数式１０に示すようになる。
【数１０】
2008152614.tif 000012
【０１１０】
ここで、「ｐ＝１」の場合は、「ｓｕｐε（β，１）＝ｌｏｇ（５／４）−１／５≒０．０２３１４３５５」である。「ｐ＝２」の場合は、「ｓｕｐε（β，２）＝ｌｏｇ（５／４）−１１／５０≒０．００３１４３５５」である。「ｐ＝３」の場合は、「ｓｕｐε（β，３）  ＝ｌｏｇ（５／４）−１６７／７５０≒０．０００４７６８８４６５である。「ｐ＝４」の場合は、「ｓｕｐε（β，４）＝ｌｏｇ（５／４）−１６７３／７５００≒０．００００７６８８４６５」である。
【０１１１】
すなわち、各次数p において誤差は、上記の式の右辺の値以上にはならない。このように、αが０に近いほど（実施の形態１の方法においてはＡ１が、実施の形態２の方法においてはＡ３が1に近いほど）、小さな次数ｐで誤差を小さく出来る。特に、「α=０．２」における次数ｐ＝２での誤差の上限は、「α＝０．５」における次数ｐ＝５での誤差の上限よりも小さい。
【０１１２】
ただし、実施の形態１の方法において、誤差を小さくするためにαを小さく設定すると、「１−α」が１に近いために、Ｌを求める際の繰り返し回数mが大きくなり、演算量が増える。実施の形態２の方法では、Ｌを求める際に、αより大きく設定したα２を用いることで、繰り返し回数mを少なくできる。また、このm回の繰り返しによってｘの範囲が「１−α２＜ｘ＜＝１」にできるので、ここから更に「１−α＜ｘ＜＝１」とする繰り返し回数nも少なくできる。
【０１１３】
以上、本実施の形態によれば、さらに高速に正の実数の対数を演算できる演算処理装置を実現できる。
【０１１４】
なお、本実施の形態における演算処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、「０＜Ａ１＜１」、「Ａ２＝１／Ａ１」、「Ａ１＜＝Ａ３＜１」、「Ａ３≒１」、「Ａ４＝１／Ａ３」、「Ｂ１＝ｌｏｇＡ２」、「Ｂ２＝ｌｏｇＡ４」を満たす定数値Ａ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２を格納しており、コンピュータを、正数ｘを受け付け、メモリ上に配置する受付部と、前記受付部が受け付けたｘが１より大きいか、または、ｘがＡ３以下でありＡ１より大きいか、または、ｘがＡ１以下であるか、を判断する第一判断部と、前記第一判断部が、ｘが１より大きいと判断した場合に、演算式「ｘ×Ａ１」で示される第一演算を実行し、算出した値をｘとし、ｘが１以下になるまで、ｍ回、前記第一演算を繰り返し実行し、最後のｘとｍをメモリ上に配置する第一処理部と、前記第一判断部が、ｘがＡ１以下であると判断した場合に、演算式「ｘ×Ａ２」で示される第二演算を実行し、算出した値をｘとし、ｘがＡ１より大きくなるまで、ｍ回、前記第二演算を繰り返し実行し、−ｍをｍとし、最後のｘとｍをメモリ上に配置する第二処理部と、前記ｘがＡ３以下であるか否かを判断する第二判断部と、前記第一判断部が、前記ｘがＡ３以下でありＡ１より大きいと判断した場合、または前記第二判断部が、前記ｘがＡ３以下であると判断した場合に、演算式「ｘ×Ａ４」で示される第三演算を実行し、算出した値をｘとし、ｘがＡ３より大きくなるまで、ｎ回、前記第三演算を繰り返し実行し、−ｎをｎとし、最後のｘとｎをメモリ上に配置する第三処理部と、１以下でありＡ３より大きいｘであり、前記受付部が受け付けたｘ、または前記第一処理部または前記第二処理部または前記第三処理部が取得したｘを１から減算し、減算した結果であるβを得て、当該βをメモリ上に配置する減算処理部と、前記記憶媒体からＢ１およびＢ２を読み出し、当該Ｂ１、Ｂ２、予め決められた定数ｐ、前記ｍ、前記ｎ、および前記減算処理部が取得したβを用いて、数式２を実行し、実行結果ｙをメモリ上に配置する出力値演算部と、前記出力値演算部が取得した実行結果ｙを出力する出力部として機能させるためのプログラム、である。
【０１１５】
また、上記プログラムは、前記減算処理部が取得したβの値に応じて、ｐの値を決定し、当該ｐの値をメモリ上に配置する次数決定部としても機能させるためのプログラム、であることは好適である。
【０１１６】
また、上記各実施の形態において、対数の底をｅ（自然対数）として説明した。しかし、底はａである一般の対数に対しては、最終的な計算結果にｌｏｇａｅを乗算すれば良いので、ｌｏｇａｅの演算も同様に可能であり、特許請求の範囲や、特許明細書に記載した対数演算は、一般の対数の演算も含むことは言うまでもない。
【０１１７】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０１１８】
また、図８は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の演算処理装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図８は、このコンピュータシステム３４０の概観図であり、図９は、コンピュータシステム３４０のブロック図である。
【０１１９】
図８において、コンピュータシステム３４０は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）ドライブ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブを含むコンピュータ３４１と、キーボード３４２と、マウス３４３と、モニタ３４４と、マイク３４５とを含む。
【０１２０】
図９において、コンピュータ３４１は、ＦＤドライブ３４１１、ＣＤ−ＲＯＭドライブ３４１２に加えて、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３４１３と、ＣＤ−ＲＯＭドライブ３４１２及びＦＤドライブ３４１１に接続されたバス３４１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）３４１５と、ＣＰＵ３４１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３４１７とを含む。ここでは、図示しないが、コンピュータ３４１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０１２１】
コンピュータシステム３４０に、上述した実施の形態の演算処理装置の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３５０１、またはＦＤ３５０２に記憶されて、ＣＤ−ＲＯＭドライブ３４１２またはＦＤドライブ３４１１に挿入され、さらにハードディスク３４１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３４１に送信され、ハードディスク３４１７に記憶されても良い。プログラムは実行の際にＲＡＭ３４１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３５０１、ＦＤ３５０２またはネットワークから直接、ロードされても良い。
【０１２２】
プログラムは、コンピュータ３４１に、上述した実施の形態の演算処理装置の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３４０がどのように動作するかは周知であり、詳細な説明は省略する。
【０１２３】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１２４】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１２５】
以上のように、本発明にかかる演算処理装置は、十分に高速な対数演算ができる、という効果を有し、演算処理装置、発音音評定装置、機械翻訳装置等として有用である。
【図面の簡単な説明】
【０１２６】
【図１】実施の形態１における演算処理装置のブロック図
【図２】同βの大きさの範囲とｐの値の対応表を示す図
【図３】同演算処理装置の動作について説明するフローチャート
【図４】実施の形態２における演算処理装置のブロック図
【図５】同演算処理装置の動作について説明するフローチャート
【図６】同演算処理装置の動作について説明するフローチャート
【図７】同αとα２の関係を示す図
【図８】同演算処理装置を実現するコンピュータの外観図
【図９】同演算処理装置を実現するコンピュータのブロック図
【符号の説明】
【０１２７】
１、２  演算処理装置
１１、４１  定数値格納部
１２  受付部
１３、４３  第一判断部
１４、４４  第一処理部
１５、４５  第二処理部
１６、４８  減算処理部
１７  次数決定部
１８、４９  出力値演算部
１９  出力部
４６  第二判断部
４７  第三処理部
【図１】
2008152614.tif 000015
【図２】
2008152614.tif 000016
【図３】
2008152614.tif 000017
【図４】
2008152614.tif 000018
【図５】
2008152614.tif 000019
【図６】
2008152614.tif 000020
【図７】
2008152614.tif 000021
【図８】
2008152614.tif 000022
【図９】
2008152614.tif 000023