You are here

Revision of Matrix Operators and Functions from Wed, 10/20/2010 - 07:12

Revisions allow you to track differences between multiple versions of your content, and revert back to older versions.

Wiki home: mxMatrix Help

The following table list matrix operators and functions that are supported by OpenMx. A blank value for the columns 'Implemented' or 'Passing Tests' indicates that the entry has been implemented or is passing the sample tests, respectively. 
Operator name OpenMx (R) name Mx name Conformability Implemented/Passing Tests
Square Bracket Operator (element) A[x,y] \part(A,B) -- Yes
Square Bracket Operator (row or col) A[x,] or A[,y] -- -- Yes
Square Bracket Operator (subrange) A[x:y, w:z] \part(A,B) -- Yes
Inversion solve(A) A~ r=c Yes
Transpose t(A) A' -- Yes
Element powering A ^ B -- -- Yes
Matrix multiplication A %*% B A * B cA=rb Yes
Element multiplication (Hadamard product) A * B A . B rA=rB and cA=c B Yes
Kronecker product A %x% B A @ B -- Yes
Kronecker exponent A %^% B A ^ B -- Yes
Quadratic product1 A %&% B A & B cA=rB=cB Yes
Element division A / B A % B rA=rB and cA=c B Yes
Addition A + B A + B rA=rB and cA=c B Yes
Subtraction (binary) A - B A - B rA=rB and cA=c B Yes
Subtraction (unary) - A - A -- Yes
Horizontal adhesion cbind(A,B,C) A | B | C rA=rB Yes
Vertical adhesion rbind(A,B,C) A _ B _ C cA=cB Yes
Determinant det(A) \det(A) -- Yes
Trace1 tr(A) \tr(A) -- Yes
Sum sum(A,B,C) \sum(A,B,C) -- Yes
Product prod(A,B,C) \prod(A,B,C) -- Yes
Maximum max(A,B,C) \max(A,B,C) -- Yes
Minimum min(A,B,C) \min(A,B,C) -- Yes
Absolute value abs(A) \abs(A) -- Yes
Cosine cos(A) \cos(A) -- Yes
Hyperbolic cosine cosh(A) \cosh(A) -- Yes
Sine sin(A) \sin(A) -- Yes
Hyperbolic sine sinh(A) \sinh(A) -- Yes
Tangent tan(A) \tan(A) -- Yes
Hyperbolic tangent tanh(A) \tanh(A) -- Yes
Element Exponent exp(A) \exp(A) -- Yes
Element Natural Log log(A) \ln(A) -- Yes
Element Square Root sqrt(A) \sqrt(A) -- Yes
Half-vectorization vech(A) \vech(A) -- Yes
Strict half-vectorization vechs(A) -- -- Yes
Diagonal to vector diag2vec(A) \d2v(A) -- Yes
Vector to diagonal vec2diag(A) \v2d(A) rA=1 or cA=1 Yes
Multivariate normal integration omxMnor(A) \mnor(A) -- Yes
All cells multivariate number integration omxAllInt(A) \allint(A) -- Yes
Vectorize by row rvectorize(A) \m2v(A) -- Yes
Vectorize by column cvectorize(A) \vec(A) -- Yes
Real Eigenvectors eigenvec(A) \evec(A) -- Yes
Real Eigenvalues eigenval(A) \eval(A) -- Yes
Imaginary Eigenvectors ieigenvec(A) \ivec(A) -- Yes
Imaginary Eigenvalues ieigenval(A) \ival(A) -- Yes
1 Support for this operation in the R frontend is provided by the OpenMx library.  This operation is not defined by the R core library, so you will be unable to use it without loading the OpenMx library.