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 | OpenMx Version |
Square Bracket Operator (element) | A[x,y] | \part(A,B) | -- | 1.0 |
Square Bracket Operator (row or col) | A[x,] or A[,y] | -- | -- | 1.0 |
Square Bracket Operator (subrange) | A[x:y, w:z] | \part(A,B) | -- | 1.0 |
Inversion | solve(A) | A~ | r=c | 1.0 |
Transpose | t(A) | A' | -- | 1.0 |
Element powering | A ^ B | -- | -- | 1.0 |
Matrix multiplication | A %*% B | A * B | cA=rb | 1.0 |
Element multiplication (Hadamard product) | A * B | A . B | rA=rB and cA=c B | 1.0 |
Kronecker product | A %x% B | A @ B | -- | 1.0 |
Kronecker exponent | A %^% B | A ^ B | -- | 1.0 |
Quadratic product1 | A %&% B | A & B | cA=rB=cB | 1.0 |
Element division | A / B | A % B | rA=rB and cA=c B | 1.0 |
Addition | A + B | A + B | rA=rB and cA=c B | 1.0 |
Subtraction (binary) | A - B | A - B | rA=rB and cA=c B | 1.0 |
Subtraction (unary) | - A | - A | -- | 1.0 |
Horizontal adhesion | cbind(A,B,C) | A | B | C | rA=rB | 1.0 |
Vertical adhesion | rbind(A,B,C) | A _ B _ C | cA=cB | 1.0 |
Determinant | det(A) | \det(A) | -- | 1.0 |
Trace1 | tr(A) | \tr(A) | -- | 1.0 |
Sum | sum(A,B,C) | \sum(A,B,C) | -- | 1.0 |
Product | prod(A,B,C) | \prod(A,B,C) | -- | 1.0 |
Maximum | max(A,B,C) | \max(A,B,C) | -- | 1.0 |
Minimum | min(A,B,C) | \min(A,B,C) | -- | 1.0 |
Absolute value | abs(A) | \abs(A) | -- | 1.0 |
Cosine | cos(A) | \cos(A) | -- | 1.0 |
Hyperbolic cosine | cosh(A) | \cosh(A) | -- | 1.0 |
Sine | sin(A) | \sin(A) | -- | 1.0 |
Hyperbolic sine | sinh(A) | \sinh(A) | -- | 1.0 |
Tangent | tan(A) | \tan(A) | -- | 1.0 |
Hyperbolic tangent | tanh(A) | \tanh(A) | -- | 1.0 |
Element Exponent | exp(A) | \exp(A) | -- | 1.0 |
Element Natural Log | log(A) | \ln(A) | -- | 1.0 |
Element Square Root | sqrt(A) | \sqrt(A) | -- | 1.0 |
Half-vectorization | vech(A) | \vech(A) | -- | 1.0 |
Strict half-vectorization | vechs(A) | -- | -- | 1.0 |
Diagonal to vector | diag2vec(A) | \d2v(A) | -- | 1.0 |
Vector to diagonal | vec2diag(A) | \v2d(A) | rA=1 or cA=1 | 1.0 |
Multivariate normal integration | omxMnor(A) | \mnor(A) | -- | 1.0 |
All cells multivariate number integration | omxAllInt(A) | \allint(A) | -- | 1.0 |
Vectorize by row | rvectorize(A) | \m2v(A) | -- | 1.0 |
Vectorize by column | cvectorize(A) | \vec(A) | -- | 1.0 |
Real Eigenvectors | eigenvec(A) | \evec(A) | -- | 1.0 |
Real Eigenvalues | eigenval(A) | \eval(A) | -- | 1.0 |
Imaginary Eigenvectors | ieigenvec(A) | \ivec(A) | -- | 1.0 |
Imaginary Eigenvalues | ieigenval(A) | \ival(A) | -- | 1.0 |
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.