# mix

## Name

mix — linearly interpolate between two values

## Declaration

 genType mix( genType x, genType y, genType a);

 genType mix( genType x, genType y, float a);

 genType mix( genType x, genType y, genBType a);

## Parameters

x

Specify the start of the range in which to interpolate.

y

Specify the end of the range in which to interpolate.

a

Specify the value to use to interpolate between x and y.

## Description

mix performs a linear interpolation between x and y using a to weight between them. The return value is computed as follows: $x ⋅ ( 1 − a ) + y ⋅ a$.

For the variants of mix where a is genBType, elements for which a[i] is false, the result for that element is taken from x, and where a[i] is true, it will be taken from y. Components of x and y that are not selected are allowed to be invalid floating point values and will have no effect on the results.