# (v13) The interpop operator

*This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP*

internaldict *real array *
interpop *real*

Implements a simple `y(x)`

function using linear interpolation of a table.

The real operand should be a real value between `0`

and `1`

; if the value is outside this range, it is clipped. This number is the `x`

value input to the function.

The array operand must be an array of numbers; each value may be an integer or a real. There is no restriction on the values of the numbers or the number of entries in the array (except for PostScript limits). The array is treated as a table of `y`

values along a linearly-spaced `x`

axis of the `y(x)`

function. The first value is for `x`

=`0`

and the last value is for `x`

=`1`

.

The returned real value is the value of `y(x)`

obtained by linearly interpolating between the appropriate segment of the table.

A simple example follows:

`userdict /interpop 1183615869 internaldict /interpop get put 0.7 {0 0.15 0.45 0.65 0.85 1} //interpop`

with the result of `0.75`

. There are six values in the table spaced by `x`

of `0.2`

; with `x`

=`0.7`

, the segment is between `x`

=`0.6`

and `x`

=`0.8`

. These have values of `y`

=`0.65`

and `y`

=`0.85`

respectively with the result of `0.75`

, which is 50% along that segment.

For other examples, see Simple example .