class Interpolation {
static Linear( v, k ) {
var m = v.length - 1,
f = m * k,
i = f.floor(),
fn = _InterpolationUtils.Linear;
if ( k < 0 ) return fn( v[ 0 ], v[ 1 ], f );
if ( k > 1 ) return fn( v[ m ], v[ m - 1 ], m - f );
return fn( v[ i ], v[ i + 1 > m ? m : i + 1 ], f - i );
}
}
static Linear( v, k ) {
var m = v.length - 1,
f = m * k,
i = f.floor(),
fn = _InterpolationUtils.Linear;
if ( k < 0 ) return fn( v[ 0 ], v[ 1 ], f );
if ( k > 1 ) return fn( v[ m ], v[ m - 1 ], m - f );
return fn( v[ i ], v[ i + 1 > m ? m : i + 1 ], f - i );
}