mmul(other) {
                other = this.constructor.checkMatrix(other);
                if (this.columns !== other.rows) {
                    // eslint-disable-next-line no-console
                    console.warn('Number of columns of left matrix are not equal to number of rows of right matrix.');
                }

                var m = this.rows;
                var n = this.columns;
                var p = other.columns;

                var result = new this.constructor[Symbol.species](m, p);

                var Bcolj = new Array(n);
                for (var j = 0; j < p; j++) {
                    for (var k = 0; k < n; k++) {
                        Bcolj[k] = other.get(k, j);
                    }

                    for (var i = 0; i < m; i++) {
                        var s = 0;
                        for (k = 0; k < n; k++) {
                            s += this.get(i, k) * Bcolj[k];
                        }

                        result.set(i, j, s);
                    }
                }
                return result;
            }
Returns the matrix product between this and other
@param {Matrix} other
@return {Matrix}