From 1b40cbe35048b6a665c71444acd867c42b7255f9 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Mon, 16 Jan 2017 10:58:48 -0500 Subject: [PATCH 01/16] Add mjo.bst to the example makefile. --- GNUmakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GNUmakefile b/GNUmakefile index 28796c1..fd37d92 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -20,7 +20,7 @@ PN = examples MJOTEX = mjo-algorithm.tex mjo-arrow.tex mjo-common.tex mjo-cone.tex MJOTEX += mjo-convex.tex mjo-font.tex mjo-linear_algebra.tex mjo-listing.tex MJOTEX += mjo-misc.tex mjo-proof_by_cases.tex mjo-theorem.tex -MJOTEX += mjo-theorem-star.tex mjo-topology.tex +MJOTEX += mjo-theorem-star.tex mjo-topology.tex mjo.bst # Use kpsewhich (from the kpathsea suite) to find the absolute paths # of the bibtex/mjotex files listed in in $(BIBS)/$(MJOTEX). The SRCS -- 2.43.2 From a8d9b8e1e4f5c79b50cc57121dc974fc222e47a8 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 19 Jan 2017 09:54:01 -0500 Subject: [PATCH 02/16] Add \directsumthree to mjo-common. --- mjo-common.tex | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mjo-common.tex b/mjo-common.tex index 5c0162a..fe4ee52 100644 --- a/mjo-common.tex +++ b/mjo-common.tex @@ -38,6 +38,9 @@ % The direct sum of two things. \providecommand*{\directsum}[2]{ {#1}\oplus{#2} } +% The direct sum of three things. +\providecommand*{\directsumthree}[3]{ \directsum{#1}{\directsum{#2}{#3}} } + % The factorial operator. \providecommand*{\factorial}[1]{ {#1}! } -- 2.43.2 From 5f2d44683ba6cb73b45d572724e827f70641660d Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 7 Mar 2017 11:24:40 -0500 Subject: [PATCH 03/16] Remove some unnecessary spaces (chktex warnings). --- mjo-common.tex | 13 ++++++------- mjo-proof_by_cases.tex | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/mjo-common.tex b/mjo-common.tex index fe4ee52..61ea7c4 100644 --- a/mjo-common.tex +++ b/mjo-common.tex @@ -84,13 +84,13 @@ % % The union of its two arguments. -\providecommand*{\union}[2]{ {#1} \cup {#2} } +\providecommand*{\union}[2]{ {#1}\cup{#2} } % A three-argument union. \providecommand*{\unionthree}[3]{ \union{\union{#1}{#2}}{#3} } % The intersection of its two arguments. -\providecommand*{\intersect}[2]{ {#1} \cap {#2} } +\providecommand*{\intersect}[2]{ {#1}\cap{#2} } % A three-argument intersection. \providecommand*{\intersectthree}[3]{ \intersect{\intersect{#1}{#2}}{#3} } @@ -102,11 +102,10 @@ % the upper index, such as \infty. Finally the fourth argument should % contain the things (e.g. indexed sets) to be operated on. \providecommand*{\binopmany}[4]{ - \mathchoice - { \underset{#2}{\overset{#3}{#1}}{#4} } - { {#1}_{#2}^{#3}{#4} } - { {#1}_{#2}^{#3}{#4} } - { {#1}_{#2}^{#3}{#4} } + \mathchoice{ \underset{#2}{\overset{#3}{#1}}{#4} } + { {#1}_{#2}^{#3}{#4} } + { {#1}_{#2}^{#3}{#4} } + { {#1}_{#2}^{#3}{#4} } } \providecommand*{\unionmany}[3]{ \binopmany{\cup}{#1}{#2}{#3} } diff --git a/mjo-proof_by_cases.tex b/mjo-proof_by_cases.tex index d853293..ae4b0fc 100644 --- a/mjo-proof_by_cases.tex +++ b/mjo-proof_by_cases.tex @@ -26,7 +26,7 @@ % \newlength{\singleblskip} \setlength{\singleblskip}{ - \baselineskip / \real{ + \baselineskip/\real{ \if\relax\detokenize{\baselinestretch}\relax \baselinestretch% \else -- 2.43.2 From e9ac324f03959e7884df4339e31acf25053b3dde Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 7 Mar 2017 11:27:14 -0500 Subject: [PATCH 04/16] Add undefined reference and over/underfull box checks to the makefile. --- GNUmakefile | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index fd37d92..4b738f0 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -119,12 +119,35 @@ else echo -n '' > $@ endif +# If the output PDF exists but the log file does not, then an attempt +# to "build the log file" (i.e. build the PDF) would do nothing. Thus +# whenever the log file does not exist, we do a fresh build. +$(PN).log: $(SRCS) + $(MAKE) clean + $(MAKE) + +# Ensure that there are no overfull or underfull boxes in the output +# document by parsing the log for said warnings. +.PHONY: check-boxes +check-boxes: $(PN).log + @! grep -i 'overfull\|underfull' $< + # Run chktex to find silly mistakes. There is some exit code weirdness # (Savannah bug 45979), so we just look for empty output. -.PHONY: check -check: +.PHONY: check-chktex +check-chktex: @[ -z "$(shell chktex --quiet mjotex.sty)" ] +# Ensure that there are no undefined references in the document by +# parsing the log file for said warnings. +.PHONY: check-undefined +check-undefined: $(PN).log + @! grep -i 'undefined' $< + +# Run a suite of checks. +.PHONY: check +check: check-boxes check-chktex check-undefined + # Clean up leftover junk. This only looks overcomplicated because # the *.{foo,bar} syntax supported by Bash is not POSIX, and Make # will execute these commands using /bin/sh (which should be POSIX). -- 2.43.2 From cabf89f8e9b033a0a0d0e875886928f227798413 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 7 Mar 2017 18:52:39 -0500 Subject: [PATCH 05/16] Add S^{n}, the space of symmetric n-by-n matrices. --- mjo-common.tex | 4 ++++ mjo-cone.tex | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/mjo-common.tex b/mjo-common.tex index 61ea7c4..1e3c69f 100644 --- a/mjo-common.tex +++ b/mjo-common.tex @@ -78,6 +78,10 @@ \mathbb{C}\if\detokenize{#1}\detokenize{1}{}\else^{#1}\fi } +% The space of symmetric n-by-n matrices. +\providecommand*{\Sn}[1][n]{ + \mathcal{S}\if\detokenize{#1}\detokenize{1}{}\else^{#1}\fi +} % % Basic set operations diff --git a/mjo-cone.tex b/mjo-cone.tex index b770d75..b7bcdab 100644 --- a/mjo-cone.tex +++ b/mjo-cone.tex @@ -24,7 +24,7 @@ \newcommand*{\Lnplus}[1][n]{ \mathcal{L}^{{#1}}_{+} } % The PSD cone in a space of symmetric matrices. -\newcommand*{\Snplus}[1][n]{ \mathcal{S}^{{#1}}_{+} } +\newcommand*{\Snplus}[1][n]{ \Sn[#1]_{+} } % The PSD cone in a space of Hermitian matrices. \newcommand*{\Hnplus}[1][n]{ \mathcal{H}^{{#1}}_{+} } -- 2.43.2 From db9108a5c69e72667f4731880f1e3173459675fd Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sun, 12 Mar 2017 19:36:54 -0400 Subject: [PATCH 06/16] Add \cartprodmany and \directsummany to mjo-common. --- examples.tex | 23 +++++++++++++++-------- mjo-common.tex | 4 +++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/examples.tex b/examples.tex index 6edd538..f33ed74 100644 --- a/examples.tex +++ b/examples.tex @@ -36,13 +36,21 @@ The function $f$ applied to $x$ is $f\of{x}$. We can group terms like $a + \qty{b - c}$ or $a + \qty{b - \sqty{c - d}}$. Here's a set $\set{1,2,3} = \setc{n \in \Nn[1]}{ n \le 3 }$. Here's a pair - of things $\pair{1}{2}$ or a triple of them - $\triple{1}{2}{3}$. The Cartesian product of two sets $A$ and $B$ - is $\cartprod{A}{B}$; if we take the product with $C$ as well, - then we obtain $\cartprodthree{A}{B}{C}$. The direct sum of $V$ - and $W$ is $\directsum{V}{W}$ and the factorial of the number $10$ - is $\factorial{10}$. - + of things $\pair{1}{2}$ or a triple of them $\triple{1}{2}{3}$, + and the factorial of the number $10$ is $\factorial{10}$. + + The Cartesian product of two sets $A$ and $B$ is + $\cartprod{A}{B}$; if we take the product with $C$ as well, then + we obtain $\cartprodthree{A}{B}{C}$. The direct sum of $V$ and $W$ + is $\directsum{V}{W}$. Or three things, + $\directsumthree{U}{V}{W}$. How about more things? Like + $\directsummany{k=1}{\infty}{V_{k}} \ne + \cartprodmany{k=1}{\infty}{V_{k}}$. Those direct sums and + cartesian products adapt nicely to display equations: + % + \begin{equation*} + \directsummany{k=1}{\infty}{V_{k}} \ne \cartprodmany{k=1}{\infty}{V_{k}}. + \end{equation*} Here are a few common tuple spaces that should not have a superscript when that superscript would be one: $\Nn[1]$, $\Zn[1]$, $\Qn[1]$, $\Rn[1]$, $\Cn[1]$. However, if the @@ -61,7 +69,6 @@ \begin{equation*} \unionmany{k=1}{\infty}{A_{k}} = \intersectmany{k=1}{\infty}{B_{k}} \end{equation*} - % \end{section} \begin{section}{Cone} diff --git a/mjo-common.tex b/mjo-common.tex index 1e3c69f..1a8f6fe 100644 --- a/mjo-common.tex +++ b/mjo-common.tex @@ -112,5 +112,7 @@ { {#1}_{#2}^{#3}{#4} } } -\providecommand*{\unionmany}[3]{ \binopmany{\cup}{#1}{#2}{#3} } \providecommand*{\intersectmany}[3]{ \binopmany{\cap}{#1}{#2}{#3} } +\providecommand*{\cartprodmany}[3]{ \binopmany{\times}{#1}{#2}{#3} } +\providecommand*{\directsummany}[3]{ \binopmany{\oplus}{#1}{#2}{#3} } +\providecommand*{\unionmany}[3]{ \binopmany{\cup}{#1}{#2}{#3} } -- 2.43.2 From 2dac5ec377a12619d1e1f7d8e036dab13af101cb Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 31 Mar 2017 13:17:39 -0400 Subject: [PATCH 07/16] Use "big" versions of operators in \binopmany consumers. --- mjo-common.tex | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mjo-common.tex b/mjo-common.tex index 1a8f6fe..74a0fe5 100644 --- a/mjo-common.tex +++ b/mjo-common.tex @@ -5,6 +5,9 @@ % Needed for \mathbb. \usepackage{amsfonts} +% Needed for \bigtimes. +\usepackage{mathtools} + % Place the argument in matching left/right parntheses. \providecommand*{\of}[1]{ \left({#1}\right) } @@ -112,7 +115,7 @@ { {#1}_{#2}^{#3}{#4} } } -\providecommand*{\intersectmany}[3]{ \binopmany{\cap}{#1}{#2}{#3} } -\providecommand*{\cartprodmany}[3]{ \binopmany{\times}{#1}{#2}{#3} } -\providecommand*{\directsummany}[3]{ \binopmany{\oplus}{#1}{#2}{#3} } -\providecommand*{\unionmany}[3]{ \binopmany{\cup}{#1}{#2}{#3} } +\providecommand*{\intersectmany}[3]{ \binopmany{\bigcap}{#1}{#2}{#3} } +\providecommand*{\cartprodmany}[3]{ \binopmany{\bigtimes}{#1}{#2}{#3} } +\providecommand*{\directsummany}[3]{ \binopmany{\bigoplus}{#1}{#2}{#3} } +\providecommand*{\unionmany}[3]{ \binopmany{\bigcup}{#1}{#2}{#3} } -- 2.43.2 From 21149d05f0bf33baecfe002704f8dd3d939951e7 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Mon, 17 Apr 2017 20:55:15 -0400 Subject: [PATCH 08/16] Add \Hn for the space of complex Hermitian n-by-n matrices. --- mjo-common.tex | 7 ++++++- mjo-cone.tex | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mjo-common.tex b/mjo-common.tex index 74a0fe5..e599201 100644 --- a/mjo-common.tex +++ b/mjo-common.tex @@ -81,11 +81,16 @@ \mathbb{C}\if\detokenize{#1}\detokenize{1}{}\else^{#1}\fi } -% The space of symmetric n-by-n matrices. +% The space of real symmetric n-by-n matrices. \providecommand*{\Sn}[1][n]{ \mathcal{S}\if\detokenize{#1}\detokenize{1}{}\else^{#1}\fi } +% The space of complex Hermitian n-by-n matrices. +\providecommand*{\Hn}[1][n]{ + \mathcal{H}\if\detokenize{#1}\detokenize{1}{}\else^{#1}\fi +} + % % Basic set operations % diff --git a/mjo-cone.tex b/mjo-cone.tex index b7bcdab..dad432e 100644 --- a/mjo-cone.tex +++ b/mjo-cone.tex @@ -27,7 +27,7 @@ \newcommand*{\Snplus}[1][n]{ \Sn[#1]_{+} } % The PSD cone in a space of Hermitian matrices. -\newcommand*{\Hnplus}[1][n]{ \mathcal{H}^{{#1}}_{+} } +\newcommand*{\Hnplus}[1][n]{ \Hn[#1]_{+} } % -- 2.43.2 From a9d942d6d7226cdf87be5b8cef9743d30d75ce06 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Wed, 28 Nov 2018 22:36:00 -0500 Subject: [PATCH 09/16] mjo-linear_algebra.tex: add the Moore-Penrose \pseudoinverse. --- mjo-linear_algebra.tex | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mjo-linear_algebra.tex b/mjo-linear_algebra.tex index 02e1d12..aa0b05e 100644 --- a/mjo-linear_algebra.tex +++ b/mjo-linear_algebra.tex @@ -37,6 +37,10 @@ % 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}} } -- 2.43.2 From 4889580563dc344f0e30230c3dc5099e361cb520 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 1 Jan 2019 12:14:11 -0500 Subject: [PATCH 10/16] Use C99-style left-aligned double front-slashes for algorithm comments. --- mjo-algorithm.tex | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mjo-algorithm.tex b/mjo-algorithm.tex index 77dcdb6..25b396c 100644 --- a/mjo-algorithm.tex +++ b/mjo-algorithm.tex @@ -12,3 +12,5 @@ % This just gives us the floating ``algorithm'' environment. \usepackage{algorithm} + +\algrenewcommand{\algorithmiccomment}[1]{/\!/ {#1}} -- 2.43.2 From 2719020929ee56f190a9e0e91083fb70ee086c9c Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 14 Feb 2019 15:21:44 -0500 Subject: [PATCH 11/16] examples.tex: mention the new Moore-Penrose \pseudoinverse. --- examples.tex | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples.tex b/examples.tex index f33ed74..26db4b1 100644 --- a/examples.tex +++ b/examples.tex @@ -98,7 +98,9 @@ their tensor product is $\tp{x}{y}$. The Kronecker product of matrices $A$ and $B$ is $\kp{A}{B}$. The adjoint of the operator $L$ is $\adjoint{L}$, or if it's a matrix, then its transpose is - $\transpose{L}$. Its trace is $\trace{L}$. + $\transpose{L}$. Its trace is $\trace{L}$. Another matrix-specific + concept is the Moore-Penrose pseudoinverse of $L$, denoted by + $\pseudoinverse{L}$. The span of a set $X$ is $\spanof{X}$, and its codimension is $\codim{X}$. The projection of $X$ onto $V$ is $\proj{V}{X}$. The -- 2.43.2 From a090c8f0a3d92160d8e14b7328b8045b067b5bbd Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 14 Feb 2019 15:33:24 -0500 Subject: [PATCH 12/16] GNUmakefile: fix the "check-chktex" target. --- .chktexrc | 1 + GNUmakefile | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 .chktexrc diff --git a/.chktexrc b/.chktexrc new file mode 100644 index 0000000..8076a85 --- /dev/null +++ b/.chktexrc @@ -0,0 +1 @@ +# <3 git diff --git a/GNUmakefile b/GNUmakefile index 4b738f0..f3352b6 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -135,8 +135,9 @@ check-boxes: $(PN).log # Run chktex to find silly mistakes. There is some exit code weirdness # (Savannah bug 45979), so we just look for empty output. .PHONY: check-chktex +CHKTEX = chktex --localrc .chktexrc --quiet --inputfiles=0 check-chktex: - @[ -z "$(shell chktex --quiet mjotex.sty)" ] + @[ -z "$(shell $(CHKTEX) mjotex.sty)" ] # Ensure that there are no undefined references in the document by # parsing the log file for said warnings. -- 2.43.2 From ce11edfc0c1c7b1dcbbbc21512336f91ad006863 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 14 Feb 2019 15:33:39 -0500 Subject: [PATCH 13/16] Add the four types of standard real intervals. --- examples.tex | 9 +++++++++ mjo-common.tex | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/examples.tex b/examples.tex index 26db4b1..897396c 100644 --- a/examples.tex +++ b/examples.tex @@ -69,6 +69,15 @@ \begin{equation*} \unionmany{k=1}{\infty}{A_{k}} = \intersectmany{k=1}{\infty}{B_{k}} \end{equation*} + + Finally, we have the four standard types of intervals in $\Rn[1]$, + % + \begin{align*} + \intervaloo{a}{b} &= \setc{ x \in \Rn[1]}{ a < x < b },\\ + \intervaloc{a}{b} &= \setc{ x \in \Rn[1]}{ a < x \le b },\\ + \intervalco{a}{b} &= \setc{ x \in \Rn[1]}{ a \le x < b }, \text{ and }\\ + \intervalcc{a}{b} &= \setc{ x \in \Rn[1]}{ a \le x \le b }. + \end{align*} \end{section} \begin{section}{Cone} diff --git a/mjo-common.tex b/mjo-common.tex index e599201..38e08b3 100644 --- a/mjo-common.tex +++ b/mjo-common.tex @@ -124,3 +124,11 @@ \providecommand*{\cartprodmany}[3]{ \binopmany{\bigtimes}{#1}{#2}{#3} } \providecommand*{\directsummany}[3]{ \binopmany{\bigoplus}{#1}{#2}{#3} } \providecommand*{\unionmany}[3]{ \binopmany{\bigcup}{#1}{#2}{#3} } + + +% The four standard (UNLESS YOU'RE FRENCH) types of intervals along +% the real line. +\providecommand*{\intervaloo}[2]{ \left({#1},{#2}\right) } % open-open +\providecommand*{\intervaloc}[2]{ \left({#1},{#2}\right] } % open-closed +\providecommand*{\intervalco}[2]{ \left[{#1},{#2}\right) } % closed-open +\providecommand*{\intervalcc}[2]{ \left[{#1},{#2}\right] } % closed-closed -- 2.43.2 From 6fa398b6d3929e666e21fb92f6c097be01ce5fb4 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 22 Mar 2019 19:37:54 -0400 Subject: [PATCH 14/16] mjo-common.tex: fix typo in comment. --- mjo-common.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mjo-common.tex b/mjo-common.tex index 38e08b3..7b6280b 100644 --- a/mjo-common.tex +++ b/mjo-common.tex @@ -8,7 +8,7 @@ % Needed for \bigtimes. \usepackage{mathtools} -% Place the argument in matching left/right parntheses. +% Place the argument in matching left/right parentheses. \providecommand*{\of}[1]{ \left({#1}\right) } % Group terms using parentheses. -- 2.43.2 From 7550b6a2e37298217b5cd4890299a64fb5cf1762 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 28 Mar 2019 10:12:51 -0400 Subject: [PATCH 15/16] mjo-linear_algebra.tex: use \transpose in the definition of \colvec. --- mjo-linear_algebra.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mjo-linear_algebra.tex b/mjo-linear_algebra.tex index aa0b05e..5c3f715 100644 --- a/mjo-linear_algebra.tex +++ b/mjo-linear_algebra.tex @@ -66,7 +66,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 -- 2.43.2 From 7321e6c665f3b9797bb7a76618e6419a33357e6c Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sun, 16 Jun 2019 20:02:48 -0400 Subject: [PATCH 16/16] mjo-complex.tex: new file with a \compconj (complex conjugate) command. --- GNUmakefile | 6 +++--- examples.tex | 5 +++++ mjo-complex.tex | 4 ++++ mjotex.sty | 1 + 4 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 mjo-complex.tex diff --git a/GNUmakefile b/GNUmakefile index f3352b6..8f9fc6b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -17,9 +17,9 @@ PN = examples # A space-separated list of the mjotex files that you use. The path to # mjotex must be contain in your $TEXINPUTS environment variable. -MJOTEX = mjo-algorithm.tex mjo-arrow.tex mjo-common.tex mjo-cone.tex -MJOTEX += mjo-convex.tex mjo-font.tex mjo-linear_algebra.tex mjo-listing.tex -MJOTEX += mjo-misc.tex mjo-proof_by_cases.tex mjo-theorem.tex +MJOTEX = mjo-algorithm.tex mjo-arrow.tex mjo-common.tex mjo-complex.tex +MJOTEX += mjo-cone.tex mjo-convex.tex mjo-font.tex mjo-linear_algebra.tex +MJOTEX += mjo-listing.tex mjo-misc.tex mjo-proof_by_cases.tex mjo-theorem.tex MJOTEX += mjo-theorem-star.tex mjo-topology.tex mjo.bst # Use kpsewhich (from the kpathsea suite) to find the absolute paths diff --git a/examples.tex b/examples.tex index 897396c..a202da7 100644 --- a/examples.tex +++ b/examples.tex @@ -80,6 +80,11 @@ \end{align*} \end{section} + \begin{section}{Complex} + We sometimes want to conjugate complex numbers like + $\compconj{a+bi} = a - bi$. + \end{section} + \begin{section}{Cone} The dual cone of $K$ is $\dual{K}$. Some familiar symmetric cones are $\Rnplus$, $\Lnplus$, $\Snplus$, and $\Hnplus$. If cones diff --git a/mjo-complex.tex b/mjo-complex.tex new file mode 100644 index 0000000..23d440f --- /dev/null +++ b/mjo-complex.tex @@ -0,0 +1,4 @@ +% Operations used when dealing with complex numbers. + +% The complex conjugate of its argument. +\providecommand*{\compconj}[1]{ \overline{#1} } diff --git a/mjotex.sty b/mjotex.sty index 039738b..0c5cd76 100644 --- a/mjotex.sty +++ b/mjotex.sty @@ -1,6 +1,7 @@ \input{mjo-algorithm} \input{mjo-arrow} \input{mjo-common} +\input{mjo-complex} \input{mjo-cone} \input{mjo-convex} \input{mjo-font} -- 2.43.2