## Revision of Matrix Operators and Functions from Tue, 06/22/2010 - 11:28

The revisions let you track differences between multiple versions of a post.

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] -- -- Yes Square Bracket Operator (row) A[x,] -- -- Yes Square Bracket Operator (column) A[,y] -- -- 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 Dot 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.