starry / backend /libs /three /math /interpolants /LinearInterpolant.js
k-l-lambda's picture
feat: add Python ML services (CPU mode) with model download
2b7aae2
import { Interpolant } from '../Interpolant.js';
class LinearInterpolant extends Interpolant {
constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {
super(parameterPositions, sampleValues, sampleSize, resultBuffer);
}
interpolate_(i1, t0, t, t1) {
const result = this.resultBuffer,
values = this.sampleValues,
stride = this.valueSize,
offset1 = i1 * stride,
offset0 = offset1 - stride,
weight1 = (t - t0) / (t1 - t0),
weight0 = 1 - weight1;
for (let i = 0; i !== stride; ++i) {
result[i] = values[offset0 + i] * weight0 + values[offset1 + i] * weight1;
}
return result;
}
}
export { LinearInterpolant };