Patent GB-1536844-A (GB)
Title: Generation of mathematical functions
IPC: G06F17/17
Filed: 1975-02-26
Abstract: 1536844 Interpolation BELL & HOWELL Ltd 18 Feb 1976 [26 Feb 1975] 8045/75 Heading G4A In a method of obtaining the value of one of a first variable y and a second variable x for a given value of the other variable, where y is a function of x given by with Bi a linear polynomial expression in x of the ith order and d i  a coefficient, first and second digital function values, defining an initial segment of the function, and at least second-, third- and fourth-order correcting terms, are stored. The function values are linearly interpolated to obtain a digital mid-point value and to create two new segments, one of which is UP with respect to the mid-point value and the other of which is DOWN, the mid-point value being compensated by the addition of the second-order correcting term. It is then determined whether the new segment of interest for the next stage of the method is UP or DOWN with respect to the compensated mid-point value. The determined UP/DOWN information is then used to effect replacement of one of the function values by the compensated mid-point value to create a new segment containing the desired or given value of the independent variable. Updated values of the second-, third- and fourth-order correcting terms (K, C and Q say) are then obtained as follows: where the Œ signs are taken according as the new segment is UP or DOWN. The above calculation steps are then iterated until the desired accuracy is achieved. The independent variable x is preferably normalized to lie in the domain 0, 1 and the UP/DOWN information is then determined, in the case of direct interpolation, i.e. interpolating y for a given value of x, by examining in turn each bit of the stored binary independent variable x, the nth bit determining whether the new segment for the (n+1)th stage of the method is UP or DOWN. Correcting terms higher than the fourth order may be employed, and the Specification gives a discussion of the method up to the eighth order and of the various polynomial expressions which may be used. Each such polynomial expression may be selected to have either odd or even symmetry about the x domain centre. The method may be embodied in physical form such as in a programmed read-only memory, and is implemented by programming a computer or by hardware designed for the purpose. Fig. 8 shows details of such hardware for implementing the method. Initially the first and the second digital function values and the correcting terms are entered into a random access memory 12. Since the divisors in the updating equations are all powers of two, divisions are effected by transferring values from the memory 12 to shift registers 14, 16 and shifting the appropriate numbers of bit positions. Addition or subtraction of the values in shift registers 14, 16 is performed by a full adder 18 controlled by logic 30 in turn controlled by the determined UP/DOWN information from a detector 36 (direct interpolation being assumed). At each stage of interpolation the independent variable x is shifted one bit position in its shift register 32. Accordingly, a detector 38 detects when x has been shifted entirely out of the shift register 32 and generates a signal terminating the interpolation. In the case of inverse interpolation, i.e. interpolating x for a given value of y, the interpolated value of y is compared with the given value of y to determine the UP/DOWN information, a 1 or a 0 being stored at the corresponding bit position of x. For the interpolation of well-behaved functions it is found that sufficient accuracy is achieved if each linear polynomial expression B i  has a peak amplitude approximating unity, and the majority of the description is based on this assumption. In other cases the B i  need to be resealed to achieve sufficient accuracy, and a brief discussion of such resealing requirements is given.