Approximation of non-linear functions in fixed point using look-up tables
First Claim
1. A method of computing, in a processor, a non-linear function ƒ
- (x) for an input variable x, where ƒ
(x)=g(y(x),z(x)), the method comprising;
determining an integer n by determining a position of a most significant bit (MSB) of the input variable x;
determining a value for y(x) based on a first look-up table and the determined integer n;
determining a value for z(x) based on n and the input variable x, and based on a second look-up table; and
computing ƒ
(x) based on the determined values for y(x) and z(x).
1 Assignment
0 Petitions
Accused Products
Abstract
Computing a non-linear function ƒ(x) in hardware or embedded systems can be complex and resource intensive. In one or more aspects of the disclosure, a method, a computer-readable medium, and an apparatus are provided for computing a non-linear function ƒ(x) accurately and efficiently in hardware using look-up tables (LUTs) and interpolation or extrapolation. The apparatus may be a processor. The processor computes a non-linear function ƒ(x) for an input variable x, where ƒ(x)=g(y(x),z(x)). The processor determines an integer n by determining a position of a most significant bit (MSB) of an input variable x. In addition, the processor determines a value for y(x) based on a first look-up table and the determined integer n. Also, the processor determines a value for z(x) based on n and the input variable x, and based on a second look-up table. Further, the processor computes ƒ(x) based on the determined values for y(x) and z(x).
7 Citations
49 Claims
-
1. A method of computing, in a processor, a non-linear function ƒ
- (x) for an input variable x, where ƒ
(x)=g(y(x),z(x)), the method comprising;determining an integer n by determining a position of a most significant bit (MSB) of the input variable x; determining a value for y(x) based on a first look-up table and the determined integer n; determining a value for z(x) based on n and the input variable x, and based on a second look-up table; and computing ƒ
(x) based on the determined values for y(x) and z(x). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
- (x) for an input variable x, where ƒ
-
17. An apparatus for computing a non-linear function ƒ
- (x) for an input variable x, where ƒ
(x)=g(y(x),z(x), comprising;a memory; and at least one processor coupled to the memory and configured to; determine an integer n by determining a position of a most significant bit (MSB) of the input variable x; determine a value for y(x) based on a first look-up table and the determined integer n; determine a value for z(x) based on n and the input variable x, and based on a second look-up table; and compute ƒ
(x) based on the determined values for y(x) and z(x). - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
- (x) for an input variable x, where ƒ
-
33. An apparatus for computing a non-linear function ƒ
- (x) for an input variable x, where ƒ
(x)=g(y(x),z(x), comprising;means for determining an integer n by determining a position of a most significant bit (MSB) of the input variable x; means for determining a value for y(x) based on a first look-up table and the determined integer n; means for determining a value for z(x) based on n and the input variable x, and based on a second look-up table; and means for computing ƒ
(x) based on the determined values for y(x) and z(x). - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
- (x) for an input variable x, where ƒ
-
49. A computer-readable medium storing computer executable code for execution on at least one processor, comprising code to:
-
determine an integer n by determining a position of a most significant bit (MSB) of an input variable x; determine a value for y(x) based on a first look-up table and the determined integer n; determine a value for z(x) based on n and the input variable x, and based on a second look-up table; and compute a non-linear function ƒ
(x)=g(y(x),z(x)) based on the determined values for y(x) and z(x).
-
Specification