4 Matrices and arrays
4.1 Relationship to R
In R you can apply both matrix multiplication (%*%
) and elementwise
multiplication (*
) to objects of type “matrix,” i.e. it is the
operator that determines the operation. In TMB we instead have two
different types of objects, while the multiplication operator (*
) is
the same:
matrix
: linear algebraarray
: elementwise operations; () and [] style indexing.vector
: can be used in linear algebra withmatrix
, but at the same time admits R style element-wise operations.
See the file matrix_arrays.cpp for examples of use.
4.2 Relationship to Eigen
The TMB types matrix
and array
(in dimension 2) inherits
directly from the the Eigen types Matrix and Array. The advanced user
of TMB will benefit from familiarity with the
Eigen documentation.
Note that arrays of dimension 3 or higher are specially implemented in
TMB, i.e. are not directly inherited from Eigen.