The main strength of tomSym is its ability to automatically and quickly compute symbolic derivatives of matrix expressions. The derivatives can then be converted into efficient Matlab code.

The matrix derivative of a matrix function is a fourth rank tensor - that is, a matrix each of whose entries is a matrix. Rather than using four-dimensional matrices to represent this, tomSym continues to work in two dimensions. This makes it possible to take advantage of the very efficient handling of sparse matrices in Matlab, which is not available for higher-dimensional matrices.

In order for the derivative to be two-dimensional, tomSym's *derivative* reduces its arguments to one-dimensional vectors before the derivative is computed. In the returned *J*, each row corresponds to an element of *F*, and each column corresponds to an element of *X*. As usual in Matlab, the elements of a matrix are taken in column-first order.

For vectors *F* and *X*, the resulting *J* is the well-known Jacobian matrix.