const sample_size = 10;
const data={line:new Float32Array(sample_size*100)}
const writeTo = 99;
function checkCorrectness() {
const written = data.line.slice(sample_size*writeTo);
const sample = getSample();
for (let i = 0; i < sample_size; ++i) {
if (written[i] != sample[i]) {
throw new Error(`Incorrect copy: ${written[i]}!=${sample[i]}`);
}
}
}
function getSample() {
return new Array(sample_size).fill().map((_, i) => i+1.);
}
function setBuffer(dest, figure_num, data_p){
let num = sample_size * figure_num
for (let i = 0, l = data_p.length; i < l; ++i) {
data.line[num + i] = data_p[i];
}
}
let sample = getSample();
let num = sample_size * writeTo;
data.line[num+0] = sample[0];
data.line[num+1] = sample[1];
data.line[num+2] = sample[2];
data.line[num+3] = sample[3];
data.line[num+4] = sample[4];
data.line[num+5] = sample[5];
data.line[num+6] = sample[6];
data.line[num+7] = sample[7];
data.line[num+8] = sample[8];
data.line[num+9] = sample[9];
data.line.set(getSample(), sample_size*writeTo);
setBuffer(data.line, writeTo, getSample());
let sample = getSample();
let offset = sample_size*writeTo;
for (let j = 0, l = sample.length; j < l; ++j) {
data.line[offset+j] = sample[j];
}
let sample = getSample();
let offset = sample_size*writeTo;
let i = 0;
for (const el of sample) {
i++;
data.line[offset+i] = el;
}
// checkCorrectness();