Generates a single-precision vector, by interpolating values from a lookup table.


func vDSP_vtabi(_ __A: UnsafePointer<Float>, _ __IA: vDSP_Stride, _ __S1: UnsafePointer<Float>, _ __S2: UnsafePointer<Float>, _ __C: UnsafePointer<Float>, _ __M: vDSP_Length, _ __D: UnsafeMutablePointer<Float>, _ __ID: vDSP_Stride, _ __N: vDSP_Length)



Single-precision real input vector.


Address stride for A.


Pointer to single-precision real input scalar: scale factor.


Pointer to single-precision real input scalar: base offset.


Single-precision real input vector: lookup table.


Lookup table size.


Single-precision real output vector.


Stride for D


The number of elements to write to D.


Performs the following operation:

mathematical formula

where F is scaling factor S1 and G is offset S2.

Evaluates elements of vector A for use as offsets into vector C. Vector C is a zero-based lookup table supplied by the caller that generates output values for vector D. Linear interpolation is used to compute output values when an offset is not an integer. Scale factor S1 and base offset S2 map the anticipated range of input values to the range of the lookup table and are typically assigned values such that:

floor(S1 * minimum input value + S2) = 0
floor(S1 * maximum input value + S2) = M-1

If an offset is less than zero or greater than M-1, C[0] or C[M-1] is written to the output, respectively. For inputs that evaluate integrally, the table location indexed by the integral is copied as the output value.