JP2507812B2 - Square root calculation method - Google Patents

Square root calculation method

Info

Publication number
JP2507812B2
JP2507812B2 JP21394989A JP21394989A JP2507812B2 JP 2507812 B2 JP2507812 B2 JP 2507812B2 JP 21394989 A JP21394989 A JP 21394989A JP 21394989 A JP21394989 A JP 21394989A JP 2507812 B2 JP2507812 B2 JP 2507812B2
Authority
JP
Japan
Prior art keywords
square
integer part
square root
real number
real
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 - Lifetime
Application number
JP21394989A
Other languages
Japanese (ja)
Other versions
JPH0377132A (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.)
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 JP21394989A priority Critical patent/JP2507812B2/en
Publication of JPH0377132A publication Critical patent/JPH0377132A/en
Application granted granted Critical
Publication of JP2507812B2 publication Critical patent/JP2507812B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 〔概要〕 電子計算機システムにおいて、線分の長さを3平方の
定理によって求める場合などの平方根計算方法に関し、 平方根を求めるべき実数の整数部の大小が平方根整数
部の計算処理速度に与える影響を小さくすることを目的
とし、 電子計算機システムによる実数の平方根の計算方法に
おいて、該電子計算機システム内にあらかじめ整数の平
方数を2進形式で表したテーブルを保持し、開平すべき
与えられた実数の2進形式において整数部で1が立って
いる最上位ビット位置を求め、該ビット位置と1の立っ
ている最上位ビットとが一致する平方数の個数と該平方
数の内で最小の平方数の前記テーブル内での位置とを前
記テーブルから求め、該平方数の個数に基づき、該平方
数の内で最小の平方数の位置から、与えられた実数整数
部と比較すべき前記テーブル上の平方数への位置移動量
を決定して、該移動位置の平方数と与えられた実数の整
数部とを比較し、次回以降の比較においては前回比較時
の平方数位置からの移動量を2分しながら前記テーブル
内の平方数と、与えられた実数整数部との比較を繰返
し、与えられた実数整数部に直近かつ直下である平方数
を求め、該平方数の平方根である実数を与えられた実数
の平方根の整数部とするように構成する。
DETAILED DESCRIPTION OF THE INVENTION [Outline] In an electronic computer system, regarding a square root calculation method when the length of a line segment is calculated by the theorem of 3 squares, the magnitude of the integer part of the real number for which the square root is to be calculated is the square root integer part. In order to reduce the influence on the calculation processing speed, in a method of calculating a square root of a real number by an electronic computer system, a table in which the integer square number is represented in binary format is held in advance in the computer system. In the binary form of a given real number to be obtained, the most significant bit position where 1 is set in the integer part is obtained, and the number of square numbers where the bit position and the most significant bit where 1 is set and the square number The position in the table of the smallest square number of the square number is calculated from the table, and based on the number of the square numbers, the position of the smallest square number of the square numbers is given. Determine the amount of position movement to the square number on the table to be compared with the given real number integer part, compare the square number of the movement position and the given real number integer part, and in the next and subsequent comparisons, While dividing the movement amount from the square number position at the time of the previous comparison into two, the square number in the table and the given real number integer part are repeatedly compared, and the square number which is the closest to and immediately below the given real number integer part. And the real number that is the square root of the square number is set as the integer part of the square root of the given real number.

〔産業上の利用分野〕[Industrial applications]

本発明は平方根の計算方式に係り、さらに詳しくは電
子計算機システムにおいて、線分の長さを3平方の定理
によって求める場合などの平方根計算方法に関する。
The present invention relates to a square root calculation method, and more particularly to a square root calculation method for calculating the length of a line segment by the theorem of 3 squares in an electronic computer system.

〔従来の技術〕[Conventional technology]

第6図に固定小数点の形式で与えられた実数値の平方
根の計算方法の従来例を示す。同図は5の平方根の計算
例を示し、その計算手順は次の第1から第3の手順から
なっている。
FIG. 6 shows a conventional example of a method of calculating a square root of a real value given in a fixed point format. This figure shows an example of calculating the square root of 5, and the calculation procedure is composed of the following first to third steps.

まず、第1の手順では与えられた実数値、ここでは5
の整数部を越えない最大の平方数、すなわち1,4,9,1
6,...のようにある整数を平方した値、ここでは4を求
める。そしてその平方数の平方根が与えられた実数の平
方根の整数部とされる。第6図の場合には5の平方根の
整数部は2、すなわち2進形式で10で与えられる。
First, in the first procedure, the given real number, here 5
Maximum squared number that does not exceed the integer part of, i.e. 1,4,9,1
Find the squared value of an integer like 6, ... And the square root of the square number is taken as the integer part of the given square root of the real number. In the case of FIG. 6, the integer part of the square root of 5 is given as 2, ie 10 in binary form.

第2手順では与えられた実数と第1手順で求められた
平方数との差が求められる。本発明ではこの差を以下基
数と呼ぶことにする。そして基数が0であれば平方根の
小数部を0として処理を終える。基数が0でない場合に
は、第1手順で求められた平方根整数部の2倍が求めら
れる。本発明では以下これを準数と呼ぶ。第6図(a)
では実数5の2進形式101から平方数100が引かれ、基数
は1となる。また準数は平方根整数部10の2倍、すなわ
ち100となる。
In the second procedure, the difference between the given real number and the square number obtained in the first procedure is obtained. In the present invention, this difference will be referred to as a radix hereinafter. Then, if the radix is 0, the decimal part of the square root is set to 0, and the process ends. When the radix is not 0, twice the square root integer part obtained in the first procedure is obtained. In the present invention, this is hereinafter referred to as a quasi number. Figure 6 (a)
Then, the square number 100 is subtracted from the binary form 101 of the real number 5, and the radix becomes 1. The quasi number is twice the square root integer part 10, that is, 100.

第3手順では基数の4倍が新しい基数、準数の2倍が
新しい準数とされ、準数+1と基数との大小が比較され
る。そして基数が準数+1より小さい場合には、平方根
の小数部の対応するビット、ここではまず小数点以下第
1位が0とされ、第3手順の処理が繰返される。すなわ
ち第6図(b)において基数は100、準数は1000であり
基数の方が小さいので、小数点以下第1位が0とされ第
6図(c)に移る。第6図(c)では基数は10000、準
数も10000であり、当然準数+1の方が大きいために小
数点以下第2位も0とされる。
In the third procedure, four times the radix is the new radix and twice the quasi number is the new quasi number, and the quasi number +1 and the radix are compared in magnitude. When the radix is smaller than the quasi-number + 1, the corresponding bit of the decimal part of the square root, here, the first place after the decimal point is first set to 0, and the process of the third procedure is repeated. That is, in FIG. 6 (b), the radix is 100 and the quasi-number is 1000. Since the radix is smaller, the first place after the decimal point is set to 0, and the process moves to FIG. 6 (c). In FIG. 6 (c), the radix is 10000 and the quasi-number is 10000. Since the quasi-number +1 is naturally larger, the second place after the decimal point is also 0.

次に基数が準数+1より大きいかまたは等しい場合に
は、平方根の小数部の対応するビットを1とし、準数+
1を新しい準数、基数−準数を新しい基数として第3手
順の処理が繰返される。
Next, if the radix is greater than or equal to the quasi number + 1, the corresponding bit in the fractional part of the square root is set to 1 and the quasi number +
The process of the third procedure is repeated with 1 being a new radix and radix-a radix being a new radix.

第6図(d)では基数は1000000、準数は100000であ
り、準数+1より基数の方が大きいために100001が新し
い準数、11111が新しい基数とされて第3手順が繰返さ
れる。ここで第3手順の繰返し回数は平方根の値を小数
点以下何ビットまで求めるかによって決まる。例えば小
数点以下16ビットまで求める場合には繰返し回数は16と
なる。
In FIG. 6 (d), the radix is 1000000 and the quasi-number is 100000. Since the radix is larger than the quasi-number + 1, 100001 is the new radix and 11111 is the new radix, and the third procedure is repeated. Here, the number of repetitions of the third procedure depends on how many bits below the decimal point the square root value is obtained. For example, when obtaining up to 16 bits after the decimal point, the number of repetitions is 16.

第7図は第6図の平方根の計算の従来例を一般的にフ
ローチャートとして表したものである。同図において処
理がスタートすると、まずステップ1でx2が与えられた
実数の整数部より小さいか、または等しいようなxの最
大値が平方根整数部として求められ、x2が平方数とされ
る。次にステップ2で、与えられた実数とステップ1で
求められた平方数との差が基数とされる。ステップ3で
基数が0であるか否かが判定され、0である場合には平
方根の小数部は0となり求める必要がないので処理を終
了する。
FIG. 7 shows a conventional example of the calculation of the square root of FIG. 6 generally as a flow chart. When the process starts in the figure, first, in step 1, the maximum value of x such that x 2 is smaller than or equal to the given integer part of the real number is obtained as the square root integer part, and x 2 is the square number. . Next, in step 2, the difference between the given real number and the square number obtained in step 1 is set as the radix. In step 3, it is determined whether or not the radix is 0. If it is 0, the decimal part of the square root is 0 and there is no need to obtain it, so the processing ends.

基数が0でない場合にはステップ4で平方根の整数部
の2倍が準数とされ、ステップ5で小数部を求めるため
の処理の繰返し回数、すなわち小数部以下何ビットまで
求めるかがカウンタに設定される。
If the radix is not 0, twice the integer part of the square root is set as a quasi number in step 4, and the number of times the process for calculating the decimal part is repeated in step 5, that is, the number of bits below the decimal part is set in the counter. To be done.

その後ステップ6で基数の4倍が新しい基数、準数の
2倍が新しい準数とされ、ステップ7で基数と準数+1
とが比較される。基数が準数+1より小さい場合にはス
テップ8でカウンタの値がデクリメントされ、ステップ
9でカウンタ値が0であるか否かが判定される。カウン
タ値が0でない場合には、ステップ6以降の処理が繰返
される。
Then, in step 6, four times the radix is the new radix, and twice the quasi number is the new quasi number, and in step 7, the radix and quasi number +1
Is compared with When the radix is smaller than the quasi number + 1, the value of the counter is decremented in step 8 and it is determined in step 9 whether the counter value is 0 or not. If the counter value is not 0, the processing from step 6 onward is repeated.

ステップ7で基数が準数+1より大きいか、または等
しい場合には、ステップ10で平方根小数部の対応する位
置のビットが1にセットされ、ステップ11で準数+1が
新しい準数、基数−準数が新しい基数とされ、ステップ
8以降の処理が繰返される。そしてステップ9でカウン
タ値が0になった時点で小数部を求める処理は終了す
る。
If in step 7 the radix is greater than or equal to quasi + 1, the bit in the corresponding position of the square root fraction is set to 1 in step 10 and quasi + 1 is the new radix, radix-quasi in step 11. The number is set as a new radix, and the processing from step 8 onward is repeated. Then, when the counter value becomes 0 in step 9, the process for obtaining the fractional part ends.

第6図、第7図で述べた従来の平方根計算方法では第
2手順以降、すなわち平方根の小数部を求める処理は機
械的なものであり、電子計算機での処理に問題はない
が、第1手順すなわち平方根の整数部を求める処理は試
行錯誤的なものである。第8図は平方根整数部の求め方
の従来例の処理フローチャートである。同図において処
理がスタートすると、まずステップ12で実数値整数部が
0であるか否かが判定される。整数部が0の場合にはス
テップ13で平方根整数部と平方数が共に0とされ、整数
部をもとめる処理が終了する。整数部が0でない場合に
は、ステップ14で2進形式の整数部で1が立っている最
上位のビットがLSBを第0ビットとして第何ビットであ
るかが求められ、その値の1/2がシフト数とされる。た
だし、シフト数は整数であり小数点以下は切捨てられ
る。例えば5の平方根に対しては、その2進形式101に
おいて、1が立っている最上位ビットは第2ビットであ
り、シフト数は1となる。そしてステップ15で、1をス
テップ14で求められたシフト数だけ左にシフトした値が
平方根整数部に対する候補値とされる。
In the conventional square root calculation method described with reference to FIGS. 6 and 7, since the second step and thereafter, that is, the processing for obtaining the decimal part of the square root is mechanical, there is no problem in the processing by the electronic computer. The procedure, that is, the process of obtaining the integer part of the square root is a trial and error process. FIG. 8 is a processing flowchart of a conventional example of how to obtain the square root integer part. When the process starts in the figure, first, at step 12, it is judged if the real number integer part is 0 or not. When the integer part is 0, both the square root integer part and the square number are set to 0 in step 13, and the process for obtaining the integer part is completed. If the integer part is not 0, it is determined in step 14 which bit is the most significant bit in which 1 is set in the binary part of the integer, where the LSB is the 0th bit, and 1 / 2 is the number of shifts. However, the number of shifts is an integer, and fractions below the decimal point are truncated. For example, for the square root of 5, in the binary form 101, the most significant bit for which 1 is set is the second bit, and the shift number is 1. Then, in step 15, a value obtained by shifting 1 to the left by the shift number obtained in step 14 is set as a candidate value for the square root integer part.

に対しては候補値は10である。 For, the candidate value is 10.

次にステップ16で、与えられた実数の整数部とステッ
プ15で求められた候補値の2乗が等しいか否かが判別さ
れる。両者が等しい場合には、ステップ17で候補値が平
方根整数部、候補値の2乗が平方数とされ処理を終了す
る。ステップ16で候補値の2乗と整数部が等しくない場
合には、ステップ18で実数の整数部が候補値の2乗より
小さいか否かが判定される。平方根を求めるべき実数の
整数部の方が小さい場合には、ステップ19で候補値−1
が平方根整数部、(候補値−1)の2乗が平方数とされ
処理を終了する。ここで候補値−1を平方根整数部とす
る理由は、ステップ14でシフト数の小数点以下を切捨て
にしているために、候補値から1を引くことによってそ
の値をそのまま整数部に使うことができるからである。
Next, at step 16, it is judged if the given integer part of the real number is equal to the square of the candidate value obtained at step 15. If they are equal, the candidate value is set to the square root integer part and the square of the candidate value is set to the square number in step 17, and the process is ended. If the square of the candidate value is not equal to the integer part in step 16, it is determined in step 18 whether the integer part of the real number is smaller than the square of the candidate value. If the integer part of the real number for which the square root is to be calculated is smaller, then in step 19 the candidate value -1
Is the square root integer part, and the square of (candidate value -1) is the square number, and the process ends. Here, the reason why the candidate value -1 is used as the square root integer part is that since the decimal point of the shift number is truncated in step 14, the value can be used as it is for the integer part by subtracting 1 from the candidate value. Because.

ステップ18で与えられた実数部の整数部が候補値の2
乗より大きい場合には、ステップ20で候補値の値が歩進
され、ステップ16以降の処理が繰返される。そしてステ
ップ16で整数部が候補値の2乗と等しくなった場合に
は、ステップ17を経て処理が終了する。またステップ18
で候補値の2乗が整数部より大きくなった場合には候補
値を大きくしすぎたことになり、ステップ19の処理を経
て処理が終了する。
The integer part of the real part given in step 18 is the candidate value 2
If it is larger than the power, the value of the candidate value is incremented in step 20, and the processing from step 16 onward is repeated. When the integer part is equal to the square of the candidate value in step 16, the process ends via step 17. Step 18 again
If the square of the candidate value is larger than the integer part, it means that the candidate value has been made too large, and the process ends after the process of step 19.

〔発明が解決しようとする課題〕[Problems to be Solved by the Invention]

第8図で説明した従来の平方根整数部の求め方におい
ては、ステップ15でもとめられる候補値を基準にして、
ステップ20で候補値の値をインクリメントしながらステ
ップ16以降の処理を繰返すことになる。この処理の繰返
し回数については、ステップ14でシフト数を求めるにあ
たって問題となるビット、すなわち平方根を求めるべき
実数の整数部で1が立っている最上位ビットと同じ位置
に1が立っている最上位ビットを有する実数が何個ある
かによって最大の繰返し回数が決まる。平方根を求める
べき実数の値が大きくなるに従って同じ位置に1がたっ
ている最上位ビットを有する実数の個数は増大し、それ
に伴って実数部の整数部を求める処理時間が非常に長く
なるという問題点があった。
In the conventional method of obtaining the square root integer part described with reference to FIG. 8, with reference to the candidate value determined in step 15,
In step 20, the process from step 16 onward is repeated while incrementing the value of the candidate value. Regarding the number of repetitions of this processing, the bit which becomes a problem in obtaining the shift number in step 14, that is, the highest bit where 1 is set at the same position as the highest bit where 1 is set in the integer part of the real number for which the square root is to be obtained The maximum number of iterations depends on how many real numbers have bits. As the value of the real number for which the square root is to be increased increases, the number of real numbers having the most significant bit with 1 in the same position increases, and accordingly the processing time for obtaining the integer part of the real part becomes very long. was there.

本発明は、平方根を求めるべき実数の整数部の大小が
平方根整数部の計算処理速度に与える影響を小さくする
ことを目的とする。
An object of the present invention is to reduce the influence of the magnitude of the integer part of the real number for which the square root is to be obtained on the calculation processing speed of the square root integer part.

〔課題を解決するための手段および作用〕[Means and Actions for Solving the Problems]

第1図は、本発明の機能ブロック図である。同図は電
子計算機システムによる実数の平方根計算過程におい
て、与えられた実数の平方根の整数部を求めるための機
能ブロック図である。まず21で電子計算機システム内に
あらかじめある範囲の整数、例えば0から181までの整
数の平方数を2進形式で表したテーブルが保持される。
次に22で与えられた実数の2進形式においてその整数部
で1が立っている最上位ビット位置が、たとえばLSBを
0位置として求められる。そして23で、22で求められた
ビット位置と同じビット位置が1の立っている最上位ビ
ットである平方数の個数と、その平方数のうちで最小の
もののテーブル内での位置が例えば先頭からのオフセッ
トとしてテーブルから求められる。
FIG. 1 is a functional block diagram of the present invention. This figure is a functional block diagram for obtaining the integer part of the square root of a given real number in the process of calculating the square root of a real number by an electronic computer system. First, in step 21, a table is stored in advance in the computer system in which a range of integers, for example, square numbers of integers from 0 to 181 are represented in binary format.
Next, in the real binary format given by 22, the most significant bit position in which 1 is set in the integer part is obtained, for example, with the LSB as the 0 position. Then, in 23, the number of square numbers that are the most significant bits in which the same bit position as that obtained in 22 is 1 and the position of the smallest square number in the table is, for example, from the beginning. Is calculated from the table as the offset of.

続いて与えられた実数の整数部と1が立つ最上位ビッ
トが同じであるテーブル内の平方数との比較が行われ
る。本発明では、この比較処理の効率化のために2分探
査法が用いられる。まず24で、23で求められた平方数の
個数に基づいて、1が立っている最上位ビットが同じで
ある平方数のうちで最小のものの位置から、与えられた
実数整数部と比較すべきテーブル上の平方数への位置移
動量が決定され、その移動位置の平方数と与えられた実
数の整数部とが比較される。ここで最初の移動量は23で
求められた平方数の個数の例えば半分とされている。続
いて25で、実数の整数部とテーブル内の平方数との比較
が繰返されるが、第2回以降の比較においてはその前回
の比較時のテーブル内の平方数位置からの移動量は前回
の半分とされる。その比較の結果、26で与えられた実数
の整数部に最も近く、かつ整数部より小さい平方数が求
められ、27でその平方数の平方根が求めるべき実数の平
方根の整数部とされる。
Subsequently, a comparison is made between the given integer part of the real number and the square number in the table having the same most significant bit where 1 stands. In the present invention, the binary search method is used to improve the efficiency of this comparison process. First, in 24, based on the number of square numbers obtained in 23, compare with the given real integer part from the position of the smallest square number in which 1 is set and the most significant bit is the same. The position movement amount to the square number on the table is determined, and the square number of the movement position is compared with the given integer part of the real number. Here, the initial movement amount is set to, for example, half of the number of squares obtained in 23. Then, at 25, the comparison of the integer part of the real number with the square number in the table is repeated, but in the second and subsequent comparisons, the movement amount from the square number position in the table at the time of the previous comparison is It is supposed to be half. As a result of the comparison, the square number closest to the integer part of the real number given in 26 and smaller than the integer part is obtained, and the square root of the square number is taken as the integer part of the square root of the real number to be obtained in 27.

以上のように、本発明においては電子計算機システム
内にあらかじめ用意された平方数のテーブルを用いて、
平方根の整数部が求められる。
As described above, in the present invention, using a table of square numbers prepared in advance in the electronic computer system,
The integer part of the square root is found.

〔実施例〕〔Example〕

第2図は本発明の平方根計算方法を用いる電子計算機
システムの実施例の全体構成ブロック図である。同図は
グラフィックシステムの例であり、このシステムはホス
トコンピュータから送られる描画命令(オーダ)やデー
タを受取るインタフェース制御プロセッサ31、それらの
オーダやデータを格納するための図形データメモリ32、
図形データメモリのオーダやデータを解析し、それをベ
クトルとして生成するためのコマンドを画像データ生成
プロセッサ34に送る図形計算処理プロセッサ33、図形計
算処理プロセッサ33から送られたコマンドに対応するベ
クトルを生成し、さらにそのベクトルに対するピクセル
を生成し、そのピクセルデータを画像データメモリ35に
送る画像データ生成プロセッサ34、画像データを格納す
る画像データメモリ35、CRTを制御するCRT制御プロセッ
サ36、および表示用のCRT37から成る。
FIG. 2 is an overall configuration block diagram of an embodiment of an electronic computer system using the square root calculating method of the present invention. This figure is an example of a graphic system, which is an interface control processor 31 for receiving drawing commands (orders) and data sent from a host computer, a graphic data memory 32 for storing those orders and data,
Generates a vector corresponding to the command sent from the figure calculation processor 33, which analyzes the order and data of the figure data memory and sends a command to generate it as a vector to the image data generation processor 34. The image data generation processor 34 that further generates pixels for the vector and sends the pixel data to the image data memory 35, the image data memory 35 that stores the image data, the CRT control processor 36 that controls the CRT, and the display Composed of CRT37.

第2図のシステムにおいて平方根計算の処理は図形計
算処理プロセッサ33により行われるが、実際の計算に先
立って一般に装置の立上げ時において、前述の平方数テ
ーブルがホストコンピュータからインタフェース制御プ
ロセッサ31を介して図形データメモリ32にロードされ
る。そして実際に図形計算処理プロセッサ33が描画命令
(オーダ)やデータの解析にあたり、例えば直角三角形
の斜辺長の計算のように平方根の計算を必要とする場合
に、図形データメモリ32に格納されている平方数テーブ
ルを用いて本発明の処理が行われる。
In the system shown in FIG. 2, the square root calculation process is performed by the graphic calculation processor 33. Generally, the above-mentioned square number table is transmitted from the host computer via the interface control processor 31 at the time of starting the apparatus prior to the actual calculation. Are loaded into the graphic data memory 32. Then, when the graphic calculation processor 33 actually analyzes the drawing command (order) or the data and requires the calculation of the square root such as the calculation of the hypotenuse length of the right triangle, it is stored in the graphic data memory 32. The process of the present invention is performed using a square number table.

第3図は図形データメモリ32に格納される平方数テー
ブルの実施例である。同図において整数0から181まで
の平方の値が先頭位置から順次格納されている。なおこ
の図では平方数を符号付き1ワード(2バイト)で表せ
る範囲(0〜7FFF)としているために181までの平方数
が格納されているが、さらに大きな整数の平方数まで格
納するためにはより大きなテーブルを用いることにな
る。
FIG. 3 shows an embodiment of a square number table stored in the graphic data memory 32. In the figure, square values from integers 0 to 181 are sequentially stored from the head position. In this figure, the square numbers are stored in a range (0 to 7FFF) that can be represented by one word (2 bytes) with a sign, so the square numbers up to 181 are stored, but in order to store even larger integer square numbers. Will use a larger table.

第4図は与えられた実数の整数部が150の場合の平方
数テーブルの検索実施例である。150の2進形式は10010
110であり、LSBを0ビットとすると1の立っている最上
位ビットは7ビットである。第3図において7ビットが
1の立っている最上位ビットである平方数の個数は4個
であり、第4図に示すように122から152までの平方数で
ある。
FIG. 4 shows a search example of the square number table when the integer part of the given real number is 150. The binary form of 150 is 10010
110, and if the LSB is 0 bit, the most significant bit in which 1 is set is 7 bits. In FIG. 3, the number of squares in which 7 bits are the most significant bit in which 1 is set is 4, which is a square number from 12 2 to 15 2 as shown in FIG.

第5図は、平方根整数部を求めるための処理の実施例
のフローチャートである。このフローチャートと第4図
の平方数テーブルの検索例とを用いて、本発明における
平方根の整数部の求め方について詳細に説明する。
FIG. 5 is a flowchart of an embodiment of a process for obtaining the square root integer part. The method for obtaining the integer part of the square root in the present invention will be described in detail with reference to this flowchart and the search example of the square number table in FIG.

第5図において処理がスタートすると、まずステップ
40で平方根を求めるべき実数値の整数部が0であるか否
かが判定される。整数部が0の場合には平方根整数部は
当然0であり、それを求める処理は必要ないので処理を
終了し、平方根の小数部をもとめるための処理、すなわ
ち第7図のステップ4以降の処理に進む。
When the process starts in FIG. 5, first step
At 40, it is judged whether or not the integer part of the real value for which the square root is to be calculated is 0. When the integer part is 0, the square root integer part is naturally 0, and the process for obtaining it is not necessary, so the process is terminated, and the process for obtaining the decimal part of the square root, that is, the processes after step 4 in FIG. Proceed to.

整数部が0でない場合には、第3図に示した平方数テ
ーブルの検索の準備のために、ステップ41で与えられた
実数の整数部において1が立っている最上位のビットを
求め、そのビット位置と同じ位置が1が立っている最上
位ビットである平方数の個数とその位置、例えば先頭か
らのオフセットが平方数テーブルから求められる。この
個数とオフセットは1が立っている最上位のビットによ
って一意に決まる値であり、あらかじめビットに対応し
てプログラム中にその値が準備されている。そこで実数
の整数部で1が立っている最上位のビットが分かれば、
平方数の個数とオフセットは平方数テーブル自体を検索
することなく決定される。第3図において、例えば与え
られた実数値の整数部で1が立っている最上位のビット
が7であればオフセットの値は12、平方数の個数は4と
なる。
If the integer part is not 0, the most significant bit for which 1 is set in the integer part of the real number given in step 41 is found to prepare for the search of the square number table shown in FIG. The number of square numbers that are the most significant bits in which 1 is set at the same position as the bit position and the position thereof, for example, the offset from the beginning, are obtained from the square number table. The number and offset are values uniquely determined by the most significant bit for which 1 is set, and the values are prepared in advance in the program corresponding to the bits. So if you know the most significant bit that is set to 1 in the integer part of the real number,
The number of square numbers and the offset are determined without searching the square number table itself. In FIG. 3, for example, if the most significant bit for which 1 is set in the given integer part of the real number is 7, the offset value is 12 and the number of squares is 4.

続いて平方根を求めるべき実数の整数部と平方数テー
ブルの中の平方数との比較が行われる。まずステップ42
で、整数部とステップ41で求められたオフセットの位置
のテーブルの値が比較され、テーブルの値が整数部より
大きい場合には、ステップ420でオフセット−1が平方
根整数部、オフセット−1の位置にあるテーブルの値が
平方数とされて処理が終了する。これは、例えば与えら
れた実数の整数部が140、すなわち2進形式で10001100
の場合のように、1が立つ最上位ビットが7ビットであ
っても平方数テーブルの内で同じビットが1が立ってい
る最上位ビットである平方数の最小値、ここでは122
りも小さい場合が存在するためであり、このような場合
にはその最小の平方数よりさらに小さい平方数を与えら
れた実数の整数部に対応させるためである。
Subsequently, the integer part of the real number for which the square root is to be calculated is compared with the square number in the square number table. First step 42
In, the integer part and the value of the offset position table obtained in step 41 are compared, and if the value of the table is larger than the integer part, offset -1 is the square root integer part, the position of offset -1 in step 420. The value in the table in is set to a square number, and the process ends. This is, for example, the integer part of a given real number is 140, ie 10001100 in binary form.
As in the case of, even if the most significant bit for which 1 is set is 7 bits, the minimum value of the square number that is the most significant bit for which the same bit is set in the square number table, here 12 2 This is because there is a small case, and in such a case, a square number smaller than the minimum square number is made to correspond to the integer part of a given real number.

ステップ42でオフセットの位置のテーブルの値が整数
部よりも小さい場合には、ステップ43で両者の値が等し
いか否かが判別される。実数の整数部とテーブルの値が
等しい場合には、ステップ430でオフセット値が平方根
の整数部、オフセット位置の平方数テーブルの値が平方
数とされ処理が終了する。これは平方根を求めるべき実
数の整数部がある数の平方数に丁度一致することになる
ためで、この場合には前述の基数は0となる。
When the value of the offset position table is smaller than the integer part in step 42, it is determined in step 43 whether the two values are equal. If the integer part of the real number is equal to the value in the table, the offset value is set to the integer part of the square root and the value of the square number table at the offset position is set to the square number in step 430, and the process ends. This is because the integer part of the real number for which the square root is to be calculated exactly matches the square number of a certain number, and in this case, the above-mentioned radix is 0.

ステップ43で実数の整数部とテーブル値が等しくない
場合すなわち整数部がオフセット位置のテーブルの値よ
り大きい場合には、ステップ44から本発明の特徴である
平方数テーブルの2分探査が行われる。まずステップ44
で平方数テーブル内での2分探査の初期移動量が 2a≦(ステップ41における平方数の個数−1)<2a+1 を満足する2aとして求められる。例えば整数部で1が立
っている最上位のビットが7の場合には、第4図に示し
たように同じ位置に最上位ビットがある平方数は4個で
あり、2分探査の初期移動量は21≠2となる。なお、初
期移動量を求める際に、平方数の個数から1を引く理由
は、このように平方数の個数自体が2のべき乗に一致し
ていると初期移動量が半分にならないためである。
In step 43, when the integer part of the real number is not equal to the table value, that is, when the integer part is larger than the value of the offset position table, the binary search of the square number table, which is a feature of the present invention, is performed from step 44. First step 44
Then, the initial movement amount of the binary search in the square number table is determined as 2 a satisfying 2 a ≦ (the number of square numbers in step 41−1) <2 a + 1 . For example, when the most significant bit in which 1 is set in the integer part is 7, the square number having the most significant bit at the same position is 4, as shown in FIG. The quantity is 2 1 ≠ 2. The reason why 1 is subtracted from the number of squares when the initial amount of movement is obtained is that the initial amount of movement is not halved if the number of squares itself matches a power of 2.

そしてステップ45で、オフセットの値とステップ44で
求められた2分探査移動量との分が新しいオフセットと
され、ステップ46でそのオフセット位置のテーブルの値
と実数整数部が等しいか否かが判定される。第4図では
この時比較されるテーブル値は142である。そして実数
整数部とテーブル値が等しい場合にはステップ430の処
理を経て処理が終了する。
Then, in step 45, the offset value and the binary search movement amount obtained in step 44 are set as a new offset, and it is determined in step 46 whether the value of the offset position table is equal to the real number integer part. To be done. In FIG. 4, the table value compared at this time is 14 2 . Then, when the real integer part and the table value are equal, the processing is terminated after the processing of step 430.

ステップ46で実数の整数部とオフセット位置のテーブ
ルの値が等しくない場合には、ステップ47で実数整数部
がテーブル値より小さいか否かが判定される。整数部の
方が小さい場合には最初の2分探査において行過ぎたこ
とになるので、第2回の探査は平方数テーブル内で第1
回とは逆方向に行われる。すなわちステップ48で2分探
査の移動量が半分とされ、ステップ49で2分探査移動数
が0であるか否か、すなわち2分探査を終わるか否かが
判定される。なおここで2分探査の移動量は整数であ
り、小数点以下は切捨てられるものとする。移動数が0
でない場合には、ステップ50でオフセットから2分探査
移動数が引かれて新しいオフセットとされた後に、ステ
ップ46以降の処理が繰返される。ステップ49で2分探査
移動数が0と判定された場合には、2分探査は打切ら
れ、ステップ420でオフセット−1が平方根整数部、オ
フセット−1の位置の平方数が平方数とされて処理が終
了する。これはその前回の2分探査における行過ぎを補
正するためである。
If the integer part of the real number is not equal to the value of the offset position table in step 46, it is determined in step 47 whether the real integer part is smaller than the table value. If the integer part is smaller, it means that the first dichotomization has passed, so the second exploration is the first in the square number table.
It is performed in the opposite direction to the turn. That is, the movement amount of the binary search is halved in step 48, and it is determined in step 49 whether the binary search movement number is 0, that is, whether the binary search is completed. It should be noted that the movement amount of the binary search is an integer, and the fractional part is truncated. Number of moves is 0
If not, in step 50, the binary search movement number is subtracted from the offset to obtain a new offset, and then the processing from step 46 onward is repeated. If it is determined in step 49 that the number of binary search moves is 0, the binary search is terminated, and in step 420, the offset-1 is the square root integer part and the square number at the position of offset-1 is the square number. The process ends. This is to correct the overshoot in the previous binary search.

ステップ47で実数の整数部がオフセットの位置のテー
ブルの値より大きい場合には平方数テーブル内の2分探
査が前回と同一の方向に行われることになる。すなわち
ステップ51で前回の2分探査移動数の1/2が新しい2分
担差移動数とされ、ステップ52で2分探査移動数が0で
あるか否かが判定される。0でない場合には、ステップ
45に戻り、オフセットに2分探査移動数が加えられて新
しいオフセットとされ、ステップ46以降の処理が繰返さ
れる。ステップ52で2分探査移動数が0の場合には2分
探査は打切られ、ステップ53でオフセッが平方根整数
部、オフセットが指すテーブルの値が平方数とされて処
理が終了する。
If the integer part of the real number is larger than the value of the offset position table in step 47, the binary search in the square number table is performed in the same direction as the previous time. That is, in step 51, 1/2 of the previous two-minute exploration movement number is set as a new two-part sharing differential movement number, and in step 52, it is determined whether or not the two-minute exploration movement number is zero. If not 0, step
Returning to 45, the binary search movement number is added to the offset to make a new offset, and the processing from step 46 onward is repeated. If the binary search movement number is 0 in step 52, the binary search is terminated, and in step 53, the offset is set to the square root integer part, and the value of the table pointed to by the offset is set to the square number, and the process ends.

〔発明の効果〕〔The invention's effect〕

以上詳細に説明したように、本発明によれば、平方数
テーブルを2分探査で検索するために、実数の平方根の
整数部の計算が高速化され、また平方数テーブル内の検
索対象範囲が例えば2倍になっても、2分探査の繰返し
回数は最大1回ふえるだけであり、実数値の大小による
処理速度への影響を小さくすることができる。
As described in detail above, according to the present invention, since the square table is searched by the binary search, the calculation of the integer part of the square root of the real number is accelerated, and the search target range in the square table is For example, even if the number is doubled, the number of repetitions of the binary search is increased only once at maximum, and the influence on the processing speed due to the size of the real value can be reduced.

【図面の簡単な説明】[Brief description of drawings]

第1図は本発明の機能ブロック図、 第2図は本発明の平方根計算方法を用いる電子計算機シ
ステムの実施例の全体構成を示すブロック図、 第3図は平方数テーブルの実施例を示す図、 第4図は平方根を求めるべき与えられた実数の整数部が
150の場合の平方数テーブルの検索の実施例を示す図、 第5図は与えられた実数の平方根の整数部を求めるため
の処理実施例のフローチャートを示す図、 第6図は平方根計算方法の従来例を示す図、 第7図は平方根計算の従来例の処理フローチャートを示
す図、 第8図は平方根の整数部を求める従来方法の処理フロー
チャートを示す図である。 31……インタフェース制御プロセッサ、 32……図形データメモリ、 33……図形計算処理プロセッサ、 34……画像データ生成プロセッサ.
1 is a functional block diagram of the present invention, FIG. 2 is a block diagram showing an overall configuration of an embodiment of an electronic computer system using the square root calculation method of the present invention, and FIG. 3 is a view showing an embodiment of a square number table. , Fig. 4 shows that the integer part of a given real number is
FIG. 5 is a diagram showing an example of a search of a square number table in the case of 150, FIG. 5 is a diagram showing a flowchart of a process example for obtaining an integer part of a square root of a given real number, and FIG. 6 is a square root calculation method. FIG. 7 is a diagram showing a conventional example, FIG. 7 is a diagram showing a process flowchart of a conventional example of square root calculation, and FIG. 8 is a diagram showing a process flowchart of a conventional method for obtaining an integer part of a square root. 31 ... Interface control processor, 32 ... Graphic data memory, 33 ... Graphic calculation processor, 34 ... Image data generation processor.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】電子計算機システムによる実数の平方根の
計算方法において、 該電子計算機システム内にあらかじめ整数の平方数を2
進形式で表したテーブルを保持し(21)、 開平すべき与えられた実数の2進形式において整数部で
1が立っている最上位ビット位置を求め(22)、 該ビット位置と1の立っている最上位ビットとが一致す
る平方数の個数と該平方数の内で最小の平方数の前記テ
ーブル内での位置とを前記テーブルから求め(23)、 該平方数の個数に基づき、該平方数の内で最小の平方数
の位置から、与えられた実数整数部と比較すべき前記テ
ーブル上の平方数への位置移動量を決定して、該移動位
置の平方数と与えられた実数の整数部とを比較し(2
4)、 次回以降の比較においては前回比較時の平方数位置から
の移動量を2分しながら前記テーブル内の平方数と、与
えられた実数整数部との比較を繰返し(25)、 与えられた実数整数部に直近かつ直下である平方数を求
め(26)、 該平方数の平方根である実数を与えられた実数の平方根
の整数部とする(27)ことを特徴とする平方根計算方
法。
1. A method of calculating a square root of a real number by an electronic computer system, wherein an integer square number is set to 2 in advance in the electronic computer system.
Holds a table expressed in a binary format (21), finds the most significant bit position where 1 is set in the integer part of the given binary number of the real number to be square rooted (22), and sets the bit position and 1 The number of squares whose corresponding most significant bits match and the position in the table of the smallest square of the squares are found from the table (23), and based on the number of squares, The position shift amount from the position of the smallest square number of the square numbers to the square number on the table to be compared with the given real number integer part is determined, and the square number of the moved position and the given real number are determined. Compare with the integer part of (2
4) In the next and subsequent comparisons, the square number in the above table and the given real number integer part are repeatedly compared while dividing the amount of movement from the square number position in the previous comparison into two (25). A square root calculation method characterized in that a square number that is closest to and immediately below the real number integer part is obtained (26), and the real number that is the square root of the square number is set as the integer part of the square root of the given real number (27).
JP21394989A 1989-08-19 1989-08-19 Square root calculation method Expired - Lifetime JP2507812B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21394989A JP2507812B2 (en) 1989-08-19 1989-08-19 Square root calculation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21394989A JP2507812B2 (en) 1989-08-19 1989-08-19 Square root calculation method

Publications (2)

Publication Number Publication Date
JPH0377132A JPH0377132A (en) 1991-04-02
JP2507812B2 true JP2507812B2 (en) 1996-06-19

Family

ID=16647718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21394989A Expired - Lifetime JP2507812B2 (en) 1989-08-19 1989-08-19 Square root calculation method

Country Status (1)

Country Link
JP (1) JP2507812B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297072A (en) * 1992-03-18 1994-03-22 Sharp Kabushiki Kaisha Square-root operating circuit adapted to perform a square-root at high speed and apply to both of binary signal and quadruple signal
JP3164823U (en) 2010-10-06 2010-12-16 株式会社タカラトミー Top toy launcher

Also Published As

Publication number Publication date
JPH0377132A (en) 1991-04-02

Similar Documents

Publication Publication Date Title
EP1004988B1 (en) Method, apparatus and computer program product for generating perspective corrected data from warped information
EP0360155B1 (en) Image transformation method and device
JP2501580B2 (en) Curved image visual display generator
US4675665A (en) Realtime tracking of a movable cursor
JPH03127282A (en) Radon transforming method of digital image
JPH1049665A (en) Device and method for image processing
JP2507812B2 (en) Square root calculation method
JPH0523439B2 (en)
JPH06274149A (en) Method and device for varying width of outline font
JP2878614B2 (en) Image synthesis method and apparatus
CN113103239B (en) Robot attitude trajectory generation method and device and storage medium
JP4834642B2 (en) Graphic change device, graphic change method, computer program, and recording medium
JP2538645B2 (en) Curved line approximation device
JPH11120379A (en) Generating and displaying method for computer image data
JP3039387B2 (en) Apparatus for calculating intersection of B-spline curve and straight line in three-dimensional CAD
JP2900986B2 (en) B-spline curve layering device
CN115155063A (en) Method for zooming elliptic Spline track SplineStosh
JPH06274308A (en) Uniform modeling generation processing method for bezier curve
CN116168139A (en) Model texture adjustment method, device, equipment and storage medium
JP2000105665A (en) Device and method for correcting coordinate group curving
JPH01149185A (en) Picture processing method
JPH0776988B2 (en) Straight line drawing device
JPS63127288A (en) Pattern generator
JPH0833798B2 (en) Command judgment method
JPH01134682A (en) Line folding processing system