]> gitweb.michael.orlitzky.com - mjotex.git/blob - mjo-linear_algebra.tex
Whitespace cleanup.
[mjotex.git] / mjo-linear_algebra.tex
1 %
2 % Standard operations from linear algebra.
3 %
4
5 % Needed for \lvert, \rVert, etc. and \operatorname.
6 \usepackage{amsmath}
7
8 % Wasysym contains the \ocircle that we use in \directsumperp.
9 \usepackage{wasysym}
10
11 % Part of the adjustbox package; needed to clip the \perp sign.
12 \usepackage{trimclip}
13
14 \input{mjo-common}
15
16 % Absolute value (modulus) of a scalar.
17 \newcommand*{\abs}[1]{\left\lvert{#1}\right\rvert}
18
19 % Norm of a vector.
20 \newcommand*{\norm}[1]{\left\lVert{#1}\right\rVert}
21
22 % The inner product between its two arguments.
23 \newcommand*{\ip}[2]{\left\langle{#1},{#2}\right\rangle}
24
25 % The tensor product of its two arguments.
26 \newcommand*{\tp}[2]{ {#1}\otimes{#2} }
27
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} }
32
33 % The adjoint of a linear operator.
34 \newcommand*{\adjoint}[1]{ #1^{*} }
35
36 % The ``transpose'' of a linear operator; namely, the adjoint, but
37 % specialized to real matrices.
38 \newcommand*{\transpose}[1]{ #1^{T} }
39
40 % The trace of an operator.
41 \newcommand*{\trace}[1]{ \operatorname{trace}\of{{#1}} }
42
43 % The ``span of'' operator. The name \span is already taken.
44 \newcommand*{\spanof}[1]{ \operatorname{span}\of{{#1}} }
45
46 % The ``co-dimension of'' operator.
47 \newcommand*{\codim}{ \operatorname{codim} }
48
49 % The orthogonal projection of its second argument onto the first.
50 \newcommand*{\proj}[2] { \operatorname{proj}\of{#1, #2} }
51
52 % The ``Automorphism group of'' operator.
53 \newcommand*{\Aut}[1]{ \operatorname{Aut}\of{{#1}} }
54
55 % The ``Lie algebra of'' operator.
56 \newcommand*{\Lie}[1]{ \operatorname{Lie}\of{{#1}} }
57
58 % The ``write a matrix as a big vector'' operator.
59 \newcommand*{\vectorize}[1]{ \operatorname{vec}\of{{#1}} }
60
61 % The ``write a big vector as a matrix'' operator.
62 \newcommand*{\matricize}[1]{ \operatorname{mat}\of{{#1}} }
63
64 % An inline column vector, with parentheses and a transpose operator.
65 \newcommand*{\colvec}[1]{ \left({#1}\right)^{T} }
66
67 % Bounded linear operators on some space. The required argument is the
68 % domain of those operators, and the optional argument is the
69 % codomain. If the optional argument is omitted, the required argument
70 % is used for both.
71 \newcommand*{\boundedops}[2][]{
72 \mathcal{B}\of{ {#2}
73 \if\relax\detokenize{#1}\relax
74 {}%
75 \else
76 {,{#1}}%
77 \fi
78 }
79 }
80
81
82 %
83 % Orthogonal direct sum.
84 %
85 % First declare my ``perp in a circle'' operator, which is meant to be
86 % like an \obot or an \operp except has the correct weight circle. It's
87 % achieved by overlaying an \ocircle with a \perp, but only after we
88 % clip off the top half of the \perp sign and shift it up.
89 \DeclareMathOperator{\oplusperp}{\mathbin{
90 \ooalign{
91 $\ocircle$\cr
92 \raisebox{0.625\height}{$\clipbox{0pt 0pt 0pt 0.5\height}{$\perp$}$}\cr
93 }
94 }}
95
96 % Now declare an orthogonal direct sum in terms of \oplusperp.
97 \newcommand*{\directsumperp}[2]{ {#1}\oplusperp{#2} }