@hoff97/tensor-js
Version:
PyTorch like deep learning inferrence library
24 lines • 753 B
JavaScript
import { CPUTensor } from '../../../tensor/cpu/tensor';
/**
* Calculates the sparse-dense matrix product, assuming that a
* has zero dense dimensions.
*
* The result is a dense CPU tensor
*/
export function sparseDenseMatMulCPU(a, b) {
const M = a.shape[0];
const O = b.shape[1];
const result = new CPUTensor([M, O], undefined, b.dtype);
const indices = a.indices;
const values = a.values;
for (let i = 0; i < a.nnz; i++) {
const m = indices.get(i * 2);
const n = indices.get(i * 2 + 1);
const v = values.get(i);
for (let o = 0; o < O; o++) {
result.set(m * O + o, result.get(m * O + o) + v * b.get(n * O + o));
}
}
return result;
}
//# sourceMappingURL=cpu.js.map