# Revision of Matrix Operators and Functions from Tue, 03/02/2010 - 01:27

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