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

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.