eigenjs
v0.0.89
Published
The goal of this project is to port Eigen library into JavaScript for linear algebra.
Downloads
335
Maintainers
Readme
EigenJS
The goal of this project is to port Eigen library into JavaScript for linear algebar.
Installation
- OS X (XCode & Command Line Tools)
- Linux (GCC >= 4.8):
$ npm install eigenjs- Windows7/8 (Visual Studio 2012):
$ npm install eigenjs --msvs_version=2012API
- Complex
- Complex Class Methods
- Complex(real, [imag])
- Complex.polar(scalar, scalar)
- Complex.cos(scalar)
- Complex.cos(comp)
- Complex.cosh(scalar)
- Complex.cosh(comp)
- Complex.exp(scalar)
- Complex.exp(comp)
- Complex.log(scalar)
- Complex.log(comp)
- Complex.log10(scalar)
- Complex.log10(comp)
- Complex.pow(scalar, scalar)
- Complex.pow(scalar, comp)
- Complex.pow(comp, scalar)
- Complex.pow(comp, comp)
- Complex.sin(scalar)
- Complex.sin(comp)
- Complex.sinh(scalar)
- Complex.sinh(comp)
- Complex.sqrt(scalar)
- Complex.sqrt(comp)
- Complex.tan(scalar)
- Complex.tan(comp)
- Complex.tanh(scalar)
- Complex.tanh(comp)
- Complex.acos(scalar)
- Complex.acos(comp)
- Complex.acosh(scalar)
- Complex.acosh(comp)
- Complex.asin(scalar)
- Complex.asin(comp)
- Complex.asinh(scalar)
- Complex.asinh(comp)
- Complex.atan(scalar)
- Complex.atan(comp)
- Complex.atanh(scalar)
- Complex.atanh(comp)
- Complex Instance Methods
- comp.abs()
- comp.arg()
- comp.norm()
- comp.conj()
- comp.proj(scalar)
- comp.proj(comp)
- comp.add(scalar)
- comp.add(comp)
- comp.adda(scalar)
- comp.adda(comp)
- comp.sub(scalar)
- comp.sub(comp)
- comp.suba(scalar)
- comp.suba(comp)
- comp.mul(scalar)
- comp.mul(comp)
- comp.mul(mat)
- comp.mul(vec)
- comp.mul(rvec)
- comp.mul(mblock)
- comp.mul(vblock)
- comp.mul(rvblock)
- comp.mul(cmat)
- comp.mul(cvec)
- comp.mul(crvec)
- comp.mul(cmblock)
- comp.mul(cvblock)
- comp.mul(crvblock)
- comp.mula(scalar)
- comp.mula(comp)
- comp.div(scalar)
- comp.div(comp)
- comp.diva(scalar)
- comp.diva(comp)
- comp.equals(scalar)
- comp.equals(comp)
- comp.isApprox(comp, [prec = 1e-12])
- comp.toString()
- Complex Properties
- Complex Class Methods
- Matrix
- Matrix Class Methods
- Matrix(mat)
- Matrix(vec)
- Matrix(rvec)
- Matrix(mblock)
- Matrix(vblock)
- Matrix(rvblock)
- Matrix(rows, cols)
- Matrix.Zero(n)
- Matrix.Zero(rows, cols)
- Matrix.Ones(n)
- Matrix.Ones(rows, cols)
- Matrix.Constant(rows, cols, scalar)
- Matrix.Constant(rows, cols, comp)
- Matrix.Random(n)
- Matrix.Random(rows, cols)
- Matrix.Identity(n)
- Matrix.Identity(rows, cols)
- Matrix Instance Methods
- mat.rows()
- mat.cols()
- mat.set(row, col, scalar)
- mat.set(scalar_array)
- mat.get(row, col)
- mat.assign(mat)
- mat.assign(vec)
- mat.assign(rvec)
- mat.assign(mblock)
- mat.assign(vblock)
- mat.assign(rvblock)
- mat.value()
- mat.setZero()
- mat.setOnes()
- mat.setConstant(scalar)
- mat.setRandom()
- mat.setIdentity()
- mat.setDiagonal(index, vec)
- mat.setDiagonal(index, rvec)
- mat.block(startRow, startCol, blockRows, blockCols)
- mat.row(n)
- mat.col(n)
- mat.topRows(n)
- mat.bottomRows(n)
- mat.middleRows(startRow, n)
- mat.leftCols(n)
- mat.rightCols(n)
- mat.middleCols(startCol, n)
- mat.topLeftCorner(cRows, cCols)
- mat.topRightCorner(cRows, cCols)
- mat.bottomLeftCorner(cRows, cCols)
- mat.bottomRightCorner(cRows, cCols)
- mat.replicate(rowFactor, colFactor)
- mat.add(mat)
- mat.add(vec)
- mat.add(rvec)
- mat.add(mblock)
- mat.add(vblock)
- mat.add(rvblock)
- mat.add(cmat)
- mat.add(cvec)
- mat.add(crvec)
- mat.add(cmblock)
- mat.add(cvblock)
- mat.add(crvblock)
- mat.adda(mat)
- mat.adda(vec)
- mat.adda(rvec)
- mat.adda(mblock)
- mat.adda(vblock)
- mat.adda(rvblock)
- mat.sub(mat)
- mat.sub(vec)
- mat.sub(rvec)
- mat.sub(mblock)
- mat.sub(vblock)
- mat.sub(rvblock)
- mat.sub(cmat)
- mat.sub(cvec)
- mat.sub(crvec)
- mat.sub(cmblock)
- mat.sub(cvblock)
- mat.sub(crvblock)
- mat.suba(mat)
- mat.suba(vec)
- mat.suba(rvec)
- mat.suba(mblock)
- mat.suba(vblock)
- mat.suba(rvblock)
- mat.mul(scalar)
- mat.mul(comp)
- mat.mul(mat)
- mat.mul(vec)
- mat.mul(rvec)
- mat.mul(mblock)
- mat.mul(vblock)
- mat.mul(rvblock)
- mat.mul(cmat)
- mat.mul(cvec)
- mat.mul(crvec)
- mat.mul(cmblock)
- mat.mul(cvblock)
- mat.mul(crvblock)
- mat.mula(scalar)
- mat.mula(mat)
- mat.mula(vec)
- mat.mula(rvec)
- mat.mula(mblock)
- mat.mula(vblock)
- mat.mula(rvblock)
- mat.div(scalar)
- mat.div(comp)
- mat.diva(scalar)
- mat.transpose()
- mat.conjugate()
- mat.adjoint()
- mat.determinant()
- mat.inverse()
- mat.trace()
- mat.diagonal([index = 0])
- mat.norm()
- mat.redux(func)
- mat.sum()
- mat.prod()
- mat.mean()
- mat.visit(func)
- mat.maxCoeff()
- mat.maxCoeff(obj)
- mat.maxCoeff(func)
- mat.minCoeff()
- mat.minCoeff(obj)
- mat.minCoeff(func)
- mat.equals(mat)
- mat.equals(vec)
- mat.equals(rvec)
- mat.equals(mblock)
- mat.equals(vblock)
- mat.equals(rvblock)
- mat.isApprox(mat, [prec = 1e-12])
- mat.isApprox(vec, [prec = 1e-12])
- mat.isApprox(rvec, [prec = 1e-12])
- mat.isApprox(mblock, [prec = 1e-12])
- mat.isApprox(vblock, [prec = 1e-12])
- mat.isApprox(rvblock, [prec = 1e-12])
- mat.isSquare()
- mat.isZero([prec = 1e-12])
- mat.isOnes([prec = 1e-12])
- mat.isIdentity([prec = 1e-12])
- mat.isDiagonal([prec = 1e-12])
- mat.all()
- mat.any()
- mat.count()
- mat.allFinite()
- mat.hasNaN()
- mat.partialPivLu()
- mat.fullPivLu()
- mat.toString([options])
- Matrix Class Methods
- Complex Matrix
- Complex Matrix Class Methods
- CMatrix(mat)
- CMatrix(vec)
- CMatrix(rvec)
- CMatrix(mblock)
- CMatrix(vblock)
- CMatrix(rvblock)
- CMatrix(cmat)
- CMatrix(cvec)
- CMatrix(crvec)
- CMatrix(cmblock)
- CMatrix(cvblock)
- CMatrix(crvblock)
- CMatrix(rows, cols)
- CMatrix.Zero(n)
- CMatrix.Zero(rows, cols)
- CMatrix.Ones(n)
- CMatrix.Ones(rows, cols)
- CMatrix.Constant(rows, cols, scalar)
- CMatrix.Constant(rows, cols, comp)
- CMatrix.Random(n)
- CMatrix.Random(rows, cols)
- CMatrix.Identity(n)
- CMatrix.Identity(rows, cols)
- Complex Matrix Instance Methods
- cmat.rows()
- cmat.cols()
- cmat.set(row, col, comp)
- cmat.set(comp_array)
- cmat.get(row, col)
- cmat.assign(mat)
- cmat.assign(vec)
- cmat.assign(rvec)
- cmat.assign(mblock)
- cmat.assign(vblock)
- cmat.assign(rvblock)
- cmat.assign(cmat)
- cmat.assign(cvec)
- cmat.assign(crvec)
- cmat.assign(cmblock)
- cmat.assign(cvblock)
- cmat.assign(crvblock)
- cmat.value()
- cmat.setZero()
- cmat.setOnes()
- cmat.setConstant(scalar)
- cmat.setConstant(comp)
- cmat.setRandom()
- cmat.setIdentity()
- cmat.setDiagonal(index, vec)
- cmat.setDiagonal(index, rvec)
- cmat.setDiagonal(index, cvec)
- cmat.setDiagonal(index, crvec)
- cmat.block(startRow, startCol, blockRows, blockCols)
- cmat.row(n)
- cmat.col(n)
- cmat.topRows(n)
- cmat.bottomRows(n)
- cmat.middleRows(startRow, n)
- cmat.leftCols(n)
- cmat.rightCols(n)
- cmat.middleCols(startCol, n)
- cmat.topLeftCorner(cRows, cCols)
- cmat.topRightCorner(cRows, cCols)
- cmat.bottomLeftCorner(cRows, cCols)
- cmat.bottomRightCorner(cRows, cCols)
- cmat.replicate(rowFactor, colFactor)
- cmat.add(mat)
- cmat.add(vec)
- cmat.add(rvec)
- cmat.add(mblock)
- cmat.add(vblock)
- cmat.add(rvblock)
- cmat.add(cmat)
- cmat.add(cvec)
- cmat.add(crvec)
- cmat.add(cmblock)
- cmat.add(cvblock)
- cmat.add(crvblock)
- cmat.adda(mat)
- cmat.adda(vec)
- cmat.adda(rvec)
- cmat.adda(mblock)
- cmat.adda(vblock)
- cmat.adda(rvblock)
- cmat.adda(cmat)
- cmat.adda(cvec)
- cmat.adda(crvec)
- cmat.adda(cmblock)
- cmat.adda(cvblock)
- cmat.adda(crvblock)
- cmat.sub(mat)
- cmat.sub(vec)
- cmat.sub(rvec)
- cmat.sub(mblock)
- cmat.sub(vblock)
- cmat.sub(rvblock)
- cmat.sub(cmat)
- cmat.sub(cvec)
- cmat.sub(crvec)
- cmat.sub(cmblock)
- cmat.sub(cvblock)
- cmat.sub(crvblock)
- cmat.suba(mat)
- cmat.suba(vec)
- cmat.suba(rvec)
- cmat.suba(mblock)
- cmat.suba(vblock)
- cmat.suba(rvblock)
- cmat.suba(cmat)
- cmat.suba(cvec)
- cmat.suba(crvec)
- cmat.suba(cmblock)
- cmat.suba(cvblock)
- cmat.suba(crvblock)
- cmat.mul(scalar)
- cmat.mul(comp)
- cmat.mul(mat)
- cmat.mul(vec)
- cmat.mul(rvec)
- cmat.mul(mblock)
- cmat.mul(vblock)
- cmat.mul(rvblock)
- cmat.mul(cmat)
- cmat.mul(cvec)
- cmat.mul(crvec)
- cmat.mul(cmblock)
- cmat.mul(cvblock)
- cmat.mul(crvblock)
- cmat.mula(scalar)
- cmat.mula(comp)
- cmat.mula(mat)
- cmat.mula(vec)
- cmat.mula(rvec)
- cmat.mula(mblock)
- cmat.mula(vblock)
- cmat.mula(rvblock)
- cmat.mula(cmat)
- cmat.mula(cvec)
- cmat.mula(crvec)
- cmat.mula(cmblock)
- cmat.mula(cvblock)
- cmat.mula(crvblock)
- cmat.div(scalar)
- cmat.div(comp)
- cmat.diva(scalar)
- cmat.diva(comp)
- cmat.transpose()
- cmat.conjugate()
- cmat.adjoint()
- cmat.determinant()
- cmat.inverse()
- cmat.trace()
- cmat.diagonal([index = 0])
- cmat.norm()
- cmat.redux(func)
- cmat.sum()
- cmat.prod()
- cmat.mean()
- cmat.visit(func)
- cmat.equals(cmat)
- cmat.equals(cvec)
- cmat.equals(crvec)
- cmat.equals(cmblock)
- cmat.equals(cvblock)
- cmat.equals(crvblock)
- cmat.isApprox(cmat, [prec = 1e-12])
- cmat.isApprox(cvec, [prec = 1e-12])
- cmat.isApprox(crvec, [prec = 1e-12])
- cmat.isApprox(cmblock, [prec = 1e-12])
- cmat.isApprox(cvblock, [prec = 1e-12])
- cmat.isApprox(crvblock, [prec = 1e-12])
- cmat.isSquare()
- cmat.isZero([prec = 1e-12])
- cmat.isOnes([prec = 1e-12])
- cmat.isIdentity([prec = 1e-12])
- cmat.isDiagonal([prec = 1e-12])
- cmat.allFinite()
- cmat.hasNaN()
- cmat.partialPivLu()
- cmat.fullPivLu()
- cmat.toString([options])
- Complex Matrix Class Methods
- Vector inherits from Matrix
- Vector Class Methods
- Vector Instance Methods
- vec.set(row, scalar)
- vec.set(scalar_array)
- vec.get(row)
- vec.setLinSpaced(low, high)
- vec.setLinSpaced(size, low, high)
- vec.block(startRow, blockRows)
- vec.head(n)
- vec.tail(n)
- vec.dot(mat)
- vec.dot(vec)
- vec.dot(rvec)
- vec.dot(mblock)
- vec.dot(vblock)
- vec.dot(rvblock)
- vec.dot(cmat)
- vec.dot(cvec)
- vec.dot(crvec)
- vec.dot(cmblock)
- vec.dot(cvblock)
- vec.dot(crvblock)
- vec.asDiagonal()
- vec.normalize()
- vec.maxCoeff()
- vec.maxCoeff(obj)
- vec.maxCoeff(func)
- vec.minCoeff()
- vec.minCoeff(obj)
- vec.minCoeff(func)
- Complex Vector inherits from CMatrix
- Complex Vector Class Methods
- Complex Vector Instance Methods
- cvec.set(row, comp)
- cvec.set(comp_array)
- cvec.get(row)
- cvec.block(startRow, blockRows)
- cvec.head(n)
- cvec.tail(n)
- cvec.dot(mat)
- cvec.dot(vec)
- cvec.dot(rvec)
- cvec.dot(mblock)
- cvec.dot(vblock)
- cvec.dot(rvblock)
- cvec.dot(cmat)
- cvec.dot(cvec)
- cvec.dot(crvec)
- cvec.dot(cmblock)
- cvec.dot(cvblock)
- cvec.dot(crvblock)
- cvec.asDiagonal()
- cvec.normalize()
- Row Vector inherits from Matrix
- Row Vector Class Methods
- Row Vector Instance Methods
- rvec.set(col, scalar)
- rvec.set(scalar_array)
- rvec.get(col)
- rvec.setLinSpaced(low, high)
- rvec.setLinSpaced(size, low, high)
- rvec.block(startCol, blockCols)
- rvec.head(n)
- rvec.tail(n)
- rvec.dot(mat)
- rvec.dot(vec)
- rvec.dot(rvec)
- rvec.dot(mblock)
- rvec.dot(vblock)
- rvec.dot(rvblock)
- rvec.dot(cmat)
- rvec.dot(cvec)
- rvec.dot(crvec)
- rvec.dot(cmblock)
- rvec.dot(cvblock)
- rvec.dot(crvblock)
- rvec.asDiagonal()
- rvec.normalize()
- rvec.maxCoeff()
- rvec.maxCoeff(obj)
- rvec.maxCoeff(func)
- rvec.minCoeff()
- rvec.minCoeff(obj)
- rvec.minCoeff(func)
- Complex Row Vector inherits from CMatrix
- Complex Row Vector Class Methods
- CRowVector(mat)
- CRowVector(vec)
- CRowVector(rvec)
- CRowVector(mblock)
- CRowVector(vblock)
- CRowVector(rvblock)
- CRowVector(cmat)
- CRowVector(cvec)
- CRowVector(crvec)
- CRowVector(cmblock)
- CRowVector(cvblock)
- CRowVector(crvblock)
- CRowVector(cols)
- CRowVector(comp_array)
- CRowVector.Constant(cols, scalar)
- CRowVector.Constant(cols, comp)
- Complex Row Vector Instance Methods
- crvec.set(col, comp)
- crvec.set(comp_array)
- crvec.get(col)
- crvec.block(startCol, blockCols)
- crvec.head(n)
- crvec.tail(n)
- crvec.dot(mat)
- crvec.dot(vec)
- crvec.dot(rvec)
- crvec.dot(mblock)
- crvec.dot(vblock)
- crvec.dot(rvblock)
- crvec.dot(cmat)
- crvec.dot(cvec)
- crvec.dot(crvec)
- crvec.dot(cmblock)
- crvec.dot(cvblock)
- crvec.dot(crvblock)
- crvec.asDiagonal()
- crvec.normalize()
- Complex Row Vector Class Methods
- Matrix Block inherits from Matrix
- Complex Matrix Block inherits from CMatrix
- Vector Block inherits from Vector and MatrixBlock
- Complex Vector Block inherits from CVector and CMatrixBlock
- Row Vector Block inherits from RowVector and MatrixBlock
- Complex Row Vector Block inherits from CRowVector and CMatrixBlock
- Partial Pivoting LU
- Complex Partial Pivoting LU
- Full Pivoting LU
- Complex Full Pivoting LU
Complex
Complex Class Methods
Complex(real, [imag])
var C = require('eigenjs').Complex
, c = new C(3, -4);
console.log('c = %s', c);c = (3,-4)Complex.polar(scalar, scalar)
var C = require('eigenjs').Complex
, rho = 5
, theta = -0.9272952180016122
, c = C.polar(rho, theta);
console.log(c.conj().toString());
console.log(c.real * Math.cos(c.imag));
console.log(c.real * Math.sin(c.imag));(5,0.927295)
3.0000000000000004
-3.9999999999999996Complex.cos(scalar)
Complex.cos(comp)
var C = require('eigenjs').Complex
, c1 = new C(Math.PI/4, 0)
, c2 = C.cos(c1);
console.log(c2.toString());(0.707107,-0)Complex.cosh(scalar)
Complex.cosh(comp)
var C = require('eigenjs').Complex
, c1 = new C(0, 0)
, c2 = C.cosh(c1);
console.log(c2.toString());(1,0)Complex.exp(scalar)
Complex.exp(comp)
var C = require('eigenjs').Complex
, c1 = new C(1, 0)
, c2 = C.exp(c1);
console.log(c2.toString());(2.71828,0)Complex.log(scalar)
Complex.log(comp)
var C = require('eigenjs').Complex
, c1 = new C(Math.E, 0)
, c2 = C.log(c1);
console.log(c2.toString());(1,0)Complex.log10(scalar)
Complex.log10(comp)
var C = require('eigenjs').Complex
, c1 = new C(1000, 0)
, c2 = C.log10(c1);
console.log(c2.toString());(3,0)Complex.pow(scalar, scalar)
Complex.pow(scalar, comp)
Complex.pow(comp, scalar)
Complex.pow(comp, comp)
var C = require('eigenjs').Complex
, c = C.pow(2, 3)
console.log(c.toString());(8,0)Complex.sin(scalar)
Complex.sin(comp)
var C = require('eigenjs').Complex
, c1 = new C(Math.PI/4, 0)
, c2 = C.sin(c1);
console.log(c2.toString());(0.707107,0)Complex.sinh(scalar)
Complex.sinh(comp)
var C = require('eigenjs').Complex
, c1 = new C(0, 0)
, c2 = C.sinh(c1);
console.log(c2.toString());(0,0)Complex.sqrt(scalar)
Complex.sqrt(comp)
var C = require('eigenjs').Complex
, c1 = new C(9, 0)
, c2 = C.sqrt(c1);
console.log(c2.toString());(3,0)Complex.tan(scalar)
Complex.tan(comp)
var C = require('eigenjs').Complex
, c1 = new C(Math.PI/4, 0)
, c2 = C.tan(c1);
console.log(c2.toString());(1,0)Complex.tanh(scalar)
Complex.tanh(comp)
var C = require('eigenjs').Complex
, c1 = new C(Infinity, 0)
, c2 = C.tanh(c1);
console.log(c2.toString());(1,0)Complex.acos(scalar)
Complex.acos(comp)
var C = require('eigenjs').Complex
, c1 = new C(1, 0)
, c2 = C.acos(c1);
console.log(c2.toString());(0,0)Complex.acosh(scalar)
Complex.acosh(comp)
var C = require('eigenjs').Complex
, c1 = new C(1.54308, 0)
, c2 = C.acosh(c1);
console.log(c2.toString());(0.999999,0)Complex.asin(scalar)
Complex.asin(comp)
var C = require('eigenjs').Complex
, c1 = new C(1, 0)
, c2 = C.asin(c1);
console.log(c2.toString());(1.5708,7.82511e-09)Complex.asinh(scalar)
Complex.asinh(comp)
var C = require('eigenjs').Complex
, c1 = new C(1, 0)
, c2 = C.asinh(c1);
console.log(c2.toString());(0.881374,0)Complex.atan(scalar)
Complex.atan(comp)
var C = require('eigenjs').Complex
, c1 = new C(Infinity, 0)
, c2 = C.atan(c1);
console.log(c2.toString());(1.5708,0)Complex.atanh(scalar)
Complex.atanh(comp)
var C = require('eigenjs').Complex
, c1 = new C(1, 0)
, c2 = C.atanh(c1);
console.log(c2.toString());(inf,0)Complex Instance Methods
comp.abs()
var C = require('eigenjs').Complex
, c = new C(3, -4);
console.log(c.abs());5comp.arg()
var C = require('eigenjs').Complex
, c = new C(3, -4);
console.log(c.arg());
console.log('(%d,%d)', c.abs() * Math.cos(c.arg()), c.abs() * Math.sin(c.arg()));-0.9272952180016122
(3.0000000000000004,-3.9999999999999996)comp.norm()
var C = require('eigenjs').Complex
, c = new C(3, -4);
console.log(c.norm());25comp.conj()
var C = require('eigenjs').Complex
, c = new C(3, -4);
console.log(c.conj().toString());(3,4)comp.proj(scalar)
comp.proj(comp)
var C = require('eigenjs').Complex
, c1 = new C(0, -Infinity)
, c2 = C.proj(c1);
console.log(c2.toString());(inf, -0)comp.add(scalar)
comp.add(comp)
var C = require('eigenjs').Complex
, c1 = new C(3, 0)
, c2 = new C(0, 4)
, c3 = c1.add(c2);
console.log(c3.toString());(3,4)comp.adda(scalar)
comp.adda(comp)
var C = require('eigenjs').Complex
, c1 = new C(3, 0)
, c2 = new C(0, 4);
c1.adda(c2);
console.log(c1.toString());(3,4)comp.sub(scalar)
comp.sub(comp)
var C = require('eigenjs').Complex
, c1 = new C(3, 4)
, c2 = new C(2, -3)
, c3 = c1.sub(c2);
console.log(c3.toString());(1,7)comp.suba(scalar)
comp.suba(comp)
var C = require('eigenjs').Complex
, c1 = new C(5, 8)
, c2 = new C(-3, 4);
c1.suba(c2);
console.log(c1.toString());(8,4)comp.mul(scalar)
comp.mul(comp)
comp.mul(mat)
comp.mul(vec)
comp.mul(rvec)
comp.mul(mblock)
comp.mul(vblock)
comp.mul(rvblock)
comp.mul(cmat)
comp.mul(cvec)
comp.mul(crvec)
comp.mul(cmblock)
comp.mul(cvblock)
comp.mul(crvblock)
var C = require('eigenjs').Complex
, c1 = new C(1, 8)
, c2 = new C(6, 4)
, c3 = c1.mul(c2);
console.log(c3.toString());(-26,52)comp.mula(scalar)
comp.mula(comp)
var C = require('eigenjs').Complex
, c1 = new C(3, 1)
, c2 = new C(2, 4)
c1.mula(c2);
console.log(c1.toString());(2,14)comp.div(scalar)
comp.div(comp)
var C = require('eigenjs').Complex
, c1 = new C(4, 8)
, c2 = new C(2, 0)
, c3 = c1.div(c2);
console.log(c3.toString());(2,4)comp.diva(scalar)
comp.diva(comp)
var C = require('eigenjs').Complex
, c1 = new C(3, 9)
, c2 = new C(9, 0)
c1.diva(c2);
console.log(c2.toString());(0.333333,1)comp.equals(scalar)
comp.equals(comp)
var C = require('eigenjs').Complex
, c1 = new C(1, 0)
, c2 = c1.conj();
console.log(c1.equals(c2));truecomp.isApprox(comp, [prec = 1e-12])
var C = require('eigenjs').Complex
, c1 = new C(1/3, 0)
, c2 = new C(0.3333, 0);
console.log(c1.isApprox(c2, 1e-3));truecomp.toString()
var C = require('eigenjs').Complex
, c = new C(3, -4);
console.log(c.toString());(3,-4)Complex Properties
comp.real
comp.imag
var C = require('eigenjs').Complex
, c = new C(3, -4);
c.real = 6;
c.imag = 8;
console.log('(%d,%d)', c.real, c.imag);(6,8)Matrix
Matrix Class Methods
Matrix(mat)
Matrix(vec)
Matrix(rvec)
Matrix(mblock)
Matrix(vblock)
Matrix(rvblock)
var M = require('eigenjs').Matrix
, mat = new M.Random(2, 3)
, mat2 = new M(mat);
console.log('mat =\n%s\n', mat);
console.log('mat2 =\n%s', mat2);mat =
0.381981 -0.373117 -0.866239
-0.0467884 -0.981309 -0.885573
mat2 =
0.381981 -0.373117 -0.866239
-0.0467884 -0.981309 -0.885573Matrix(rows, cols)
var M = require('eigenjs').Matrix
, mat = new M(2, 3);
console.log('mat =\n%s', mat);mat =
0 0 0
0 0 0Matrix.Zero(n)
Matrix.Zero(rows, cols)
var M = require('eigenjs').Matrix
, mat = M.Zero(2, 3);
console.log('mat = \n%s', mat);mat =
0 0 0
0 0 0Matrix.Ones(n)
Matrix.Ones(rows, cols)
var M = require('eigenjs').Matrix
, mat = M.Ones(2, 3);
console.log('mat = \n%s', mat);mat =
1 1 1
1 1 1Matrix.Constant(rows, cols, scalar)
Matrix.Constant(rows, cols, comp)
var M = require('eigenjs').Matrix
, mat = M.Constant(4, 4, 0.6);
console.log('mat = \n%s', mat);mat =
0.6 0.6 0.6 0.6
0.6 0.6 0.6 0.6
0.6 0.6 0.6 0.6
0.6 0.6 0.6 0.6Matrix.Random(n)
Matrix.Random(rows, cols)
var M = require('eigenjs').Matrix
, mat = M.Random(2, 3);
console.log('mat = \n%s', mat);mat =
-0.421952 -0.671276 0.547419
0.260209 -0.13622 0.464891Matrix.Identity(n)
Matrix.Identity(rows, cols)
var M = require('eigenjs').Matrix
, mat1 = M.Identity(2)
, mat2 = M.Identity(2, 3);
console.log('mat1 = \n%s', mat1);
console.log('mat2 = \n%s', mat2);mat1 =
1 0
0 1
mat2 =
1 0 0
0 1 0Matrix Instance Methods
mat.rows()
mat.cols()
var M = require('eigenjs').Matrix
, mat = new M(2, 3);
console.log(mat.rows());
console.log(mat.cols());2
3mat.set(row, col, scalar)
var M = require('eigenjs').Matrix
, mat = new M(2, 2);
mat.set(0, 0, 1)
.set(0, 1, 2)
.set(1, 0, 3)
.set(1, 1, 4);
console.log('mat = \n%s', mat);mat =
1 2
3 4mat.set(scalar_array)
var M = require('eigenjs').Matrix
, mat = new M(3, 3);
mat.set([
1, 2, 3,
4, 5, 6,
7, 8, 9
]);
console.log('mat = \n%s', mat);mat =
1 2 3
4 5 6
7 8 9mat.get(row, col)
var M = require('eigenjs').Matrix
, mat = new M(2, 2);
mat.set([
1, 2,
3, 4
]);
console.log(mat.get(0, 0) + ' ' + mat.get(0, 1));
console.log(mat.get(1, 0) + ' ' + mat.get(1, 1));1 2
3 4mat.assign(mat)
mat.assign(vec)
mat.assign(rvec)
mat.assign(mblock)
mat.assign(vblock)
mat.assign(rvblock)
var M = require('eigenjs').Matrix
, mat = M.Random(4, 4);
mat.assign(M.Zero(4, 4));
console.log('mat = \n%s', mat);mat =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0mat.value()
Returns the unique coefficient of a 1x1 expression
var M = require('eigenjs').Matrix
, mat = M.Random(1, 1);
console.log('%d', mat.value());-0.7131525574778916mat.setZero()
var M = require('eigenjs').Matrix
, mat = new M.Random(3, 3);
console.log('mat =\n%s\n', mat);
console.log('mat =\n%s', mat.setZero());mat =
0.244911 -0.752925 -0.562905
0.215088 -0.406688 -0.750836
0.983236 0.800109 0.695126
mat =
0 0 0
0 0 0
0 0 0mat.setOnes()
var M = require('eigenjs').Matrix
, mat = new M.Zero(3, 3);
console.log('mat =\n%s\n', mat);
console.log('mat =\n%s', mat.setOnes());mat =
0 0 0
0 0 0
0 0 0
mat =
1 1 1
1 1 1
1 1 1mat.setConstant(scalar)
var M = require('eigenjs').Matrix
, mat = new M.Zero(3, 3);
console.log('mat =\n%s\n', mat);
console.log('mat =\n%s', mat.setConstant(0.6));mat =
0 0 0
0 0 0
0 0 0
mat =
0.6 0.6 0.6
0.6 0.6 0.6
0.6 0.6 0.6mat.setRandom()
var M = require('eigenjs').Matrix
, mat = new M.Zero(3, 3);
console.log('mat =\n%s\n', mat);
console.log('mat =\n%s', mat.setRandom());mat =
0 0 0
0 0 0
0 0 0
mat =
-0.292434 -0.0673437 0.283946
-0.938224 0.154289 0.283845
-0.725773 -0.862362 0.583097mat.setIdentity()
var M = require('eigenjs').Matrix
, mat = new M.Zero(3, 3);
console.log('mat =\n%s\n', mat);
console.log('mat =\n%s', mat.setIdentity());mat =
0 0 0
0 0 0
0 0 0
mat =
1 0 0
0 1 0
0 0 1mat.setDiagonal(index, vec)
mat.setDiagonal(index, rvec)
var M = require('eigenjs').Matrix
, mat = new M.Zero(3, 3)
, dia = mat.diagonal(1);
console.log('mat =\n%s\n', mat);
dia.setRandom();
console.log('mat =\n%s', mat.setDiagonal(1, dia));mat =
0 0 0
0 0 0
0 0 0
mat =
0 -0.294006 0
0 0 0.634569
0 0 0mat.block(startRow, startCol, blockRows, blockCols)
var M = require('eigenjs').Matrix
, mat = new M.Identity(4, 4)
, mblock = mat.block(1, 1, 2, 2);
mblock.assign(M.Random(2, 2));
console.log('mat =\n%s', mat);mat =
1 0 0 0
0 -0.822352 0.533723 0
0 0.721993 0.287646 0
0 0 0 1mat.row(n)
var Eigen = require('eigenjs')
, M = Eigen.Matrix
, RV = Eigen.RowVector
, mat = new M.Zero(3, 3)
, mblock = mat.row(1);
mblock.assign(RV.Random(3));
console.log('mat =\n%s', mat);mat =
0 0 0
-0.843392 -0.891355 0.991578
0 0 0mat.col(n)
var Eigen = require('eigenjs')
, M = Eigen.Matrix
, V = Eigen.Vector
, mat = new M.Zero(3, 3)
, mblock = mat.col(1);
mblock.assign(V.Random(3));
console.log('mat =\n%s', mat);mat =
0 0.674939 0
0 -0.303923 0
0 -0.0302965 0mat.topRows(n)
Returns a block consisting of the top rows of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.topRows(2)); 7 9 -5 3
-2 -6 1 0mat.bottomRows(n)
Returns a block consisting of the bottom rows of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.bottomRows(2)); 6 -3 0 9
6 6 3 9mat.middleRows(startRow, n)
Returns a block consisting of a range of rows of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.middleRows(1, 2));-2 -6 1 0
6 -3 0 9mat.leftCols(n)
Returns a block consisting of the left columns of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.leftCols(2)); 7 9
-2 -6
6 -3
6 6mat.rightCols(n)
Returns a block consisting of the right columns of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.rightCols(2));-5 3
1 0
0 9
3 9mat.middleCols(startCol, n)
Returns a block consisting of a range of columns of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.middleCols(1, 2)); 9 -5
-6 1
-3 0
6 3mat.topLeftCorner(cRows, cCols)
Returns a block consisting of a top-left corner of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.topLeftCorner(2, 2)); 7 9
-2 -6mat.topRightCorner(cRows, cCols)
Returns a block consisting of a top-right corner of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.topRightCorner(2, 2));-5 3
1 0mat.bottomLeftCorner(cRows, cCols)
Returns a block consisting of a bottom-left corner of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.bottomLeftCorner(2, 2)); 6 -3
6 6mat.bottomRightCorner(cRows, cCols)
Returns a block consisting of a bottom-right corner of *this.
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, 3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.bottomRightCorner(2, 2));0 9
3 9mat.replicate(rowFactor, colFactor)
var M = require('eigenjs').Matrix
, mat = new M(3, 1).set([
7,
-2,
6
]);
console.log('%s', mat.replicate(2, 5)); 7 7 7 7 7
-2 -2 -2 -2 -2
6 6 6 6 6
7 7 7 7 7
-2 -2 -2 -2 -2
6 6 6 6 6mat.add(mat)
mat.add(vec)
mat.add(rvec)
mat.add(mblock)
mat.add(vblock)
mat.add(rvblock)
mat.add(cmat)
mat.add(cvec)
mat.add(crvec)
mat.add(cmblock)
mat.add(cvblock)
mat.add(crvblock)
var M = require('eigenjs').Matrix
, mat1 = new M(2, 2)
, mat2 = new M(2, 2)
, mat3;
mat1.set([
1, 3,
2, 4
]);
mat2.set([
5, 6,
7, 8
]);
mat3 = mat1.add(mat2);
console.log('mat3 = \n%s', mat3);mat3 =
6 9
9 12mat.adda(mat)
mat.adda(vec)
mat.adda(rvec)
mat.adda(mblock)
mat.adda(vblock)
mat.adda(rvblock)
var M = require('eigenjs').Matrix
, mat1 = new M(2, 2)
, mat2 = new M(2, 2);
mat1.set([
1, 3,
2, 4
]);
mat2.set([
5, 6,
7, 8
]);
mat1.adda(mat2);
console.log('mat1 = \n%s', mat1);mat1 =
6 9
9 12mat.sub(mat)
mat.sub(vec)
mat.sub(rvec)
mat.sub(mblock)
mat.sub(vblock)
mat.sub(rvblock)
mat.sub(cmat)
mat.sub(cvet)
mat.sub(crvet)
mat.sub(cmblock)
mat.sub(cvblock)
mat.sub(crvblock)
var M = require('eigenjs').Matrix
, mat1 = new M(2, 2)
, mat2 = new M(2, 2)
, mat3;
mat1.set([
1, 3,
2, 4
]);
mat2.set([
5, 6,
7, 8
]);
mat3 = mat1.sub(mat2);
console.log('mat3 = \n%s', mat3);mat3 =
-4 -3
-5 -4mat.suba(mat)
mat.suba(vec)
mat.suba(rvec)
mat.suba(mblock)
mat.suba(vblock)
mat.suba(rvblock)
var M = require('eigenjs').Matrix
, mat1 = new M(2, 2)
, mat2 = new M(2, 2);
mat1.set([
1, 3,
2, 4
]);
mat2.set([
5, 6,
7, 8
]);
mat1.suba(mat2);
console.log('mat1 = \n%s', mat1);mat1 =
-4 -3
-5 -4mat.mul(scalar)
mat.mul(comp)
mat.mul(mat)
mat.mul(vec)
mat.mul(rvec)
mat.mul(mblock)
mat.mul(vblock)
mat.mul(rvblock)
mat.mul(cmat)
mat.mul(cvec)
mat.mul(crvec)
mat.mul(cvblock)
mat.mul(crvblock)
var M = require('eigenjs').Matrix
, mat1 = new M(2, 3)
, vec = new M(3, 1)
, mat2;
mat1.set([
1, 2, 3,
4, 5, 6
]);
vec.set([
1,
6,
8
]);
mat2 = mat1.mul(vec);
console.log('mat2 = \n%s', mat2);mat2 =
37
82mat.mula(scalar)
mat.mula(mat)
mat.mula(vec)
mat.mula(rvec)
mat.mula(mblock)
mat.mula(vblock)
mat.mula(rvblock)
var M = require('eigenjs').Matrix
, mat = new M(2, 3)
, vec = new M(3, 1);
mat.set([
1, 2, 3,
4, 5, 6
]);
vec.set([
1,
6,
8
]);
mat.mula(vec);
console.log('mat = \n%s', mat);mat =
37
82mat.div(scalar)
mat.div(comp)
var M = require('eigenjs').Matrix
, mat1 = new M(2, 2)
, mat2;
mat1.set([
1, 2,
3, 4
]);
mat2 = mat1.div(2);
console.log('mat2 = \n%s', mat2);mat2 =
0.5 1
1.5 2mat.diva(scalar)
var M = require('eigenjs').Matrix
, mat = new M(2, 2);
mat.set([
1, 2,
3, 4
]);
mat.diva(2);
console.log('mat = \n%s', mat);mat =
0.5 1
1.5 2mat.transpose()
var M = require('eigenjs').Matrix
, mat1 = new M.Random(3, 2)
, mat2 = mat1.transpose();
console.log('mat1 = \n%s', mat1);
console.log('mat2 = \n%s', mat2);mat1 =
-0.112813 -0.325566
-0.0500345 0.213005
-0.930346 -0.022705
mat2 =
-0.112813 -0.0500345 -0.930346
-0.325566 0.213005 -0.022705mat.conjugate()
var M = require('eigenjs').Matrix
, mat1 = new M.Random(2, 2)
, mat2 = mat1.conjugate();
console.log(mat1.equals(mat2));truemat.adjoint()
var M = require('eigenjs').Matrix
, mat1 = new M.Random(3, 2)
, mat2 = mat1.adjoint();
console.log('mat1 = \n%s', mat1);
console.log('mat2 = \n%s', mat2);mat1 =
0.997487 0.0670765
0.770148 -0.645138
-0.12185 -0.835853
mat2 =
0.997487 0.770148 -0.12185
0.0670765 -0.645138 -0.835853mat.determinant()
Returns the determinant of this matrix. This method uses class PartialPivLU.
var M = require('eigenjs').Matrix
, mat = new M.Random(2, 2);
console.log('mat = \n%s\n', mat);
console.log('det = %d', mat.determinant());mat =
0.132371 -0.813862
0.758326 -0.58171
det = 0.540171350604003mat.inverse()
Returns the matrix inverse of this matrix. This method uses class PartialPivLU.
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1, 2, 3,
0, 1, 4,
5, 6, 0
])
, inv = mat.inverse();
console.log('inv = \n%s', inv);inv =
-24 18 5
20 -15 -4
-5 4 1mat.trace()
var M = require('eigenjs').Matrix
, mat = new M(2, 3).set([
1, 2, 3,
4, 5, 6
])
, tr = mat.trace();
console.log('mat = \n%s\n', mat);
console.log('tr = ', tr);mat =
1 2 3
4 5 6
tr = 6mat.diagonal([index = 0])
var M = require('eigenjs').Matrix
, mat = new M(4, 4).set([
7, 9, -5, -3,
-2, -6, 1, 0,
6, -3, 0, 9,
6, 6, 3, 9
]);
console.log('%s', mat.diagonal(1).transpose());
console.log('%s', mat.diagonal(-2).transpose());9 1 9
6 6mat.norm()
Returns the Frobenius norm.
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1, 2, 3,
4, 5, 6,
7, 8, 9
]);
console.log('%d', mat.norm());16.881943016134134mat.redux(func)
- func
FunctionThe result of a full redux operation on the whoie matrix or vector usingfunc.
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1, 2, 3,
4, 5, 6,
7, 8, 9
])
, func = function(a, b) { return a + b; };
console.log('%d', mat.redux(func));45mat.sum()
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1, 2, 3,
4, 5, 6,
7, 8, 9
]);
console.log('%d', mat.sum());45mat.prod()
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1, 2, 3,
4, 5, 6,
7, 8, 9
]);
console.log('%d', mat.prod());362880mat.mean()
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1, 2, 3,
4, 5, 6,
7, 8, 9
]);
console.log('%d', mat.mean());5mat.visit(func)
- func
FunctionApplies thefuncto the whole coefficients of the matrix or vector.
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1, 2, 3,
4, 5, 6,
7, 8, 9
]);
mat.visit(function(value, row, col) {
console.log('mat(%d, %d) = %d', row, col, value);
});mat(0, 0) = 1
mat(1, 0) = 4
mat(2, 0) = 7
mat(0, 1) = 2
mat(1, 1) = 5
mat(2, 1) = 8
mat(0, 2) = 3
mat(1, 2) = 6
mat(2, 2) = 9mat.maxCoeff()
var M = require('eigenjs').Matrix
, mat = new M.Random(3, 3);
console.log('mat = \n%s\n', mat);
console.log('max = %d', mat.maxCoeff());mat =
0.175793 -0.547068 -0.959701
0.561311 -0.579446 0.297471
-0.0382309 -0.743676 -0.411312
max = 0.5613114636211243mat.maxCoeff(obj)
- obj
Object
var M = require('eigenjs').Matrix
, mat = new M.Random(3, 3)
, obj = {};
console.log('mat = \n%s\n', mat);
console.log('max = %s', mat.maxCoeff(obj));
console.log('obj = %s', JSON.stringify(obj));mat =
-0.68294 0.690895 -0.698356
-0.174138 -0.119934 0.733219
-0.743578 0.262349 -0.795382
max = 0.7332185766348702
obj = {"maxCoeff":0.7332185766348702,"rowId":1,"colId":2}mat.maxCoeff(func)
- func
Function
var M = require('eigenjs').Matrix
, mat = new M.Random(3, 3)
, func = function(rowId, colId) {
console.log('rowId = %d, colId = %d', rowId, colId);
};
console.log('mat = \n%s\n', mat);
console.log('max = %d', mat.maxCoeff(func));mat =
-0.552622 -0.355055 0.141004
0.0814275 0.58272 -0.13819
0.552011 -0.217758 -0.551142
rowId = 1, colId = 1
max = 0.5827204285109044mat.minCoeff()
var M = require('eigenjs').Matrix
, mat = new M.Random(3, 3);
console.log('mat = \n%s\n', mat);
console.log('min = %d', mat.minCoeff());mat =
-0.725041 0.511321 0.29833
0.233345 -0.22101 0.0355704
-0.167162 -0.514649 -0.168438
min = -0.7250411527813604mat.minCoeff(obj)
- obj
Object
var M = require('eigenjs').Matrix
, mat = new M.Random(3, 3)
, obj = {};
console.log('mat = \n%s\n', mat);
console.log('min = %d', mat.minCoeff(obj));
console.log('obj = %s', JSON.stringify(obj));mat =
0.74568 0.870563 -0.82341
0.636928 -0.455949 0.944912
0.855648 0.872564 -0.87055
min = -0.8705498761825962
obj = {"minCoeff":-0.8705498761825962,"rowId":2,"colId":2}mat.minCoeff(func)
- func
Function
var M = require('eigenjs').Matrix
, mat = new M.Random(3, 3)
, func = function(rowId, colId) {
console.log('rowId = %d, colId = %d', rowId, colId);
};
console.log('mat = \n%s\n', mat);
console.log('min = %d', mat.minCoeff(func)); 0.371743 0.261372 0.144462
-0.111958 0.884582 -0.02937
0.314765 -0.823458 0.378298
rowId = 2, colId = 1
min = -0.8234578174648144mat.equals(mat)
mat.equals(vec)
mat.equals(rvec)
mat.equals(mblock)
mat.equals(vblock)
mat.equals(rvblock)
var M = require('eigenjs').Matrix
, mat1 = new M(2, 2)
, mat2 = new M(2, 2)
, mat3 = new M(2, 2);
mat1.set([
1, 2,
3, 4
]);
mat2.set([
1, 0,
0, 1
]);
mat3.set([
0, 2,
3, 3
]);
console.log(mat1.equals(mat2.add(mat3)));truemat.isApprox(mat, [prec = 1e-12])
mat.isApprox(vec, [prec = 1e-12])
mat.isApprox(rvec, [prec = 1e-12])
mat.isApprox(mblock, [prec = 1e-12])
mat.isApprox(vblock, [prec = 1e-12])
mat.isApprox(rvblock, [prec = 1e-12])
var M = require('eigenjs').Matrix
, mat1 = new M(2, 2)
, mat2 = new M(2, 2);
mat1.set([
1, 3,
5, 7
]).diva(11);
mat2.set([
0.091, 0.273,
0.455, 0.636
]);
console.log(mat1.isApprox(mat2, 1e-3));truemat.isSquare()
var M = require('eigenjs').Matrix
, mat1 = new M(4, 4)
, mat2 = new M(3, 2);
console.log(mat1.isSquare());
console.log(mat2.isSquare());true
falsemat.isZero([prec = 1e-12])
var M = require('eigenjs').Matrix
, mat = new M(2, 3).set([
0, 0, 0.0001,
0, 0, 0
]);
console.log(mat.isZero());
console.log(mat.isZero(1e-3));false
truemat.isOnes([prec = 1e-12])
var M = require('eigenjs').Matrix
, mat = new M(2, 3).set([
1, 1, 1.0001,
1, 0.9997, 1
]);
console.log(mat.isOnes());
console.log(mat.isOnes(1e-3));false
truemat.isIdentity([prec = 1e-12])
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1, 0, 0.0001,
0, 0.9997, 0,
0, 0, 1
]);
console.log(mat.isIdentity());
console.log(mat.isIdentity(1e-3));false
truemat.isDiagonal([prec = 1e-12])
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1e+04, 0, 1,
0, 1e+04, 0,
0, 0, 1e+04
]);
console.log(mat.isDiagonal());
console.log(mat.isDiagonal(1e-3));false
truemat.all()
Returns true if all coefficients are true.
var M = require('eigenjs').Matrix
, mat = new M.Constant(3, 3, 1);
console.log('mat = \n%s\n%s\n', mat, mat.all());
mat.set(0, 0, 0);
console.log('mat = \n%s\n%s', mat, mat.all());mat =
1 1 1
1 1 1
1 1 1
true
mat =
0 1 1
1 1 1
1 1 1
falsemat.any()
Returns true if at least one coefficient is true.
var M = require('eigenjs').Matrix
, mat = new M.Zero(3, 3);
console.log('mat = \n%s\n%s\n', mat, mat.any());
mat.set(0, 0, 1);
console.log('mat = \n%s\n%s', mat, mat.any());mat =
0 0 0
0 0 0
0 0 0
false
mat =
1 0 0
0 0 0
0 0 0
truemat.count()
Returns the number of coefficients which evaluate to true.
var M = require('eigenjs').Matrix
, mat = new M.Zero(3, 3);
mat.block(0, 1, 3, 2).setOnes();
console.log('mat = \n%s\n', mat);
console.log('%d', mat.count());mat =
0 1 1
0 1 1
0 1 1
6mat.allFinite()
Returns true if *this contains only finite numbers, i.e., no NaN and no +/-INF values.
var M = require('eigenjs').Matrix
, mat = new M.Random(3, 3);
console.log('mat = \n%s\n%s\n', mat, mat.allFinite());
mat.set(0, 0, Infinity);
console.log('mat = \n%s\n%s', mat, mat.allFinite());mat =
0.202332 0.271506 -0.887678
0.592388 -0.806422 0.799406
0.26443 0.461303 -0.389755
true
mat =
inf 0.271506 -0.887678
0.592388 -0.806422 0.799406
0.26443 0.461303 -0.389755
falsemat.hasNaN()
Returns true if *this contains at least one Not A Number (NaN).
var M = require('eigenjs').Matrix
, mat = new M.Zero(3, 3);
console.log('mat = \n%s\n%s\n', mat, mat.hasNaN());
mat.set(1, 1, NaN);
console.log('mat = \n%s\n%s', mat, mat.hasNaN());mat =
0 0 0
0 0 0
0 0 0
false
mat =
0 0 0
0 nan 0
0 0 0
truemat.partialPivLu()
Returns the partial-pivoting LU decomposition of *this.
var M = require('eigenjs').Matrix
, mat = new M(3, 3).set([
1, 4, 5,
4, 2, 6,
5, 6, 3
])
, pplu = mat.partialPivLu();
console.log('P = \n%s\n', pplu.permutationP());
console.log('L = \n%s\n', pplu.matrixL());
console.log('U = \n%s', pplu.matrixU());P =
0 0 1
0 1 0
1 0 0
L =
1 0 0
0.8 1 0
0.2 -1 1
U =
5 6 3
0 -2.8 3.6
0 0 8mat.fullPivLu()
Returns the full-pivoting LU decomposition of *this.
var M = require('eigenjs').Matrix
, mat = new M(2, 4).set([
1, 1, 1, 3,
1, 2, -1, 4
])
, fplu = mat.fullPivLu();
console.log('P = \n%s\n', fplu.permutationP());
console.log('L = \n%s\n', fplu.matrixL());
console.log('U = \n%s\n', fplu.matrixU());
console.log('Q = \n%s', fplu.permutationQ());P =
0 1
1 0
L =
1 0
0.75 1
U =
4 -1 2 1
0 1.75 -0.5 0.25
Q =
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0mat.toString([options])
- options
Object- precision
NumberDefault=6. The number of digits for floating point values. - fullPrecision
BooleamDefault=false. If set to true, then the number of digits will be computed to match the full precision of each floating-point type. - dontAlignCols
BooleamDefault=false. If set to true, it allows to disable the alignment of columnt, resulting in faster code. - coeffSeparator
StringDefault=' '. The string printed between two coefficients of the same row. - rowSepara
- precision



