javascript — указатель на подмассив TypedArray

Представь у нас

var a = new Float64Array([1, 2, 3]),
b = new Float64Array([4, 5]);

var c = new Float64Array(a.length + b.length);

Теперь я хочу совместить a а также b в c, Я написал привязку C ++ BLAS для копирования данных между двумя массивами двойной / одинарной точности. Дело в том, что эта привязка не имеет offset атрибут:

void cblas_dcopy(int n, const double *x, const int inc_x, const double *y, const int inc_y);

Могу ли я получить подрешетку, указывающую на смещение cпространство памяти? В JavaScript вызывается следующее:

// copy first to result, works
cblas_dcopy(3, a, 1, c, 1);

// does not work because slice() returns a copy
cblas_dcopy(2, b, 1, c.slice(a.length), 1);

// now how would I copy to c at offset b.length?

0

Решение

Вы можете сделать это легко без привязки к C ++:

var a = new Float64Array([1, 2, 3]);
var b = new Float64Array([4, 5]);
var c = new Float64Array(a.length + b.length);
c.set(a, 0);
c.set(b, a.length);

Чтобы получить подмассив, как вы просили, попробуйте использовать typedarray.subarray([begin[, end]]).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]