]>
gitweb.michael.orlitzky.com - mjotex.git/blob - mjo-linear_algebra.tex
2 % Standard operations from linear algebra.
5 % Needed for \lvert, \rVert, etc. and \operatorname.
8 % Wasysym contains the \ocircle that we use in \directsumperp.
11 % Part of the adjustbox package; needed to clip the \perp sign.
16 % Absolute value (modulus) of a scalar.
17 \newcommand*
{\abs}[1]{\left\lvert{#1}\right\rvert}
20 \newcommand*
{\norm}[1]{\left\lVert{#1}\right\rVert}
22 % The inner product between its two arguments.
23 \newcommand*
{\ip}[2]{\left\langle{#1},
{#2}\right\rangle}
25 % The tensor product of its two arguments.
26 \newcommand*
{\tp}[2]{ {#1}\otimes{#2} }
28 % The Kronecker product of its two arguments. The usual notation for
29 % this is the same as the tensor product notation used for \tp, but
30 % that leads to confusion because the two definitions may not agree.
31 \newcommand*
{\kp}[2]{ {#1}\odot{#2} }
33 % The adjoint of a linear operator.
34 \newcommand*
{\adjoint}[1]{ #1^
{*
} }
36 % The ``transpose'' of a linear operator; namely, the adjoint, but
37 % specialized to real matrices.
38 \newcommand*
{\transpose}[1]{ #1^
{T
} }
40 % The Moore-Penrose (or any other, I guess) pseudo-inverse of its
42 \newcommand*
{\pseudoinverse}[1]{ #1^
{+
} }
44 % The trace of an operator.
45 \newcommand*
{\trace}[1]{ \operatorname{trace
}\of{{#1}} }
47 % The ``span of'' operator. The name \span is already taken.
48 \newcommand*
{\spanof}[1]{ \operatorname{span
}\of{{#1}} }
50 % The ``co-dimension of'' operator.
51 \newcommand*
{\codim}{ \operatorname{codim
} }
53 % The orthogonal projection of its second argument onto the first.
54 \newcommand*
{\proj}[2] { \operatorname{proj
}\of{#1,
#2} }
56 % The ``Automorphism group of'' operator.
57 \newcommand*
{\Aut}[1]{ \operatorname{Aut
}\of{{#1}} }
59 % The ``Lie algebra of'' operator.
60 \newcommand*
{\Lie}[1]{ \operatorname{Lie
}\of{{#1}} }
62 % The ``write a matrix as a big vector'' operator.
63 \newcommand*
{\vectorize}[1]{ \operatorname{vec
}\of{{#1}} }
65 % The ``write a big vector as a matrix'' operator.
66 \newcommand*
{\matricize}[1]{ \operatorname{mat
}\of{{#1}} }
68 % An inline column vector, with parentheses and a transpose operator.
69 \newcommand*
{\colvec}[1]{ \left(
{#1}\right)^
{T
} }
71 % Bounded linear operators on some space. The required argument is the
72 % domain of those operators, and the optional argument is the
73 % codomain. If the optional argument is omitted, the required argument
75 \newcommand*
{\boundedops}[2][]{
77 \if\relax\detokenize{#1}\relax
87 % Orthogonal direct sum.
89 % First declare my ``perp in a circle'' operator, which is meant to be
90 % like an \obot or an \operp except has the correct weight circle. It's
91 % achieved by overlaying an \ocircle with a \perp, but only after we
92 % clip off the top half of the \perp sign and shift it up.
93 \DeclareMathOperator{\oplusperp}{\mathbin{
96 \raisebox{0.625\height}{$
\clipbox{0pt
0pt
0pt
0.5\height}{$
\perp$
}$
}\cr
100 % Now declare an orthogonal direct sum in terms of \oplusperp.
101 \newcommand*
{\directsumperp}[2]{ {#1}\oplusperp{#2} }