You are here

Revision of Matrix Operators and Functions from Mon, 09/13/2010 - 08:46

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 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.