JPH0223429A - 平方根逆数の最適化処理方法 - Google Patents

平方根逆数の最適化処理方法

Info

Publication number
JPH0223429A
JPH0223429A JP17476688A JP17476688A JPH0223429A JP H0223429 A JPH0223429 A JP H0223429A JP 17476688 A JP17476688 A JP 17476688A JP 17476688 A JP17476688 A JP 17476688A JP H0223429 A JPH0223429 A JP H0223429A
Authority
JP
Japan
Prior art keywords
function
square root
argument
program
calculates
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.)
Pending
Application number
JP17476688A
Other languages
English (en)
Inventor
Minoru Tanaka
稔 田中
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP17476688A priority Critical patent/JPH0223429A/ja
Publication of JPH0223429A publication Critical patent/JPH0223429A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概 要〕 計算機における、原始プログラムの翻訳処理に関し、 平方根の逆数計算が記述されている原始プログラムから
、実行速度の速い目的プログラムを生成することのでき
る平方根逆数の最適化処理方法を目的とし、 引数の逆数の平方根を求める関数を有する計算機の、原
始プログラムを翻訳して目的プログラムを生成する処理
において、該原始プログラムに引数の平方根を求める関
数の指定が有った場合には、該引数の平方根を求める関
数の値を除数とする指定の有無を検査し、該除数とする
指定がある場合には、該引数の平方根を求める関数の値
を除数とする指定を、該引数の逆数の平方根を求める関
数の値を乗数とする指定に置き換えるように構成する。
〔産業上の利用分野〕
本発明は、計算機における、原始プログラムの翻訳処理
、特に平方根の逆数計算が記述されている原始プログラ
ムの最適化処理方法に関する。
公知のように例えばFORTRANプログラミング言語
の言語仕様には多種の組込み関数が規定されており、そ
の中に指定の引数の平方根を求める関数5QRTがある
〔従来の技術と発明が解決しようとする課題〕第2図(
alはFORTRAN言語で記述された原始プログラム
における、平方根の逆数演算式を含む代入文の例であり
、公知のように変数Aを変数Xの平方根で割った商を変
数Yに代入するプログラムを示す。
こ\で5QRT (X)は、変数Xに本言語の組込み関
数である平方根の関数5QRTを適用した結果、即ち変
数Xの平方根の値を表す。
そこでコンパイラは、このような原始プログラムを翻訳
して、例えば第2図(b)に概念的構成を示すような目
的プログラムを生成する。図においてtl、t2等は作
業用のレジスタを示し、図のプログラムは第1の命令語
で組込み関数5QRTの演算ルーチンを呼んで変数Xを
処理させた結果(Xの平方根)をtlに受は取り、第2
の命令語で変数Aの値をLlの内容で除した商をt2に
置き、第3の命令語でt2を変数Yの記憶領域に格納す
る。
このような平方根の逆数計算は、天体力学を始めとして
科学技術計算分野で多用される例があり、又一般に計算
機の除算命令は乗算命令より実行時間が大きく、特に除
算の性能の低い計算機もしばしば見られる。そこで、例
えば引数の逆数の平方根を求めるニュートン法による公
知の近似計算法(参考文献:培風館発行「電子計算機の
ための数値計算法■」29頁)を用いることにより、除
算命令を必要としない平方根逆数の演算ルーチンで、平
方根逆数演算を高性能に処理する関数を設ければ、第2
図(a)の原始プログラムを例えば(C1のように書き
換えて、それから(d)のような目的プログラムが生成
でき、乗算によって実行性能を改善できる。
第2図(C)及び(dlにおいて、I’1SQRTは前
記のようにして平方根逆数を求める関数の関数名とし、
図の目的プログラムは第1の命令語で関数R3QRTの
演算ルーチンを呼んで変数Xを処理させた結果(Xの逆
数の平方根)をtlに受は取り、第2の命令語で変数へ
の値とtlの内容との積をt2に置き、第3の命令語で
t2を変数Yの記憶領域に格納することを表す。
しかし、前記の関数R5QRTはFORTRANの標準
化された言語仕様には組込み関数として規定されておら
ず、従って利用者は関数5QRTの逆数を記述した多数
の原始プログラムを所有するが、それらのプログラムで
関数RSQRTを利用しようとすれば、プログラムを書
き直さなければならないという問題がある。
本発明は、平方根の関数の逆数演算が記述されている原
始プログラムから、実行速度の速い目的プログラムを生
成することのできる平方根逆数の最適化処理方法を目的
とする。
〔課題を解決するための手段〕
第1図は、本発明の構成を示す処理の流れ図である。
図はコンパイラにおける平方根逆数演算の最適化処理の
流れを示し、1は平方根の関数の検出、2は平方根の関
数が除数に指定されていることの判定、3は平方根の関
数を逆数の平方根の関数に置き換える処理の各処理ステ
ップである。
〔作 用〕
引数の逆数の平方根を求める関数を有する計算機におけ
る、原始プログラムを翻訳して目的プログラムを生成す
る処理において、先ず処理ステップ1で原始プログラム
の式に引数の平方根を求める関数を検出した場合には、
処理ステップ2でその平方根を求める関数の値を除数と
する指定の有無を検査する。
その結果除数とする指定がある場合には、処理ステップ
3でその引数の平方根を求める関数の値を除数とする指
定を、逆数の平方根を求める関数の値を乗数とする指定
に置き換える。
以上の処理方法により、平方根の逆数演算について従来
の原始プログラムを修正する必要無しに、逆数の平方根
を求める関数を利用した最適化がコンパイル時に自動的
に行われる。
〔実施例〕
本発明のコンパイラは、引数の逆数の平方根を求める関
数R3QRTを組込み関数として保持するものとし、こ
の関数の演算ルーチンは前記の近偵演算法による高性能
の関数ルーチンとする。
コンパイラは代入文等の弐の処理において、第1図の処
理ステップ1で弐を構成する項が平方根を求める関数5
QRTであることを検出すると、処理ステップ2でその
関数5QRTが除数になっているか識別するために、関
数の左が除算演算子「/」であるか否かを検査する。
除算演算子である場合には、処理ステップ3でこの部分
を関数R5QRTによる乗算に置き換えるために、[/
関数5QRT Jを「*関数RSQRT Jに置換する
。なお「*」は乗算演算子である。
以上の処理により、例えば第2図(a)の原始プログラ
ムは(c)のように変換され、従ってこれを通常の翻訳
処理によって処理することにより、(dlに示すイメー
ジの目的プログラムが生成され、結局利用者は第2図(
a)の原始プログラムから(d)の目的プログラムを自
動的に得ることができる。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、計算機
における、原始プログラムの翻訳処理において、平方根
の逆数演算について従来の原始プログラムを修正する必
要無しに、逆数の平方根を求める関数を利用した最適化
がコンパイル時に自動的に行われるので、計算機の利用
効率を改善するという著しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明の構成を示す処理の流れ図、第2図はプ
ログラム例の説明図である。 図において、

Claims (1)

  1. 【特許請求の範囲】 引数の逆数の平方根を求める関数を有する計算機の、原
    始プログラムを翻訳して目的プログラムを生成する処理
    において、 該原始プログラムに引数の平方根を求める関数の指定が
    有った場合には(1)、該引数の平方根を求める関数の
    値を除数とする指定の有無を検査し(2)、該除数とす
    る指定がある場合には、該引数の平方根を求める関数の
    値を除数とする指定を、該引数の逆数の平方根を求める
    関数の値を乗数とする指定に置き換える(3)ように構
    成されていることを特徴とする平方根逆数の最適化処理
    方法。
JP17476688A 1988-07-13 1988-07-13 平方根逆数の最適化処理方法 Pending JPH0223429A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17476688A JPH0223429A (ja) 1988-07-13 1988-07-13 平方根逆数の最適化処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17476688A JPH0223429A (ja) 1988-07-13 1988-07-13 平方根逆数の最適化処理方法

Publications (1)

Publication Number Publication Date
JPH0223429A true JPH0223429A (ja) 1990-01-25

Family

ID=15984301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17476688A Pending JPH0223429A (ja) 1988-07-13 1988-07-13 平方根逆数の最適化処理方法

Country Status (1)

Country Link
JP (1) JPH0223429A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699328A (en) * 1991-09-30 1997-12-16 Fujitsu Limited Automatic vending machine for vending information transmitted from satellite
KR100506470B1 (ko) * 2001-05-31 2005-08-05 세미콘덕터 테크놀로지 아카데믹 리서치 센터 평방근의 역수 계산 방법, 계산 회로, 및 기록매체

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699328A (en) * 1991-09-30 1997-12-16 Fujitsu Limited Automatic vending machine for vending information transmitted from satellite
KR100506470B1 (ko) * 2001-05-31 2005-08-05 세미콘덕터 테크놀로지 아카데믹 리서치 센터 평방근의 역수 계산 방법, 계산 회로, 및 기록매체

Similar Documents

Publication Publication Date Title
Ramamoorthy et al. A high-level language for horizontal microprogramming
KR910009116B1 (ko) 레지스터 할당 및 지정 방법
US6425124B1 (en) Resource allocation device for reducing the size and run time of a machine language program
Metcalf The seven ages of fortran
CN104965687A (zh) 基于指令集生成的大数据处理方法及装置
Lawson Programming-language-oriented instruction streams
Nelson A comparison of PASCAL intermediate languages
JPS6124729B2 (ja)
Vasilev et al. Loop-invariant optimization in the Pifagor language
Decyk et al. Introduction to object-oriented concepts using Fortran90
JPH0223429A (ja) 平方根逆数の最適化処理方法
Engelke et al. Robust practical binary optimization at run-time using LLVM
JP3318051B2 (ja) 翻訳処理方法
US7574703B2 (en) Method and apparatus for reducing instruction dependencies in extended SSA form instructions
Krohn A parallel approach to code generation for Fortran like compilers
CN107402799A (zh) 在x86电脑超高速解释执行tms320c25芯片汇编指令的方法
Hunter et al. Introduction to the NS16000 Architecture
JPH0379741B2 (ja)
Mego et al. A tool for VLIW processors code optimizing
McFarlin et al. Library function selection in compiling Octave
JP2583599B2 (ja) 2進整数乗算処理方法
Kann Implementing a one address cpu in logisim
Giloi Advanced object oriented architectures
KR20140119619A (ko) 벡터 코드 생성 장치 및 방법
CN111651723A (zh) 基于一般函数式识别赋值计算与Powell算法的非线性回归计算技术