+\newcommand*{\tp}[2]{ {#1}\otimes{#2} }
+
+% The Kronecker product of its two arguments. The usual notation for
+% this is the same as the tensor product notation used for \tp, but
+% that leads to confusion because the two definitions may not agree.
+\newcommand*{\kp}[2]{ {#1}\odot{#2} }
+
+% The adjoint of a linear operator.
+\newcommand*{\adjoint}[1]{ #1^{*} }
+
+% The ``transpose'' of a linear operator; namely, the adjoint, but
+% specialized to real matrices.
+\newcommand*{\transpose}[1]{ #1^{T} }
+
+% The Moore-Penrose (or any other, I guess) pseudo-inverse of its
+% sole argument.
+\newcommand*{\pseudoinverse}[1]{ #1^{+} }
+
+% The trace of an operator.
+\newcommand*{\trace}[1]{ \operatorname{trace}\of{{#1}} }
+
+% The diagonal matrix whose only nonzero entries are on the diagonal
+% and are given by our argument. The argument should therefore be a
+% vector or tuple of entries, by convention going from the top-left to
+% the bottom-right of the matrix.
+\newcommand*{\diag}[1]{\operatorname{diag}\of{{#1}}}
+
+% The "rank" of its argument, which is context-dependent. It can mean
+% any or all of,
+%
+% * the rank of a matrix,
+% * the rank of a power-associative algebra (particularly an EJA),
+% * the rank of an element in a Euclidean Jordan algebra.
+%
+\newcommand*{\rank}[1]{ \operatorname{rank}\of{{#1}} }
+