Revision of Matrix Operators and Functions from Wed, 03/23/2011 - 13:56

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