High accuracy estimates of elementary functions
First Claim
1. A method of estimating the reciprocal of an input value in a computer system having a processor, comprising the steps of:
- normalizing the input value to yield a normalized input value;
selecting a first constant and a second constant from a table stored in the computer system, the table having a plurality of intervals, based on the normalized input value, wherein said first and second constants are based on a linear approximation of the function 1/x using left and right edges of a given interval, offset to reduce a maximum error value for the given interval; and
calculating an estimated reciprocal using the processor by combining the product of the normalized input value and the first constant with the second constant in a logic unit of the processor.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved method of estimating the square root, reciprocal square root, and reciprocal of an input value in a computer system. The input value, after being normalized, is used to select a pair of constants from a table. The constants are based on a linear approximation of the function for each interval of the input value, offset to reduce a maximum error value for a given interval. The estimated function is calculated by adding or subtracting the product of a part of the normalized input value and the first constant from the second constant. In one implementation, the input value is normalized within the range 1≦x<2, and one lookup table is used, having an interval size of 1/32. In a further preferred embodiment, only a lower order part of the mantissa is used in the multiply-add operation, to reduce the number of bits required (the high order part of the mantissa is used to select the constants from the table). In another implementation, the input value is normalized within the range 0.5≦x<2, and two lookup tables are used, a first table having an interval size of 1/32 for the range 0.5≦x<1, and a second table having an interval size of 1/16 for the range 1≦x<2.
31 Citations
31 Claims
-
1. A method of estimating the reciprocal of an input value in a computer system having a processor, comprising the steps of:
-
normalizing the input value to yield a normalized input value; selecting a first constant and a second constant from a table stored in the computer system, the table having a plurality of intervals, based on the normalized input value, wherein said first and second constants are based on a linear approximation of the function 1/x using left and right edges of a given interval, offset to reduce a maximum error value for the given interval; and calculating an estimated reciprocal using the processor by combining the product of the normalized input value and the first constant with the second constant in a logic unit of the processor. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A processor for a computer system, comprising:
-
a plurality of registers; a plurality of logic units connected to said registers, including a floating-point execution unit allowing multiply-add operations; and a table lookup for estimating a reciprocal of a normalized input value in one of said registers, said table lookup having a plurality of intervals and associated pairs of first and second constants used as inputs to said floating-point execution unit, said first and second constants being based on a linear approximation of the function 1/x using left and right edges of a given interval, offset to reduce a maximum error value for the given interval, such that the reciprocal is estimated by combining the product of the normalized input value and the first constant with the second constant. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method of estimating the reciprocal square root of an input value in a computer system having a processor, comprising the steps of:
-
normalizing the input value to yield a normalized input value; selecting a first constant and a second constant from a table stored in the computer system, the table having a plurality of intervals, based on the normalized input value, wherein said first and second constants are based on a linear approximation of the function 1/√
x using left and right edges of a given interval, offset to reduce a maximum error value for the given interval; andcalculating an estimated reciprocal square root using the processor by combining the product of the normalized input value and the first constant with the second constant in a logic unit of the processor. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A processor for a computer system, comprising:
-
a plurality of registers; a plurality of logic units connected to said registers, including a floating-point execution unit allowing multiply-add operations; and a table lookup for estimating a reciprocal square root of a normalized input value in one of said registers, said table lookup having a plurality of intervals and associated pairs of first and second constants used as inputs to said floating-point execution unit, said first and second constants being based on a linear approximation of the function 1/√
x using left and right edges of a given interval, offset to reduce a maximum error value for the given interval, such that the reciprocal square root is estimated by combining the product of the normalized input value and the first constant with the second constant. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
-
Specification