Claims
- 1. A numeric processor for processing electrical signals to determine a reciprocal of a desired j.sup.th root of an input value S other than S=.+-..infin., .+-.0, or Not-a-Number (NaN), based on an input value m reflecting a desired convergence rate m in a selected error equation and an input value j reflecting a magnitude of j for a desired reciprocal j.sup.th root, comprising:
- A) first selecting means for applying electrical signals responsive to the input value S to select an input value S other than S=.+-..infin., .+-.0, or NaN;
- B) second selecting means for applying electrical signals responsive to the input value j to select j;
- C) third selecting means for applying electrical signals responsive to the input value m to select m;
- D) a read-only memory storage unit, for applying electrical signals responsive to the first selecting means and the second selecting means to determine b such that b is approximately equal to the reciprocal of the j.sup.th root of S;
- E) second determining means for applying electrical signals responsive to the second selecting means and the read only memory storage unit to determine b.sup.j such that b is raised to the power of j;
- F) third determining means for applying electrical signals responsive to the first selecting means and the second determining means to determine x such that x=S*b.sup.j ;
- G) fourth determining means for applying electrical signals responsive to the second selecting means, the third selecting means, and the third determining means to determine a convergence factor d such that d is obtained as a solution of the selected error equation x*{f.sub.j [m](x)}.sup.j =1-.DELTA..sup.m, also expressible as (1-.DELTA.)*{f.sub.j [m](.DELTA.)}.sup.j =1-.DELTA..sup.m, noting that as f.sub.j [m](1-.DELTA.) is a function of .DELTA., then f.sub.j [m](.DELTA.) is also a function of .DELTA., where:
- .DELTA.=- x;
- f.sub.j [m](.DELTA.) is an m-1.sup.th order polynomial in terms of .DELTA. that when raised to the j.sup.th power and multiplied by (1-.DELTA.) causes an error .DELTA. to decrease by the m.sup.th power;
- f.sub.j [m](.DELTA.)=1+A.sub.1 .DELTA..sup.1 +A.sub.2 .DELTA..sup.2 +A.sub.3 .DELTA..sup.3. . . +A.sub.m-1 .DELTA..sup.m-1 ;
- 0<1-.DELTA.<2;
- {f.sub.j [m](.DELTA.)}.sup.j is expanded and multiplied by (1-.DELTA.) as indicated; all terms that contain .DELTA..sup.p such that p>m are eliminated, obtaining an equation with coefficients g.sub.1 through g.sub.m of the form
- 1+g.sub.1 .DELTA..sup.1 +g.sub.2 .DELTA..sup.2 +g.sub.3 .DELTA..sup.3. . . +g.sub.m .DELTA..sup.m =1-k.DELTA..sup.m ;
- the coefficients of terms .DELTA..sup.1, .DELTA..sup.2, .DELTA..sup.3, . . . , .DELTA..sup.m-1 are equated to zero yielding solutions for the A.sub.1 through A.sub.m-1 coefficients above;
- (1-x) is substituted for .DELTA. to obtain
- f.sub.j [m](x)=1+K.sub.1 x+K.sub.2 x.sup.2 +K.sub.3 x.sup.3. . . +K.sub.m-1 x.sup.m-1, where the K's are functions of the A's;
- such that convergence factor d=f.sub.j [m](x);
- H) fifth determining means for applying electrical signals responsive to the second selecting means and the fourth determining means to determine d.sup.j such that d is raised to the power of j;
- I) sixth determining means for applying electrical signals responsive to the third determining means and the fifth determining means to determine a new x such that x=x*d.sup.j ; and
- J) seventh determining means for applying electrical signals responsive to the first determining means and the fourth determining means to determine a new b such that b=b*d and b appears as an output signal.
- 2. The apparatus of claim 1, further including data manipulation and storage means responsive to the fourth determining means, the fifth determining means, the sixth determining means, and the seventh determining means for iterating determinations G, H, I, and J until a solution with a desired degree of accuracy is obtained.
- 3. The apparatus of claim 1, wherein the means for selecting an input value S other than S=.+-..infin., .+-.0, or NaN is an error check device.
- 4. The apparatus of claim 1, wherein the fourth determining means comprises:
- A) first storage and manipulation means for applying electrical signals responsive to the second selecting means, the third selecting means, and the third determining means to store and manipulate the selected error equation (1-.DELTA.)*{f.sub.j [m](.DELTA.)}.sup.j= 1-.DELTA..sup.m such that
- (1-.DELTA.)*(1+A.sub.1 .DELTA.+A.sub.2 .DELTA..sup.2 +A.sub.3 .DELTA..sup.3. . . +A.sub.m-1 .DELTA..sup.m-1).sup.j .apprxeq.1-.DELTA..sup.m ;
- B) second storage and manipulation means for applying electrical signals responsive to the first storage and manipulation means to expand (1+A.sub.1 .DELTA.+A.sub.2 .DELTA..sup.2 +A.sub.3 .DELTA..sup.3. . . +A.sub.m-1 .DELTA..sup.m-1).sup.j by utilizing the binomial theorem to obtain the following product: ##EQU5## and to utilize terms less than or equal to the .DELTA..sup.m term; C) third storage and manipulation means for applying electrical signals responsive to the second storage and manipulation means to obtain the product indicated in step B and to disregard terms above .DELTA..sup.m, yielding an equation of the form:
- + g.sub.1 .DELTA..sup.1 +g.sub.2 .DELTA..sup.2 +g.sub.3 .DELTA..sup.3. . . +g.sub.m .DELTA..sup.m =1-k.DELTA..sup.m
- where g.sub.1, g.sub.2, g.sub.3,. . .g.sub.m are expressions for the coefficients of the .DELTA., .DELTA..sup.2, .DELTA..sup.3, . . . .DELTA..sup.m terms;
- D) fourth storage and manipulation means for applying electrical signals responsive to the third storage and manipulation means to set the coefficients g.sub.1 through and including g.sub.m-1 equal to zero and to solve for the coefficients A.sub.1 through and including A.sub.m-1, yielding an error equation of the form 1+g.sub.m .DELTA..sup.m =1-k.DELTA..sup.m ;
- E) fifth storage and manipulation means for applying electrical signals responsive to the fourth storage and manipulation means to substitute A.sub.1, A.sub.2, A.sub.3, . . . A.sub.m-1 into the m-1.sup.th order polynomial f.sub.j [m](.DELTA.) to obtain
- f.sub.j [m](.DELTA.)=1+A.sub.1 .DELTA.+A.sub.2 .DELTA..sup.2 +A.sub.3 .DELTA..sup.3. . . +A.sub.m-1 .DELTA..sup.m-1
- and to substitute .DELTA.=1-x such that
- f.sub.j [m](x)=1+K.sub.1 x+K.sub.2 x.sup.2 +K.sub.3 x.sup.3. . . +K.sub.m-1 x.sup.m-1
- where K's are functions of the A's and such that d=f.sub.j [m](x), d appearing as an output signal.
- 5. The apparatus of claim 1, wherein the fourth determining means includes:
- for convergent reciprocal such that j=1 is desired, an application useful for division algorithms, data storage and manipulation means such that non-zero terms of f.sub.j [m](x) are approximated to give
- d=f.sub.j [m](x)=1+(1/j)[(1-x).sup.1 +(1-x).sup.2 +(1-x).sup.3. . . +(1-x).sup.m-1 ]
- with j=1, which may be simplified to: ##EQU6## for different selected convergence rates.
- 6. The apparatus of claim 1, wherein the fourth determining means includes:
- for convergent reciprocal square root such that j=2 is desired, an application useful for square root algorithms, data storage and manipulation means such that non-zero terms of f.sub.j [m](x) are approximated to give ##EQU7## with j=2, which may be simplified to: ##EQU8## for different selected convergence rates.
- 7. The apparatus of claim 1, wherein the fourth determining means includes: for quadratic convergence rate, wherein m=2, data storage and manipulation means such that non-zero terms of f.sub.j [m](x) are approximated to give f.sub.j [2](.DELTA.)=1+.DELTA./j, or equivalently,
- f.sub.j [m](x)=(j+1-x)/j, yielding the following quadratic convergence functions for various reciprocal roots:
- f.sub.1 [2](x)=2-x
- f.sub.2 [2](x)=1.5-0.5x
- f.sub.3 [2](x)=(4/3)-(1/3)x.
- 8. The apparatus of claim 1, wherein the fourth determining means includes: for cubic convergence rates, wherein m=3, data storage and manipulation means such that non-zero terms of f.sub.j [m](x) are approximated to give f.sub.j [3](.DELTA.)=1+(.DELTA./j)+.DELTA..sup.2 [1-(j-1)/(2j)]/j, or equivalently,
- f.sub.j [3](x)=(2j.sup.2 +3j+1)/(2j).sup.2 -x(2j+1)/j.sup.2 +x.sup.2 (j+1)/(2j.sup.2),
- yielding the following cubic convergence functions for various reciprocal j.sup.th roots:
- f.sub.1 [3](x)=3-3x+x.sup.2
- f.sub.2 [3](x)=1.875-1.25x+0.375x.sup.2
- f.sub.3 [3](x)=(14/9)-(7/9)x+(2/9)x.sup.2.
- 9. A method for utilizing electrical signals to allocate data storage means and data manipulation means of a computer program stored within a computer storage medium so as to expedite and improve a process of determining a reciprocal of a desired jth root of an input value S other than S=.+-..infin., .+-.0, or Not-a-Number (NaN), based on an input value m reflecting a desired convergence rate m and an input value j reflecting a magnitude of j for a desired j.sup.th root that substantially determine a convergence factor d, comprising the steps of:
- A) allocating at least a first data and manipulation input device for selecting and storing an input value S other than S=.+-..infin., .+-.0, or NaN;
- B) allocating at least a first data input device for storing a desired value of j;
- C) allocating at least a first data input device for storing a desired value of m;
- D) allocating at least a first data manipulation and storage device that includes a read-only memory storage unit for determining b such that b.apprxeq. reciprocal of the j.sup.th root of S;
- E) allocating at least a first manipulation and storage device for determining b.sup.j such that b is raised to the power of j;
- F) allocating at least a first data manipulation device for determining x such that x=S*b.sup.j ;
- G) allocating at least a first data manipulation and storage device for determining d such that d=f.sub.j [m](x) wherein:
- f.sub.j [m](x)=1+A.sub.1 x +A.sub.2 x.sup.2 +A.sub.3 x.sup.3. . . +A.sub.m-1 x.sup.m-1 represents a m-1.sup.th polynomial that is an approximate solution of an error equation x*{f.sub.j [m](x)}.sup.j =1-.DELTA..sup.m ;
- .DELTA.=- x, where 0<x<2;
- upon substitution of 1-.DELTA. in place of x, expansion of f.sub.j [m](x), now represented as f.sub.j [m](.DELTA.), multiplication by (1-.DELTA.), elimination of all terms that contain .DELTA..sup.p such that p<m to obtain an equation of the form
- 1+g.sub.1 .DELTA..sup.1 +g.sub.2 .DELTA..sup.2 +g.sub.3 .DELTA..sup.3. . .+g.sub.m .DELTA..sup.m =1-k.DELTA..sup.m
- where g.sub.1, g.sub.2, g.sub.3. . . g.sub.m are expressions for the coefficients of the .DELTA., .DELTA..sup.2, .DELTA..sup.3, . . . .DELTA..sup.m terms, setting the coefficients g.sub.1 through and including g.sub.m-1 equal to zero to obtain solutions for A.sub.1 through and including A.sub.m-1, substituting (1-x) in place of .DELTA. to obtain an equation of the form
- f.sub.j [m](x)=1+K.sub.1 x+K.sub.2 x.sup.2 +K.sub.3 x.sup.3. . .+K.sub.m-1 x.sup.m-1,
- such that convergence factor d=f.sub.j [m](x);
- H) allocating at least a first data input and manipulation device for determining d.sup.j such that d is raised to the power of j;
- I) allocating at least a first data input and manipulation device for determining a new x such that x=x*d.sup.j ; and
- J) allocating at least a first data input and manipulation device for determining a new b such that b=b*d that appears as an output electrical signal.
- 10. The method of claim 9, further including data manipulation and storage devices for iterating steps G, H, I and J until a solution with a desired degree of accuracy is obtained as an electrical output signal.
- 11. An improvement in digital signal processing methods for improving allocation of resources among a plurality of data input, data storage and data manipulation devices so as to achieve greater efficiency in determining a reciprocal j.sup.th root approximation of an input value S other than S=.+-..infin., .+-.0, or NaN, utilizing a desired convergence rate m which includes the steps of:
- A) allocating at least a first data storage and manipulation device for selection and storage of an input value other than .+-..infin., .+-.0, or NaN;
- B) allocating at least a first data storage and manipulation device for a second input value equal to a desired value of j;
- C) allocating at least a first data storage and manipulation device for a third input value equal to a desired value of m;
- D) allocating at least a first data storage and manipulation device that includes a ready-only memory storage unit for determining b such that b.apprxeq. a reciprocal of a j.sup.th root of the selected input value;
- E) utilizing an approximate solution of an error equation x* {f.sub.j [m](x)}.sup.j =1-.DELTA..sup.m, wherein:
- x=S*b.sup.j ;
- f.sub.j [m](x)=1+A.sub.1 x+A.sub.2 x.sup.2 +A.sub.3 x.sup.3. . . +A.sub.m-1 x.sup.m-1 represents a m-1.sup.th polynomial that is an approximate solution of the error equation;
- the f.sub.j [m](x) polynomial is converted to an m-1th polynomial in .DELTA., f.sub.j [m](.DELTA.), utilizing substitution of x=1-.DELTA., where 0<x<2;
- such that a convergence factor d=f.sub.j [m](x) is determined;
- F) utilizing the convergence factor d to obtain a new x such that x =x*d.sup.j ;
- G) utilizing the convergence factor d to obtain a new b such that b =b*d; and
- H) iterating steps E, F, and G until a solution with a desired degree of accuracy is obtained.
- 12. A system for maximizing time and resource efficiency of a computation process, for use with a digital computer in accordance with a strategy utilizing an approximation process, said system comprising:
- A) process control devices for controlling the computation process in response to control signal sets;
- B) a plurality of sensors for sensing inputs affecting operation of the computation process;
- C) a controller, having a ready-only memory storage unit, responsive to said sensors and process control devices for providing a more efficient process, said controller including means:
- for manipulating an input value S such that S.noteq..+-..infin., .+-.0, or Not-a-Number, an input value j reflecting a magnitude of j for a desired j.sup.th root of the input value S, and an input value m reflecting a desired convergence rate,
- in accordance with an error equation
- x*{f.sub.j [m](x)}.sup.j =1-.DELTA..sup.m
- alternatively considered as
- (1-.DELTA.)*{f.sub.j [m](.DELTA.)}.sup.j =1-.DELTA..sup.m
- wherein .DELTA.=1-x, f.sub.j [m](x) is an m-1.sup.th polynomial in x expressible as 1+A.sub.1 x+A.sub.2 x.sup.2 +A.sub.3 x.sup.3 . . . +A.sub.m-1 x.sup.m-1, that is converted to f.sub.j [m](.DELTA.), an m-1.sup.th polynomial in .DELTA., expressible as 1+A.sub.1 .DELTA..sup.1 +A.sub.2 .DELTA..sup.2 +A.sub.3 .DELTA..sup.3. . . +A.sub.m-1 .DELTA..sup.m-1,
- such that upon expanding and multiplying as indicated, obtaining an equation containing one plus various powers of .DELTA. that possess coefficients, an approximation strategy is employed in which terms containing .DELTA..sup.p such that p>m are eliminated and coefficients of terms containing .DELTA..sup.n such that n<m are set to zero, allowing expression of f.sub.j [m](x) in the form of 1+K.sub.1 x+K.sub.2 x.sup.2 +K.sub.3 x.sup.3 . . . +K.sub.m-1 x.sup.m-1 where the values of the K's are specifiable for selected desired inputs,
- to obtain a convergence factor d=f.sub.j [m](x) that is utilized to compute a new x=x*d.sup.j and a new b=b*d, including means for iteration of computation of d, x and b so as to achieve time and resource efficient utilization within said digital computer system.
Parent Case Info
This is a continuation of application Ser. No. 07/459,041, filed Dec. 29, 1989 and now abandoned.
US Referenced Citations (1)
Number |
Name |
Date |
Kind |
4607343 |
Chevillat et al. |
Aug 1986 |
|
Non-Patent Literature Citations (2)
Entry |
"WTL 1032/1033 Floating Point Division/Square Root/IEEE Arithmetic", Weitek Corporation's Application Note, 1983. |
Ho, "Approximating Divisions by a Constant", IBM Technical Disclosure Bulletin, vol. 22, No. 4, Sep. 1979, pp. 1554-1557. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
459041 |
Dec 1989 |
|