General matrix multiplication for ndarrays
Latest commit 4e749a6 Jan 6, 2016 @rreusser rreusser Rename to ndarray-gemm


General matrix multiply for ndarrays. This is analogous to the BLAS level 3 routine xGEMM.

Note that while this implementation is correct, it is not yet very optimized. If someone wants to take over this project or suggest improvements, patches are welcome.

build status


var zeros = require("zeros")
var ops = require("ndarray-ops")
var gemm = require("ndarray-gemm")

//Create 3 random matrices
var a = zeros([300, 400]) // a is 300 x 400
var b = zeros([400, 500]) // b is 400 x 500
var c = zeros([300, 500]) // c is 300 x 500


//Set c = a * b
gemm(c, a, b)


Install using npm:

npm install ndarray-gemm


require("ndarray-gemm")(c, a, b[, alpha, beta])

Computes a generalized matrix multiplication. This sets:

c = alpha * a * b + beta * c
  • c is a [n,m] shape ndarray
  • a is a [n,p] shape ndarray
  • b is a [p,m] shape ndarray
  • alpha is a scalar weight which is applied to the product a * b
  • beta is a scalar weight applied to c when added back in


(c) 2013 Mikola Lysenko. MIT License