X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo-linear_algebra.tex;h=204ad05bd6b7981d32e2c56a4b268642d58d4ce2;hb=6759e3a5bd5fd13bd239ee851c66d1eac83a7c1b;hp=172010c6a548e4c7dd77a29f67283941152ce356;hpb=9585e6612442124b177dd8f46037e30f353369eb;p=mjotex.git diff --git a/mjo-linear_algebra.tex b/mjo-linear_algebra.tex index 172010c..204ad05 100644 --- a/mjo-linear_algebra.tex +++ b/mjo-linear_algebra.tex @@ -1,13 +1,26 @@ % % Standard operations from linear algebra. % +\ifx\havemjolinearalgebra\undefined +\def\havemjolinearalgebra{1} -% Needed for \lvert, \rVert, etc. and \operatorname. -\usepackage{amsmath} + +\ifx\lvert\undefined + \usepackage{amsmath} % \lvert, \rVert, etc. and \operatorname. +\fi + +\ifx\ocircle\undefined + \usepackage{wasysym} +\fi + +\ifx\clipbox\undefined + % Part of the adjustbox package; needed to clip the \perp sign. + \usepackage{trimclip} +\fi \input{mjo-common} -% Absolute value (modulis) of a scalar. +% Absolute value (modulus) of a scalar. \newcommand*{\abs}[1]{\left\lvert{#1}\right\rvert} % Norm of a vector. @@ -31,15 +44,30 @@ % 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 "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}} } + + % The ``span of'' operator. The name \span is already taken. \newcommand*{\spanof}[1]{ \operatorname{span}\of{{#1}} } % The ``co-dimension of'' operator. \newcommand*{\codim}{ \operatorname{codim} } -% The trace of an operator. -\newcommand*{\trace}[1]{ \operatorname{trace}\of{{#1}} } - % The orthogonal projection of its second argument onto the first. \newcommand*{\proj}[2] { \operatorname{proj}\of{#1, #2} } @@ -56,7 +84,7 @@ \newcommand*{\matricize}[1]{ \operatorname{mat}\of{{#1}} } % An inline column vector, with parentheses and a transpose operator. -\newcommand*{\colvec}[1]{ \left({#1}\right)^{T} } +\newcommand*{\colvec}[1]{ \transpose{\left({#1}\right)} } % Bounded linear operators on some space. The required argument is the % domain of those operators, and the optional argument is the @@ -71,3 +99,24 @@ \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} } + + +\fi