% Needed for \lvert, \rVert, etc. and \operatorname.
\usepackage{amsmath}
+% Wasysym contains the \ocircle that we use in \directsumperp.
+\usepackage{wasysym}
+
+% Part of the adjustbox package; needed to clip the \perp sign.
+\usepackage{trimclip}
+
\input{mjo-common}
% Absolute value (modulus) of a scalar.
\fi
}
}
+
+
+%
+% Orthogonal direct sum.
+%
+% First declare my ``perp in a circle'' operator, which is meant to be
+% like an \obot or an \operp except has the correct weight circle. It's
+% achieved by overlaying an \ocircle with a \perp, but only after we
+% clip off the top half of the \perp sign and shift it up.
+\DeclareMathOperator{\oplusperp}{\mathbin{
+ \ooalign{
+ $\ocircle$\cr
+ \raisebox{0.625\height}{$\clipbox{0pt 0pt 0pt 0.5\height}{$\perp$}$}\cr
+ }
+}}
+
+% Now declare an orthogonal direct sum in terms of \oplusperp.
+\newcommand*{\directsumperp}[2]{ {#1}\oplusperp{#2} }