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

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

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