Abstract
A technique for the evaluation of a general continuous function f(x) is presented, and the design of an interpolating memory as an implementation of the technique is described. The technique partitions the domain of f(x) into segments and defines an interpolating (or approximating) function for each. The implementation is a memory subsystem that holds the parameters of the approximating functions and yields an interpolated function value on each read reference. Polynomial interpolating functions are considered in particular. Hardware requirements (memory and computational logic) are analyzed in terms of the required precision. It is shown that as long as f(x) has d+1 derivatives, where d is the degree of the interpolating polynomial, d+1 additional bits of precision of the computed f(x) are obtained for each additional address bit used in the interpolating memory. This establishes a tradeoff between memory and computational logic, which can be exploited in the design of a unit for a specific function, for any precision requirement. Furthermore, a single unit can be designed for any class of functions that have the required derivatives. Two examples of implementations for particular functions are presented.

This publication has 13 references indexed in Scilit: