operations: + - * / =
types: integer rational expression double complex vector matrix
composite: vector matrix
scalar: all but composite
numeric: double complex

arithmetic:
+-*/=  |integer ratio   expr    numeric compos
-------+--------------------------------------
integer|integer ratio   expr    expr    compos
ratio  |        ratio   expr    expr    compos
expr   |                expr    expr    compos
numeric|                        numeric compos
compos |                                compos

numeric:
+-*/=  |double  complex compos
-------+----------------------
double |double  complex compos
complex|        complex compos
compos |                compos

composite:
+-=    |scalar  vector  matrix
-------+----------------------
scalar |scalar  vector  matrix
vector |        vector  n/a
matrix |                matrix

*      |scalar  vector  matrix
-------+----------------------
scalar |scalar  vector  matrix
vector |        scalar  vector
matrix |                matrix

/      |scalar  vector  matrix
-------+----------------------
scalar |scalar  n/a     matrix
vector |vector  n/a     vector
matrix |matrix  n/a     matrix