summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-09-25 23:46:58 +0000
committerKarl Berry <karl@freefriends.org>2006-09-25 23:46:58 +0000
commitd4f96dc70d6aad918f541123e66589a2e44e18f1 (patch)
treebc933bc54a70e3ab4cf699a6c2d778b062287d16 /Master
parent66d540bf33713d5f36291b9e7c8a8f8039aebdb4 (diff)
new package cool (25sep06)
git-svn-id: svn://tug.org/texlive/trunk@2199 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.pdfbin0 -> 159960 bytes
-rw-r--r--Master/texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.tex2225
-rw-r--r--Master/texmf-dist/doc/latex/cool/README43
-rw-r--r--Master/texmf-dist/doc/latex/cool/cool.pdfbin0 -> 311475 bytes
-rw-r--r--Master/texmf-dist/source/latex/cool/cool.dtx5787
-rw-r--r--Master/texmf-dist/source/latex/cool/cool.ins40
-rw-r--r--Master/texmf-dist/tex/latex/cool/cool.sty2631
-rw-r--r--Master/texmf-dist/tpm/cool.tpm31
-rw-r--r--Master/texmf/lists/cool10
-rw-r--r--Master/texmf/tpm/collection-latexextra.tpm1
10 files changed, 10768 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.pdf b/Master/texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.pdf
new file mode 100644
index 00000000000..0bff259ca5b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.tex b/Master/texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.tex
new file mode 100644
index 00000000000..4a2d5f757b1
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.tex
@@ -0,0 +1,2225 @@
+\documentclass[12pt]{article} % Specifies the document class
+
+% The preamble begins here.
+
+%<-------------------------------------------Included Packages---------------------------------------------------->
+%\usepackage[dvips]{epsfig}
+ % for displaying pictures
+%\usepackage[b]{esvect}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{ifthen}
+\usepackage{cool}
+\usepackage{makeidx}
+\makeindex
+%<-----------------------------------------End Included Packages-------------------------------------------------->
+
+
+%<------------------------------------------Document Properties--------------------------------------------------->
+\title{Content \LaTeXe} % Declares the document's title.
+\author{N. Setzer} % Declares the author's name.
+%\date{} % Declares the date. Aren't you glad you have that kind of power?
+%\setlength{\topmargin}{-0.8in}
+%\setlength{\topskip}{0.2in} % between header and text
+%\setlength{\textheight}{9.0in} % height of main text
+%\setlength{\textwidth}{7.3in} % width of text
+%\setlength{\oddsidemargin}{-0.4in} % odd page left margin
+%\setlength{\evensidemargin}{-0.4in} % even page left margin
+%<----------------------------------------End Document Properties------------------------------------------------->
+
+
+%<----------------------------------------Modified LaTeX Command Definitions--------------------------------------->
+\newcommand{\var}[1]{}
+\newenvironment{declaration}{\hide}{}
+\newcommand{\hide}[1]{}
+\newenvironment{derivation}{\begin{eqnarray*}}{\end{eqnarray*}}
+\newenvironment{der}{\begin{eqnarray*}}{\end{eqnarray*}}
+%<--------------------------------------End Modified LaTeX Command Definitions------------------------------------->
+
+%<-------------------------------------------Command Definitions--------------------------------------------------->
+%%%%%%%%%%%%% Formatting
+\newcommand{\headerRow}{\bf \textrm Command & \bf \textrm Inline & \bf \textrm Display \\}
+%%%%%%%%%%%%% Indexing
+\newcommand{\bs}{\symbol{'134}}% backslash
+\newcommand{\idxc}[2][]{\texttt{\bs#2}\index{#2#1@\texttt{\bs#2}#1}}
+%<-----------------------------------------End Command Definitions------------------------------------------------->
+
+
+%############################################Sectioning Templates###################################################
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%\subsection{}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%\subsubsection{}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%%
+%\subsubsubsection{}
+%%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% | % | % | % | % | % | % | % | % | % | % | % | % | % | % |
+%\appendix
+% | % | % | % | % | % | % | % | % | % | % | % | % | % | % |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%##########################################End Sectioning Templates#################################################
+
+
+\begin{document} % End of preamble and beginning of text.
+
+\maketitle
+
+
+%%%%%%%%%%%%%% IMPORTANT: we can have seemingly UNLIMITE number of booleans !!!!!!
+%%%%%%%%%%%%%% however, we can only create an 'array' of 746 of them
+
+% STRING capacity exceeded---this just won't work the way you want it to.
+%\newcounter{testing}
+%\setcounter{testing}{0}
+%\whiledo{\value{testing}<6430}%
+%{%
+%\addtocounter{testing}{1}%
+%\newboolean{j\arabic{testing}}%
+%}
+
+% no errors but is not effective
+%\newcounter{arrayTrav}
+%\def\newarray#1#2{\def#1##1{%
+%\ifthenelse{\equal{##1}{length}}
+% {%
+% #2
+% }%
+%% Else
+%\ifcase##1{0}
+%\forLoop{1}{#2}{arrayTrav}%
+% {%
+% \or{0}
+% }%
+%\fi
+%}}
+%\def\setval#1#2#3{%
+%\def#1##1{%
+%\ifcase##1%
+%\forLoop{1}{#1{length}}{arrayTrav}
+% {%
+% \or
+% \ifthenelse{\value{arrayTrav}=#2}
+% {#3}
+% {#1{\arabic{arrayTrav}}}
+% }%
+%\fi
+%}}
+%
+%\newarray{\joker}{10}
+%\joker{2}
+%\setval{\joker}{2}{t}
+%\joker{2}
+
+
+%% Works but costs alot of counters and only allows integers and single characters
+%\newcommand{\newarray}[3][0]{%
+%\newcounter{length#2}%
+%\setcounter{length#2}{#3}
+%\newcounter{fill#2}
+%\forLoop{1}{\value{length#2}}{fill#2}%
+% {%
+% \newcounter{values#2\arabic{fill#2}}
+% \setcounter{values#2\arabic{fill#2}}{#1}
+% }%
+%}
+%
+%\newcommand{\newstring}[3][0]{%
+%\newcounter{strlen#2}%
+%\setcounter{strlen#2}{#3}
+%\newcounter{charfill#2}
+%\forLoop{1}{\value{strlen#2}}{charfill#2}%
+% {%
+% \newcounter{strchar#2\arabic{charfill#2}}
+% \setcounter{strchar#2\arabic{charfill#2}}{`#1}
+% }%
+%}
+%\newcommand{\setchar}[3]{\setcounter{strchar#1#2}{`#3}}
+%\newcommand{\strchar}[2]{\char\value{strchar#1#2}}
+%\newcommand{\setstr}[2]
+%{%
+%\forLoop{1}{\value{strlen#1}}{charfill#1}%
+% {%
+% }%
+%}
+%
+%\newcommand{\setval}[3]{\setcounter{values#1#2}{#3}}
+%\newcommand{\arrayval}[2]{\arabic{values#1#2}}
+%
+%\newarray{joker}{13}
+%
+%\arrayval{joker}{2}
+%\setval{joker}{2}{3}
+%\arrayval{joker}{2}
+%\setval{joker}{3}{12}
+%\arrayval{joker}{3}
+%
+%\newstring{string}{114}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Commands}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\label{Section:Commands}
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Constants}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+\idxc[ ($\sqrt{-1}$)]{I} & $\I$ & $\displaystyle \I$ \\
+\idxc[ (base of natural log)]{E}& $\E$ & $\displaystyle \E$ \\
+\idxc{PI} & $\PI$ & $\displaystyle \PI$ \\
+\idxc{GoldenRatio} & $\GoldenRatio$ & $\displaystyle \GoldenRatio$ \\
+\idxc{EulerGamma} & $\EulerGamma$ & $\displaystyle \EulerGamma$ \\
+\idxc{Catalan} & $\Catalan$ & $\displaystyle \Catalan$ \\
+\idxc{Glaisher} & $\Glaisher$ & $\displaystyle \Glaisher$ \\
+\idxc{Khinchin} & $\Khinchin$ & $\displaystyle \Khinchin$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Symbols}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{center}
+\begin{tabular}{ccc}
+\idxc{Infinity} & $\Infinity$ & $\displaystyle \Infinity$ \\
+\idxc{Indeterminant} & $\Indeterminant$ & $\displaystyle \Indeterminant$ \\
+\idxc{DirectedInfinity}\verb|{z}| & $\DirectedInfinity{z}$ & $\displaystyle \DirectedInfinity{z}$ \\
+\idxc{DirInfty}\verb|{z}| & $\DirInfty{z}$ & $\displaystyle \DirInfty{z}$ \\
+\idxc{ComplexInfinity} & $\ComplexInfinity$ & $\displaystyle \ComplexInfinity$ \\
+\idxc{CInfty} & $\CInfty$ & $\displaystyle \CInfty$ \\
+\end{tabular}
+\end{center}
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Exponential and Logarithmic Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+\idxc{Exp}\verb|{5x}| & $\Exp{5x}$ & $\displaystyle \Exp{5x}$ \\
+\verb|\Style{ExpParen=b}|%
+\Style{ExpParen=b} \\
+\idxc{Exp}\verb|{5x}| & $\Exp{5x}$ & $\displaystyle \Exp{5x}$ \\
+\verb|\Style{ExpParen=br}|%
+\Style{ExpParen=br} \\
+\idxc{Exp}\verb|{5x}| & $\Exp{5x}$ & $\displaystyle \Exp{5x}$ \\
+\idxc{Log}\verb|{5}| & $\Log{5}$ & $\displaystyle \Log{5}$ \\
+\idxc{Log}\verb|[10]{5}| & $\Log[10]{5}$ & $\displaystyle \Log[10]{5}$ \\
+\idxc{Log}\verb|[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+\verb|\Style{LogBaseESymb=log}|%
+\Style{LogBaseESymb=log} \\
+\idxc{Log}\verb|{5}| & $\Log{5}$ & $\displaystyle \Log{5}$ \\
+\idxc{Log}\verb|[10]{5}| & $\Log[10]{5}$ & $\displaystyle \Log[10]{5}$ \\
+\idxc{Log}\verb|[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+\verb|\Style{LogShowBase=always}|%
+\Style{LogBaseESymb=ln}%
+\Style{LogShowBase=always} \\
+\idxc{Log}\verb|{5}| & $\Log{5}$ & $\displaystyle \Log{5}$ \\
+\idxc{Log}\verb|[10]{5}| & $\Log[10]{5}$ & $\displaystyle \Log[10]{5}$ \\
+\idxc{Log}\verb|[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+\verb|\Style{LogShowBase=at will}|%
+\Style{LogShowBase=at will} \\
+\idxc{Log}\verb|{5}| & $\Log{5}$ & $\displaystyle \Log{5}$ \\
+\idxc{Log}\verb|[10]{5}| & $\Log[10]{5}$ & $\displaystyle \Log[10]{5}$ \\
+\idxc{Log}\verb|[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+\verb|\Style{LogParen=p}|%
+\Style{LogParen=p} \\
+\idxc{Log}\verb|[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Trigonometric Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Trigonometric Functions}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Trigonometric Functions
+\idxc{Sin}\verb|{x}| & $\Sin{x}$ & $\displaystyle \Sin{x}$ \\
+\idxc{Cos}\verb|{x}| & $\Cos{x}$ & $\displaystyle \Cos{x}$ \\
+\idxc{Tan}\verb|{x}| & $\Tan{x}$ & $\displaystyle \Tan{x}$ \\
+\idxc{Csc}\verb|{x}| & $\Csc{x}$ & $\displaystyle \Csc{x}$ \\
+\idxc{Sec}\verb|{x}| & $\Sec{x}$ & $\displaystyle \Sec{x}$ \\
+\idxc{Cot}\verb|{x}| & $\Cot{x}$ & $\displaystyle \Cot{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Inverse Trigonometric Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Trigonometric Functions!Inverse}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Inverse Trigonometric Functions
+\Style{ArcTrig=inverse}%
+\verb|\Style{ArcTrig=inverse}| (default)%
+ \\
+\idxc{ArcSin}\verb|{x}| & $\ArcSin{x}$ & $\displaystyle \ArcSin{x}$ \\
+\idxc{ArcCos}\verb|{x}| & $\ArcCos{x}$ & $\displaystyle \ArcCos{x}$ \\
+\idxc{ArcTan}\verb|{x}| & $\ArcTan{x}$ & $\displaystyle \ArcTan{x}$ \\
+%
+\Style{ArcTrig=arc}%
+\verb|\Style{ArcTrig=arc}|%
+ \\
+\idxc{ArcSin}\verb|{x}| & $\ArcSin{x}$ & $\displaystyle \ArcSin{x}$ \\
+\idxc{ArcCos}\verb|{x}| & $\ArcCos{x}$ & $\displaystyle \ArcCos{x}$ \\
+\idxc{ArcTan}\verb|{x}| & $\ArcTan{x}$ & $\displaystyle \ArcTan{x}$ \\
+ \\
+\idxc{ArcCsc}\verb|{x}| & $\ArcCsc{x}$ & $\displaystyle \ArcCsc{x}$ \\
+\idxc{ArcSec}\verb|{x}| & $\ArcSec{x}$ & $\displaystyle \ArcSec{x}$ \\
+\idxc{ArcCot}\verb|{x}| & $\ArcCot{x}$ & $\displaystyle \ArcCot{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Hyberbolic Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Hyperbolic Functions}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Hyperbolic Functions
+\idxc{Sinh}\verb|{x}| & $\Sinh{x}$ & $\displaystyle \Sinh{x}$ \\
+\idxc{Cosh}\verb|{x}| & $\Cosh{x}$ & $\displaystyle \Cosh{x}$ \\
+\idxc{Tanh}\verb|{x}| & $\Tanh{x}$ & $\displaystyle \Tanh{x}$ \\
+\idxc{Csch}\verb|{x}| & $\Csch{x}$ & $\displaystyle \Csch{x}$ \\
+\idxc{Sech}\verb|{x}| & $\Sech{x}$ & $\displaystyle \Sech{x}$ \\
+\idxc{Coth}\verb|{x}| & $\Coth{x}$ & $\displaystyle \Coth{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Inverse Hyberbolic Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Hyperbolic Functions!Inverse}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Inverse Hyberbolic Functions
+\idxc{ArcSinh}\verb|{x}| & $\ArcSinh{x}$ & $\displaystyle \ArcSinh{x}$ \\
+\idxc{ArcCosh}\verb|{x}| & $\ArcCosh{x}$ & $\displaystyle \ArcCosh{x}$ \\
+\idxc{ArcTanh}\verb|{x}| & $\ArcTanh{x}$ & $\displaystyle \ArcTanh{x}$ \\
+\idxc{ArcCsch}\verb|{x}| & $\ArcCsch{x}$ & $\displaystyle \ArcCsch{x}$ \\
+\idxc{ArcSech}\verb|{x}| & $\ArcSech{x}$ & $\displaystyle \ArcSech{x}$ \\
+\idxc{ArcCoth}\verb|{x}| & $\ArcCoth{x}$ & $\displaystyle \ArcCoth{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Product Logarithms}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Lambert Function}
+\index{Lambert Function!Generalized}
+\index{Generalized Lambert Function}
+\index{Product Logarithms}
+\index{Logarithms!Product}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%%% Lambert Function
+\idxc{LambertW}\verb|{z}| & $\LambertW{z}$ & $\displaystyle \LambertW{z}$ \\
+%%%%%%%% Lambert Function
+\idxc{ProductLog}\verb|{z}| & $\ProductLog{z}$ & $\displaystyle \ProductLog{z}$ \\
+ \\
+
+%%%%%%% Generalized Lambert Function
+\idxc{LambertW}\verb|{k,z}| & $\LambertW{k,z}$ & $\displaystyle \LambertW{k,z}$ \\
+%%%%%%%% Generalized Lambert Function
+\idxc{ProductLog}\verb|{k,z}| & $\ProductLog{k,z}$ & $\displaystyle \ProductLog{k,z}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Max and Min}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Max and Min
+\idxc{Max}\verb|{1,2,3,4,5}| & $\Max{1,2,3,4,5}$ & $\displaystyle \Max{1,2,3,4,5}$ \\
+\idxc{Min}\verb|{1,2,3,4,5}| & $\Min{1,2,3,4,5}$ & $\displaystyle \Min{1,2,3,4,5}$
+\end{tabular}
+\end{center}
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Bessel, Airy, and Struve Functions}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Bessel}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Bessel functions can be `renamed' with the \verb|\Style| tag. For example, \verb|\Style{BesselYSymb=N}| yields \Style{BesselYSymb=N} $\BesselY{\nu}{x}$ \Style{BesselYSymb=Y}
+
+\index{Bessel Functions}
+
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Bessel
+% Bessel Function of the first Kind
+\idxc{BesselJ}\verb|{0}{x}| & $\BesselJ{0}{x}$ & $\displaystyle \BesselJ{0}{x}$ \\
+% Bessel Function of the second Kind
+\idxc{BesselY}\verb|{0}{x}| & $\BesselY{0}{x}$ & $\displaystyle \BesselY{0}{x}$ \\
+% Modified Bessel Function of the first Kind
+\idxc{BesselI}\verb|{0}{x}| & $\BesselI{0}{x}$ & $\displaystyle \BesselI{0}{x}$ \\
+% Modified Bessel Function of the second Kind
+\idxc{BesselK}\verb|{0}{x}| & $\BesselK{0}{x}$ & $\displaystyle \BesselK{0}{x}$ \\
+\end{tabular}
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Airy}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Airy Functions}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Airy
+\idxc{AiryAi}\verb|{x}| & $\AiryAi{x}$ & $\displaystyle \AiryAi{x}$ \\
+\idxc{AiryBi}\verb|{x}| & $\AiryBi{x}$ & $\displaystyle \AiryBi{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Struve}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Struve Functions}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Struve
+\idxc{StruveH}\verb|{\nu}{x}| & $\StruveH{\nu}{x}$ & $\displaystyle \StruveH{\nu}{x}$ \\
+\idxc{StruveL}\verb|{\nu}{x}| & $\StruveL{\nu}{x}$ & $\displaystyle \StruveL{\nu}{x}$
+\end{tabular}
+\end{center}
+
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Integer Functions}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+% Floor
+\idxc{Floor}\verb|{x}| & $\Floor{x}$ & $\displaystyle \Floor{x}$ \\
+\idxc{Ceiling}\verb|{x}| & $\Ceiling{x}$ & $\displaystyle \Ceiling{x}$ \\
+\idxc{Round}\verb|{x}| & $\Round{x}$ & $\displaystyle \Round{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{int@\textrm{int}|see{\texttt{\bs iPart}}}
+\index{frac@\textrm{frac}|see{\texttt{\bs fPart}}}
+
+\begin{center}
+\begin{tabular}{ccc}
+\idxc{iPart}\verb|{x}| & $\iPart{x}$ & $\displaystyle \iPart{x}$ \\
+\idxc{IntegerPart}\verb|{x}| & $\IntegerPart{x}$ & $\displaystyle \IntegerPart{x}$ \\
+\idxc{fPart}\verb|{x}| & $\fPart{x}$ & $\displaystyle \fPart{x}$ \\
+\idxc{FractionalPart}\verb|{x}| & $\FractionalPart{x}$ & $\displaystyle \FractionalPart{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Greatest Common Divisor}
+\index{Least Common Multiple}
+
+\begin{center}
+\begin{tabular}{ccc}
+\verb|\Style{ModDisplay=mod}| (default)%
+\Style{ModDisplay=mod} \\
+\idxc{Mod}\verb|{m}{n}| & $\Mod{m}{n}$ & $\displaystyle \Mod{m}{n}$ \\
+\verb|\Style{ModDisplay=bmod}|%
+\Style{ModDisplay=bmod} \\
+\idxc{Mod}\verb|{m}{n}| & $\Mod{m}{n}$ & $\displaystyle \Mod{m}{n}$ \\
+\verb|\Style{ModDisplay=pmod}|%
+\Style{ModDisplay=pmod} \\
+\idxc{Mod}\verb|{m}{n}| & $\Mod{m}{n}$ & $\displaystyle \Mod{m}{n}$ \\
+\verb|\Style{ModDisplay=pod}|%
+\Style{ModDisplay=pod} \\
+\idxc{Mod}\verb|{m}{n}| & $\Mod{m}{n}$ & $\displaystyle \Mod{m}{n}$ \\
+ \\
+\idxc{Quotient}\verb|{m}{n}| & $\Quotient{m}{n}$ & $\displaystyle \Quotient{m}{n}$ \\
+\idxc{GCD}\verb|{m, n}| & $\GCD{m, n}$ & $\displaystyle \GCD{m, n}$ \\
+\idxc{ExtendedGCD}\verb|{m}{n}| & $\ExtendedGCD{m}{n}$ & $\displaystyle \ExtendedGCD{m}{n}$ \\
+\idxc{EGCD}\verb|{m}{n}| & $\EGCD{m}{n}$ & $\displaystyle \EGCD{m}{n}$ \\
+\idxc{LCM}\verb|{m, n}| & $\LCM{m, n}$ & $\displaystyle \LCM{m, n}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Fibonacci Number}
+
+\begin{center}
+\begin{tabular}{ccc}
+\idxc{Fibonacci}\verb|{\nu}| & $\Fibonacci{\nu}$ & $\displaystyle \Fibonacci{\nu}$ \\
+\idxc{Euler}\verb|{m}| & $\Euler{m}$ & $\displaystyle \Euler{m}$ \\
+\idxc{Bernoulli}\verb|{m}| & $\Bernoulli{m}$ & $\displaystyle \Bernoulli{m}$ \\
+\idxc{StirlingSOne}\verb|{n}{m}| & $\StirlingSOne{n}{m}$ & $\displaystyle \StirlingSOne{n}{m}$ \\
+\idxc{StirlingSTwo}\verb|{n}{m}| & $\StirlingSTwo{n}{m}$ & $\displaystyle \StirlingSTwo{n}{m}$ \\
+\idxc{PartitionsP}\verb|{n}| & $\PartitionsP{n}$ & $\displaystyle \PartitionsP{n}$ \\
+\idxc{PartitionsQ}\verb|{n}| & $\PartitionsQ{n}$ & $\displaystyle \PartitionsQ{n}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\idxc{DiscreteDelta}\verb|{n, m}| & $\DiscreteDelta{n, m}$ & $\displaystyle \DiscreteDelta{n, m}$
+ \\
+\idxc{KroneckerDelta}\verb|{n m}| & $\KroneckerDelta{n m}$ & $\displaystyle \KroneckerDelta{n m}$
+ \\
+\idxc{KroneckerDelta}\verb|[d]{n m}| & $\KroneckerDelta[d]{n m}$ & $\displaystyle \KroneckerDelta[d]{n m}$
+ \\
+\idxc{LeviCivita}\verb|{i j k}| & $\LeviCivita{i j k}$ & $\displaystyle \LeviCivita{i j k}$
+ \\
+\idxc{LeviCivita}\verb|[d]{i j k}| & $\LeviCivita[d]{i j k}$ & $\displaystyle \LeviCivita[d]{i j k}$
+ \\
+\idxc{Signature}\verb|{i j k}| & $\Signature{i j k}$ & $\displaystyle \Signature{i j k}$
+ \\
+\verb|\Style{LeviCivitaIndicies=up}|%
+\Style{LeviCivitaIndicies=up} \\
+\idxc{LeviCivita}\verb|[d]{i j k}| & $\LeviCivita[d]{i j k}$ & $\displaystyle \LeviCivita[d]{i j k}$
+ \\
+\verb|\Style{LeviCivitaIndicies=local}|%
+\Style{LeviCivitaIndicies=local} \\
+\idxc{LeviCivita}\verb|[d]{i j k}| & $\LeviCivita[d]{i j k}$ & $\displaystyle \LeviCivita[d]{i j k}$
+ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Polynomials}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Polynomials can be `renamed' with the \verb|\Style| command:
+
+\begin{center}
+\verb|\Style{| $\langle\mbox{\textit{Polynomial command} }\rangle$%
+ \verb|Symb=|$\langle\mbox{\textit{Symbol} }\rangle$%
+ \verb|}|
+\end{center}
+
+As in \verb|\Style{HermiteHSymb=h,LegendrePSymb=p}| \verb|$\HermiteH{n}{x}$| \verb|$\LegendreP{n,x}$| yielding:
+\Style{HermiteHSymb=h,LegendrePSymb=p} $\HermiteH{n}{x}$ $\LegendreP{n,x}$
+\Style{HermiteHSymb=H,LegendrePSymb=P}
+
+\index{Polynomials!Hermite}
+\index{Polynomials!Laugerre}
+\index{Polynomials!Legendre}
+\index{Polynomials!Chebyshev}
+\index{Polynomials!Jacobi}
+\index{Polynomials!Gegenbauer}
+\index{Polynomials!Cyclotomic}
+\index{Polynomials!Fibonacci}
+\index{Polynomials!Euler}
+\index{Polynomials!Bernoulli}
+\index{Generalized Laugerre}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+% Hermite H
+\idxc{HermiteH}\verb|{n}{x}| & $\HermiteH{n}{x}$ & $\displaystyle \HermiteH{n}{x}$ \\
+% Laugerre L
+\idxc{LaugerreL}\verb|{n,x}| & $\LaugerreL{n,x}$ & $\displaystyle \LaugerreL{n,x}$ \\
+% Legendre P
+\idxc{LegendreP}\verb|{n,x}| & $\LegendreP{n,x}$ & $\displaystyle \LegendreP{n,x}$ \\
+% Chebyshev T
+\idxc{ChebyshevT}\verb|{n}{x}| & $\ChebyshevT{n}{x}$ & $\displaystyle \ChebyshevT{n}{x}$ \\
+% Chebyshev U
+\idxc{ChebyshevU}\verb|{n}{x}| & $\ChebyshevU{n}{x}$ & $\displaystyle \ChebyshevU{n}{x}$ \\
+% Jacobi P
+\idxc{JacobiP}\verb|{n}{a}{b}{x}| & $\JacobiP{n}{a}{b}{x}$& $\displaystyle \JacobiP{n}{a}{b}{x}$ \\
+ \\
+% Associated Legendre P
+\idxc{AssocLegendreP}\verb|{\ell}{m}{x}|
+ & $\AssocLegendreP{\ell}{m}{x}$
+ & $\displaystyle \AssocLegendreP{\ell}{m}{x}$
+ \\
+% Associated Legendre Q
+\idxc{AssocLegendreQ}\verb|{\ell}{m}{x}|
+ & $\AssocLegendreQ{\ell}{m}{x}$
+ & $\displaystyle \AssocLegendreQ{\ell}{m}{x}$
+ \\
+% Generalized Laugerre Polynomial
+\idxc{LaugerreL}\verb|{n,\lambda,x}|
+ & $\LaugerreL{n,\lambda,x}$
+ & $\displaystyle \LaugerreL{n,\lambda,x}$
+ \\
+% Gegenbauer Polynomial
+\idxc{GegenbauerC}\verb|{n}{\lambda}{x}|
+ & $\GegenbauerC{n}{\lambda}{x}$
+ & $\displaystyle \GegenbauerC{n}{\lambda}{x}$
+ \\
+% Spherical Harmonics
+\idxc{SphericalHarmY}\verb|{n}{m}{\theta}{\phi}|
+ & $\SphericalHarmY{n}{m}{\theta}{\phi}$
+ & $\displaystyle \SphericalHarmY{n}{m}{\theta}{\phi}$
+ \\
+ \\
+% Cyclotomic
+\idxc{CyclotomicC}\verb|{n}{x}| & $\CyclotomicC{n}{x}$ & $\displaystyle \CyclotomicC{n}{x}$ \\
+% Fibonacci
+\idxc{FibonacciF}\verb|{n}{x}| & $\FibonacciF{n}{x}$ & $\displaystyle \FibonacciF{n}{x}$ \\
+% Euler
+\idxc{EulerE}\verb|{n}{x}| & $\EulerE{n}{x}$ & $\displaystyle \EulerE{n}{x}$ \\
+% Bernoulli
+\idxc{BernoulliB}\verb|{n}{x}| & $\BernoulliB{n}{x}$ & $\displaystyle \BernoulliB{n}{x}$ \\
+\end{tabular}
+\end{center}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Gamma, Beta, and Error Functions}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Factorials}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%% Gamma, Beta, Error Functions
+\begin{center}
+
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Factorial
+\idxc{Factorial}\verb|{n}| & $\Factorial{n}$ & $\displaystyle \Factorial{n}$ \\
+\idxc{DblFactorial}\verb|{n}| & $\DblFactorial{n}$ & $\displaystyle \DblFactorial{n}$ \\
+\idxc{Binomial}\verb|{n}{k}| & $\Binomial{n}{k}$ & $\displaystyle \Binomial{n}{k}$ \\
+\idxc{Multinomial}\verb|{1,2,3,4}| & $\Multinomial{1,2,3,4}$
+ & $\displaystyle \Multinomial{1,2,3,4}$ \\
+\end{tabular}
+
+\vspace{0.25cm}
+
+\begin{tabular}{c}
+\idxc{Multinomial}\verb|{n_1, n_2, \ldots, n_m}|
+\\
+ \begin{tabular}{cc}
+ {\bf Inline:} & $\Multinomial{n_1,n_2,\ldots,n_m}$ \\
+ {\bf Display:} & $\displaystyle \Multinomial{n_1, n_2, \ldots, n_m}$ \\
+ \end{tabular}
+\\
+\\
+\end{tabular}
+
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Gamma Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Incomplete Gamma Function}
+\index{Gamma Functions}
+\index{Gamma Functions!Inverse}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Gamma Functions
+\idxc{GammaFunc}\verb|{x}| & $\GammaFunc{x}$ & $\displaystyle \GammaFunc{x}$ \\
+% incomplete Gamma function G(a,x)
+\idxc{IncGamma}\verb|{a}{x}| & $\IncGamma{a}{x}$ & $\displaystyle \IncGamma{a}{x}$ \\
+% Generalized Incomplete Gamma G(a, x, y)
+\idxc{GenIncGamma}\verb|{a}{x}{y}| & $\GenIncGamma{a}{x}{y}$
+ & $\displaystyle \GenIncGamma{a}{x}{y}$ \\
+% Regularized Incomplete Gamma Q(a,x)
+\idxc{RegIncGamma}\verb|{a}{x}| & $\RegIncGamma{a}{x}$ & $\displaystyle \RegIncGamma{a}{x}$ \\
+% Inverse of Regularized Incomplete Gamma InvQ(a,x)
+% \ArcRegIncGamma
+\idxc{RegIncGammaInv}\verb|{a}{x}| & $\RegIncGammaInv{a}{x}$
+ & $\displaystyle \RegIncGammaInv{a}{x}$ \\
+% Generalized Regularized Incomplete Gamma Q(a, x, y)
+\idxc{GenRegIncGamma}\verb|{a}{x}{y}|
+ & $\GenRegIncGamma{a}{x}{y}$
+ & $\displaystyle \GenRegIncGamma{a}{x}{y}$
+ \\
+% Inverse of Gen. Reg. Incomplete Gamma InvQ(a, x, y)
+% \ArcGenRegIncGamma
+\idxc{GenRegIncGammaInv}\verb|{a}{x}{y}|
+ & $\GenRegIncGammaInv{a}{x}{y}$
+ & $\displaystyle \GenRegIncGammaInv{a}{x}{y}$
+ \\
+% Pochhammer Symbol (a)_n
+\idxc{Pochhammer}\verb|{a}{n}| & $\Pochhammer{a}{n}$ & $\displaystyle \Pochhammer{a}{n}$ \\
+% Log Gamma Func
+\idxc{LogGamma}\verb|{x}| & $\LogGamma{x}$ & $\displaystyle \LogGamma{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Derivatives of Gamma Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Derivatives!of Gamma Functions}
+\index{Beta Functions}
+\index{Beta Functions!Inverse}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Derivative of Gamma Functions
+% Digamma function
+\idxc{DiGamma}\verb|{x}| & $\DiGamma{x}$ & $\displaystyle \DiGamma{x}$ \\
+% PolyGamma function psi^(\nu) (x)
+\idxc{PolyGamma}\verb|{\nu}{x}| & $\PolyGamma{\nu}{x}$ & $\displaystyle \PolyGamma{\nu}{x}$ \\
+% Harmonic Number H_x
+\idxc{HarmNum}\verb|{x}| & $\HarmNum{x}$ & $\displaystyle \HarmNum{x}$ \\
+% Generalized Harmonic Number H_x^(r)
+\idxc{HarmNum}\verb|{x,r}| & $\HarmNum{x,r}$ & $\displaystyle \HarmNum{x,r}$ \\
+% Beta Function B(a, b)
+\idxc{Beta}\verb|{a,b}| & $\Beta{a,b}$ & $\displaystyle \Beta{a,b}$ \\
+% Incomplete Beta Function B_z(a, b)
+\idxc{IncBeta}\verb|{z}{a}{b}| & $\IncBeta{z}{a}{b}$ & $\displaystyle \IncBeta{z}{a}{b}$ \\
+% Generalized Inc. Beta Func. B_(x,y) (a, b)
+\idxc{GenIncBeta}\verb|{x}{y}{a}{b}|
+ & $\GenIncBeta{x}{y}{a}{b}$
+ & $\displaystyle \GenIncBeta{x}{y}{a}{b}$
+ \\
+% Regularized Incomplete Beta Function I_z(a,b)
+\idxc{RegIncBeta}\verb|{z}{a}{b}| & $\RegIncBeta{z}{a}{b}$
+ & $\displaystyle \RegIncBeta{z}{a}{b}$ \\
+% Inverse of Reg. Incomplete Beta Function InvI_z(a,b)
+% \ArcRegIncBeta
+\idxc{RegIncBetaInv}\verb|{z}{a}{b}|
+ & $\RegIncBetaInv{z}{a}{b}$
+ & $\displaystyle \RegIncBetaInv{z}{a}{b}$
+ \\
+% Gen. Regularized Inc. Beta Func. I_(x,y) (a, b)
+\idxc{GenRegIncBeta}\verb|{x}{y}{a}{b}|
+ & $\GenRegIncBeta{x}{y}{a}{b}$
+ & $\displaystyle \GenRegIncBeta{x}{y}{a}{b}$
+ \\
+% Inv. of Gen. Reg. Inc. Beta InvI_(x,y) (a, b)
+%\ArcGenRegIncBeta
+\idxc{GenRegIncBetaInv}\verb|{x}{y}{a}{b}|
+ & $\GenRegIncBetaInv{x}{y}{a}{b}$
+ & $\displaystyle \GenRegIncBetaInv{x}{y}{a}{b}$
+ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Error Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Error Functions}
+\index{Error Functions!Inverse}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Error Functions
+% Error Function
+\idxc{Erf}\verb|{x}| & $\Erf{x}$ & $\displaystyle \Erf{x}$ \\
+% Inverse of Error Function
+%\ArcErf
+\idxc{InvErf}\verb|{x}| & $\ErfInv{x}$ & $\displaystyle \ErfInv{x}$ \\
+% Generalized Error Function
+\idxc{GenErf}\verb|{x}|{y} & $\GenErf{x}{y}$ & $\displaystyle \GenErf{x}{y}$ \\
+% Inverse of Generalized Error Function
+%\ArcGenErf
+\idxc{GenErfInv}\verb|{x}{y}| & $\GenErfInv{x}{y}$ & $\displaystyle \GenErfInv{x}{y}$ \\
+% Complimentary Error Function
+\idxc{Erfc}\verb|{x}| & $\Erfc{x}$ & $\displaystyle \Erfc{x}$ \\
+% Inverse of Complimentary Error Function
+% \ArcErfc
+\idxc{ErfcInv}\verb|{x}| & $\ErfcInv{x}$ & $\displaystyle \ErfcInv{x}$ \\
+% Imaginary Error Function
+\idxc{Erfi}\verb|{x}| & $\Erfi{x}$ & $\displaystyle \Erfi{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Fresnel Integrals}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Fresnel Integrals}
+\index{Integrals!Fresnel}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Fresnel
+\idxc{FresnelS}\verb|{x}| & $\FresnelS{x}$ & $\displaystyle \FresnelS{x}$ \\
+\idxc{FresnelC}\verb|{x}| & $\FresnelC{x}$ & $\displaystyle \FresnelC{x}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Exponential Integrals}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Exponential Integrals}
+\index{Integrals!Exponential}
+
+\begin{center}
+\begin{tabular}{ccc}
+%%%%%% Exponential Integrals
+% Exponential Integral E_\nu (x)
+\idxc{ExpIntE}\verb|{\nu}{x}| & $\ExpIntE{\nu}{x}$ & $\displaystyle \ExpIntE{\nu}{x}$ \\
+% Exponential Integral Ei(x)
+\idxc{ExpIntEi}\verb|{x}| & $\ExpIntEi{x}$ & $\displaystyle \ExpIntEi{x}$ \\
+% Logarithmic Integral li(x)
+\idxc{LogInt}\verb|{x}| & $\LogInt{x}$ & $\displaystyle \LogInt{x}$ \\
+% Sine Integral
+\idxc{SinInt}\verb|{x}| & $\SinInt{x}$ & $\displaystyle \SinInt{x}$ \\
+% Cosine Integral
+\idxc{CosInt}\verb|{x}| & $\CosInt{x}$ & $\displaystyle \CosInt{x}$ \\
+% Hyperbolic Sine Integral
+\idxc{SinhInt}\verb|{x}| & $\SinhInt{x}$ & $\displaystyle \SinhInt{x}$ \\
+% Hyperbolic Cosine Integral
+\idxc{CoshInt}\verb|{x}| & $\CoshInt{x}$ & $\displaystyle \CoshInt{x}$ \\
+\end{tabular}
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Hypergeometric Functions}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Hypergeometric Function}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Hypergeometric Functions}
+
+\begin{center}
+\begin{tabular}{c}
+\idxc{Hypergeometric}\verb|{0}{0}{}{}{x}|
+\\
+ \begin{tabular}{cc}
+ $\Hypergeometric{0}{0}{}{}{x}$ & $\displaystyle \Hypergeometric{0}{0}{}{}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{Hypergeometric}\verb|{0}{1}{}{b}{x}|
+\\
+ \begin{tabular}{cc}
+ $\Hypergeometric{0}{1}{}{b}{x}$ & $\displaystyle \Hypergeometric{0}{1}{}{b}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{Hypergeometric}\verb|{1}{1}{a}{b}{x}|
+\\
+ \begin{tabular}{cc}
+ $\Hypergeometric{1}{1}{a}{b}{x}$ & $\displaystyle \Hypergeometric{1}{1}{a}{b}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{Hypergeometric}\verb|{1}{1}{1}{1}{x}|
+\\
+ \begin{tabular}{cc}
+ $\Hypergeometric{1}{1}{1}{1}{x}$ & $\displaystyle \Hypergeometric{1}{1}{1}{1}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{Hypergeometric}\verb|{3}{5}{a}{b}{x}|
+\\
+ \begin{tabular}{cc}
+ $\Hypergeometric{3}{5}{a}{b}{x}$ & $\displaystyle \Hypergeometric{3}{5}{a}{b}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{Hypergeometric}\verb|{3}{5}{1,2,3}{1,2,3,4,5}{x}|
+\\
+ \begin{tabular}{cc}
+ $\Hypergeometric{3}{5}{1,2,3}{1,2,3,4,5}{x}$ & $\displaystyle \Hypergeometric{3}{5}{1,2,3}{1,2,3,4,5}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{Hypergeometric}\verb|{p}{5}{a}{b}{x}|
+\\
+ \begin{tabular}{cc}
+ $\Hypergeometric{p}{5}{a}{b}{x}$ & $\displaystyle \Hypergeometric{p}{5}{a}{b}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{Hypergeometric}\verb|{p}{3}{a}{1,2,3}{x}|
+\\
+ \begin{tabular}{cc}
+ $\Hypergeometric{p}{3}{a}{1,2,3}{x}$ $\displaystyle \Hypergeometric{p}{3}{a}{1,2,3}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{Hypergeometric}\verb|{p}{q}{a}{b}{x}|
+\\
+ \begin{tabular}{cc}
+ $\Hypergeometric{p}{q}{a}{b}{x}$ & $\displaystyle \Hypergeometric{p}{q}{a}{b}{x}$ \\
+
+ \end{tabular}
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Regularized Hypergeometric Function}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Hypergeometric Functions!Regularized}
+
+\begin{center}
+\begin{tabular}{c}
+\idxc{RegHypergeometric}\verb|{0}{0}{}{}{x}|
+\\
+ \begin{tabular}{cc}
+ $\RegHypergeometric{0}{0}{}{}{x}$ & $\displaystyle \RegHypergeometric{0}{0}{}{}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{RegHypergeometric}\verb|{0}{1}{}{b}{x}|
+\\
+ \begin{tabular}{cc}
+ $\RegHypergeometric{0}{1}{}{b}{x}$ & $\displaystyle \RegHypergeometric{0}{1}{}{b}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{RegHypergeometric}\verb|{3}{5}{a}{b}{x}|
+\\
+ \begin{tabular}{cc}
+ $\RegHypergeometric{3}{5}{a}{b}{x}$ & $\displaystyle \RegHypergeometric{3}{5}{a}{b}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{RegHypergeometric}\verb|{3}{5}{1,2,3}{1,2,3,4,5}{x}|
+\\
+ \begin{tabular}{cc}
+ $\RegHypergeometric{3}{5}{1,2,3}{1,2,3,4,5}{x}$ & $\displaystyle \RegHypergeometric{3}{5}{1,2,3}{1,2,3,4,5}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{RegHypergeometric}\verb|{p}{5}{a}{b}{x}|
+\\
+ \begin{tabular}{cc}
+ $\RegHypergeometric{p}{5}{a}{b}{x}$ & $\displaystyle \RegHypergeometric{p}{5}{a}{b}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{RegHypergeometric}\verb|{p}{3}{a}{1,2,3}{x}|
+\\
+ \begin{tabular}{cc}
+ $\RegHypergeometric{p}{3}{a}{1,2,3}{x}$ & $\displaystyle \RegHypergeometric{p}{3}{a}{1,2,3}{x}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{RegHypergeometric}\verb|{p}{q}{a}{b}{x}|
+\\
+ \begin{tabular}{cc}
+ $\RegHypergeometric{p}{q}{a}{b}{x}$ & $\displaystyle \RegHypergeometric{p}{q}{a}{b}{x}$ \\
+
+ \end{tabular}
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Meijer G-Function}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Meijer G-Function}
+\index{G-Function}
+
+\begin{center}
+\begin{tabular}{c}
+\idxc{MeijerG}\verb|[a,b]{n}{p}{m}{q}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[a,b]{n}{p}{m}{q}{x}$
+ & $\displaystyle \MeijerG[a,b]{n}{p}{m}{q}{x}$
+ \end{tabular}
+\\
+\end{tabular}
+
+\vspace{0.5cm}
+
+\begin{tabular}{c}
+\idxc{MeijerG}\verb|{1,2,3,4}{5,6}{3,6,9}{12,15,18,21,24}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG{1,2,3,4}{5,6}{3,6,9}{12,15,18,21,24}{x}$
+ & $\displaystyle \MeijerG{1,2,3,4}{5,6}{3,6,9}{12,15,18,21,24}{x}$
+ \end{tabular}
+\\
+\\
+\idxc{MeijerG}\verb|[a,b]{4}{6}{3}{8}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[a,b]{4}{6}{3}{8}{x}$
+ & $\displaystyle \MeijerG[a,b]{4}{6}{3}{8}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{MeijerG}\verb|[a,b]{4}{p}{3}{8}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[a,b]{4}{p}{3}{8}{x}$
+ & $\displaystyle \MeijerG[a,b]{4}{p}{3}{8}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{MeijerG}\verb|[a,b]{n}{p}{3}{8}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[a,b]{n}{p}{3}{8}{x}$
+ & $\displaystyle \MeijerG[a,b]{n}{p}{3}{8}{x}$
+ \\
+ \end{tabular}
+\\
+\end{tabular}
+
+\begin{tabular}{c}
+\idxc{MeijerG}\verb|[a]{4}{6}{3,6,9}{12,15,18,21,24}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[a]{4}{6}{3,6,9}{12,15,18,21,24}{x}$
+ & $\displaystyle \MeijerG[a]{4}{6}{3,6,9}{12,15,18,21,24}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{MeijerG}\verb|[a]{4}{p}{3,6,9}{12,15,18,21,24}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[a]{4}{p}{3,6,9}{12,15,18,21,24}{x}$
+ & $\displaystyle \MeijerG[a]{4}{p}{3,6,9}{12,15,18,21,24}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{MeijerG}\verb|[a]{n}{6}{3,6,9}{12,15,18,21,24}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[a]{n}{6}{3,6,9}{12,15,18,21,24}{x}$
+ & $\displaystyle \MeijerG[a]{n}{6}{3,6,9}{12,15,18,21,24}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{MeijerG}\verb|[a]{n}{p}{3,6,9}{12,15,18,21,24}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[a]{n}{p}{3,6,9}{12,15,18,21,24}{x}$
+ & $\displaystyle \MeijerG[a]{n}{p}{3,6,9}{12,15,18,21,24}{x}$
+ \\
+ \end{tabular}
+\\
+\end{tabular}
+
+\begin{tabular}{c}
+\idxc{MeijerG}\verb|[,b]{1,2,3,4}{5,6}{3}{8}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[,b]{1,2,3,4}{5,6}{3}{8}{x}$
+ & $\displaystyle \MeijerG[,b]{1,2,3,4}{5,6}{3}{8}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{MeijerG}\verb|[,b]{1,2,3,4}{5,6}{3}{q}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[,b]{1,2,3,4}{5,6}{3}{q}{x}$
+ & $\displaystyle \MeijerG[,b]{1,2,3,4}{5,6}{3}{q}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{MeijerG}\verb|[,b]{1,2,3,4}{5,6}{m}{q}{x}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[,b]{1,2,3,4}{5,6}{m}{q}{x}$
+ & $\displaystyle \MeijerG[,b]{1,2,3,4}{5,6}{m}{q}{x}$
+ \\
+ \end{tabular}
+\\
+\\
+\end{tabular}
+
+\index{Generalized Meijer G-Function}
+\index{Meijer G-Function!Generalized}
+
+\begin{tabular}{c}
+\idxc{MeijerG}\verb|[a,b]{n}{p}{m}{q}{x, r}| \vspace{0.10cm}
+\\
+ \begin{tabular}{cc}
+ $\MeijerG[a,b]{n}{p}{m}{q}{x, r}$
+ & $\displaystyle \MeijerG[a,b]{n}{p}{m}{q}{x, r}$
+ \end{tabular}
+\\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Appell Hypergeometric Function $F_1$}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Appell Hypergeometric Function}
+\index{Hypergeometric Functions!Appell}
+
+\begin{center}
+\begin{tabular}{c}
+\idxc{AppellFOne}\verb|{a}{b_1, b_2}{c}{x, y}|
+\\
+ \begin{tabular}{cc}
+ $\AppellFOne{a}{b_1,b_2}{c}{x,y}$ & $\displaystyle \AppellFOne{a}{b_1, b_2}{c}{x, y}$ \\
+ \end{tabular}
+\end{tabular}
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Tricomi Confluent Hypergeometric Function}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Tricomi Confluent Hypergeometric Function}
+\index{Hypergeometric Functions!Tricomi Confluent}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+\idxc{HypergeometricU}\verb|{a}{b}{x}|
+ & $\HypergeometricU{a}{b}{x}$
+ & $\displaystyle \HypergeometricU{a}{b}{x}$ \\
+\end{tabular}
+\end{center}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Angular Momentum Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Clebsch-Gordon Coefficients}
+\index{6-j Symbol}
+\index{Six-j Symbol@6-j Symbol}
+\index{Racah 6-j Symbol}
+\index{3-j Symbol}
+\index{Three-j Symbol@3-j Symbol}
+\index{Wigner 3-j Symbol}
+
+
+\begin{center}
+\begin{tabular}{c}
+\idxc{ClebschGordon}\verb|{j_1,m_1}{j_2,m_2}{j,m}|
+\\
+ \begin{tabular}{cc}
+ $\ClebschGordon{j_1, m_1}{j_2, m_2}{j, m}$ & $\displaystyle \ClebschGordon{j_1, m_1}{j_2, m_2}{j, m}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{SixJSymbol}\verb|{j_1,j_2,j_3}{j_4,j_5,j_6}|
+\\
+ \begin{tabular}{cc}
+ $\SixJSymbol{j_1,j_2,j_3}{j_4,j_5,j_6}$ & $\displaystyle \SixJSymbol{j_1,j_2,j_3}{j_4,j_5,j_6}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{ThreeJSymbol}\verb|{j_1,m_1}{j_2,m_2}{j_3,m_3}|
+\\
+ \begin{tabular}{cc}
+ $\ThreeJSymbol{j_1,m_1}{j_2,m_2}{j_3,m_3}$ & $\displaystyle \ThreeJSymbol{j_1,m_1}{j_2,m_2}{j_3,m_3}$
+ \\
+ \end{tabular}
+\end{tabular}
+\end{center}
+
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Elliptic Integrals}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Elliptic!Integrals}
+\index{Integrals!Elliptic}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Complete Elliptic Integrals}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Complete Elliptic Integrals}
+\index{Integrals!Elliptic!Complete}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Complete Elliptic Integrals
+% Complete Elliptic Integral of the First Kind
+\idxc{EllipticK}\verb|{x}| & $\EllipticK{x}$ & $\displaystyle \EllipticK{x}$ \\
+% Complete Elliptic Integral of the Second Kind
+\idxc{EllipticE}\verb|{x}| & $\EllipticE{x}$ & $\displaystyle \EllipticE{x}$ \\
+% Complete Elliptic Integral of the Third Kind
+\idxc{EllipticPi}\verb|{n,m}| & $\EllipticPi{n,m}$ & $\displaystyle \EllipticPi{n,m}$ \\
+\end{tabular}
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Incomplete Elliptic Integrals}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Incomplete Elliptic Integrals}
+\index{Integrals!Elliptic!Incomplete}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Incomplete Elliptic Integrals
+% Incomplete Elliptic Integral of the First Kind
+\idxc{IncEllipticF}\verb|{x}{m}| & $\IncEllipticF{x}{m}$ & $\displaystyle \IncEllipticF{x}{m}$ \\
+% Incomplete Elliptic Integral of the Second Kind
+\idxc{IncEllipticE}\verb|{x}{m}| & $\IncEllipticE{x}{m}$ & $\displaystyle \IncEllipticE{x}{m}$ \\
+% Complete Elliptic Integral of the Third Kind
+\idxc{IncEllipticPi}\verb|{n}{x}{m}|
+ & $\IncEllipticPi{n}{x}{m}$
+ & $\displaystyle \IncEllipticPi{n}{x}{m}$
+ \\
+\idxc{JacobiZeta}\verb|{x}{m}| & $\JacobiZeta{x}{m}$ & $\displaystyle \JacobiZeta{x}{m}$ \\
+\end{tabular}
+\end{center}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Elliptic Functions}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Elliptic!Functions}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Jacobi Theta Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Theta Functions!Jacobi}
+\index{Jacobi Theta Functions}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Jacobi Theta Functions
+% Jacobi Theta 1 .. 4
+\idxc{EllipticTheta}\verb|{1}{x}{q}|
+ & $\EllipticTheta{1}{x}{q}$
+ & $\displaystyle \EllipticTheta{1}{x}{q}$
+ \\
+% Jacobi Theta 1 ... 4 (Alternate Notation)
+\idxc{JacobiTheta}\verb|{1}{x}{q}| & $\JacobiTheta{1}{x}{q}$
+ & $\displaystyle \JacobiTheta{1}{x}{q}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Neville Theta Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Theta Functions!Neville}
+\index{Neville Theta Functions}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Neville Theta Functions
+% Neville Theta D
+\idxc{NevilleThetaC}\verb|{x}{m}| & $\NevilleThetaC{x}{m}$
+ & $\displaystyle \NevilleThetaC{x}{m}$ \\
+\idxc{NevilleThetaD}\verb|{x}{m}| & $\NevilleThetaD{x}{m}$
+ & $\displaystyle \NevilleThetaD{x}{m}$ \\
+\idxc{NevilleThetaN}\verb|{x}{m}| & $\NevilleThetaN{x}{m}$
+ & $\displaystyle \NevilleThetaN{x}{m}$ \\
+\idxc{NevilleThetaS}\verb|{x}{m}| & $\NevilleThetaS{x}{m}$
+ & $\displaystyle \NevilleThetaS{x}{m}$ \\
+\end{tabular}
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Weierstrass Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Weierstrass Functions}
+
+\begin{center}
+\begin{tabular}{c}
+%%%%%% Weierstrass Functions
+\idxc{WeierstrassP}\verb|{z}{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassP{z}{g_2,g_3}$ & $\displaystyle \WeierstrassP{z}{g_2,g_3}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{WeierstrassPInv}\verb|{z}{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassPInv{z}{g_2,g_3}$ & $\displaystyle \WeierstrassPInv{z}{g_2,g_3}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{WeierstrassPGenInv}\verb|{z_1}{z_2}{g_2}{g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassPGenInv{z_1}{z_2}{g_2}{g_3}$
+ & $\displaystyle \WeierstrassPGenInv{z_1}{z_2}{g_2}{g_3}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{WeierstrassSigma}\verb|{z}{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassSigma{z}{g_2,g_3}$ & $\displaystyle \WeierstrassSigma{z}{g_2,g_3}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{AssocWeierstrassSigma}\verb|{n}{z}{g_2}{g_3}|
+\\
+\idxc{WeiSigma}\verb|{n,z}{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\AssocWeierstrassSigma{n}{z}{g_2}{g_3}$
+ & $\displaystyle \WeiSigma{n,z}{g_2,g_3}$
+ \\
+ \end{tabular}
+\\
+\\
+\idxc{WeierstrassZeta}\verb|{z}{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassZeta{z}{g_2,g_3}$ & $\displaystyle \WeierstrassZeta{z}{g_2,g_3}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{WeierstrassHalfPeriods}\verb|{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassHalfPeriods{g_2,g_3}$ & $\displaystyle \WeierstrassHalfPeriods{g_2,g_3}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{WeierstrassInvariants}\verb|{\omega_1,\omega_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassInvariants{\omega_1,\omega_3}$
+ & $\displaystyle \WeierstrassInvariants{\omega_1,\omega_3}$
+ \\
+ \end{tabular}
+\\
+\end{tabular}
+
+\vspace{1.0cm}
+
+\begin{tabular}{c}
+\verb|\Style{WeierstrassPHalfPeriodValuesDisplay=sf}| (Default)%
+\Style{WeierstrassPHalfPeriodValuesDisplay=sf}
+\\
+\idxc{WeierstrassPHalfPeriodValues}\verb|{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassPHalfPeriodValues{g_2,g_3}$
+ & $\displaystyle \WeierstrassPHalfPeriodValues{g_2,g_3}$
+ \\
+ \end{tabular}
+\\
+\\
+\\
+\verb|\Style{WeierstrassPHalfPeriodValuesDisplay=ff}|%
+\Style{WeierstrassPHalfPeriodValuesDisplay=ff}
+\\
+\idxc{WeierstrassPHalfPeriodValues}\verb|{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassPHalfPeriodValues{g_2,g_3}$
+ & $\displaystyle \WeierstrassPHalfPeriodValues{g_2,g_3}$
+ \\
+ \end{tabular}
+\\
+\end{tabular}
+
+\vspace{1cm}
+
+\begin{tabular}{c}
+\verb|\Style{WeierstrassZetaHalfPeriodValuesDisplay=sf}| (Default)%
+\Style{WeierstrassZetaHalfPeriodValuesDisplay=sf}
+\\
+\idxc{WeierstrassZetaHalfPeriodValues}\verb|{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassZetaHalfPeriodValues{g_2,g_3}$
+ & $\displaystyle \WeierstrassZetaHalfPeriodValues{g_2,g_3}$
+ \\
+ \end{tabular}
+\\
+\\
+\\
+\verb|\Style{WeierstrassZetaHalfPeriodValuesDisplay=ff}|%
+\Style{WeierstrassZetaHalfPeriodValuesDisplay=ff}
+\\
+\idxc{WeierstrassZetaHalfPeriodValues}\verb|{g_2,g_3}|
+\\
+ \begin{tabular}{cc}
+ $\WeierstrassZetaHalfPeriodValues{g_2,g_3}$
+ & $\displaystyle \WeierstrassZetaHalfPeriodValues{g_2,g_3}$
+ \\
+ \end{tabular}
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Jacobi Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Jacobi Functions}
+\index{Jacobi Functions!Inverse}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Jacobi Functions
+% am(z | m)
+\idxc{JacobiAmplitude}\verb|{z}{m}| & $\JacobiAmplitude{z}{m}$
+ & $\displaystyle \JacobiAmplitude{z}{m}$
+ \\
+% cd(z | m)
+\idxc{JacobiCD}\verb|{z}{m}| & $\JacobiCD{z}{m}$ & $\displaystyle \JacobiCD{z}{m}$ \\
+\idxc{JacobiCDInv}\verb|{z}{m}| & $\JacobiCDInv{z}{m}$ & $\displaystyle \JacobiCDInv{z}{m}$ \\
+% cn(z | m)
+\idxc{JacobiCN}\verb|{z}{m}| & $\JacobiCN{z}{m}$ & $\displaystyle \JacobiCN{z}{m}$ \\
+\idxc{JacobiCNInv}\verb|{z}{m}| & $\JacobiCNInv{z}{m}$ & $\displaystyle \JacobiCNInv{z}{m}$ \\
+% cs(z | m)
+\idxc{JacobiCS}\verb|{z}{m}| & $\JacobiCS{z}{m}$ & $\displaystyle \JacobiCS{z}{m}$ \\
+\idxc{JacobiCSInv}\verb|{z}{m}| & $\JacobiCSInv{z}{m}$ & $\displaystyle \JacobiCSInv{z}{m}$ \\
+% dc(z | m)
+\idxc{JacobiDC}\verb|{z}{m}| & $\JacobiDC{z}{m}$ & $\displaystyle \JacobiDC{z}{m}$ \\
+\idxc{JacobiDCInv}\verb|{z}{m}| & $\JacobiDCInv{z}{m}$ & $\displaystyle \JacobiDCInv{z}{m}$ \\
+% dn(z | m)
+\idxc{JacobiDN}\verb|{z}{m}| & $\JacobiDN{z}{m}$ & $\displaystyle \JacobiDN{z}{m}$ \\
+\idxc{JacobiDNInv}\verb|{z}{m}| & $\JacobiDNInv{z}{m}$ & $\displaystyle \JacobiDNInv{z}{m}$ \\
+% dn(z | m)
+\idxc{JacobiDS}\verb|{z}{m}| & $\JacobiDS{z}{m}$ & $\displaystyle \JacobiDS{z}{m}$ \\
+\idxc{JacobiDSInv}\verb|{z}{m}| & $\JacobiDSInv{z}{m}$ & $\displaystyle \JacobiDSInv{z}{m}$ \\
+% nc(z | m)
+\idxc{JacobiNC}\verb|{z}{m}| & $\JacobiNC{z}{m}$ & $\displaystyle \JacobiNC{z}{m}$ \\
+\idxc{JacobiNCInv}\verb|{z}{m}| & $\JacobiNCInv{z}{m}$ & $\displaystyle \JacobiNCInv{z}{m}$ \\
+% nd(z | m)
+\idxc{JacobiND}\verb|{z}{m}| & $\JacobiND{z}{m}$ & $\displaystyle \JacobiND{z}{m}$ \\
+\idxc{JacobiNDInv}\verb|{z}{m}| & $\JacobiNDInv{z}{m}$ & $\displaystyle \JacobiNDInv{z}{m}$ \\
+% ns(z | m)
+\idxc{JacobiNS}\verb|{z}{m}| & $\JacobiNS{z}{m}$ & $\displaystyle \JacobiNS{z}{m}$ \\
+\idxc{JacobiNSInv}\verb|{z}{m}| & $\JacobiNSInv{z}{m}$ & $\displaystyle \JacobiNSInv{z}{m}$ \\
+% sc(z | m)
+\idxc{JacobiSC}\verb|{z}{m}| & $\JacobiSC{z}{m}$ & $\displaystyle \JacobiSC{z}{m}$ \\
+\idxc{JacobiSCInv}\verb|{z}{m}| & $\JacobiSCInv{z}{m}$ & $\displaystyle \JacobiSCInv{z}{m}$ \\
+% sd(z | m)
+\idxc{JacobiSD}\verb|{z}{m}| & $\JacobiSD{z}{m}$ & $\displaystyle \JacobiSD{z}{m}$ \\
+\idxc{JacobiSDInv}\verb|{z}{m}| & $\JacobiSDInv{z}{m}$ & $\displaystyle \JacobiSDInv{z}{m}$ \\
+% sn(z | m)
+\idxc{JacobiSN}\verb|{z}{m}| & $\JacobiSN{z}{m}$ & $\displaystyle \JacobiSN{z}{m}$ \\
+\idxc{JacobiSNInv}\verb|{z}{m}| & $\JacobiSNInv{z}{m}$ & $\displaystyle \JacobiSNInv{z}{m}$ \\
+\end{tabular}
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Modular Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Modular Functions}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Modular Functions
+\idxc{DedekindEta}\verb|{z}| & $\DedekindEta{z}$ & $\displaystyle \DedekindEta{z}$ \\
+\idxc{KleinInvariantJ}\verb|{z}| & $\KleinInvariantJ{z}$ & $\displaystyle \KleinInvariantJ{z}$ \\
+\idxc{ModularLambda}\verb|{z}| & $\ModularLambda{z}$ & $\displaystyle \ModularLambda{z}$ \\
+\idxc{EllipticNomeQ}\verb|{z}| & $\EllipticNomeQ{z}$ & $\displaystyle \EllipticNomeQ{z}$ \\
+\idxc{EllipticNomeQInv}\verb|{z}| & $\EllipticNomeQInv{z}$
+ & $\displaystyle \EllipticNomeQInv{z}$ \\
+\end{tabular}
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Arithmetic Geometric Mean}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Arithmetic Geometric Mean}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Arithmetic Geometric Mean
+\idxc{ArithGeoMean}\verb|{a}{b}| & $\ArithGeoMean{a}{b}$ & $\displaystyle \ArithGeoMean{a}{b}$ \\
+\end{tabular}
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Elliptic Exp and Log}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Elliptic!Exponential}
+\index{Elliptic!Logarithm}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Elliptic Exp and Log
+\idxc{EllipticExp}\verb|{x}{a,b}| & $\EllipticExp{x}{a,b}$
+ & $\displaystyle \EllipticExp{x}{a,b}$ \\
+% elog(z_1, z_2; a,b)
+\idxc{EllipticLog}\verb|{x,y}{a,b}|
+ & $\EllipticLog{x,y}{a,b}$
+ & $\displaystyle \EllipticLog{x,y}{a,b}$
+ \\
+\end{tabular}
+\end{center}
+
+
+
+
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Zeta Functions and Polylogarithms}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Zeta!Functions}
+\index{Polylogarithm}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Zeta Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Zeta!Riemann}
+\index{Zeta!Hurwitz}
+\index{Zeta}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Riemann Zeta Function
+\idxc{RiemannZeta}\verb|{s}| & $\RiemannZeta{s}$ & $\displaystyle \RiemannZeta{s}$ \\
+\idxc{Zeta}\verb|{s}| & $\Zeta{s}$ & $\displaystyle \Zeta{s}$ \\
+ \\
+%%%%%% Hurwitz Zeta Function
+\idxc{HurwitzZeta}\verb|{s}{a}| & $\HurwitzZeta{s}{a}$ & $\displaystyle \HurwitzZeta{s}{a}$ \\
+\idxc{Zeta}\verb|{s,a}| & $\Zeta{s,a}$ & $\displaystyle \Zeta{s,a}$ \\
+ \\
+%%%%%% Riemann-Siegel Theta Function
+\idxc{RiemannSiegelTheta}\verb|{x}|
+ & $\RiemannSiegelTheta{x}$ & $\displaystyle \RiemannSiegelTheta{x}$ \\
+%%%%%% Riemann-Siegel Z Function
+\idxc{RiemannSiegelZ}\verb|{x}| & $\RiemannSiegelZ{x}$ & $\displaystyle \RiemannSiegelZ{x}$ \\
+%%%%%% Stieltjes Constant [\gamma_n]
+\idxc{StieltjesGamma}\verb|{n}| & $\StieltjesGamma{n}$ & $\displaystyle \StieltjesGamma{n}$ \\
+%%%%%% Lerch transcendent [\Phi(z,s,a)]
+\idxc{LerchPhi}\verb|{z}{s}{a}| & $\LerchPhi{z}{s}{a}$ & $\displaystyle \LerchPhi{z}{s}{a}$ \\
+ \\
+%%%%%% Nielsen Polylogarithm [S_\nu^p(z)]
+\idxc{NielsenPolyLog}\verb|{\nu}{p}{z}|
+ & $\NielsenPolyLog{\nu}{p}{z}$ & $\displaystyle \NielsenPolyLog{\nu}{p}{z}$ \\
+\idxc{PolyLog}\verb|{\nu,p,z}| & $\PolyLog{\nu,p,z}$ & $\displaystyle \PolyLog{\nu,p,z}$ \\
+ \\
+%%%%%% Polylogarithm [Li_\nu (z)]
+\idxc{PolyLog}\verb|{\nu,z}| & $\PolyLog{\nu,z}$ & $\displaystyle \PolyLog{\nu,z}$ \\
+%%%%%% Dilogarithm [\PolyLog{2,x}]
+\idxc{DiLog}\verb|{z}| & $\DiLog{z}$ & $\displaystyle \DiLog{z}$ \\
+\end{tabular}
+\end{center}
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Mathieu Functions and Characteristics}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Mathieu!Functions}
+\index{Mathieu!Characteristics}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Mathieu Functions}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Mathieu Functions
+%%%%%%%% Even Mathieu Function Ce(a,q,z)
+\idxc{MathieuC}\verb|{a}{q}{z}| & $\MathieuC{a}{q}{z}$ & $\displaystyle \MathieuC{a}{q}{z}$ \\
+%%%%%%%% Odd Mathieu Function Se(a,q,z)
+\idxc{MathieuS}\verb|{a}{q}{z}| & $\MathieuS{a}{q}{z}$ & $\displaystyle \MathieuS{a}{q}{z}$ \\
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Mathieu Characteristics}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Mathieu Characteristics
+%%%%%%%% Characteristic Value of Even Mathieu Fucntion a_r(q)
+\idxc{MathieuCharacteristicA}\verb|{r}{q}|
+ & $\MathieuCharacteristicA{r}{q}$ & $\displaystyle \MathieuCharacteristicA{r}{q}$ \\
+\idxc{MathieuCharisticA}\verb|{r}{q}|
+ & $\MathieuCharisticA{r}{q}$ & $\displaystyle \MathieuCharisticA{r}{q}$ \\
+ \\
+%%%%%%%% Characteristic Value of Even Mathieu Fucntion b_r(q)
+\idxc{MathieuCharacteristicB}\verb|{r}{q}|
+ & $\MathieuCharacteristicB{r}{q}$ & $\displaystyle \MathieuCharacteristicB{r}{q}$ \\
+\idxc{MathieuCharisticB}\verb|{r}{q}|
+ & $\MathieuCharisticB{r}{q}$ & $\displaystyle \MathieuCharisticB{r}{q}$ \\
+ \\
+%%%%%%%% Characteristic Exponent of a Mathieu Fucntion r(a,q)
+\idxc{MathieuCharacteristicExponent}\verb|{a}{q}|
+ & $\MathieuCharacteristicExponent{a}{q}$
+ & $\displaystyle \MathieuCharacteristicExponent{a}{q}$
+ \\
+\idxc{MathieuCharisticExp}\verb|{a}{q}|
+ & $\MathieuCharisticExp{a}{q}$
+ & $\displaystyle \MathieuCharisticExp{a}{q}$
+ \\
+\end{tabular}
+\end{center}
+
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Complex Components}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Complex Components}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+\idxc{Abs}\verb|{z}| & $\Abs{z}$ & $\displaystyle \Abs{z}$ \\
+\idxc{Arg}\verb|{z}| & $\Arg{z}$ & $\displaystyle \Arg{z}$ \\
+\idxc{Conj}\verb|{z}| & $\Conj{z}$ & $\displaystyle \Conj{z}$ \\
+\Style{Conjugate=bar}%
+\verb|\Style{Conjugate=bar}|%
+\idxc{Conj}\verb|{z}| & $\Conj{z}$ & $\displaystyle \Conj{z}$ \\
+\Style{Conjugate=overline}%
+\verb|\Style{Conjugate=overline}|%
+\idxc{Conj}\verb|{z}| & $\Conj{z}$ & $\displaystyle \Conj{z}$ \\
+\idxc{Real}\verb|{z}| & $\Real{z}$ & $\displaystyle \Real{z}$ \\
+\idxc{Imag}\verb|{z}| & $\Imag{z}$ & $\displaystyle \Imag{z}$ \\
+\idxc{Sign}\verb|{z}| & $\Sign{z}$ & $\displaystyle \Sign{z}$ \\
+\end{tabular}
+\end{center}
+
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Number Theory Functions}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Number Theory}
+\index{Functions!Number Theory}
+\index{Totient Function}
+\index{Euler Totient Function}
+\index{Moebius Function}
+\index{Jacobi!Symbol}
+\index{Symbol!Jacobi}
+\index{Charmicheal Lambda Function}
+\index{Lambda Function!Charmicheal}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+\idxc{FactorInteger}\verb|{n}| & $\FactorInteger{n}$ & $\displaystyle \FactorInteger{n}$ \\
+\idxc{Factors}\verb|{n}| & $\Factors{n}$ & $\displaystyle \Factors{n}$ \\
+ \\
+%%%%%% Divisors
+\idxc{Divisors}\verb|{n}| & $\Divisors{n}$ & $\displaystyle \Divisors{n}$ \\
+%%%%%% Prime
+\idxc{Prime}\verb|{n}| & $\Prime{n}$ & $\displaystyle \Prime{n}$ \\
+%%%%%% pi(x)
+\idxc{PrimePi}\verb|{x}| & $\PrimePi{x}$ & $\displaystyle \PrimePi{x}$ \\
+%%%%%% Sum of divisor powers \DivisorSigma{k}{n}
+\idxc{DivisorSigma}\verb|{k}{n}| & $\DivisorSigma{k}{n}$ & $\displaystyle \DivisorSigma{k}{n}$ \\
+%%%%%% Euler Totient Function
+\idxc{EulerPhi}\verb|{n}| & $\EulerPhi{n}$ & $\displaystyle \EulerPhi{n}$ \\
+%%%%%% Moebius Function
+\idxc{MoebiusMu}\verb|{n}| & $\MoebiusMu{n}$ & $\displaystyle \MoebiusMu{n}$ \\
+%%%%%% Jacobi Symbol \JacobiSymbol{n}{m}
+\idxc{JacobiSymbol}\verb|{n}{m}| & $\JacobiSymbol{n}{m}$ & $\displaystyle \JacobiSymbol{n}{m}$ \\
+ \\
+%%%%%% Carmichael Lambda Function
+\idxc{CarmichaelLambda}\verb|{n}| & $\CarmichaelLambda{n}$
+ & $\displaystyle \CarmichaelLambda{n}$ \\
+\end{tabular}
+
+\begin{tabular}{c}
+\idxc{DigitCount}\verb|{n}{b}|
+\\
+ \begin{tabular}{cc}
+ {\bf Inline:} & $\DigitCount{n}{b}$ \\
+ {\bf Display:} & $\displaystyle \DigitCount{n}{b}$ \\
+ \end{tabular}
+\\
+\\
+\idxc{DigitCount}\verb|{n}{6}|
+\\
+ \begin{tabular}{cc}
+ {\bf Inline:} & $\DigitCount{n}{6}$ \\
+ {\bf Display:} & $\displaystyle \DigitCount{n}{6}$ \\
+ \end{tabular}
+\end{tabular}
+\end{center}
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Generalized Functions}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Generalized Functions}
+\index{Functions!Generalized}
+\index{Heaviside Step}
+%\index{Functions!Heaviside Step}
+\index{Unit Step}
+%\index{Functions!Unit Step}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+%%%%%% Dirac Delta Function
+\idxc{DiracDelta}\verb|{x}| & $\DiracDelta{x}$ & $\displaystyle \DiracDelta{x}$ \\
+\idxc{DiracDelta}\verb|{x_1, x_2}| & $\DiracDelta{x_1, x_2}$ & $\displaystyle \DiracDelta{x_1, x_2}$ \\
+ \\
+%%%%%% Heaviside Step Function
+\idxc{HeavisideStep}\verb|{x}| & $\HeavisideStep{x}$ & $\displaystyle \HeavisideStep{x}$ \\
+\idxc{HeavisideStep}\verb|{x, y}| & $\HeavisideStep{x,y}$ & $\displaystyle \HeavisideStep{x,y}$ \\
+\idxc{UnitStep}\verb|{x}| & $\UnitStep{x}$ & $\displaystyle \UnitStep{x}$ \\
+\idxc{UnitStep}\verb|{x,y}| & $\UnitStep{x,y}$ & $\displaystyle \UnitStep{x,y}$ \\
+\end{tabular}
+\end{center}
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+\subsection{Calculus Functions}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Calculus}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Derivatives}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Calculus!Derivatives}
+\index{Derivatives!Total}
+\index{Total Derivatives}
+
+\begin{center}
+
+\begin{tabular}{c}
+\verb|\Style{DDisplayFunc=inset,DShorten=true}| (Default)%
+\Style{DDisplayFunc=inset,DShorten=true} \\
+ \\
+\begin{tabular}{ccc}
+\idxc{D}\verb|{f}{x}| & $\D{f}{x}$ & $\displaystyle \D{f}{x}$ \\
+ \\
+\idxc{D}\verb|[n]{f}{x}| & $\D[n]{f}{x}$ & $\displaystyle \D[n]{f}{x}$ \\
+ \\
+\end{tabular}
+\end{tabular}
+
+\vspace{.5cm}
+
+\begin{tabular}{c}
+\verb|\Style{DDisplayFunc=outset,DShorten=false}|%
+\Style{DDisplayFunc=outset,DShorten=false} \\
+ \\
+\begin{tabular}{ccc}
+\idxc{D}\verb|{f}{x}| & $\D{f}{x}$ & $\displaystyle \D{f}{x}$ \\
+ \\
+\idxc{D}\verb|[n]{f}{x}| & $\D[n]{f}{x}$ & $\displaystyle \D[n]{f}{x}$ \\
+ \\
+\idxc{D}\verb|{f}{x,y,z}| & $\D{f}{x,y,z}$ & $\displaystyle \D{f}{x,y,z}$ \\
+ \\
+\idxc{D}\verb|[2,n,3]{f}{x,y,z}| & $\D[2,n,3]{f}{x,y,z}$ & $\displaystyle \D[2,n,3]{f}{x,y,z}$
+ \\
+ \\
+\idxc{D}\verb|[1,n,3]{f}{x,y,z}| & $\D[1,n,3]{f}{x,y,z}$ & $\displaystyle \D[1,n,3]{f}{x,y,z}$
+ \\
+\end{tabular}
+\end{tabular}
+
+\vspace{.5cm}
+
+\begin{tabular}{c}
+\verb|\Style{DDisplayFunc=outset,DShorten=true}|%
+\Style{DDisplayFunc=outset,DShorten=true} \\
+ \\
+\begin{tabular}{ccc}
+\idxc{D}\verb|{f}{x}| & $\D{f}{x}$ & $\displaystyle \D{f}{x}$ \\
+ \\
+\idxc{D}\verb|[n]{f}{x}| & $\D[n]{f}{x}$ & $\displaystyle \D[n]{f}{x}$ \\
+ \\
+\idxc{D}\verb|{f}{x,y,z}| & $\D{f}{x,y,z}$ & $\displaystyle \D{f}{x,y,z}$ \\
+ \\
+\idxc{D}\verb|[2,n,3]{f}{x,y,z}| & $\D[2,n,3]{f}{x,y,z}$ & $\displaystyle \D[2,n,3]{f}{x,y,z}$
+ \\
+ \\
+\idxc{D}\verb|[1,n,3]{f}{x,y,z}| & $\D[1,n,3]{f}{x,y,z}$ & $\displaystyle \D[1,n,3]{f}{x,y,z}$
+ \\
+\end{tabular}
+\end{tabular}
+
+\vspace{0.5cm}
+
+\begin{tabular}{c}
+\verb|\Style{DDisplayFunc=inset,DShorten=true}|
+\Style{DDisplayFunc=inset,DShorten=true} \\
+ \\
+\begin{tabular}{ccc}
+\idxc{D}\verb|{f}{x}| & $\D{f}{x}$ & $\displaystyle \D{f}{x}$ \\
+ \\
+\idxc{D}\verb|[n]{f}{x}| & $\D[n]{f}{x}$ & $\displaystyle \D[n]{f}{x}$ \\
+ \\
+\idxc{D}\verb|{f}{x,y,z}| & $\D{f}{x,y,z}$ & $\displaystyle \D{f}{x,y,z}$ \\
+ \\
+\idxc{D}\verb|[2,n,3]{f}{x,y,z}| & $\D[2,n,3]{f}{x,y,z}$ & $\displaystyle \D[2,n,3]{f}{x,y,z}$
+ \\
+ \\
+\idxc{D}\verb|[1,n,3]{f}{x,y,z}| & $\D[1,n,3]{f}{x,y,z}$ & $\displaystyle \D[1,n,3]{f}{x,y,z}$
+\end{tabular}
+\end{tabular}
+
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Partial Derivatives}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Calculus!Derivatives}
+\index{Derivatives!Partial}
+\index{Partial Derivatives}
+
+\begin{center}
+
+\begin{tabular}{c}
+\verb|\Style{DDisplayFunc=inset,DShorten=true}| (Default)%
+\Style{DDisplayFunc=inset,DShorten=true} \\
+ \\
+\begin{tabular}{ccc}
+\idxc{pderiv}\verb|{f}{x}| & $\pderiv{f}{x}$ & $\displaystyle \pderiv{f}{x}$ \\
+ \\
+\idxc{pderiv}\verb|[n]{f}{x}| & $\pderiv[n]{f}{x}$ & $\displaystyle \pderiv[n]{f}{x}$ \\
+ \\
+\end{tabular}
+\end{tabular}
+
+\vspace{.5cm}
+
+\begin{tabular}{c}
+\verb|\Style{DDisplayFunc=outset,DShorten=false}|%
+\Style{DDisplayFunc=outset,DShorten=false} \\
+ \\
+\begin{tabular}{ccc}
+\idxc{pderiv}\verb|{f}{x}| & $\pderiv{f}{x}$ & $\displaystyle \pderiv{f}{x}$ \\
+ \\
+\idxc{pderiv}\verb|[n]{f}{x}| & $\pderiv[n]{f}{x}$ & $\displaystyle \pderiv[n]{f}{x}$ \\
+ \\
+\idxc{pderiv}\verb|{f}{x,y,z}| & $\pderiv{f}{x,y,z}$ & $\displaystyle \pderiv{f}{x,y,z}$ \\
+ \\
+\idxc{pderiv}\verb|[2,n,3]{f}{x,y,z}| & $\pderiv[2,n,3]{f}{x,y,z}$ & $\displaystyle \pderiv[2,n,3]{f}{x,y,z}$
+ \\
+ \\
+\idxc{pderiv}\verb|[1,n,3]{f}{x,y,z}| & $\pderiv[1,n,3]{f}{x,y,z}$ & $\displaystyle \pderiv[1,n,3]{f}{x,y,z}$
+ \\
+\end{tabular}
+\end{tabular}
+
+\vspace{.5cm}
+
+\begin{tabular}{c}
+\verb|\Style{DDisplayFunc=outset,DShorten=true}|%
+\Style{DDisplayFunc=outset,DShorten=true} \\
+ \\
+\begin{tabular}{ccc}
+\idxc{pderiv}\verb|{f}{x}| & $\pderiv{f}{x}$ & $\displaystyle \pderiv{f}{x}$ \\
+ \\
+\idxc{pderiv}\verb|[n]{f}{x}| & $\pderiv[n]{f}{x}$ & $\displaystyle \pderiv[n]{f}{x}$ \\
+ \\
+\idxc{pderiv}\verb|{f}{x,y,z}| & $\pderiv{f}{x,y,z}$ & $\displaystyle \pderiv{f}{x,y,z}$ \\
+ \\
+\idxc{pderiv}\verb|[2,n,3]{f}{x,y,z}| & $\pderiv[2,n,3]{f}{x,y,z}$ & $\displaystyle \pderiv[2,n,3]{f}{x,y,z}$
+ \\
+ \\
+\idxc{pderiv}\verb|[1,n,3]{f}{x,y,z}| & $\pderiv[1,n,3]{f}{x,y,z}$ & $\displaystyle \pderiv[1,n,3]{f}{x,y,z}$
+ \\
+\end{tabular}
+\end{tabular}
+
+\vspace{0.5cm}
+
+\begin{tabular}{c}
+\verb|\Style{DDisplayFunc=inset,DShorten=true}|
+\Style{DDisplayFunc=inset,DShorten=true} \\
+ \\
+\begin{tabular}{ccc}
+\idxc{pderiv}\verb|{f}{x}| & $\pderiv{f}{x}$ & $\displaystyle \pderiv{f}{x}$ \\
+ \\
+\idxc{pderiv}\verb|[n]{f}{x}| & $\pderiv[n]{f}{x}$ & $\displaystyle \pderiv[n]{f}{x}$ \\
+ \\
+\idxc{pderiv}\verb|{f}{x,y,z}| & $\pderiv{f}{x,y,z}$ & $\displaystyle \pderiv{f}{x,y,z}$ \\
+ \\
+\idxc{pderiv}\verb|[2,n,3]{f}{x,y,z}| & $\pderiv[2,n,3]{f}{x,y,z}$ & $\displaystyle \pderiv[2,n,3]{f}{x,y,z}$
+ \\
+ \\
+\idxc{pderiv}\verb|[1,n,3]{f}{x,y,z}| & $\pderiv[1,n,3]{f}{x,y,z}$ & $\displaystyle \pderiv[1,n,3]{f}{x,y,z}$
+\end{tabular}
+\end{tabular}
+
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Integrals}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Calculus!Integrals}
+\index{Integrals}
+\index{Integrals!Definite}
+\index{Integrals!Indefinite}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+ \\
+\idxc{Integrate}\verb|{f}{x}| & $\Integrate{f}{x}$ & $\displaystyle \Integrate{f}{x}$
+ \\
+ \\
+\idxc{Int}\verb|{f(x)}{x}| & $\Int{f(x)}{x}$ & $\displaystyle \Int{f(x)}{x}$ \\
+ \\
+\idxc{Int}\verb|{f}{S,C}| & $\Int{f}{S,C}$ & $\displaystyle \Int{f}{S,C}$ \\
+ \\
+\idxc{Int}\verb|{f(x)}{x,a,b}| & $\Int{f(x)}{x,a,b}$ & $\displaystyle \Int{f(x)}{x,a,b}$
+ \\
+ \\
+\idxc{Int}\verb|{f(x)}{x,0,b}| & $\Int{f(x)}{x,0,b}$ & $\displaystyle \Int{f(x)}{x,0,b}$
+ \\
+\idxc{Int}\verb|{\Int{f(x)}{x,0,y}}{y,0,z}|
+ & $\Int{ \Int{f(x)}{x,0,y} }{y,0,z}$
+ & $\displaystyle \Int{ \Int{f(x)}{x,0,y} }{y,0,z}$
+\end{tabular}
+\end{center}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Sums and Products}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow
+ \\
+\idxc{Sum}\verb|{a(k)}{k}| & $\Sum{a(k)}{k}$ & $\displaystyle \Sum{a(k)}{k}$ \\
+ \\
+\idxc{Sum}\verb|{a(k)}{k,1,n}| & $\Sum{a(k)}{k,1,n}$ & $\displaystyle \Sum{a(k)}{k,1,n}$
+ \\
+ \\
+\idxc{Prod}\verb|{a(k)}{k}| & $\Prod{a(k)}{k}$ & $\displaystyle \Prod{a(k)}{k}$
+ \\
+ \\
+\idxc{Prod}\verb|{a(k)}{k,1,n}| & $\Prod{a(k)}{k,1,n}$ & $\displaystyle \Prod{a(k)}{k,1,n}$
+\end{tabular}
+\end{center}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+\subsubsection{Matrices}
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\index{Matrix!Identity}
+\index{Matrices!Identity}
+
+\begin{center}
+\begin{tabular}{ccc}
+\headerRow \\
+\idxc{IdentityMatrix} & $\IdentityMatrix$ & $\displaystyle \IdentityMatrix$ \\
+\verb|\Style{IdentityMatrixParen=p}| (Default)%
+\Style{IdentityMatrixParen=p} \\
+\idxc{IdentityMatrix[2]} & $\IdentityMatrix[2]$ & $\displaystyle \IdentityMatrix[2]$ \\
+\verb|\Style{IdentityMatrixParen=b}|%
+\Style{IdentityMatrixParen=b} \\
+\idxc{IdentityMatrix[2]} & $\IdentityMatrix[2]$ & $\displaystyle \IdentityMatrix[2]$ \\
+\verb|\Style{IdentityMatrixParen=br}|%
+\Style{IdentityMatrixParen=br} \\
+\idxc{IdentityMatrix[2]} & $\IdentityMatrix[2]$ & $\displaystyle \IdentityMatrix[2]$ \\
+\verb|\Style{IdentityMatrixParen=none}|%
+\Style{IdentityMatrixParen=none} \\
+\idxc{IdentityMatrix[2]} & $\IdentityMatrix[2]$ & $\displaystyle \IdentityMatrix[2]$%
+\Style{IdentityMatrixParen=p} \\
+\end{tabular}
+\end{center}
+
+\idxc{IdentityMatrix}\verb|[20]| yields
+
+$$
+\IdentityMatrix[20]
+$$
+
+\printindex
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ REFERENCES ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\newpage
+
+%\begin{thebibliography}{hello}
+%\end{thebibliography}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ END REFERENCES ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\end{document} % End of document
diff --git a/Master/texmf-dist/doc/latex/cool/README b/Master/texmf-dist/doc/latex/cool/README
new file mode 100644
index 00000000000..9d5710e2993
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/cool/README
@@ -0,0 +1,43 @@
+Description
+-----------
+
+The cool of the cool package stands for COntent Oriented LaTeX. It is designed
+to give LaTeX the power to retain mathematical meaning of its expressions in
+addition to the typsetting instructions.
+
+One advantage of keeping mathematical meaning is that conversion of LaTeX
+documents to other executable formats (such as Content MathML or Mathematica
+code) is greatly simplified.
+
+This package requires the following, non-standard LaTeX packages
+(all of which are available on www.ctan.org):
+
+* coolstr
+* coollist
+* forloop
+
+
+Installation
+------------
+
+To install this package, run cool.ins through LaTeX. This will generate
+a file called cool.sty. Put this file somewhere where LaTeX will find
+it---for instance localtexmf/tex/latex/cool/ (note that you will need
+to create the folder cool).
+
+If you are using MikTeX, you then need to refresh the file name database
+by using MikTeX Options
+
+
+License
+-------
+
+This pacakge is released under the Lesser GNU General Public License. See
+http://www.gnu.org/licenses/licenses.html#LGPL for more details.
+
+Contact
+-------
+
+Any bugs may be reported to the author by sending an email to the address with
+the first part being nsetzer, then an at sign, the next part is umd, and
+finally it ends in dot edu. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/cool/cool.pdf b/Master/texmf-dist/doc/latex/cool/cool.pdf
new file mode 100644
index 00000000000..47917b2d216
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/cool/cool.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/cool/cool.dtx b/Master/texmf-dist/source/latex/cool/cool.dtx
new file mode 100644
index 00000000000..0312fb8fee0
--- /dev/null
+++ b/Master/texmf-dist/source/latex/cool/cool.dtx
@@ -0,0 +1,5787 @@
+% \iffalse
+%
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{cool}
+%<package> [2006/09/17 v1.2 COntent Oriented LaTeX]
+%<package>\RequirePackage{ifthen}
+%<package>\RequirePackage{coollist}
+%<package>\RequirePackage{coolstr}
+%<package>\RequirePackage{forloop}
+%<package>\RequirePackage{amsmath}
+%<package>\RequirePackage{amssymb}
+%
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{cool}
+\usepackage{url}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+\DocInput{cool.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \iffalse meta-comment
+% remove this comment to get a checksum
+% \CheckSum{0}
+% \fi
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \changes{v0}{2005/07/20}{pre-Initial version [tenative edition]}
+% \changes{v1.0}{2005/08/27}{Initial Release}
+% \changes{v1.1}{2006/03/19}{Added listlenstore to package to allow storing of the list length}
+% \changes{v1.2}{2006/09/17}{Split off the list, string, and forloop parts to separate packages}
+%
+% \GetFileInfo{cool.sty}
+%
+% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ ,\!,\(,\),\,}
+% \DoNotIndex{\@ne,\expandafter}
+% \DoNotIndex{\advance,\begingroup,\catcode,\closein}
+% \DoNotIndex{\newcommand,\renewcommand,\providecommand}
+% \DoNotIndex{\closeout,\day,\def,\edef,\gdef,\let,\empty,\endgroup}
+% \DoNotIndex{\newcounter,\providecounter,\addtocounter,\setcounter,\stepcounter,\value,\arabic}
+% \DoNotIndex{\if,\fi,\ifthenelse,\else,\setboolean,\boolean,\newboolean,\provideboolean,\equal,\AND,\OR,\NOT,\whiledo}
+% \DoNotIndex{\ifcase,\ifcat,\or,\else}
+% \DoNotIndex{\par,\parbox,\mbox,\hbox,\begin,\end,\nabla,\partial}
+% \DoNotIndex{\overline,\bar,\small,\tiny,\mathchoice,\scriptsize,\textrm,\texttt}
+% \DoNotIndex{\alpha,\beta,\gamma,\epsilon,\varepsilon,\delta,\zeta,\eta,\theta,\vartheta,\iota,\kappa,\lambda,\mu,\nu}
+% \DoNotIndex{\xi,\omicron,\pi,\varpi,\rho,\varrho,\sigma,\tau,\upsilon,\phi,\varphi,\chi,\psi,\omega}
+% \DoNotIndex{\Delta,\Gamma,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Phi,\Psi,\Omega}
+% \DoNotIndex{\digamma,\lceil,\rceil,\lfloor,\rfloor,\left,\right,\inp,\inb,\inbr,\inap,\nop}
+% \DoNotIndex{\sum,\prod,\int,\log,\ln,\exp,\sin,\cos,\tan,\csc,\sec,\cot,\arcsin,\arccos,\arctan,\det}
+% \DoNotIndex{\sinh,\cosh,\tanh,\csch,\sech,\coth,\arcsinh,\arccosh,\arctanh}
+% \DoNotIndex{\mod,\max,\min,\gcd,\lcm,\wp,\arg,\dots,\infty,}
+% \DoNotIndex{\frac,\binom,\braket,\@@atop}
+% \DoNotIndex{\cdot,\ldots,\tilde,\times,\dagger,\relax}
+% \DoNotIndex{\mathbb,\roman,\bf,\mathord,\cal,\DeclareMathOperator,\PackageError,\PackageWarning}
+% \DoNotIndex{\csname,\endcsname,\ifx,\ifnum}
+% \DoNotIndex{\COOL@Hypergeometric@pq,\COOL@Hypergeometric@pq@ab@value,\hideOnSF,\COOL@decide@paren}
+% \DoNotIndex{\COOL@decide@indicies}
+% \DoNotIndex{\mod,\bmod,\pmod,\pod,\operatorname}
+% \DoNotIndex{\forLoop}
+% \DoNotIndex{
+% \COOL@notation@AiryAiParen,
+% \COOL@notation@AiryBiParen,
+% \COOL@notation@AppellFOneParen,
+% \COOL@notation@ArcCoshParen,
+% \COOL@notation@ArcCosParen,
+% \COOL@notation@ArcCothParen,
+% \COOL@notation@ArcCotParen,
+% \COOL@notation@ArcCschParen,
+% \COOL@notation@ArcCscParen,
+% \COOL@notation@ArcSechParen,
+% \COOL@notation@ArcSecParen,
+% \COOL@notation@ArcSinhParen,
+% \COOL@notation@ArcSinParen,
+% \COOL@notation@ArcTanhParen,
+% \COOL@notation@ArcTanParen,
+% \COOL@notation@ArithGeoMeanParen,
+% \COOL@notation@AssocLegendrePParen,
+% \COOL@notation@AssocLegendreQParen,
+% \COOL@notation@BernoulliParen,
+% \COOL@notation@BernoulliBParen,
+% \COOL@notation@BesselIParen,
+% \COOL@notation@BesselJParen,
+% \COOL@notation@BesselKParen,
+% \COOL@notation@BesselYParen,
+% \COOL@notation@BetaParen,
+% \COOL@notation@BetaRegularizedParen,
+% \COOL@notation@CarmichaelLambdaParen,
+% \COOL@notation@ChebyshevTParen,
+% \COOL@notation@ChebyshevUParen,
+% \COOL@notation@ConjugateParen,
+% \COOL@notation@CoshIntParen,
+% \COOL@notation@CoshParen,
+% \COOL@notation@CosIntParen,
+% \COOL@notation@CosParen,
+% \COOL@notation@CothParen,
+% \COOL@notation@CotParen,
+% \COOL@notation@CschParen,
+% \COOL@notation@CscParen,
+% \COOL@notation@CyclotomicCParen,
+% \COOL@notation@DaggerParen,
+% \COOL@notation@DedekindEtaParen,
+% \COOL@notation@DetParen,
+% \COOL@notation@DiGammaParen,
+% \COOL@notation@DiracDeltaParen,
+% \COOL@notation@DivisorsParen,
+% \COOL@notation@DivisorSigmaParen,
+% \COOL@notation@DiscreteDeltaParen,
+% \COOL@notation@EllipticEParen,
+% \COOL@notation@EllipticExpParen,
+% \COOL@notation@EllipticFParen,
+% \COOL@notation@EllipticKParen,
+% \COOL@notation@EllipticLogParen,
+% \COOL@notation@EllipticNomeQInvParen,
+% \COOL@notation@EllipticNomeQParen,
+% \COOL@notation@EllipticPiParen,
+% \COOL@notation@EllipticThetaParen,
+% \COOL@notation@ErfcInvParen,
+% \COOL@notation@ErfcParen,
+% \COOL@notation@ErfInvParen,
+% \COOL@notation@ErfiParen,
+% \COOL@notation@ErfParen,
+% \COOL@notation@EulerParen,
+% \COOL@notation@EulerEParen,
+% \COOL@notation@EulerPhiParen,
+% \COOL@notation@ExpIntEiParen,
+% \COOL@notation@ExpIntEParen,
+% \COOL@notation@ExpParen,
+% \COOL@notation@ExtendedGCDParen,
+% \COOL@notation@FactorIntegerParen,
+% \COOL@notation@FibonacciParen,
+% \COOL@notation@FibonacciFParen,
+% \COOL@notation@FractionalPartParen,
+% \COOL@notation@FresnelCParen,
+% \COOL@notation@FresnelSParen,
+% \COOL@notation@GammaFuncParen,
+% \COOL@notation@GammaRegularizedParen,
+% \COOL@notation@GCDParen,
+% \COOL@notation@GegenbauerCParen,
+% \COOL@notation@HeavisideStepParen,
+% \COOL@notation@HermiteHParen,
+% \COOL@notation@HypergeometricParen,
+% \COOL@notation@IdentityMatrixParen,
+% \COOL@notation@ImagParen,
+% \COOL@notation@IntegerPartParen,
+% \COOL@notation@InverseBetaRegularizedParen,
+% \COOL@notation@InverseGammaRegularizedParen,
+% \COOL@notation@JacobiAmplitudeParen,
+% \COOL@notation@JacobiCDInvParen,
+% \COOL@notation@JacobiCDParen,
+% \COOL@notation@JacobiCNInvParen,
+% \COOL@notation@JacobiCNParen,
+% \COOL@notation@JacobiCSInvParen,
+% \COOL@notation@JacobiCSParen,
+% \COOL@notation@JacobiDCInvParen,
+% \COOL@notation@JacobiDCParen,
+% \COOL@notation@JacobiDNInvParen,
+% \COOL@notation@JacobiDNParen,
+% \COOL@notation@JacobiDSInvParen,
+% \COOL@notation@JacobiDSParen,
+% \COOL@notation@JacobiNCInvParen,
+% \COOL@notation@JacobiNCParen,
+% \COOL@notation@JacobiNDInvParen,
+% \COOL@notation@JacobiNDParen,
+% \COOL@notation@JacobiNSInvParen,
+% \COOL@notation@JacobiNSParen,
+% \COOL@notation@JacobiPParen,
+% \COOL@notation@JacobiSCInvParen,
+% \COOL@notation@JacobiSCParen,
+% \COOL@notation@JacobiSDInvParen,
+% \COOL@notation@JacobiSDParen,
+% \COOL@notation@JacobiSNInvParen,
+% \COOL@notation@JacobiSNParen,
+% \COOL@notation@JacobiZetaParen,
+% \COOL@notation@KleinInvariantJParen,
+% \COOL@notation@LaugerreLParen,
+% \COOL@notation@LCMParen,
+% \COOL@notation@LegendrePParen,
+% \COOL@notation@LegendreQParen,
+% \COOL@notation@LerchPhiParen,
+% \COOL@notation@LogGammaParen,
+% \COOL@notation@LogIntParen,
+% \COOL@notation@LogParen,
+% \COOL@notation@MathieuCharacteristicAParen,
+% \COOL@notation@MathieuCharacteristicBParen,
+% \COOL@notation@MathieuCharacteristicExponentParen,
+% \COOL@notation@MathieuSParen,
+% \COOL@notation@MathieuCParen,
+% \COOL@notation@MoebiusMuParen,
+% \COOL@notation@MaxParen,
+% \COOL@notation@MinParen,
+% \COOL@notation@ModularLambdaParen,
+% \COOL@notation@NevilleThetaCParen,
+% \COOL@notation@NevilleThetaDParen,
+% \COOL@notation@NevilleThetaNParen,
+% \COOL@notation@NevilleThetaSParen,
+% \COOL@notation@NielsenPolyLogParen,
+% \COOL@notation@PartitionsPParen,
+% \COOL@notation@PartitionsQParen,
+% \COOL@notation@PolyGammaParen,
+% \COOL@notation@PolyLogParen,
+% \COOL@notation@PrimeParen,
+% \COOL@notation@PrimePiParen,
+% \COOL@notation@ProductLogParen,
+% \COOL@notation@QuotientParen,
+% \COOL@notation@RealParen,
+% \COOL@notation@RegHypergeometricParen,
+% \COOL@notation@RiemannSiegelThetaParen,
+% \COOL@notation@RiemannSiegelZParen,
+% \COOL@notation@SechParen,
+% \COOL@notation@SecParen,
+% \COOL@notation@SignParen,
+% \COOL@notation@SinhIntParen,
+% \COOL@notation@SinhParen,
+% \COOL@notation@SinIntParen,
+% \COOL@notation@SinParen,
+% \COOL@notation@SphericalHarmonicYParen,
+% \COOL@notation@StruveHParen,
+% \COOL@notation@StruveLParen,
+% \COOL@notation@TanhParen,
+% \COOL@notation@TanParen,
+% \COOL@notation@TransposeParen,
+% \COOL@notation@TrParen,
+% \COOL@notation@WeierstrassPInvParen,
+% \COOL@notation@WeierstrassPParen,
+% \COOL@notation@WeierstrassZetaParen,
+% \COOL@notation@ZetaParen}
+% \DoNotIndex{\COOL@notation@KroneckerDeltaIndicies,\COOL@notation@LeviCivitaIndicies}
+% \DoNotIndex{\COOL@notation@SphericalHarmonicParen,\COOL@notation@SphericalHarmonicSymb}
+% \DoNotIndex{\COOL@notation@WeierstrassPHalfPeriodValuesDisplay,\COOL@notation@WeierstrassZetaHalfPeriodValuesDisplay}
+% \DoNotIndex{
+% \COOL@Beta@arg@i,
+% \COOL@Beta@arg@ii,
+% \COOL@Beta@arg@iii,
+% \COOL@Beta@arg@iv,
+% \COOL@BetaRegularized@arg@i,
+% \COOL@BetaRegularized@arg@ii,
+% \COOL@BetaRegularized@arg@iii,
+% \COOL@BetaRegularized@arg@iv,
+% \COOL@EllipticE@arg@i,
+% \COOL@EllipticE@arg@ii,
+% \COOL@EllipticF@arg@i,
+% \COOL@EllipticF@arg@ii,
+% \COOL@EllipticPi@arg@i,
+% \COOL@EllipticPi@arg@ii,
+% \COOL@EllipticPi@arg@iii,
+% \COOL@Euler@arg@i,
+% \COOL@Euler@arg@ii,
+% \COOL@Fibonacci@arg@i,
+% \COOL@Fibonacci@arg@ii,
+% \COOL@InverseBetaRegularized@arg@i,
+% \COOL@InverseBetaRegularized@arg@ii,
+% \COOL@InverseBetaRegularized@arg@iii,
+% \COOL@InverseBetaRegularized@arg@iv,
+% \COOL@LegendreP@arg@i,
+% \COOL@LegendreP@arg@ii,
+% \COOL@LegendreP@arg@iii,
+% \COOL@LegendreP@arg@iv,
+% \COOL@LegendreQ@arg@i,
+% \COOL@LegendreQ@arg@ii,
+% \COOL@LegendreQ@arg@iii,
+% \COOL@LegendreQ@arg@iv,
+% \COOL@PolyLog@arg@i,
+% \COOL@PolyLog@arg@ii,
+% \COOL@PolyLog@arg@iii,
+% \COOL@WeiSigma@arg@z@i,
+% \COOL@WeiSigma@arg@z@ii,
+% \COOL@Zeta@arg@i,
+% \COOL@Zeta@arg@ii}
+% \DoNotIndex{
+% \COOL@notation@AssocLegendrePSymb,
+% \COOL@notation@AssocLegendreQSymb,
+% \COOL@notation@BesselISymb,
+% \COOL@notation@BesselJSymb,
+% \COOL@notation@BesselKSymb,
+% \COOL@notation@BesselYSymb,
+% \COOL@notation@ChebyshevTSymb,
+% \COOL@notation@ChebyshevUSymb,
+% \COOL@notation@EllipticESymb,
+% \COOL@notation@EllipticFSymb,
+% \COOL@notation@EllipticKSymb,
+% \COOL@notation@EllipticPiSymb,
+% \COOL@notation@GegenbauerCSymb,
+% \COOL@notation@HermiteHSymb,
+% \COOL@notation@HypergeometricSymb,
+% \COOL@notation@HypergeometricUSymb,
+% \COOL@notation@JacobiPSymb,
+% \COOL@notation@JacobiZetaSymb,
+% \COOL@notation@LaugerreLSymb,
+% \COOL@notation@LegendrePSymb,
+% \COOL@notation@LegendreQSymb,
+% \COOL@notation@LogBaseESymb,
+% \COOL@notation@MeijerGSymb,
+% \COOL@notation@RegHypergeometricSymb,
+% \COOL@notation@SphericalHarmonicYSymb}
+% \DoNotIndex{\COOL@wrt@temp,\COOL@temp@D@top@power,\COOL@temp@D@top,\COOL@temp@D@result,\COOL@temp@D@bot}
+% \DoNotIndex{\COOL@power@temp}
+% \DoNotIndex{\listval,\liststore,\isint,\isnumeric}
+% \DoNotIndex{
+% \COOL@list@temp@i,
+% \COOL@list@temp@ii,
+% \COOL@list@temp@iii}
+% \DoNotIndex{
+% \COOL@MeijerG@sniffer,
+% \COOL@MeijerG@sniffer@end}
+% \DoNotIndex{\COOL@Multinomial@tempa}
+% \DoNotIndex{
+% \COOL@notation@ArcTrig,
+% \COOL@notation@Conjugate,
+% \COOL@notation@DShorten,
+% \COOL@notation@LogShowBase}
+% \DoNotIndex{
+% \COOL@notation@DDisplayFunc,
+% \COOL@notation@DetDisplay,
+% \COOL@notation@IntegrateDisplayFunc,
+% \COOL@notation@ModDisplay}
+% \DoNotIndex{
+% \COOL@notation@KroneckerDeltaUseComma,
+% \COOL@notation@LeviCivitaUseComma}
+%
+% \title{The \textsf{cool} package\thanks{This document
+% corresponds to \textsf{cool}~\fileversion,
+% dated~\filedate.}}
+% \author{nsetzer}
+%
+% \maketitle
+%
+% \setcounter{IndexColumns}{2}
+% \StopEventually{\PrintChanges\PrintIndex}
+%
+%
+% This is the \textsf{cool} package: a COntent Oriented \LaTeX{} package. That is, it is designed to give \LaTeX{}
+% commands the ability to contain the mathematical meaning while retaining the typesetting versatility.
+%
+% This package requires the following, non-standard \LaTeX{} packages (all of which are available on \url{www.ctan.org}):
+% \textsf{coolstr},
+% \textsf{coollist},
+% \textsf{forloop}
+%
+%
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\section{Implementation}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macrocode}
+\newcounter{COOL@ct} %just a general counter
+\newcounter{COOL@ct@}%just a general counter
+% \end{macrocode}
+%
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%\subsection{Parenthesis}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macrocode}
+\newcommand{\inp}[2][0cm]{\left(#2\parbox[h][#1]{0cm}{}\right)}
+ % in parentheses ()
+\newcommand{\inb}[2][0cm]{\left[#2\parbox[h][#1]{0cm}{}\right]}
+ % in brackets []
+\newcommand{\inbr}[2][0cm]{\left\{#2\parbox[h][#1]{0cm}{}\right\}}
+ % in braces {}
+\newcommand{\inap}[2][0cm]{\left<{#2}\parbox[h][#1]{0cm}{}\right>}
+ % in angular parentheses <>
+\newcommand{\nop}[1]{\left.{#1}\right.}
+ % no parentheses
+% \end{macrocode}
+%
+%
+% \begin{macro}{\COOL@decide@paren}
+% |\COOL@decide@paren[|\meta{parenthesis type}|]{|\meta{function name}|}{|\meta{contained text}|}|.
+%
+% \noindent Since the handling of parentheses is something that will be common to many elements this
+% function will take care of it.
+%
+% If the optional argument is given, |\COOL@notation@|\meta{function name}|Paren| is ignored and
+% \meta{parenthesis type} is used
+%
+% \meta{parenthesis type} and |\COOL@notation@|\meta{function name}|Paren| must be one of |none|, |p| for |()|, |b| for |[]|, |br| for |{}|, |ap| for \meta{}, |inv| for |\left.\right.|
+% \begin{macrocode}
+\let\COOL@decide@paren@no@type=\relax
+\newcommand{\COOL@decide@paren}[3][\COOL@decide@paren@no@type]{%
+\ifthenelse{ \equal{#1}{\COOL@decide@paren@no@type} }%
+ {%
+ \def\COOL@decide@paren@type{\csname COOL@notation@#2Paren\endcsname}%
+ }%
+% Else
+ {%
+ \def\COOL@decide@paren@type{#1}%
+ }%
+\ifthenelse{ \equal{\COOL@decide@paren@type}{none} }%
+ {%
+ #3%
+ }%
+% Else
+ {%
+ \ifthenelse{ \equal{\COOL@decide@paren@type}{p} }%
+ {%
+ \inp{#3}%
+ }%
+ % Else
+ {%
+ \ifthenelse{ \equal{\COOL@decide@paren@type}{b} }%
+ {%
+ \inb{#3}%
+ }%
+ % Else
+ {%
+ \ifthenelse{ \equal{\COOL@decide@paren@type}{br} }%
+ {%
+ \inbr{#3}%
+ }%
+ % Else
+ {%
+ \ifthenelse{ \equal{\COOL@decide@paren@type}{ap} }%
+ {%
+ \inap{#3}%
+ }%
+ % Else
+ {%
+ \ifthenelse{ \equal{\COOL@decide@paren@type}{inv} }%
+ {%
+ \nop{#3}%
+ }%
+ % Else
+ {%
+ \PackageError{cool}{Invalid Parenthesis Option}%
+ {*Paren can only be `none', `p', `b', `br', `ap', `inv'}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%\subsection{Indicies}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\COOL@decide@indicies}
+% |\COOL@decide@indicies|\marg{function name}\marg{local indication}\marg{indicies}
+%
+% \noindent Since up or down indicies can be as common as the parenthesis decision, this macro is the solution.
+%
+% \meta{local indication} must be either |u| or |d|
+%
+% \meta{indicies} is very likely to be required to be a comma separated list in the near future
+%
+% the options for indicies are
+%
+% \begin{tabular}{ll}
+% |local| & allow the indicies to be decided by an optional argument to \\
+% & the function (such as |\LeviCivita[u]{i j}|) \\
+% |up| & force the indicies to appear as superscript \\
+% |down| & force the indicies to appear as subscript \\
+% \end{tabular}
+%
+% \begin{macrocode}
+\newcommand{\COOL@decide@indicies}[3]{%
+\def\COOL@decide@indicies@placement%
+ {\csname COOL@notation@#1Indicies\endcsname}%
+\ifthenelse{\equal{\COOL@decide@indicies@placement}{local}}%
+ {%
+ \ifthenelse{\equal{#2}{u}}%
+ {^{#3}}%
+ {_{#3}}%
+ }%
+% Else
+ {%
+ \ifthenelse{\equal{\COOL@decide@indicies@placement}{up}}%
+ {%
+ {^{#3}}%
+ }%
+ % Else
+ {%
+ \ifthenelse{\equal{\COOL@decide@indicies@placement}{down}}%
+ {%
+ {_{#3}}%
+ }%
+ % else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {#1Indices can only be 'up', 'down', or 'local'}%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+%\subsection{COntent Oriented LaTeX (COOL)}
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Style}
+% |\Style{|\meta{options}|}| sets the style of the output (how to notate particular functions).
+% \meta{options} is a comma delimited list of the form \meta{key}|=|\meta{value}, where \meta{key} is the \emph{long}
+% form of the command name without the preceeding backslash (i.e. |Integrate| and not |Int| or |\Int|).
+% The list can be in any order and need only contain the styles that the user desires to set.
+%
+% There can be multiple |\Style| commands within any document---the styled output of the command depends on the
+% last |\Style| command to have specified its style.
+%
+% For a list of styling options for a command, see the code where the command is defined
+%
+% \begin{macrocode}
+\newcommand{\Style}[1]{%
+\COOL@keyeater#1,\COOL@keystop\COOL@keyend%
+}
+\newcommand{\COOL@keystop}{@@@}%
+\def\COOL@keyeater#1=#2,#3\COOL@keyend{%
+\ifx#3\COOL@keystop%
+ \expandafter\gdef\csname COOL@notation@#1\endcsname{#2}%
+\else%
+ \expandafter\gdef\csname COOL@notation@#1\endcsname{#2}%
+ \COOL@keyeater#3\COOL@keyend%
+\fi%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\UseStyleFile}
+% Since notational style should be kept consistent and will likely need to span several documents, use this command
+% to input a notation style file that has previously been prepared. (to be implemented in a future release)
+% \begin{macrocode}
+\newcommand{\UseStyleFile}[1]{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Fundamental Constants}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% see \url{http://functions.wolfram.com/} for the definitions
+% \begin{macro}{\I}
+% The square root of minus 1 ($\sqrt{-1}$), $\I$.
+% \begin{macrocode}
+\newcommand{\I}{i}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\E}
+% Euler's constant and the base of the natural logarithm, $\E$.
+% \begin{macrocode}
+\newcommand{\E}{e}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PI}
+% Pi---the ratio of the circumference of a circle to its diameter, $\PI$.
+% \begin{macrocode}
+\newcommand{\PI}{\pi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GoldenRatio}
+% The Golden Ratio, $\GoldenRatio$
+% \begin{macrocode}
+\newcommand{\GoldenRatio}{\varphi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EulerGamma}
+% Euler's Gamma constant, $\EulerGamma$
+% \begin{macrocode}
+\newcommand{\EulerGamma}{\gamma}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Catalan}
+% Catalan constant, $\Catalan$
+% \begin{macrocode}
+\newcommand{\Catalan}{C}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Glaisher}
+% Glaisher constant, $\Glaisher$
+% \begin{macrocode}
+\newcommand{\Glaisher}{\mathord{\operatorname{Glaisher}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Khinchin}
+% Khinchin constant, $\Khinchin$
+% \begin{macrocode}
+\newcommand{\Khinchin}{\mathord{\operatorname{Khinchin}}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Symbols}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Infinity}
+% Infinity, $\Infinity$
+% \begin{macrocode}
+\newcommand{\Infinity}{\infty}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Indeterminant}
+% An indeterminant quantity
+% \begin{macrocode}
+\newcommand{\Indeterminant}{%
+ \mathchoice%
+ {\mbox{\textrm>}}%
+ {\mbox{\small>}}%
+ {\mbox{\scriptsize>}}%
+ {\mbox{\tiny>}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DirectedInfinity}
+% \begin{macro}{\DirInfty}
+% Directed Infinity |\DirectedInfinity{|\meta{complex number}|}| or |\DirInfty{|\meta{complex number}|}|
+% \begin{macrocode}
+\newcommand{\DirectedInfinity}[1]{#1 \, \infty}
+\newcommand{\DirInfty}[1]{\DirectedInfinity{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ComplexInfinity}
+% \begin{macro}{\CInfty}
+% Complex infinity, $\CInfty$
+% \begin{macrocode}
+\newcommand{\ComplexInfinity}{\tilde{\infty}}
+\newcommand{\CInfty}{\ComplexInfinity}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Exponential Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Exp}
+% Exponential---for use when $\E^x$ won't suffice, $\Exp{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ExpParen}{p}
+\newcommand{\Exp}[1]
+{%
+\exp\COOL@decide@paren{Exp}{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Log}
+% Logarithm, |\Log{x}|. This function has several options to be set. The usual parentheses, then some
+% about the notation to be used for displaying the symbol.
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LogParen}{none}
+% \end{macrocode}
+% The following set the symbols:
+%
+% |LogBaseESymb| can be |ln| or |log|, indicating what symbol should be used for the natural logarithm. If set to
+% |log| then logarithms of base 10 are displayed as $\log_{10}$.
+%
+% |LogShowBase| can be either |at will| or |always| and decides whether or not one should show the base, as in
+% |log_b x|. If this option is set to |always| then |LogBaseESymb| is ignored.
+%
+% \begin{tabular}{lll}
+% |\Log{5}| & $\Log{5}$ & $\displaystyle \Log{5}$ \\
+% |\Log[10]{5}| & $\Log[10]{5}$ & $\displaystyle \Log[10]{5}$ \\
+% |\Log[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+% |\Style{LogBaseESymb=log}|%
+% \Style{LogBaseESymb=log} \\
+% |\Log{5}| & $\Log{5}$ & $\displaystyle \Log{5}$ \\
+% |\Log[10]{5}| & $\Log[10]{5}$ & $\displaystyle \Log[10]{5}$ \\
+% |\Log[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+% |\Style{LogShowBase=always}|%
+% \Style{LogBaseESymb=ln}%
+% \Style{LogShowBase=always} \\
+% |\Log{5}| & $\Log{5}$ & $\displaystyle \Log{5}$ \\
+% |\Log[10]{5}| & $\Log[10]{5}$ & $\displaystyle \Log[10]{5}$ \\
+% |\Log[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+% |\Style{LogShowBase=at will}|%
+% \Style{LogShowBase=at will} \\
+% |\Log{5}| & $\Log{5}$ & $\displaystyle \Log{5}$ \\
+% |\Log[10]{5}| & $\Log[10]{5}$ & $\displaystyle \Log[10]{5}$ \\
+% |\Log[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+% |\Style{LogParen=p}|%
+% \Style{LogParen=p} \\
+% |\Log[4]{5}| & $\Log[4]{5}$ & $\displaystyle \Log[4]{5}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LogBaseESymb}{ln}% 'ln', 'log'
+ \newcommand{\COOL@notation@LogShowBase}{at will}% 'at will', 'always'
+\newcommand{\Log}[2][\E]
+{%
+\ifthenelse{ \equal{\COOL@notation@LogShowBase}{at will} }%
+ {%
+ \ifthenelse{ \equal{#1}{\E} }%
+ {%
+ \ifthenelse{ \equal{\COOL@notation@LogBaseESymb}{ln} }%
+ {%
+ \ln \COOL@decide@paren{Log}{#2}%
+ }%
+ % Else
+ {%
+ \ifthenelse{ \equal{\COOL@notation@LogBaseESymb}{log} }%
+ {%
+ \log \COOL@decide@paren{Log}{#2}%
+ }%
+ % Else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {LogBaseESymb can only be `ln' or `log'}%
+ }%
+ }%
+ }%
+ % Else
+ {%
+ \ifthenelse{ \equal{#1}{10} \AND
+ \NOT \equal{\COOL@notation@LogBaseESymb}{log} }%
+ {%
+ \log \COOL@decide@paren{Log}{#2}%
+ }%
+ % Else
+ {%
+ \log_{#1} \COOL@decide@paren{Log}{#2}%
+ }%
+ }%
+ }%
+% Else
+ {%
+ \ifthenelse{ \equal{\COOL@notation@LogShowBase}{always} }%
+ {%
+ \log_{#1}\COOL@decide@paren{Log}{#2}%
+ }%
+ % Else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {LogShowBase can only be 'at will' or 'always'}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Trigonometric Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Sin}
+% The sine function, |\Sin{x}|, $\Sin{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@SinParen}{p}
+\newcommand{\Sin}[1]{\sin\COOL@decide@paren{Sin}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Cos}
+% The cosine function, |\Cos{x}|, $\Cos{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CosParen}{p}
+\newcommand{\Cos}[1]{\cos\COOL@decide@paren{Cos}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Tan}
+% The tangent function, |\Tan{x}|, $\Tan{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@TanParen}{p}
+\newcommand{\Tan}[1]{\tan\COOL@decide@paren{Tan}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Csc}
+% The cosecant function, |\Csc{x}|, $\Csc{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CscParen}{p}
+\newcommand{\Csc}[1]{\csc\COOL@decide@paren{Csc}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sec}
+% The secant function, |\Sec{x}|, $\Sec{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@SecParen}{p}
+\newcommand{\Sec}[1]{\sec\COOL@decide@paren{Sec}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Cot}
+% The cotangent function, |\Cot{x}|, $\Cot{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CotParen}{p}
+\newcommand{\Cot}[1]{\cot\COOL@decide@paren{Cot}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Inverse Trigonometric Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\COOL@notation@ArcTrig}
+% The inverse trigoneometric functions style is governed by this global key. It's options are
+%
+% |inverse| (default), this displays as $\sin^{-1}$
+%
+% |arc|, this displays as $\arcsin$
+% \begin{macrocode}
+ \def\COOL@notation@ArcTrig{inverse}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcSin}
+% The inverse of the sine function, |\ArcSin{x}|, $\ArcSin{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcSinParen}{p}
+\newcommand{\ArcSin}[1]{%
+\ifthenelse{ \equal{\COOL@notation@ArcTrig}{inverse} }%
+ {%
+ \sin^{-1}\COOL@decide@paren{ArcSin}{#1}%
+ }
+% else
+ {
+ \ifthenelse{\equal{\COOL@notation@ArcTrig}{arc}}%
+ {%
+ \arcsin\COOL@decide@paren{ArcSin}{#1}%
+ }%
+ % else
+ {%
+ \PackageError{cool}{Invalid option sent}{}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcCos}
+% the inverse of the cosine function, |\ArcCos{x}|, $\ArcCos{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcCosParen}{p}
+\newcommand{\ArcCos}[1]{%
+\ifthenelse{ \equal{\COOL@notation@ArcTrig}{inverse} }%
+ {%
+ \cos^{-1}\COOL@decide@paren{ArcCos}{#1}%
+ }%
+% else
+ {%
+ \ifthenelse{\equal{\COOL@notation@ArcTrig}{arc}}%
+ {%
+ \arccos\COOL@decide@paren{ArcCos}{#1}%
+ }%
+ % else
+ {%
+ \PackageError{cool}{Invalid option sent}{}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcTan}
+% The inverse of the tangent function, |\ArcTan{x}|, $\ArcTan{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcTanParen}{p}
+\newcommand{\ArcTan}[1]{%
+\ifthenelse{ \equal{\COOL@notation@ArcTrig}{inverse} }%
+ {%
+ \tan^{-1}\COOL@decide@paren{ArcTan}{#1}%
+ }%
+% else
+ {%
+ \ifthenelse{\equal{\COOL@notation@ArcTrig}{arc}}%
+ {%
+ \arctan\COOL@decide@paren{ArcTan}{#1}%
+ }%
+ % else
+ {%
+ \PackageError{cool}{Invalid option sent}{}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcCsc}
+% The Inverse Cosecant function, |\ArcCsc{x}|, $\ArcCsc{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcCscParen}{p}
+\newcommand{\ArcCsc}[1]{\csc^{-1}\COOL@decide@paren{ArcCsc}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcSec}
+% The inverse secant function, |\ArcSec{x}|, $\ArcSec{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcSecParen}{p}
+\newcommand{\ArcSec}[1]{\sec^{-1}\COOL@decide@paren{ArcSec}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcCot}
+% The inverse cotangent function, |\ArcCot{x}|, $\ArcCot{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcCotParen}{p}
+\newcommand{\ArcCot}[1]{\cot^{-1}\COOL@decide@paren{ArcCot}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Hyperbolic Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Sinh}
+% Hyperbolic sine, |\Sinh{x}|, $\Sinh{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@SinhParen}{p}
+\newcommand{\Sinh}[1]{\sinh\COOL@decide@paren{Sinh}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Cosh}
+% Hyperbolic cosine, |\Cosh{x}|, $\Cosh{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CoshParen}{p}
+\newcommand{\Cosh}[1]{\cosh\COOL@decide@paren{Cosh}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Tanh}
+% Hyperbolic Tangent, |\Tanh{x}|, $\Tanh{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@TanhParen}{p}
+\newcommand{\Tanh}[1]{\tanh\COOL@decide@paren{Tanh}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Csch}
+% Hyperbolic cosecant |\Csch{x}|, $\Csch{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CschParen}{p}
+ \DeclareMathOperator{\csch}{csch}
+\newcommand{\Csch}[1]{\csch\COOL@decide@paren{Csch}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sech}
+% Hyperbolic secant, |\Sech{x}|, $\Sech{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@SechParen}{p}
+ \DeclareMathOperator{\sech}{sech}
+\newcommand{\Sech}[1]{\sech\COOL@decide@paren{Sech}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Coth}
+% Hyperbolic Cotangent, |\Coth{x}|, $\Coth{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CothParen}{p}
+\newcommand{\Coth}[1]{\coth\COOL@decide@paren{Coth}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Inverse Hyperbolic Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\ArcSinh}
+% Inverse hyperbolic sine, |\ArcSinh{x}|, $\ArcSinh{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcSinhParen}{p}
+\newcommand{\ArcSinh}[1]{\sinh^{-1}\COOL@decide@paren{ArcSinh}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcCosh}
+% Inverse hyperbolic cosine, |\ArcCosh{x}|, $\ArcCosh{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcCoshParen}{p}
+\newcommand{\ArcCosh}[1]{\cosh^{-1}\COOL@decide@paren{ArcCosh}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcTanh}
+% Inverse hyperbolic tangent, |\ArcTanh{x}|, $\ArcTanh{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcTanhParen}{p}
+\newcommand{\ArcTanh}[1]{\tanh^{-1}\COOL@decide@paren{ArcTanh}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcCsch}
+% Inverse hyperbolic cosecant, |\ArcCsch{x}|, $\ArcCsch{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcCschParen}{p}
+\newcommand{\ArcCsch}[1]{\csch^{-1}\COOL@decide@paren{ArcCsch}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcSech}
+% Inverse hyperbolic secant, |\ArcSech{x}|, $\ArcSech{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcSechParen}{p}
+\newcommand{\ArcSech}[1]{\sech^{-1}\COOL@decide@paren{ArcSech}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ArcCoth}
+% Inverse hyperbolic cotangent, |\ArcCoth{x}|, $\ArcCoth{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArcCothParen}{p}
+\newcommand{\ArcCoth}[1]{\coth^{-1}\COOL@decide@paren{ArcCoth}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Product Logarithms}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+% \begin{macro}{\LambertW}
+% Lambert Function. |\LambertW| is an alias for |\ProductLog| and its properties are therefore set using that function
+% \begin{macrocode}
+\newcommand{\LambertW}[1]{\ProductLog{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ProductLog}
+% Generalized Lambert Function |\ProductLog{|[\meta{index}|,|]\meta{variable}|}|.
+%
+% \begin{tabular}{lll}
+% Lambert Function & |\ProductLog{x}| & $\ProductLog{x}$ \\
+% Generalized Lambert Function & |\ProductLog{k,x}| & $\ProductLog{k,x}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ProductLogParen}{p}
+\newcommand{\ProductLog}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer}=1}%
+ {%
+ W\!\COOL@decide@paren{ProductLog}{#1}%
+ }%
+% else
+ {%
+ \ifthenelse{\value{COOL@listpointer}=2}%
+ {%
+ W_{\listval{#1}{1}}\!\COOL@decide@paren{ProductLog}{\listval{#1}{2}}%
+ }%
+ % else
+ {%
+ \PackageError{cool}{`ProductLog' Invaid Argument}%
+ {Must have a comma separated list of length 1 or 2}
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Max and Min}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Max}
+% the maximum function, |\Max{x,y,z}|, $\Max{x,y,z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@MaxParen}{p}
+\newcommand{\Max}[1]{\max\COOL@decide@paren{Max}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Min}
+% the minimum function, |\Min{x,y,z}|, $\Min{x,y,z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@MinParen}{p}
+\newcommand{\Min}[1]{\min\COOL@decide@paren{Min}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Bessel Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\BesselJ}
+% Bessel Function of the first kind, |\BesselJ{\nu}{x}|, $\BesselJ{\nu}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@BesselJSymb}{J}
+ \newcommand{\COOL@notation@BesselJParen}{p}
+\newcommand{\BesselJ}[2]%
+{\COOL@notation@BesselJSymb_{#1}\!\COOL@decide@paren{BesselJ}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BesselY}
+% Bessel Function of the second kind, |\BesselY{\nu}{x}|, $\BesselY{\nu}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@BesselYSymb}{Y}
+ \newcommand{\COOL@notation@BesselYParen}{p}
+\newcommand{\BesselY}[2]%
+{\COOL@notation@BesselYSymb_{#1}\!\COOL@decide@paren{BesselY}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BesselI}
+% Modified Bessel Function of the first kind, |\BesselI{\nu}{x}|, $\BesselI{\nu}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@BesselISymb}{I}
+ \newcommand{\COOL@notation@BesselIParen}{p}
+\newcommand{\BesselI}[2]%
+{\COOL@notation@BesselISymb_{#1}\!\COOL@decide@paren{BesselI}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BesselK}
+% Modified Bessel Function of the second kind, |\BesselK{\nu}{x}|, $\BesselK{\nu}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@BesselKSymb}{K}
+ \newcommand{\COOL@notation@BesselKParen}{p}
+\newcommand{\BesselK}[2]%
+{\COOL@notation@BesselKSymb_{#1}\!\COOL@decide@paren{BesselK}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Airy Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\AiryAi}
+% Airy Ai Function, |\AiryAi{x}|, $\AiryAi{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@AiryAiParen}{p}
+ \DeclareMathOperator{\AiryAiSymb}{Ai}
+\newcommand{\AiryAi}[1]{\AiryAiSymb\!\COOL@decide@paren{AiryAi}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AiryBi}
+% Airy Bi Function, |\AiryBi{x}|, $\AiryBi{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@AiryBiParen}{p}
+ \DeclareMathOperator{\AiryBiSymb}{Bi}
+\newcommand{\AiryBi}[1]{\AiryBiSymb\!\COOL@decide@paren{AiryBi}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Struve Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\StruveH}
+% Struve H function, |\StruveH{\nu}{z}|, $\StruveH{\nu}{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@StruveHParen}{p}
+\newcommand{\StruveH}[2]{ {\bf H}_{#1}\!\COOL@decide@paren{StruveH}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\StruveL}
+% Struve L function, |\StruveL{\nu}{z}|, $\StruveL{\nu}{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@StruveLParen}{p}
+\newcommand{\StruveL}[2]{ {\bf L}_{#1}\!\COOL@decide@paren{StruveL}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Integer Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Floor}
+% floor, |\Floor{x}|, $\Floor{x}$
+% \begin{macrocode}
+\newcommand{\Floor}[1]{\lfloor #1 \rfloor}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Ceiling}
+% ceiling, |\Ceiling{x}|, $\Ceiling{x}$
+% \begin{macrocode}
+\newcommand{\Ceiling}[1]{\lceil #1 \rceil}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Round}
+% round, |\Round{x}|, $\Round{x}$
+% \begin{macrocode}
+\newcommand{\Round}[1]{\lfloor #1 \rceil}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\iPart}
+% \begin{macro}{\IntegerPart}
+% The integer part of a real number, |\iPart{x}|, |\IntegerPart{x}|, $\iPart{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@IntegerPartParen}{p}
+ \DeclareMathOperator{\iPartSymb}{int}
+\newcommand{\iPart}[1]{\iPartSymb\COOL@decide@paren{IntegerPart}{#1}}
+\newcommand{\IntegerPart}[1]{\iPart{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\fPart}
+% \begin{macro}{\FractionalPart}
+% the fractional part of a real number, |\fPart{x}|, |\FractionalPart{x}|, $\fPart{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@FractionalPartParen}{p}
+ \DeclareMathOperator{\fPartSymb}{frac}
+\newcommand{\fPart}[1]{\fPartSymb\COOL@decide@paren{FractionalPart}{#1}}
+\newcommand{\FractionalPart}[1]{\fPart{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Mod}
+% Modulo, |\Mod{n}{m}|, $\Mod{n}{m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ModDisplay}{mod}
+\newcommand{\Mod}[2]{%
+\ifthenelse{\equal{\COOL@notation@ModDisplay}{mod}}%
+ {%
+ #1 \mod #2%
+ }%
+% ElseIf
+{ \ifthenelse{\equal{\COOL@notation@ModDisplay}{bmod}}%
+ {%
+ #1 \bmod #2%
+ }%
+% ElseIf
+{ \ifthenelse{\equal{\COOL@notation@ModDisplay}{pmod}}%
+ {%
+ #1 \pmod #2%
+ }%
+% ElseIf
+{\ifthenelse{\equal{\COOL@notation@ModDisplay}{pod}}%
+ {%
+ #1 \pod #2%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {ModDisplay can only be `mod', `bmod', `pmod', or `pod'}%
+ }}}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Quotient}
+% quotient, |\Quotient{m}{n}|, $\Quotient{m}{n}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@QuotientParen}{p}
+ \DeclareMathOperator{\QuotientSymb}{quotient}
+\newcommand{\Quotient}[2]%
+{\QuotientSymb\COOL@decide@paren{Quotient}{#1,#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GCD}
+% greatest common divisor, |\GCD{n_1,n_2,\dots,n_m}|, $\GCD{n_1,n_2,\dots,n_m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@GCDParen}{p}
+\newcommand{\GCD}[1]{\gcd\COOL@decide@paren{GCD}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ExtendedGCD}
+% \begin{macro}{\EGCD}
+% Extended Greatest Common Divisor,
+%
+%|\EGCD{n}{m}|, |\ExtendedGCD{n}{m}|, $\EGCD{n}{m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ExtendedGCDParen}{p}
+ \DeclareMathOperator{\ExtendedGCDSymb}{egcd}
+\newcommand{\ExtendedGCD}[2]%
+{\ExtendedGCDSymb\COOL@decide@paren{ExtendedGCD}{#1,#2}}
+\newcommand{\EGCD}[2]{\ExtendedGCD{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\LCM}
+% Least Common Multiple, |\LCM{n_1,n_2,\ldots,n_m}|, $\LCM{n_1,n_2,\ldots,n_m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LCMParen}{p}
+ \DeclareMathOperator{\LCMSymb}{lcm}
+\newcommand{\LCM}[1]{\LCMSymb\COOL@decide@paren{LCM}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Fibonacci}
+% Fibonacci number, |\Fibonacci{n}|, $\Fibonacci{n}$, and
+%
+% Fibonacci Polynomial, |\Fibonacci{n,x}|, $\Fibonacci{n,x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@FibonacciParen}{p}
+\newcommand{\Fibonacci}[1]{%
+\liststore{#1}{COOL@Fibonacci@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ F_{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ F_{\COOL@Fibonacci@arg@i}\!%
+ \COOL@decide@paren{Fibonacci}{\COOL@Fibonacci@arg@ii}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`Fibonacci' can only accept a
+ comma separate list of length 1 or 2}%
+ }}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Euler}
+% Euler number, |\Euler{n}|, $\Euler{n}$, and Euler Polynomial, |\Euler{n,x}|, $\Euler{n,x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EulerParen}{p}
+\newcommand{\Euler}[1]{%
+\liststore{#1}{COOL@Euler@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ E_{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ E_{\COOL@Euler@arg@i}\!%
+ \COOL@decide@paren{Euler}{\COOL@Euler@arg@ii}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`Euler' can only accept a
+ comma separate list of length 1 or 2}%
+ }}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Bernoulli}
+% Bernoulli number, |\Bernoulli{n}|, $\Bernoulli{n}$ and
+%
+% Bernoulli Polynomial |\Bernoulli{n,x}|, $\Bernoulli{n,x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@BernoulliParen}{p}
+\newcommand{\Bernoulli}[1]{%
+\liststore{#1}{COOL@Bernoulli@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ B_{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ B_{\COOL@Bernoulli@arg@i}\!%
+ \COOL@decide@paren{Bernoulli}{\COOL@Bernoulli@arg@ii}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`Bernoulli' can only accept a
+ comma separate list of length 1 or 2}%
+ }}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\StirlingSOne}
+% Stirling number of the first kind |\StirlingSOne{n}{m}|, $\StirlingSOne{n}{m}$
+% \begin{macrocode}
+\newcommand{\StirlingSOne}[2]{S_{#1}^{\inp{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\StirlingSTwo}
+% Stirling number of the second kind, |\StirlingSTwo{n}{m}|, $\StirlingSTwo{n}{m}$
+% \begin{macrocode}
+\newcommand{\StirlingSTwo}[2]{{\cal S}_{#1}^{\inp{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PartitionsP}
+% Number of unrestricted partitions of an integer, |\PartitionsP{x}|, $\PartitionsP{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@PartitionsPParen}{p}
+\newcommand{\PartitionsP}[1]{p\!\COOL@decide@paren{PartitionsP}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PartitionsQ}
+% number of partitions of an integer into distinct parts, |\PartitionsQ{x}|, $\PartitionsQ{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@PartitionsQParen}{p}
+\newcommand{\PartitionsQ}[1]{q\!\COOL@decide@paren{PartitionsQ}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DiscreteDelta}
+% Discrete delta function,
+%
+% |\DiscreteDelta{n_1,n_2,\ldots,n_m}|, $\DiscreteDelta{n_1,n_2,\ldots,n_m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@DiscreteDeltaParen}{p}
+\newcommand{\DiscreteDelta}[1]%
+{\delta\COOL@decide@paren{DiscreteDelta}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\KroneckerDelta}
+% Kronecker Delta, |\KroneckerDelta{n_1,n_2,\ldots,n_m}|, $\KroneckerDelta{n_1,n_2,\ldots,n_m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@KroneckerDeltaUseComma}{false}%
+ \newcommand{\COOL@notation@KroneckerDeltaIndicies}{local}
+\newcommand{\KroneckerDelta}[2][u]{%
+\liststore{#2}{COOL@arg@}%
+\listval{#2}{0}%
+\def\COOL@arg@temp{}%
+\forLoop{1}{\value{COOL@listpointer}}{COOL@ct}%
+ {%
+ \ifthenelse{\equal{\COOL@notation@KroneckerDeltaUseComma}{true}}%
+ {%
+ \ifthenelse{\NOT \value{COOL@ct} = 1}
+ {%
+ \edef\COOL@arg@temp%
+ {\COOL@arg@temp, \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+ }%
+ % Else
+ {%
+ \edef\COOL@arg@temp%
+ {\COOL@arg@temp \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+ }%
+ }%
+ % Else
+ {%
+ \edef\COOL@arg@temp%
+ {\COOL@arg@temp \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+ }%
+ }%
+\delta\COOL@decide@indicies{KroneckerDelta}{#1}{\COOL@arg@temp}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LeviCivita}
+% \begin{macro}{\Signature}
+% Levi-Civita totally anti-symmetric Tensor density,
+%
+% |\LeviCivita{n_1,n_2,\ldots,n_m}|, $\LeviCivita{n_1,n_2,\ldots,n_m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LeviCivitaUseComma}{false}
+ \newcommand{\COOL@notation@LeviCivitaIndicies}{local}
+\newcommand{\LeviCivita}[2][u]{%
+\liststore{#2}{COOL@arg@}%
+\listval{#2}{0}%
+\def\COOL@arg@temp{}%
+\forLoop{1}{\value{COOL@listpointer}}{COOL@ct}%
+ {%
+ \ifthenelse{\equal{\COOL@notation@LeviCivitaUseComma}{true}}%
+ {%
+ \ifthenelse{\NOT \value{COOL@ct} = 1}{,}{}%
+ \edef\COOL@arg@temp%
+ {\COOL@arg@temp \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+ }%
+ % Else
+ {%
+ \edef\COOL@arg@temp%
+ {\COOL@arg@temp \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+ }%
+ }%
+\epsilon\COOL@decide@indicies{LeviCivita}{#1}{\COOL@arg@temp}%
+}%
+\newcommand{\Signature}[2][u]{\LeviCivita[#1]{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Classical Orthogonal Polynomials}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\HermiteH}
+% Hermite Polynomial, |\HermiteH{n}{x}|, $\HermiteH{n}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@HermiteHParen}{p}
+ \newcommand{\COOL@notation@HermiteHSymb}{H}
+\newcommand{\HermiteH}[2]%
+{\COOL@notation@HermiteHSymb_{#1}\!\COOL@decide@paren{HermiteH}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LaugerreL}
+% Laugerre Polynomial, |\LaugerreL{\nu,x}|, $\LaugerreL{\nu,x}$ and
+%
+% \noindent Generalized Laugerre Polynomial |\LaugerreL{\nu,\lambda,x}|, $\LaugerreL{\nu,\lambda,x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LaugerreLParen}{p}
+ \newcommand{\COOL@notation@LaugerreLSymb}{L}
+\newcommand{\LaugerreL}[1]{%
+\liststore{#1}{COOL@list@temp@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer}=2}%
+ {%
+ \COOL@notation@LaugerreLSymb_{\COOL@list@temp@i}%
+ \!\COOL@decide@paren{LaugerreL}{\COOL@list@temp@ii}%
+ }%
+% Else If
+{ \ifthenelse{\value{COOL@listpointer}=3}%
+ {%
+ \COOL@notation@LaugerreLSymb_{\COOL@list@temp@i}^{\COOL@list@temp@ii}%
+ \!\COOL@decide@paren{LaugerreL}{\COOL@list@temp@iii}%
+ }%
+% Else
+{%
+ \PackageError{cool}{Invalid Argument}%
+ {`LaugerrL' only accepts a comma separated list of length 2 or 3}%
+}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LegendreP}
+% Legendre Polynomials
+%
+% \begin{tabular}{lll}
+% Legendre Polynomial & |\LegendreP{n,x}| & $\LegendreP{n,x}$ \\
+% Associated Legendre Polynomial \\
+% \indent of the first kind of type 2
+% & |\LegendreP{\ell,m,x}| & $\LegendreP{\ell,m,x}$ \\
+% & |\LegendreP{\ell,m,2,x}| & $\LegendreP{\ell,m,2,x}$ \\
+% Associated Legendre Function \\
+% \indent of the first kind of type 3
+% & |\LegendreP{\ell,m,3,x}| & $\LegendreP{\ell,m,3,x}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LegendrePParen}{p}
+ \newcommand{\COOL@notation@LegendrePSymb}{P}
+\newcommand{\LegendreP}[1]{%
+\liststore{#1}{COOL@LegendreP@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \COOL@notation@LegendrePSymb_{\COOL@LegendreP@arg@i}\!%
+ \COOL@decide@paren{LegendreP}{\COOL@LegendreP@arg@ii}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ \COOL@notation@LegendrePSymb_{\COOL@LegendreP@arg@i}%
+ ^{\COOL@LegendreP@arg@ii}\!%
+ \COOL@decide@paren{LegendreP}{\COOL@LegendreP@arg@iii}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+ {%
+ \isint{\COOL@LegendreP@arg@iii}%
+ \ifthenelse{\boolean{COOL@isint}}%
+ {%
+ \ifcase\COOL@LegendreP@arg@iii\relax%
+ \PackageError{cool}{Invalid Argument}%
+ {`LegendreP' third argument must be $>$ 1}%
+ \or%
+ \PackageError{cool}{Invalid Argument}%
+ {`LegendreP' third argument must be $>$ 1}%
+ \or%
+ \COOL@notation@LegendrePSymb_{\COOL@LegendreP@arg@i}%
+ ^{\COOL@LegendreP@arg@ii}\!%
+ \COOL@decide@paren{LegendreP}{\COOL@LegendreP@arg@iv}%
+ \or%
+ {\cal P}_{\COOL@LegendreP@arg@i}%
+ ^{\COOL@LegendreP@arg@ii}\!%
+ \COOL@decide@paren{LegendreP}{\COOL@LegendreP@arg@iv}%
+ \else%
+ \PackageError{cool}{Invalid Argument}{unsupported}%
+ \fi%
+ }
+ % Else
+ {%
+ \PackageError{cool}{Invalid Argument}{third arg must be int}%
+ }%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`LegendreP' can only accept a%
+ comma separated list of length 2-4}%
+ }}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LegendreQ}
+% Legendre Polynomials of the second kind
+%
+% \begin{tabular}{lll}
+% Legendre Polynomial & |\LegendreQ{n,x}| & $\LegendreQ{n,x}$ \\
+% Associated Legendre Polynomial \\
+% \indent of the second kind of type 2
+% & |\LegendreQ{\ell,m,x}| & $\LegendreQ{\ell,m,x}$ \\
+% & |\LegendreQ{\ell,m,2,x}| & $\LegendreQ{\ell,m,2,x}$ \\
+% Associated Legendre Function \\
+% \indent of the second kind of type 3
+% & |\LegendreQ{\ell,m,3,x}| & $\LegendreQ{\ell,m,3,x}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LegendreQParen}{p}
+ \newcommand{\COOL@notation@LegendreQSymb}{Q}
+\newcommand{\LegendreQ}[1]{%
+\liststore{#1}{COOL@LegendreQ@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \COOL@notation@LegendreQSymb_{\COOL@LegendreQ@arg@i}\!%
+ \COOL@decide@paren{LegendreQ}{\COOL@LegendreQ@arg@ii}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ \COOL@notation@LegendreQSymb_{\COOL@LegendreQ@arg@i}%
+ ^{\COOL@LegendreQ@arg@ii}\!%
+ \COOL@decide@paren{LegendreQ}{\COOL@LegendreQ@arg@iii}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+ {%
+ \isint{\COOL@LegendreQ@arg@iii}%
+ \ifthenelse{\boolean{COOL@isint}}%
+ {%
+ \ifcase\COOL@LegendreQ@arg@iii\relax%
+ \PackageError{cool}{Invalid Argument}%
+ {`LegendreQ' third argument must be $>$ 1}%
+ \or%
+ \PackageError{cool}{Invalid Argument}%
+ {`LegendreQ' third argument must be $>$ 1}%
+ \or%
+ \COOL@notation@LegendreQSymb_{\COOL@LegendreQ@arg@i}%
+ ^{\COOL@LegendreQ@arg@ii}\!%
+ \COOL@decide@paren{LegendreQ}{\COOL@LegendreQ@arg@iv}%
+ \or%
+ {\cal Q}_{\COOL@LegendreQ@arg@i}%
+ ^{\COOL@LegendreQ@arg@ii}\!%
+ \COOL@decide@paren{LegendreQ}{\COOL@LegendreQ@arg@iv}%
+ \else%
+ \PackageError{cool}{Invalid Argument}{unsupported}%
+ \fi%
+ }
+ % Else
+ {%
+ \PackageError{cool}{Invalid Argument}{third arg must be int}%
+ }%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`LegendreQ' can only accept a%
+ comma separated list of length 2-4}%
+ }}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ChebyshevT}
+% Chebyshev Polynomial of the first kind, |ChebyshevT{n}{x}|, $ChebyshevT{n}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ChebyshevTParen}{p}
+ \newcommand{\COOL@notation@ChebyshevTSymb}{T}
+\newcommand{\ChebyshevT}[2]%
+{\COOL@notation@ChebyshevTSymb_{#1}\!\COOL@decide@paren{ChebyshevT}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ChebyshevU}, |\ChebyshevU{n}{z}|, $\ChebyshevU{n}{z}$
+% Chebyshev Polynomial of the second kind
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ChebyshevUParen}{p}
+ \newcommand{\COOL@notation@ChebyshevUSymb}{U}
+\newcommand{\ChebyshevU}[2]%
+{\COOL@notation@ChebyshevUSymb_{#1}\!\COOL@decide@paren{ChebyshevU}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\JacobiP}
+% Jacobi Polynomial, |\JacobiP{n}{a}{b}{x}|, $\JacobiP{n}{a}{b}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiPParen}{p}
+ \newcommand{\COOL@notation@JacobiPSymb}{P}
+\newcommand{\JacobiP}[4]{%
+\COOL@notation@JacobiPSymb_{#1}^{\inp{#2, #3}}%
+\!\COOL@decide@paren{JacobiP}{#4}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Associated Polynomials}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\AssocLegendreP}
+% Associated Legendre Polynomial of the first kind of type 2
+%
+% |\AssocLegendreP{\ell}{m}{x}|, $\AssocLegendreP{\ell}{m}{x}$
+% \begin{macrocode}
+\newcommand{\AssocLegendreP}[3]{\LegendreP{#1,#2,#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AssocLegendreQ}
+% Associated Legendre Polynomial of the second kind of type 2
+%
+% |\AssocLegendreQ{\ell}{m}{x}|, $\AssocLegendreQ{\ell}{m}{x}$
+% \begin{macrocode}
+\newcommand{\AssocLegendreQ}[3]{\LegendreQ{#1,#2,#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GegenbauerC}
+% Gegenbauer Polynomial, |\GegenbauerC{n}{\lambda}{x}|, $\GegenbauerC{n}{\lambda}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@GegenbauerCParen}{p}
+ \newcommand{\COOL@notation@GegenbauerCSymb}{C}
+\newcommand{\GegenbauerC}[3]{%
+\COOL@notation@GegenbauerCSymb_{#1}^{#2}%
+\!\COOL@decide@paren{GegenbauerC}{#3}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SphericalHarmonicY}
+% \begin{macro}{\SphericalHarmY}
+% \begin{macro}{\SpHarmY}
+% Spherical Harmonic, |\SpHarmY{\ell}{m}{\theta}{\phi}|,
+%
+% |\SphericalHarmY{\ell}{m}{\theta}{\phi}|,
+%
+% |\SphericalHarmonicY{\ell}{m}{\theta}{\phi}|, $\SpHarmY{\ell}{m}{\theta}{\phi}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@SphericalHarmonicYParen}{p}
+ \newcommand{\COOL@notation@SphericalHarmonicYSymb}{Y}
+\newcommand{\SphericalHarmonicY}[4]{%
+\COOL@notation@SphericalHarmonicYSymb_{#1}^{#2}%
+\!\COOL@decide@paren{SphericalHarmonicY}{#3,#4}%
+}
+\newcommand{\SphericalHarmY}[4]{\SphericalHarmonicY{#1}{#2}{#3}{#4}}
+\newcommand{\SpHarmY}[4]{\SphericalHarmonicY{#1}{#2}{#3}{#4}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Other Polynomials}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\CyclotomicC}
+% Cyclotomic Polynomial, |\CyclotomicC{n}{z}|, $\CyclotomicC{n}{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CyclotomicCParen}{p}
+\newcommand{\CyclotomicC}[2]%
+{C_{#1}\!\COOL@decide@paren{CyclotomicC}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FibonacciF}
+% Fibonacci Polynomial, |\FibonacciF{n}{z}|, $\FibonacciF{n}{z}$
+% \begin{macrocode}
+\newcommand{\FibonacciF}[2]{\Fibonacci{#1,#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EulerE}
+% Euler Polynomial, |\EulerE{n}{z}|, $\EulerE{n}{z}$
+% \begin{macrocode}
+\newcommand{\EulerE}[2]{\Euler{#1,#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BernoulliB}
+% Bernoulli Polynomial, |\BernoulliB{n}{z}|, $\BernoulliB{n}{z}$
+% \begin{macrocode}
+\newcommand{\BernoulliB}[2]{\Bernoulli{#1,#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Factorial Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Factorial}
+% Factorial, |\Factorial{n}|, $\Factorial{n}$
+% \begin{macrocode}
+\newcommand{\Factorial}[1]{#1!}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DblFactorial}
+% Double Factorial, |\DblFactorial{n}|, $\DblFactorial{n}$
+% \begin{macrocode}
+\newcommand{\DblFactorial}[1]{#1!!}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Binomial}
+% binomial, |\Binomial{n}{r}|, $\Binomial{n}{r}$
+% \begin{macrocode}
+\newcommand{\Binomial}[2]{ \binom{#1}{#2} }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Multinomial}
+% Multinomial, |\Multinomial{n_1,\ldots,n_m}|, $\Multinomial{n_1,\ldots,n_m}$
+% \begin{macrocode}
+\newcommand{\Multinomial}[1]%
+{%
+\listval{#1}{0}% get the length of the list
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}% record length
+\liststore{#1}{COOL@list@temp@}%
+\isint{\COOL@list@temp@i}% check that the entries are integers
+\setcounter{COOL@ct}{2}%
+\whiledo{ \boolean{COOL@isint} \AND
+ \NOT \value{COOL@ct}>\value{COOL@listlen} }%
+ {%
+ \def\COOL@Multinomial@tempa%
+ {\csname COOL@list@temp@\roman{COOL@ct}\endcsname}%
+ \isint{\COOL@Multinomial@tempa}%
+ \stepcounter{COOL@ct}%
+ }%
+\ifthenelse{\boolean{COOL@isint}}%
+ {%
+ % all of them are integers
+ \setcounter{COOL@ct@}{ \COOL@list@temp@i }% records the sum
+ \forLoop{2}{\value{COOL@listlen}}{COOL@ct}%
+ {%
+ \addtocounter{COOL@ct@}%
+ {\csname COOL@list@temp@\roman{COOL@ct}\endcsname}%
+ }%
+ \left(\arabic{COOL@ct@}%
+ }%
+% Else
+ {%
+ \left(%
+ \listval{#1}{1}%
+ \forLoop{2}{\value{COOL@listlen}}{COOL@ct}%
+ {%
+ + \listval{#1}{\arabic{COOL@ct}}%
+ }%
+ }%
+;#1\right)%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Gamma Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\GammaFunc}
+% Gamma Function
+%
+% \noindent \begin{tabular}{lll}
+% Gamma Function & |\GammaFunc{z}| & $\GammaFunc{z}$ \\
+% Incomplete Gamma Function & |\GammaFunc{a,z}| & $\GammaFunc{a,z}$ \\
+% Generalized Incomplete Gamma Function & |\GammaFunc{a,x,y}| & $\GammaFunc{a,x,y}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@GammaFuncParen}{p}
+\newcommand{\GammaFunc}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ \Gamma\!\COOL@decide@paren{GammaFunc}{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \Gamma\!\COOL@decide@paren{GammaFunc}{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ \Gamma\!\COOL@decide@paren{GammaFunc}{#1}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`GammaFunc' can only accept a comma separate list of length 1 to 3}%
+ }%
+}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IncGamma}
+% incomplete Gamma function, |\IncGamma{a}{x}|, $\IncGamma{a}{x}$
+% \begin{macrocode}
+\newcommand{\IncGamma}[2]{\GammaFunc{#1,#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GenIncGamma}
+% Generalized Incomplete Gamma, |\GenIncGamma{a}{x}{y}|, $\GenIncGamma{a}{x}{y}$
+% \begin{macrocode}
+\newcommand{\GenIncGamma}[3]{\GammaFunc{#1, #2, #3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GammaRegularized}
+% \begin{macro}{\RegIncGamma}
+% \begin{macro}{\GammaReg}
+% Regularized Incomplete Gamma
+%
+% \begin{tabular}{ll}
+% |\GammaRegularized{a,x}| & $\GammaRegularized{a,x}$ \\
+% |\RegIncGamma{a}{x}| & $\RegIncGamma{a}{x}$ \\
+% |\GammaReg{a,x}| & $\GammaReg{a,x}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@GammaRegularizedParen}{p}%
+\newcommand{\GammaRegularized}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ Q\!\COOL@decide@paren{GammaRegularized}{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ Q\!\COOL@decide@paren{GammaRegularized}{#1}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`GammaRegularized' can only accept comma%
+ separated lists of length 2 or 3}%
+ }%
+}%
+}
+\newcommand{\RegIncGamma}[2]{\GammaRegularized{#1, #2}}
+\newcommand{\GammaReg}[1]{\GammaRegularized{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\RegIncGammaInv}
+% \begin{macro}{\InverseGammaRegularized}
+% \begin{macro}{\GammaRegInv}
+% Inverse of Regularized Incomplete Gamma,
+%
+% \begin{tabular}{ll}
+% |\RegIncGammaInv{a}{x}| & $\RegIncGammaInv{a}{x}$ \\
+% |\InverseGammaRegularized{a,x}| & $\InverseGammaRegularized{a,x}$ \\
+% |\GammaRegInv{a,x}| & $\GammaRegInv{a,x}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@InverseGammaRegularizedParen}{p}
+\newcommand{\InverseGammaRegularized}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ Q^{-1}\!\COOL@decide@paren{InverseGammaRegularized}{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ Q^{-1}\!\COOL@decide@paren{InverseGammaRegularized}{#1}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`InverseGammaRegularized' can only accept%
+ a comma separated list of length 2 or 3}%
+ }%
+}%
+}
+\newcommand{\RegIncGammaInv}[2]{\InverseGammaRegularized{#1, #2}}
+\newcommand{\GammaRegInv}[1]{\InverseGammaRegularized{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GenRegIncGamma}
+% Generalized Regularized Incomplete Gamma
+%
+% \begin{tabular}{ll}
+% |\GenRegIncGamma{a}{x}{y}| & $\GenRegIncGamma{a}{x}{y}$ \\
+% |\GammaRegularized{a,x,y}| & $\GammaRegularized{a,x,y}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\GenRegIncGamma}[3]{\GammaRegularized{#1, #2, #3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GenRegIncGammaInv}
+% Inverse of Gen. Reg. Incomplete Gamma, |\GenRegIncGammaInv{a}{x}{y}|, $\GenRegIncGammaInv{a}{x}{y}$
+% \begin{macrocode}
+\newcommand{\GenRegIncGammaInv}[3]{\InverseGammaRegularized{#1, #2, #3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Pochhammer}
+% Pochhammer Symbol |\Pochhammer{a}{n}|, $\Pochhammer{a}{n}$
+% \begin{macrocode}
+\newcommand{\Pochhammer}[2]{\inp{#1}_{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LogGamma}
+% Log Gamma Function, |\LogGamma{x}|, $\LogGamma{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LogGammaParen}{p}
+ \DeclareMathOperator{\LogGammaSymb}{log\Gamma}
+\newcommand{\LogGamma}[1]{\LogGammaSymb\COOL@decide@paren{LogGamma}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Derivatives of Gamma Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\DiGamma}
+% Digamma function, |\DiGamma{x}|, $\DiGamma{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@DiGammaParen}{p}
+\newcommand{\DiGamma}[1]{\digamma\!\COOL@decide@paren{DiGamma}{#1}}
+% \end{macrocode}
+% \end{macro}
+% PolyGamma function, |\PolyGamma{\nu}{x}|, $\PolyGamma{\nu}{x}$
+% \begin{macro}{\PolyGamma}
+%
+% \begin{macrocode}
+ \newcommand{\COOL@notation@PolyGammaParen}{p}
+\newcommand{\PolyGamma}[2]%
+{\psi^{\inp{#1}}\!\COOL@decide@paren{PolyGamma}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HarmNum}
+% Harmonic Number
+%
+% \begin{tabular}{lll}
+% Harmonic Number & |\HarmNum{x}| & $\HarmNum{x}$ \\
+% General Harmonic Number & |\HarmNum{x,r}| & $\HarmNum{x,r}$ \\
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\HarmNum}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer}=1}%
+ {%
+ H_{#1}
+ }%
+% Else If
+{ \ifthenelse{\value{COOL@listpointer}=2}%
+ {%
+ \liststore{#1}{COOL@list@temp@}%
+ H^{\inp{\COOL@list@temp@ii}}_{\COOL@list@temp@i}%
+ }%
+% Else
+{%
+ \PackageError{cool}{Invalid Argument}%
+ {`Harm Num' can only accept a comma separated list of length 1 or 2}%
+}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Beta Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Beta}
+% \begin{tabular}{lll}
+% Beta Function & |\Beta{a,b}| & $\Beta{a,b}$ \\
+% Incomplete Beta Function & |\Beta{z,a,b}| & $\Beta{z,a,b}$ \\
+% Generalized Incomplete Beta Function & |\Beta{z_1,z_2,a,b}| & $\Beta{z_1,z_2,a,b}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@BetaParen}{p}
+\newcommand{\Beta}[1]{%
+\liststore{#1}{COOL@Beta@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ B\!\COOL@decide@paren{Beta}{\COOL@Beta@arg@i, \COOL@Beta@arg@ii}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ B_{\COOL@Beta@arg@i}\!%
+ \COOL@decide@paren{Beta}{\COOL@Beta@arg@ii, \COOL@Beta@arg@iii}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+ {%
+ B_{\inp{\COOL@Beta@arg@i,\COOL@Beta@arg@ii}}\!%
+ \COOL@decide@paren{Beta}{\COOL@Beta@arg@iii, \COOL@Beta@arg@iv}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`Beta' can only accept a comma separated list of length 2 to 4}%
+ }%
+}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\IncBeta}
+% Incomplete Beta Function
+%
+% \begin{tabular}{ll}
+% |\IncBeta{z}{a}{b}| & $\IncBeta{z}{a}{b}$ \\
+% |\Beta{z,a,b}| & $\Beta{z,a,b}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\IncBeta}[3]{\Beta{#1,#2, #3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GenIncBeta}
+% Generalized Incomplete Beta Function
+%
+% \begin{tabular}{ll}
+% |\GenIncBeta{x}{y}{a}{b}| & $\GenIncBeta{x}{y}{a}{b}$ \\
+% |\Beta{x,y,a,b}| & $\Beta{x,y,a,b}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\GenIncBeta}[4]{\Beta{#1,#2,#3,#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BetaRegularized}
+% \begin{macro}{\BetaReg}
+% \begin{macro}{\RegIncBeta}
+% Regularized Incomplete Beta Function
+%
+% \begin{tabular}{ll}
+% |\BetaRegularized{z,a,b}| & $\BetaRegularized{z,a,b}$ \\
+% |\BetaReg{z,a,b}| & $\BetaReg{z,a,b}$ \\
+% |\RegIncBeta{z}{a}{b}| & $\RegIncBeta{z}{a}{b}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@BetaRegularizedParen}{p}
+\newcommand{\BetaRegularized}[1]{%
+\liststore{#1}{COOL@BetaRegularized@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ I_{\COOL@BetaRegularized@arg@i}\!%
+ \COOL@decide@paren{BetaRegularized}%
+ {\COOL@BetaRegularized@arg@ii, \COOL@BetaRegularized@arg@iii}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+ {%
+ I_{\inp{\COOL@BetaRegularized@arg@i, \COOL@BetaRegularized@arg@ii}}\!%
+ \COOL@decide@paren{BetaRegularized}%
+ {\COOL@BetaRegularized@arg@iii, \COOL@BetaRegularized@arg@iv}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`BetaRegularized' can only accept%
+ a comma separated list of length 3 or 4}%
+ }%
+}%
+}
+\newcommand{\RegIncBeta}[3]{\BetaRegularized{#1,#2,#3}}
+\newcommand{\BetaReg}[1]{\BetaRegularized{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\InverseBetaRegularized}
+% \begin{macro}{\BetaRegInv}
+% \begin{macro}{\RegIncBetaInv}
+% Inverse of Regularized Incomplete Beta Function
+%
+% \begin{tabular}{ll}
+% |\InverseBetaRegularized{z,a,b}| & $\InverseBetaRegularized{z,a,b}$ \\
+% |\BetaRegInv{z,a,b}| & $\BetaRegInv{z,a,b}$ \\
+% |\RegIncBetaInv{z}{a}{b}| & $\RegIncBetaInv{z}{a}{b}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@InverseBetaRegularizedParen}{p}
+\newcommand{\InverseBetaRegularized}[1]{%
+\liststore{#1}{COOL@InverseBetaRegularized@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ I^{-1}_{\COOL@InverseBetaRegularized@arg@i}\!%
+ \COOL@decide@paren{InverseBetaRegularized}%
+ {\COOL@InverseBetaRegularized@arg@ii,%
+ \COOL@InverseBetaRegularized@arg@iii}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+ {%
+ I^{-1}_{\inp{ \COOL@InverseBetaRegularized@arg@i,%
+ \COOL@InverseBetaRegularized@arg@ii%
+ }%
+ }\!%
+ \COOL@decide@paren{InverseBetaRegularized}%
+ {\COOL@InverseBetaRegularized@arg@iii,%
+ \COOL@InverseBetaRegularized@arg@iv}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`InverseBetaRegularized' can only accept%
+ a comma separated list of length 3 or 4}%
+ }%
+}%
+}
+\newcommand{\RegIncBetaInv}[3]{\InverseBetaRegularized{#1,#2,#3}}
+\newcommand{\BetaRegInv}[1]{\InverseBetaRegularized{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\GenRegIncBeta}
+% Generalized Regularized Incomplete Beta Func
+%
+% \begin{tabular}{ll}
+% |\GenRegIncBeta{x}{y}{a}{b}| & $\GenRegIncBeta{x}{y}{a}{b}$ \\
+% |\Beta{x,y,a,b}| & $\Beta{x,y,a,b}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\GenRegIncBeta}[4]{\Beta{#1,#2,#3,#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GenRegIncBetaInv}
+% Inverse of Generalized Regularized Incomplete Beta Function
+%
+% \begin{tabular}{ll}
+% |\GenRegIncBetaInv{x}{y}{z}{b}| & $\GenRegIncBetaInv{x}{y}{z}{b}$ \\
+% |\InverseBetaRegularized{x,y,z,b}| & $\InverseBetaRegularized{x,y,z,b}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\GenRegIncBetaInv}[4]{\InverseBetaRegularized{#1,#2,#3,#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Error Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Erf}
+% \begin{tabular}{lll}
+% Error Function & |\Erf{x}| & $\Erf{x}$ \\
+% Generalized Error Function & |\Erf{x,y}| & $\Erf{x,y}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ErfParen}{p}
+ \DeclareMathOperator{\ErfSymb}{erf}
+\newcommand{\Erf}[1]{%
+\liststore{#1}{COOL@Erf@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ \ErfSymb\!\COOL@decide@paren{Erf}{#1}
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \ErfSymb\!\COOL@decide@paren{Erf}{#1}
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`Erf' can only accept a comma separated list of length 1 or 2}%
+ }%
+}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ErfInv}
+% Inverse of Error Function
+%
+% \begin{tabular}{ll}
+% |\ErfInv{x}| & $\ErfInv{x}$ \\
+% |\ErfInv{x,y}| & $\ErfInv{x,y}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ErfInvParen}{p}
+\newcommand{\ErfInv}[1]{%
+\liststore{#1}{COOL@Erf@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ \ErfSymb^{-1}\!\COOL@decide@paren{ErfInv}{#1}
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \ErfSymb^{-1}\!\COOL@decide@paren{ErfInv}{#1}
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`Erf' can only accept a comma separated list of length 1 or 2}%
+ }%
+}%
+}
+% \end{macrocode}
+% \end{macro}
+
+%
+% \begin{macro}{\GenErf}
+% \begin{macro}{\GenErfInv}
+% Generalized Error Function and its inverse
+%
+% \begin{tabular}{ll}
+% |\GenErf{z_1}{z_2}| & $\GenErf{z_1}{z_2}$ \\
+% |\GenErfInv{z_1}{z_2}| & $\GenErfInv{z_1}{z_2}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\GenErf}[2]{\Erf{#1,#2}}
+\newcommand{\GenErfInv}[2]{\ErfInv{#1, #2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Erfc}
+% Complimentary Error Function and its inverse
+%
+% \begin{tabular}{ll}
+% |\Erfc{z}| & $\Erfc{z}$ \\
+% |\ErfcInv{z}| & $\ErfcInv{z}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ErfcParen}{p}
+ \DeclareMathOperator{\ErfcSymb}{erfc}
+\newcommand{\Erfc}[1]{\ErfcSymb\!\COOL@decide@paren{Erfc}{#1}}
+ \newcommand{\COOL@notation@ErfcInvParen}{p}
+\newcommand{\ErfcInv}[1]%
+{\ErfcSymb^{-1}\!\COOL@decide@paren{ErfcInv}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Erfi}
+% Imaginary Error Function, |\Erfi{z}|, $\Erfi{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ErfiParen}{p}
+ \DeclareMathOperator{\ErfiSymb}{erfi}
+\newcommand{\Erfi}[1]{\ErfiSymb\!\COOL@decide@paren{Erfi}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Fresnel Integrals}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\FresnelS}
+% Fresnel Integral, |\FresnelS{z}|, $\FresnelS{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@FresnelSParen}{p}
+\newcommand{\FresnelS}[1]{S\!\COOL@decide@paren{FresnelS}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FresnelC}
+% Fresnel Integral, |\FresnelC{z}|, $\FresnelC{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@FresnelCParen}{p}
+\newcommand{\FresnelC}[1]{C\!\COOL@decide@paren{FresnelC}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Exponential Integrals}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\ExpIntE}
+% Exponential Integral, |\ExpIntE{\nu}{x}|, $\ExpIntE{\nu}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ExpIntEParen}{p}
+\newcommand{\ExpIntE}[2]{E_{#1}\!\COOL@decide@paren{ExpIntE}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ExpIntEi}
+% Exponential Integral, |\ExpIntEi{x}|, $\ExpIntEi{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ExpIntEiParen}{p}
+ \DeclareMathOperator{\ExpIntEiSymb}{Ei}
+\newcommand{\ExpIntEi}[1]%
+{\ExpIntEiSymb\!\COOL@decide@paren{ExpIntEi}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LogInt}
+% Logarithmic Integral, |\LogInt{x}|, $\LogInt{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LogIntParen}{p}
+ \DeclareMathOperator{\LogIntSymb}{li}
+\newcommand{\LogInt}[1]{\LogIntSymb\!\COOL@decide@paren{LogInt}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SinInt}
+% Sine Integral, |\SinInt{x}|, $\SinInt{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@SinIntParen}{p}
+ \DeclareMathOperator{\SinIntSymb}{Si}
+\newcommand{\SinInt}[1]{\SinIntSymb\!\COOL@decide@paren{SinInt}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CosInt}
+% Cosine Integral, |\CosInt{x}|, $\CosInt{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CosIntParen}{p}
+ \DeclareMathOperator{\CosIntSymb}{Ci}
+\newcommand{\CosInt}[1]{\CosIntSymb\!\COOL@decide@paren{CosInt}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SinhInt}
+% Hyberbolic Sine Integral, |\SinhInt{x}|, $\SinhInt{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@SinhIntParen}{p}
+ \DeclareMathOperator{\SinhIntSymb}{Shi}
+\newcommand{\SinhInt}[1]{\SinhIntSymb\!\COOL@decide@paren{SinhInt}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CoshInt}
+% Hyberbolic Cosine Integral, |\CoshInt{x}|, $\CoshInt{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CoshIntParen}{p}
+ \DeclareMathOperator{\CoshIntSymb}{Chi}
+\newcommand{\CoshInt}[1]{\CoshIntSymb\!\COOL@decide@paren{CoshInt}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Hypergeometric Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\COOL@Hypergeometric@pq@ab@value}
+% This macro is a decision maker that decides what to return for the Hypergeometric function since
+% its results vary based on the nature of the input. This macro is called as
+%
+% |\COOL@Hypergeometric@pq@ab@value|
+% \DeleteShortVerb{\|}%
+% \verb|{|`p'\texttt{|}`q'\verb|}|%
+% \marg{p\_input\textnormal{\texttt{|}}q\_input}%
+% \verb|{|`a'\texttt{|}`b'\verb|}|%
+% \marg{a\_input\textnormal{\texttt{|}}b\_input}%
+% \MakeShortVerb{\|}
+% \begin{macrocode}
+\newcommand{\COOL@Hypergeometric@pq@ab@value}[4]{%
+\ifthenelse{\boolean{COOL@#1@isint} \AND \boolean{COOL@#3@islist}}%
+ {% #1 is an INT and #3 is a LIST
+ \ifthenelse{ #2 = 0 }%
+ {%
+ \PackageWarning{cool}{`#3'-arg ignored}%
+ }%
+ % Else
+ {%
+ \ifthenelse{ #2 = 1 }%
+ {%
+ \PackageError{cool}{`Hypergeometric' `#1'-arg mismatch with `#3'-arg}{}%
+ }%
+ % Else
+ {%
+ #4%
+ }%
+ }%
+ }%
+% Else
+ {}%
+\ifthenelse{ \boolean{COOL@#1@isint} \AND
+ \NOT \boolean{COOL@#3@islist} }%
+ {%
+ \ifthenelse{ #2 = 0 }%
+ {%
+ % return nothing
+ }%
+ % Else
+ {%
+ \ifthenelse{ #2 = 1 }%
+ {%
+ % return
+ #4%
+ }%
+ % Else
+ {%
+ \forLoop{1}{#2}{COOL@ct}
+ {%
+ \ifthenelse{ \value{COOL@ct} = 1 }{}{,}%
+ #4_{\arabic{COOL@ct}}%
+ }% end for loop
+ }%
+ }%
+ }%
+% else
+ {}%
+\ifthenelse{ \NOT \boolean{COOL@#1@isint} \AND
+ \boolean{COOL@#3@islist} }%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`Hypergeometric': `#1'-arg is not int but `#3'-arg is list}
+ }%
+% else
+ {}%
+\ifthenelse{ \NOT \boolean{COOL@#1@isint} \AND
+ \NOT \boolean{COOL@#3@islist} }%
+ {%
+ %return
+ #4_1,\ldots,#4_{#2}%
+ }%
+% else
+ {}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Hypergeometric}
+% Generalized Hypergeometric function. $\Hypergeometric{p}{q}{a}{b}{x}$
+%
+% \begin{tabular}{lr}
+% |\Hypergeometric{0}{0}{}{}{x}| & $\Hypergeometric{0}{0}{}{}{x}$ \\
+% |\Hypergeometric{0}{1}{}{b}{x}| & $\Hypergeometric{0}{1}{}{b}{x}$ \\
+% |\Hypergeometric{1}{1}{a}{b}{x}| & $\Hypergeometric{1}{1}{a}{b}{x}$ \\
+% |\Hypergeometric{1}{1}{1}{1}{x}| & $\Hypergeometric{1}{1}{1}{1}{x}$ \\
+% |\Hypergeometric{3}{5}{a}{b}{x}| \\
+% \multicolumn{2}{r}{$\Hypergeometric{3}{5}{a}{b}{x}$}
+% \\
+% |\Hypergeometric{3}{5}{1,2,3}{1,2,3,4,5}{x}|
+% \\
+% \multicolumn{2}{r}{$\Hypergeometric{3}{5}{1,2,3}{1,2,3,4,5}{x}$}
+% \\
+% |\Hypergeometric{p}{5}{a}{b}{x}| \\
+% \multicolumn{2}{r}{$\Hypergeometric{p}{5}{a}{b}{x}$}
+% \\
+% |\Hypergeometric{p}{3}{a}{1,2,3}{x}| \\
+% \multicolumn{2}{r}{$\Hypergeometric{p}{3}{a}{1,2,3}{x}$ }
+% \\
+% |\Hypergeometric{p}{q}{a}{b}{x}| \\
+% \multicolumn{2}{r}{$\Hypergeometric{p}{q}{a}{b}{x}$}
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@HypergeometricParen}{p}
+ \newcommand{\COOL@notation@HypergeometricSymb}{F}
+\newcommand{\Hypergeometric}[6][F]{%
+\provideboolean{COOL@p@isint}%
+\provideboolean{COOL@q@isint}%
+\provideboolean{COOL@a@islist}%
+\provideboolean{COOL@b@islist}%
+\isint{#2}%
+\ifthenelse{\boolean{COOL@isint}}%
+ {\setboolean{COOL@p@isint}{true}}%
+% Else
+ {\setboolean{COOL@p@isint}{false}}%
+\isint{#3}%
+\ifthenelse{\boolean{COOL@isint}}%
+ {\setboolean{COOL@q@isint}{true}}%
+% Else
+ {\setboolean{COOL@q@isint}{false}}%
+\listval{#4}{0}%
+\ifthenelse{\value{COOL@listpointer}>1}%
+ {\setboolean{COOL@a@islist}{true}}%
+% Else
+ {\setboolean{COOL@a@islist}{false}}%
+% \end{macrocode}
+% ensure that the submitted list is the same length as p
+% \begin{macrocode}
+\ifthenelse{ \boolean{COOL@p@isint} \AND
+ \boolean{COOL@a@islist} \AND
+ \NOT \( #2 = \value{COOL@listpointer} \) }%
+ {%
+ \PackageError{cool}{`Hypergeometric' `p'-arg mismatch with `a'-arg}{}%
+ }%
+% else
+ {}%
+\listval{#5}{0}%
+\ifthenelse{\value{COOL@listpointer}>1}%
+ {\setboolean{COOL@b@islist}{true}}%
+% Else
+ {\setboolean{COOL@b@islist}{false}}%
+% \end{macrocode}
+% ensure that the submitted `b' list is the same length as q
+% \begin{macrocode}
+\ifthenelse{ \boolean{COOL@q@isint} \AND
+ \boolean{COOL@b@islist} \AND
+ \NOT \( #3 = \value{COOL@listpointer} \) }%
+ {%
+ \PackageError{cool}{`Hypergeometric' `q'-arg mismatch with `b'-arg}%
+ {`b' list is not the same length as `q'}%
+ }%
+% else
+ {}%
+% troubleshoot
+\ifthenelse{ \boolean{COOL@a@islist} \AND \NOT \boolean{COOL@p@isint} }%
+ {%
+ \PackageError{cool}{`Hypergeometric' `a'-arg mismatch with `p'-arg}%
+ {happens if `a'-arg is a list and `p'-arg isn't an integer}%
+ }%
+% else
+ {}%
+\ifthenelse{ \boolean{COOL@b@islist} \AND \NOT \boolean{COOL@q@isint} }%
+ {%
+ \PackageError{cool}{`Hypergeometric' `b'-arg mismatch with `q'-arg}%
+ {happens if `b'-arg is a list and `q'-arg isn't an integer}%
+ }%
+% else
+ {}%
+% \end{macrocode}
+% First print the ${}_p F_q$
+% \begin{macrocode}
+{}_{#2}{\COOL@notation@HypergeometricSymb}_{#3}\!%
+\COOL@decide@paren{Hypergeometric}%
+ {%
+ \COOL@Hypergeometric@pq@ab@value{p}{#2}{a}{#4};%
+ \COOL@Hypergeometric@pq@ab@value{q}{#3}{b}{#5};%
+ #6%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\RegHypergeometric}
+% Regularized hypergeometric function $\RegHypergeometric{p}{q}{a}{b}{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@RegHypergeometricParen}{p}
+ \newcommand{\COOL@notation@RegHypergeometricSymb}{\tilde{F}}
+\newcommand{\RegHypergeometric}[6][\tilde{F}]{%
+\provideboolean{COOL@p@isint}%
+\provideboolean{COOL@q@isint}%
+\provideboolean{COOL@a@islist}%
+\provideboolean{COOL@b@islist}%
+\isint{#2}%
+\ifthenelse{\boolean{COOL@isint}}%
+ {\setboolean{COOL@p@isint}{true}}%
+% Else
+ {\setboolean{COOL@p@isint}{false}}%
+\isint{#3}%
+\ifthenelse{\boolean{COOL@isint}}%
+ {\setboolean{COOL@q@isint}{true}}%
+% Else
+ {\setboolean{COOL@q@isint}{false}}%
+\listval{#4}{0}%
+\ifthenelse{\value{COOL@listpointer}>1}%
+ {\setboolean{COOL@a@islist}{true}}%
+% Else
+ {\setboolean{COOL@a@islist}{false}}%
+% \end{macrocode}
+% ensure that the submitted list is the same length as p
+% \begin{macrocode}
+\ifthenelse{ \boolean{COOL@p@isint} \AND
+ \boolean{COOL@a@islist} \AND
+ \NOT \( #2 = \value{COOL@listpointer} \) }%
+ {%
+ \PackageError{cool}%
+ {`RegHypergeometric' `p'-arg mismatch with `a'-arg}{}%
+ }%
+% else
+ {}%
+\listval{#5}{0}%
+\ifthenelse{\value{COOL@listpointer}>1}%
+ {\setboolean{COOL@b@islist}{true}}%
+% Else
+ {\setboolean{COOL@b@islist}{false}}%
+% \end{macrocode}
+% ensure that the submitted `b' list is the same length as q
+% \begin{macrocode}
+\ifthenelse{ \boolean{COOL@q@isint} \AND
+ \boolean{COOL@b@islist} \AND
+ \NOT \( #3 = \value{COOL@listpointer} \) }%
+ {%
+ \PackageError{cool}%
+ {`RegHypergeometric' `q'-arg mismatch with `b'-arg}%
+ {`b' list is not the same length as `q'}%
+ }%
+% else
+ {}%
+% troubleshoot
+\ifthenelse{ \boolean{COOL@a@islist} \AND \NOT \boolean{COOL@p@isint} }%
+ {%
+ \PackageError{cool}%
+ {`RegHypergeometric' `a'-arg mismatch with `p'-arg}%
+ {happens if `a'-arg is a list and `p'-arg isn't an integer}%
+ }%
+% else
+ {}%
+\ifthenelse{ \boolean{COOL@b@islist} \AND \NOT \boolean{COOL@q@isint} }%
+ {%
+ \PackageError{cool}%
+ {`RegHypergeometric' `b'-arg mismatch with `q'-arg}%
+ {happens if `b'-arg is a list and `q'-arg isn't an integer}%
+ }%
+% else
+ {}%
+% \end{macrocode}
+% First print the ${}_p F_q$
+% \begin{macrocode}
+{}_{#2}{\COOL@notation@RegHypergeometricSymb}_{#3}\!%
+\COOL@decide@paren{RegHypergeometric}%
+ {%
+ \COOL@Hypergeometric@pq@ab@value{p}{#2}{a}{#4};%
+ \COOL@Hypergeometric@pq@ab@value{q}{#3}{b}{#5};%
+ #6%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\AppellFOne}
+% Appell Hypergeometric Function
+%
+% \begin{tabular}{ll}
+% |\AppellFOne{a}{b_1,b_2}{c}{z_1,z_2}| & $\AppellFOne{a}{b_1,b_2}{c}{z_1,z_2}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@AppellFOneParen}{p}
+\newcommand{\AppellFOne}[4]%
+ {F_{1}\!\COOL@decide@paren{AppellFOne}{#1; #2; #3; #4}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\HypergeometricU}
+% Tricomi confluent hypergeometric function
+%
+% \begin{tabular}{ll}
+% |\HypergeometricU{a}{b}{z}| & $\HypergeometricU{a}{b}{z}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@HypergeometricUSymb}{U}
+\newcommand{\HypergeometricU}[3]%
+{\COOL@notation@HypergeometricUSymb\!\inp{#1, #2, #3}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\COOL@MeijerG@anp@value}
+% This macro is a decision maker for the |\MeijerG| macro. Despite the name it is used for both $p$ and $q$.
+% It is called as
+%
+% |\COOL@MeijerG@anp@value|
+% \DeleteShortVerb{\|}
+% \marg{a\textnormal{\texttt{|}}b}
+% \marg{n\textnormal{\texttt{|}}m}
+% \marg{p\textnormal{\texttt{|}}q}
+% \MakeShortVerb{\|}
+% \begin{macrocode}
+\newcommand{\COOL@MeijerG@anp@value}[3]{%
+\isint{#3}%
+\ifthenelse{\boolean{COOL@isint}}%
+ {%
+ \isint{#2}%
+ \ifthenelse{\boolean{COOL@isint}}%
+ {%
+ \forLoop{1}{#3}{COOL@ct}%
+ {%
+ \ifthenelse{\value{COOL@ct}=1}{}{,}%
+ #1_{\arabic{COOL@ct}}%
+ }%
+ }%
+ % else
+ {%
+ #1_1,\ldots,#1_{#2},#1_{#2+1},\dots,#1_{#3}%
+ }%
+ }%
+% else
+ {%
+ \isint{#2}%
+ \ifthenelse{\boolean{COOL@isint}}%
+ {%
+ \forLoop{1}{#2}{COOL@ct}%
+ {%
+ \ifthenelse{\value{COOL@ct}=1}{}{,}%
+ #1_{\arabic{COOL@ct}}%
+ }%
+ \setcounter{COOL@ct}{#2}%
+ \addtocounter{COOL@ct}{1}%
+ ,#1_{\arabic{COOL@ct}}, \ldots, #1_{#3}%
+ }%
+ % else
+ {%
+ #1_1,\ldots,#1_{#2},#1_{#2+1},\dots,#1_{#3}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\MeijerG}
+% |\MeijerG{|$a_1, \ldots, a_n$|}{|$a_{n+1}, \ldots, a_p$|}{|$b_1, \ldots, b_m$|}{|$b_{m+1}, \ldots, b_q$|}|\marg{x}
+%
+% \noindent |\MeijerG[|\meta{a list symbol},\meta{b list symbol}|]|\marg{n}\marg{p}\marg{m}\marg{q}\marg{x}
+%
+% \noindent |\MeijerG[|\meta{a list symbol}|]|\marg{n}\marg{p}|{|$b_1, \ldots, b_m$|}{|$b_{m+1}, \ldots, b_q$|}|\marg{x}
+%
+% \noindent |\MeijerG[,|\meta{b list symbol}|]{|$a_1, \ldots, a_n$|}{|$a_{n+1}, \ldots, a_p$|}|\marg{m}\marg{q}\marg{x}
+%
+% \hspace{0.25cm}
+%
+% \begin{tabular}{c}
+% Meijer $G$-Function
+% \\
+% \begin{tabular}{ll}
+% |\MeijerG[a,b]{n}{p}{m}{q}{z}| & $\MeijerG[a,b]{n}{p}{m}{q}{z}$ \\
+% \end{tabular}
+% \\
+% Meijer $G$-Function
+% \\
+% \begin{tabular}{ll}
+% |\MeijerG{1,2}{3}{a,b}{c,d}{z}| & $\MeijerG{1,2}{3}{a,b}{c,d}{z}$ \\
+% \end{tabular}
+% \\
+% Generalized Meijer $G$-Function
+% \\
+% \begin{tabular}{ll}
+% |\MeijerG[a,b]{n}{p}{m}{q}{z,r}| & $\MeijerG[a,b]{n}{p}{m}{q}{z,r}$ \\
+% \end{tabular}
+% \\
+% Generalized Meijer $G$-Function
+% \\
+% \begin{tabular}{ll}
+% |\MeijerG{1,2}{3}{a,b}{c,d}{z,r}| & $\MeijerG{1,2}{3}{a,b}{c,d}{z,r}$
+% \end{tabular}
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@MeijerGSymb}{G}
+\newcommand{\MeijerG}[6][@,@]{%
+\listval{#1}{0}
+\ifthenelse{\value{COOL@listpointer}>2 \OR \value{COOL@listpointer}<1}%
+ {%
+ \PackageError{cool}{`MeijerG' Invalid Optional Argument}%
+ {Must be a comma separated list of length 1 or 2}%
+ }%
+% else
+ {%
+ }%
+\COOL@notation@MeijerGSymb%
+\ifthenelse{\equal{#1}{@,@}}%
+ {%
+ \listval{#2}{0}% n
+ \setcounter{COOL@ct}{\value{COOL@listpointer}}%
+ \listval{#4}{0}% m
+ \setcounter{COOL@ct@}{\value{COOL@listpointer}}%
+ ^{\arabic{COOL@ct@},\arabic{COOL@ct}}%
+ \listval{#3}{0}% p - n
+ \addtocounter{COOL@ct}{\value{COOL@listpointer}}%
+ \listval{#5}{0}% q - m
+ \addtocounter{COOL@ct@}{\value{COOL@listpointer}}%
+ _{\arabic{COOL@ct},\arabic{COOL@ct@}}%
+ \!\left(%
+ #6%
+ \left|%
+ { {#2,#3} \@@atop {#4,#5} }%
+ \right)\right.%
+ }%
+% else
+ {%
+ \listval{#1}{0}%
+ \ifthenelse{\value{COOL@listpointer}=2}%
+ {%
+ \provideboolean{COOL@MeijerG@opt@one@blank}%
+ \def\COOL@MeijerG@sniffer##1,##2\COOL@MeijerG@sniffer@end{%
+ \ifthenelse{\equal{##1}{}}%
+ {%
+ \setboolean{COOL@MeijerG@opt@one@blank}{true}%
+ }%
+ % else
+ {%
+ \setboolean{COOL@MeijerG@opt@one@blank}{false}%
+ }%
+ }%
+ \expandafter\COOL@MeijerG@sniffer#1\COOL@MeijerG@sniffer@end\relax%
+ \ifthenelse{\boolean{COOL@MeijerG@opt@one@blank}}%
+ {%
+% \end{macrocode}
+% this is |\MeijerG[,b]{a_1,...,a_n}{a_{n++},...,a_p}{m}{q}{x}|
+% \begin{macrocode}
+ \listval{#2}{0}% n
+ \setcounter{COOL@ct}{\value{COOL@listpointer}}%
+ ^{#4,\arabic{COOL@ct}}%
+ \listval{#3}{0}% p
+ \addtocounter{COOL@ct}{\value{COOL@listpointer}}%
+ _{\arabic{COOL@ct},#5}%
+ \!\left(%
+ #6%
+ \left|%
+ {%
+ {#2,#3} \@@atop {\COOL@MeijerG@anp@value{\listval{#1}{2}}{#4}{#5}}
+ }%
+ \right)\right.%
+ }%
+ % else
+ {%
+ ^{#4,#2}_{#3,#5}%
+ \!\left(%
+ #6%
+ \left|%
+ {%
+ {\COOL@MeijerG@anp@value{\listval{#1}{1}}{#2}{#3}}%
+ \@@atop%
+ {\COOL@MeijerG@anp@value{\listval{#1}{2}}{#4}{#5}}
+ }%
+ \right)\right.%
+ }%
+ }%
+ % else
+ {%
+% \end{macrocode}
+% this is| \MeijerG[a]{n}{p}{b_1,...,b_m}{b_{m++},...,a_p}{x}|
+% \begin{macrocode}
+ \listval{#4}{0}% m
+ \setcounter{COOL@ct}{\value{COOL@listpointer}}%
+ ^{\arabic{COOL@ct}, #2}%
+ \listval{#5}{0}% q
+ \addtocounter{COOL@ct}{\value{COOL@listpointer}}%
+ _{#3, \arabic{COOL@ct}}%
+ \!\left(%
+ #6%
+ \left|%
+ {%
+ {\COOL@MeijerG@anp@value{#1}{#2}{#3}} \@@atop {#4,#5}
+ }%
+ \right)\right.%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Angular Momentum Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\ClebschGordon}
+% Clebsch-Gordon Coefficients
+%
+% \begin{tabular}{ll}
+% |\ClebschGordon{j_1,m_1}{j_2,m_2}{j,m}| & $\ClebschGordon{j_1,m_1}{j_2,m_2}{j,m}$ \\
+% \end{tabular}
+%
+% \noindent \url{http://functions.wolfram.com/HypergeometricFunctions/ClebschGordan/}
+% \begin{macrocode}
+\newcommand{\ClebschGordon}[3]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+ {%
+ \PackageError{cool}{`ClebschGordon' Invalid Argument}%
+ {Must have a comma separated list of length two}%
+ }%
+% else
+ {}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+ {%
+ \PackageError{cool}{`ClebschGordon' Invalid Argument}%
+ {Must have a comma separated list of length two}%
+ }%
+% else
+ {}%
+\listval{#3}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+ {%
+ \PackageError{cool}{`ClebschGordon' Invalid Argument}%
+ {Must have a comma separated list of length two}%
+ }%
+% else
+ {}%
+\left<%
+ \listval{#1}{1},\listval{#2}{1};%
+ \listval{#1}{2},\listval{#2}{2}%
+ \left|%
+ \listval{#1}{1},\listval{#2}{1};%
+ \listval{#3}{1},\listval{#3}{2}%
+\right>\right.%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\ThreeJSymbol}
+% Wigner 3-j Symbol
+%
+% \begin{tabular}{ll}
+% |\ThreeJSymbol{j_1,m_1}{j_2,m_2}{j_3,m_3}| & $\ThreeJSymbol{j_1,m_1}{j_2,m_2}{j_3,m_3}$ \\
+% \end{tabular}
+%
+% \noindent \url{http://functions.wolfram.com/HypergeometricFunctions/ThreeJSymbol/}
+% \begin{macrocode}
+\newcommand{\ThreeJSymbol}[3]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+ {%
+ \PackageError{cool}{`ThreeJSymbol' Invalid Argument}%
+ {Must have comma separated list of length 2}%
+ }%
+% else
+ {}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+ {%
+ \PackageError{cool}{`ThreeJSymbol' Invalid Argument}%
+ {Must have comma separated list of length 2}%
+ }%
+% else
+ {}%
+\listval{#3}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+ {%
+ \PackageError{cool}{`ThreeJSymbol' Invalid Argument}%
+ {Must have comma separated list of length 2}%
+ }%
+% else
+ {}%
+\mathchoice{%
+% displaystyle
+\inp{\!%
+ \begin{array}{ccc}%
+ \listval{#1}{1} & \listval{#2}{1} & \listval{#3}{1} \\%
+ \listval{#1}{2} & \listval{#2}{2} & \listval{#3}{2}
+ \end{array}%
+ \!}%
+ }%
+ {%
+% inline
+\inp{\!%
+ {\listval{#1}{1} \@@atop \listval{#1}{2}}%
+ {\listval{#2}{1} \@@atop \listval{#2}{2}}%
+ {\listval{#3}{1} \@@atop \listval{#3}{2}}%
+ \!}%
+ }%
+ {%
+% subscript
+\inp{\!%
+ {\listval{#1}{1} \@@atop \listval{#1}{2}}%
+ {\listval{#2}{1} \@@atop \listval{#2}{2}}%
+ {\listval{#3}{1} \@@atop \listval{#3}{2}}%
+ \!}%
+ }%
+ {%
+% subsubscript
+\inp{\!%
+ {\listval{#1}{1} \@@atop \listval{#1}{2}}%
+ {\listval{#2}{1} \@@atop \listval{#2}{2}}%
+ {\listval{#3}{1} \@@atop \listval{#3}{2}}%
+ \!}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\SixJSymbol}
+% Racah 6-j Symbol
+%
+% \begin{tabular}{ll}
+% |\SixJSymbol{j_1,j_2,j_3}{j_4,j_5,j_6}| & $\SixJSymbol{j_1,j_2,j_3}{j_4,j_5,j_6}$ \\
+% \end{tabular}
+%
+% \url{http://functions.wolfram.com/HypergeometricFunctions/SixJSymbol/}
+% \begin{macrocode}
+\newcommand{\SixJSymbol}[2]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=3}%
+ {%
+ \PackageError{cool}{`SixJSymbol' Invalid Argument}%
+ {Must have a comma separated list of length 3}%
+ }%
+%else
+ {}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=3}%
+ {%
+ \PackageError{cool}{`SixJSymbol' Invalid Argument}%
+ {Must have a comma separated list of length 3}%
+ }%
+%else
+ {}%
+\mathchoice{%
+% displaystyle
+\inbr{\!%
+\begin{array}{ccc}%
+\listval{#1}{1} & \listval{#1}{2} & \listval{#1}{3} \\%
+\listval{#2}{1} & \listval{#2}{2} & \listval{#2}{3}%
+\end{array}%
+ \!}%
+ }%
+ {%
+% inline
+\inbr{\!%
+ {\listval{#1}{1} \@@atop \listval{#2}{1}}%
+ {\listval{#1}{2} \@@atop \listval{#2}{2}}%
+ {\listval{#1}{3} \@@atop \listval{#2}{3}}%
+ \!}%
+ }%
+ {%
+% superscript
+\inbr{\!%
+ {\listval{#1}{1} \@@atop \listval{#2}{1}}%
+ {\listval{#1}{2} \@@atop \listval{#2}{2}}%
+ {\listval{#1}{3} \@@atop \listval{#2}{3}}%
+ \!}%
+ }%
+ {%
+% supersuperscript
+\inbr{\!%
+ {\listval{#1}{1} \@@atop \listval{#2}{1}}%
+ {\listval{#1}{2} \@@atop \listval{#2}{2}}%
+ {\listval{#1}{3} \@@atop \listval{#2}{3}}%
+ \!}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Complete Elliptic Integrals}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\EllipticK}
+% Complete Elliptic Integral of the First Kind
+%
+% \begin{tabular}{ll}
+% |\EllipticK{x}| & $\EllipticK{x}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EllipticKParen}{p}
+ \newcommand{\COOL@notation@EllipticKSymb}{K}
+\newcommand{\EllipticK}[1]%
+ {\COOL@notation@EllipticKSymb\!\COOL@decide@paren{EllipticK}{#1}}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\EllipticE}
+% Complete Elliptic Integral of the Second Kind
+%
+% \begin{tabular}{ll}
+% |\EllipticE{x}| & $\EllipticE{x}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EllipticEParen}{p}
+ \newcommand{\COOL@notation@EllipticESymb}{E}
+\newcommand{\EllipticE}[1]{%
+\liststore{#1}{COOL@EllipticE@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ \COOL@notation@EllipticESymb\!\COOL@decide@paren{EllipticE}{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \COOL@notation@EllipticESymb\!%
+ \COOL@decide@paren{EllipticE}%
+ {\COOL@EllipticE@arg@i \left| \, \COOL@EllipticE@arg@ii \!\!\right.}%
+ }%
+% Else
+ {%
+ \PackageError{Invalid Argument}%
+ {`EllipticE' can only accept a comma separated list of length 1 or 2}%
+ }%
+}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\EllipticPi}
+% Complete Elliptic Integral of the Third Kind
+%
+% \begin{tabular}{ll}
+% |\EllipticPi{n,m}| & $\EllipticPi{n,m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EllipticPiParen}{p}
+ \newcommand{\COOL@notation@EllipticPiSymb}{\Pi}
+\newcommand{\EllipticPi}[1]{%
+\liststore{#1}{COOL@EllipticPi@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \COOL@notation@EllipticPiSymb%
+ \!\COOL@decide@paren{EllipticPi}%
+ {\COOL@EllipticPi@arg@i \left| \, \COOL@EllipticPi@arg@ii \!\!\right.}%
+ }%
+% ElseIf
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ \COOL@notation@EllipticPiSymb%
+ \!\COOL@decide@paren{EllipticPi}%
+ { \COOL@EllipticPi@arg@i; \,%
+ \COOL@EllipticPi@arg@ii \left| \,%
+ \COOL@EllipticPi@arg@iii \!\!\right.%
+ }%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`EllipticPi' can only accept a comma separated list of length 2 or 3}%
+ }%
+}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Incomplete Elliptic Integrals}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\EllipticF}
+% \begin{macro}{\IncEllipticF}
+% Incomplete Elliptic Integral of the First Kind
+%
+% \begin{tabular}{ll}
+% |\EllipticF{z,m}| & $\EllipticF{z,m}$ \\
+% |\IncEllipticF{z}{m}| & $\IncEllipticF{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EllipticFParen}{p}
+ \newcommand{\COOL@notation@EllipticFSymb}{F}
+\newcommand{\EllipticF}[1]{%
+\liststore{#1}{COOL@EllipticF@arg@}%
+\listval{#1}{0}%
+\ifthenelse{ \value{COOL@listpointer} = 2 }%
+ {%
+ \COOL@notation@EllipticFSymb%
+ \!\COOL@decide@paren{EllipticF}%
+ {\COOL@EllipticF@arg@i \left| \, \COOL@EllipticF@arg@ii \!\!\right.}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`EllipticF' can only accept a comma separated list of length 2}%
+ }%
+}
+\newcommand{\IncEllipticF}[2]{\EllipticF{#1,#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\IncEllipticE}
+% Incomplete Elliptic Integral of the Second Kind
+%
+% \begin{tabular}{ll}
+% |\IncEllipticE{z}{m}| & $\IncEllipticE{z}{m}$ \\
+% |\EllipticE{z,m}| & $\EllipticE{z,m}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\IncEllipticE}[2]{\EllipticE{#1,#2}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\IncEllipticPi}
+% \begin{macro}{\EllipticPi}
+% Incomplete Elliptic Integral of the Third Kind
+%
+% \begin{tabular}{ll}
+% |\IncEllipticPi{n}{z}{m}| & $\IncEllipticPi{n}{z}{m}$ \\
+% |\EllipticPi{n,z,m}| & $\EllipticPi{n,z,m}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\IncEllipticPi}[3]{\EllipticPi{#1,#2,#3}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\JacobiZeta}
+% Jacobi Zeta Function
+%
+% \begin{tabular}{ll}
+% |\JacobiZeta{z}{m}| & $\JacobiZeta{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiZetaParen}{p}
+ \newcommand{\COOL@notation@JacobiZetaSymb}{Z}
+\newcommand{\JacobiZeta}[2]{%
+\COOL@notation@JacobiZetaSymb
+\!\COOL@decide@paren{JacobiZeta}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Jacobi Theta Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\EllipticTheta}
+% \begin{macro}{\JacobiTheta}
+% Jacobi Theta Functions
+%
+% \begin{tabular}{ll}
+% |\JacobiTheta{1}{z}{q}| & $\JacobiTheta{1}{z}{q}$ \\
+% |\JacobiTheta{2}{z}{q}| & $\JacobiTheta{2}{z}{q}$ \\
+% |\JacobiTheta{3}{z}{q}| & $\JacobiTheta{3}{z}{q}$ \\
+% |\JacobiTheta{4}{z}{q}| & $\JacobiTheta{4}{z}{q}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EllipticThetaParen}{p}
+\newcommand{\EllipticTheta}[3]%
+ {\vartheta_{#1}\!\COOL@decide@paren{EllipticTheta}{#2, #3}}
+\newcommand{\JacobiTheta}[3]{\EllipticTheta{#1}{#2}{#3}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Neville Theta Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\NevilleThetaC}
+% Neville Theta Function, |\NevilleThetaC{z}{m}|, $\NevilleThetaC{z}{m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@NevilleThetaCParen}{p}
+\newcommand{\NevilleThetaC}[2]{%
+ \vartheta_{c}\!\COOL@decide@paren{NevilleThetaC}%
+ {#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\NevilleThetaD}
+% Neville Theta Function, |\NevilleThetaD{z}{m}|, $\NevilleThetaD{z}{m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@NevilleThetaDParen}{p}
+\newcommand{\NevilleThetaD}[2]{%
+ \vartheta_{d}\!\COOL@decide@paren{NevilleThetaD}%
+ {#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\NevilleThetaN}
+% Neville Theta Function, |\NevilleThetaN{z}{m}|, $\NevilleThetaN{z}{m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@NevilleThetaNParen}{p}
+\newcommand{\NevilleThetaN}[2]{%
+ \vartheta_{n}\!\COOL@decide@paren{NevilleThetaN}%
+ {#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\NevilleThetaS}
+% Neville Theta Function, |\NevilleThetaS{z}{m}|, $\NevilleThetaS{z}{m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@NevilleThetaSParen}{p}
+\newcommand{\NevilleThetaS}[2]{%
+ \vartheta_{s}\!\COOL@decide@paren{NevilleThetaS}%
+ {#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Weierstrass Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\WeierstrassP}
+% \begin{macro}{\WeiP}
+% Weierstrass Elliptic Function
+%
+% \begin{tabular}{ll}
+% |\WeierstrassP{z}{g_2,g_3}| & $\WeierstrassP{z}{g_2,g_3}$ \\
+% |\WeiP{z}{g_2,g_3}| & $\WeiP{z}{g_2,g_3}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@WeierstrassPParen}{p}
+\newcommand{\WeierstrassP}[2]{%
+\liststore{#2}{COOL@WeiP@arg@g@}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassP' second argument must be%
+ a comma separated list of length 2}%
+ }
+% Else
+ {%
+ \wp\!\COOL@decide@paren{WeierstrassP}{#1; #2}
+ }%
+}
+\newcommand{\WeiP}[2]{\WeierstrassP{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\WeierstrassPInv}
+% \begin{macro}{\WeiPInv}
+% Inverse of Weierstrass Elliptic Function
+%
+% \begin{tabular}{lll}
+% Inverse & |\WeiPInv{z}{g_2,g_3}| & $\WeiPInv{z}{g_2,g_3}$
+% \\
+% Generalized Inverse & |\WeiPInv{z_1,z_2}{g_2,g_3}| & $\WeiPInv{z_1,z_2}{g_2,g_3}$
+% \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@WeierstrassPInvParen}{p}
+\newcommand{\WeierstrassPInv}[2]{%
+\liststore{#1}{COOL@WeiPinv@arg@z@}%
+\liststore{#1}{COOL@WeiPinv@arg@g@}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassPInv' second argument must be%
+ a comma separated list of length 2}%
+ }
+% Else
+ {
+ \listval{#1}{0}%
+ \ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ \wp^{-1}\!\COOL@decide@paren{WeierstrassPInv}{#1; #2}%
+ }%
+ % ElseIf
+ { \ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \wp^{-1}\!\COOL@decide@paren{WeierstrassPInv}{#1; #2}%
+ }%
+ % Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassPInv' first argument must be%
+ a comma separate list of length 1 or 2}%
+ }}%
+ }%
+}
+\newcommand{\WeiPInv}[2]{\WeierstrassPInv{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\WeierstrassPGenInv}
+% Generalized Inverse of Weierstrass Elliptic Function
+%
+% |\WierstrassPGenInv{z_1}{z_2}{g_1}{g_2}|
+% \begin{macrocode}
+\newcommand{\WeierstrassPGenInv}[4]{\WeierstrassPInv{#1,#2}{#3,#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\WeierstrassSigma}
+% \begin{macro}{\WeiSigma}
+% Wierstrass Sigma Function
+%
+% \begin{tabular}{lll}
+% Sigma & |\WeierstrassSigma{z}{g_2,g_3}| & $\WeierstrassSigma{z}{g_2,g_3}$ \\
+% & |\WeiSigma{z}{g_2,g_3}| & $\WeiSigma{z}{g_2,g_3}$ \\
+% Associated Sigma & |\WeierstrassSigma{n,z}{g_2,g_3}| & $\WeierstrassSigma{n,z}{g_2,g_3}$ \\
+% & |\WeiSigma{n,z}{g_2,g_3}| & $\WeiSigma{n,z}{g_2,g_3}$ \\
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\WeierstrassSigma}[2]{%
+\liststore{#1}{COOL@WeiSigma@arg@z@}%
+\liststore{#2}{COOL@WeiSigma@arg@g@}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassSigma' second argument must be%
+ a comma separated list of length 2}%
+ }%
+% Else
+ {%
+ \listval{#1}{0}%
+ \ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ \sigma\!\inp{#1; #2}%
+ }%
+ % ElseIf
+ { \ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \sigma_{\COOL@WeiSigma@arg@z@i}\!\inp{\COOL@WeiSigma@arg@z@ii; #2}%
+ }%
+ % Else
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassSigma' first argument must be%
+ a comma separated list of length 1 or 2}%
+ }}%
+ }%
+}
+\newcommand{\WeiSigma}[2]{\WeierstrassSigma{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\AssocWeierstrassSigma}
+% Associated Weierstrass Sigma Function
+%
+% \begin{tabular}{ll}
+% |\AssocWeierstrassSigma{n}{z}{g_2}{g_3}| & $\AssocWeierstrassSigma{n}{z}{g_2}{g_3}$ \\
+% |\WeiSigma{n,z}{g_2,g_3}| & $\WeiSigma{n,z}{g_2,g_3}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\AssocWeierstrassSigma}[4]{\WeierstrassSigma{#1,#2}{#3,#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\WeierstrassZeta}
+% \begin{macro}{\WeiZeta}
+% Weierstrass Zeta Function
+%
+% \begin{tabular}{ll}
+% |\WeierstrassZeta{z}{g_2,g_3}| & $\WeierstrassZeta{z}{g_2,g_3}$ \\
+% |\WeiZeta{z}{g_2,g_3}| & $\WeiZeta{z}{g_2,g_3}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@WeierstrassZetaParen}{p}%
+\newcommand{\WeierstrassZeta}[2]{%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassZeta' second argument must be%
+ a comma separated list of length 2}%
+ }%
+% Else
+ {%
+ \zeta\!\COOL@decide@paren{WeierstrassZeta}{#1; #2}%
+ }%
+}
+\newcommand{\WeiZeta}[2]{\WeierstrassZeta{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\WeierstrassHalfPeriods}
+% \begin{macro}{\WeiHalfPeriods}
+% Weierstrass half-periods
+%
+% \begin{tabular}{ll}
+% |\WeierstrassHalfPeriods{g_2,g_3}| & $\WeierstrassHalfPeriods{g_2,g_3}$ \\
+% |\WeiHalfPeriods{g_2,g_3}| & $\WeiHalfPeriods{g_2,g_3}$ \\
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\WeierstrassHalfPeriods}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassHalfPeriods' can only accept%
+ a comma separated list of length 2}%
+ }%
+% Else
+ {%
+ \{ \omega_1\!\inp{#1}, \omega_3\!\inp{#1} \}%
+ }%
+}
+\newcommand{\WeiHalfPeriods}[1]{\WeierstrassHalfPeriods{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\WeierstrassInvariants}
+% Weierstrass Invariants
+%
+% \noindent
+% \begin{tabular}{ll}
+% |\WeierstrassInvariants{\omega_1,\omega_3}| & $\WeierstrassInvariants{\omega_1,\omega_3}$ \\
+% |\WeiInvars{\omega_1,\omega_3}| & $\WeiInvars{\omega_1,\omega_3}$ \\
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\WeierstrassInvariants}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassInvariants' can only accept%
+ a comma separated list of length 2}%
+ }%
+% Else
+ {%
+ \{ g_2\!\inp{#1}, g_3\!\inp{#1} \}%
+ }%
+}
+\newcommand{\WeiInvars}[1]{\WeierstrassInvariants{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\COOL@hideOnSF}
+% Used to hide inputs or other when style is |sf|
+%
+% \begin{tabular}{ll}
+% |sf| & short form \\
+% |ff| & full form
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@hideOnSF}[2]
+ {%
+ \ifthenelse{ \equal{\csname COOL@notation@#1\endcsname}{sf} }%
+ {}%
+ % Else
+ {#2}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\WeierstrassPHalfPeriodValues}
+% \begin{macro}{\WeiPHalfPeriodVal}
+% Weierstrass elliptic function values at half-periods
+%
+% \begin{tabular}{c}
+% |\Style{WeierstrassPHalfPeriodValuesDisplay=sf}| (Default) \\
+% |\WeierstrassPHalfPeriodValues{g_2,g_3}| \\
+% |\WeiPHalfPeriodVal{g_2,g_3}| \\
+% $\WeiPHalfPeriodVal{g_2,g_3}$ \\
+% \\
+% |\Style{WeierstrassPHalfPeriodValuesDisplay=ff}|
+% \Style{WeierstrassPHalfPeriodValuesDisplay=ff}% \\
+% |\WeierstrassPHalfPeriodValues{g_2,g_3}| \\
+% |\WeiPHalfPeriodVal{g_2,g_3}| \\
+% $\WeiPHalfPeriodVal{g_2,g_3}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@WeierstrassPHalfPeriodValuesDisplay}{sf}
+\newcommand{\WeierstrassPHalfPeriodValues}[1]
+{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassPHalfPeriodValues' can only accept%
+ a comma separated list of length 2}%
+ }%
+% Else
+ {%
+ \{ e_1\COOL@hideOnSF{WeierstrassPHalfPeriodValuesDisplay}{\!\inp{#1}},%
+ e_2\COOL@hideOnSF{WeierstrassPHalfPeriodValuesDisplay}{\!\inp{#1}},%
+ e_3\COOL@hideOnSF{WeierstrassPHalfPeriodValuesDisplay}{\!\inp{#1}}%
+ \}%
+ }%
+}
+\newcommand{\WeiPHalfPeriodVal}[1]{\WeierstrassPHalfPeriodValues{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\WeierstrassZetaHalfPeriodValues}
+% \begin{macro}{\WeiZetaHalfPeriodVal}
+% Weierstrass zeta function values at half-periods
+%
+% \begin{tabular}{c}
+% |\Style{WeierstrassZetaHalfPeriodValuesDisplay=sf}| (Default) \\
+% |\WeierstrassZetaHalfPeriodValues{g_2,g_3}| \\
+% |\WeiZetaHalfPeriodVal{g_2,g_3}| \\
+% $\WeiZetaHalfPeriodVal{g_2,g_3}$ \\
+% \\
+% |\Style{WeierstrassZetaHalfPeriodValuesDisplay=ff}|
+% \Style{WeierstrassZetaHalfPeriodValuesDisplay=ff}% \\
+% |\WeierstrassZetaHalfPeriodValues{g_2,g_3}| \\
+% |\WeiZetaHalfPeriodVal{g_2,g_3}| \\
+% $\WeiZetaHalfPeriodVal{g_2,g_3}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@WeierstrassZetaHalfPeriodValuesDisplay}{sf}
+\newcommand{\WeierstrassZetaHalfPeriodValues}[1]
+{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`WeierstrassZetaHalfPeriodValues' can only accept%
+ a comma separated list of length 2}%
+ }%
+% Else
+ {%
+ \{%
+ \eta_1\COOL@hideOnSF%
+ {WeierstrassZetaHalfPeriodValuesDisplay}{\!\inp{#1}},%
+ \eta_2\COOL@hideOnSF%
+ {WeierstrassZetaHalfPeriodValuesDisplay}{\!\inp{#1}},%
+ \eta_3\COOL@hideOnSF%
+ {WeierstrassZetaHalfPeriodValuesDisplay}{\!\inp{#1}}%
+ \}%
+ }%
+}
+\newcommand{\WeiZetaHalfPeriodVal}[1]%
+ {\WeierstrassZetaHalfPeriodValues{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Jacobi Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\JacobiAmplitude}
+% Amplitude, |\JacobiAmplitude{z}{m}|, $\JacobiAmplitude{z}{m}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiAmplitudeParen}{p}
+ \DeclareMathOperator{\JacobiAmplitudeSymb}{am}
+\newcommand{\JacobiAmplitude}[2]{%
+\JacobiAmplitudeSymb\!\COOL@decide@paren%
+ {JacobiAmplitude}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\JacobiCD}
+% \begin{macro}{\JacobiCDInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiCD{z}{m}| & $\JacobiCD{z}{m}$ \\
+% |\JacobiCDInv{z}{m}| & $\JacobiCDInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiCDParen}{p}
+ \newcommand{\COOL@notation@JacobiCDInvParen}{p}
+ \DeclareMathOperator{\JacobiCDSymb}{cd}
+\newcommand{\JacobiCD}[2]{%
+\JacobiCDSymb\!\COOL@decide@paren%
+ {JacobiCD}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiCDInv}[2]{%
+\JacobiCDSymb^{-1}\!\COOL@decide@paren%
+ {JacobiCDInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiCN}
+% \begin{macro}{\JacobiCNInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiCN{z}{m}| & $\JacobiCN{z}{m}$ \\
+% |\JacobiCNInv{z}{m}| & $\JacobiCNInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiCNParen}{p}
+ \newcommand{\COOL@notation@JacobiCNInvParen}{p}
+ \DeclareMathOperator{\JacobiCNSymb}{cn}
+\newcommand{\JacobiCN}[2]{%
+\JacobiCNSymb\!\COOL@decide@paren%
+ {JacobiCN}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiCNInv}[2]{%
+\JacobiCNSymb^{-1}\!\COOL@decide@paren%
+ {JacobiCNInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiCS}
+% \begin{macro}{\JacobiCSInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiCS{z}{m}| & $\JacobiCS{z}{m}$ \\
+% |\JacobiCSInv{z}{m}| & $\JacobiCSInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiCSParen}{p}
+ \newcommand{\COOL@notation@JacobiCSInvParen}{p}
+ \DeclareMathOperator{\JacobiCSSymb}{cs}
+\newcommand{\JacobiCS}[2]{%
+\JacobiCSSymb\!\COOL@decide@paren%
+ {JacobiCS}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiCSInv}[2]{%
+\JacobiCSSymb^{-1}\!\COOL@decide@paren%
+ {JacobiCSInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiDC}
+% \begin{macro}{\JacobiDCInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiDC{z}{m}| & $\JacobiDC{z}{m}$ \\
+% |\JacobiDCInv{z}{m}| & $\JacobiDCInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiDCParen}{p}
+ \newcommand{\COOL@notation@JacobiDCInvParen}{p}
+ \DeclareMathOperator{\JacobiDCSymb}{dc}
+\newcommand{\JacobiDC}[2]{%
+\JacobiDCSymb\!\COOL@decide@paren%
+ {JacobiDC}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiDCInv}[2]{%
+\JacobiDCSymb^{-1}\!\COOL@decide@paren%
+ {JacobiDCInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiDN}
+% \begin{macro}{\JacobiDNInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiDN{z}{m}| & $\JacobiDN{z}{m}$ \\
+% |\JacobiDNInv{z}{m}| & $\JacobiDNInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiDNParen}{p}
+ \newcommand{\COOL@notation@JacobiDNInvParen}{p}
+ \DeclareMathOperator{\JacobiDNSymb}{dn}
+\newcommand{\JacobiDN}[2]{%
+\JacobiDNSymb\!\COOL@decide@paren%
+ {JacobiDN}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiDNInv}[2]{%
+\JacobiDNSymb^{-1}\!\COOL@decide@paren%
+ {JacobiDNInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiDS}
+% \begin{macro}{\JacobiDSInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiDS{z}{m}| & $\JacobiDS{z}{m}$ \\
+% |\JacobiDSInv{z}{m}| & $\JacobiDSInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiDSParen}{p}
+ \newcommand{\COOL@notation@JacobiDSInvParen}{p}
+ \DeclareMathOperator{\JacobiDSSymb}{ds}
+\newcommand{\JacobiDS}[2]{%
+\JacobiDSSymb\!\COOL@decide@paren%
+ {JacobiDS}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiDSInv}[2]{%
+\JacobiDSSymb^{-1}\!\COOL@decide@paren%
+ {JacobiDSInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiNC}
+% \begin{macro}{\JacobiNCInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiNC{z}{m}| & $\JacobiNC{z}{m}$ \\
+% |\JacobiNCInv{z}{m}| & $\JacobiNCInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiNCParen}{p}
+ \newcommand{\COOL@notation@JacobiNCInvParen}{p}
+ \DeclareMathOperator{\JacobiNCSymb}{nc}
+\newcommand{\JacobiNC}[2]{%
+\JacobiNCSymb\!\COOL@decide@paren%
+ {JacobiNC}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiNCInv}[2]{%
+\JacobiNCSymb^{-1}\!\COOL@decide@paren%
+ {JacobiNCInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiND}
+% \begin{macro}{\JacobiNDinv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiND{z}{m}| & $\JacobiND{z}{m}$ \\
+% |\JacobiNDInv{z}{m}| & $\JacobiNDInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiNDParen}{p}
+ \newcommand{\COOL@notation@JacobiNDInvParen}{p}
+ \DeclareMathOperator{\JacobiNDSymb}{nd}
+\newcommand{\JacobiND}[2]{%
+\JacobiNDSymb\!\COOL@decide@paren%
+ {JacobiND}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiNDInv}[2]{%
+\JacobiNDSymb^{-1}\!\COOL@decide@paren%
+ {JacobiNDInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiNS}
+% \begin{macro}{\JacobiNSInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiNS{z}{m}| & $\JacobiNS{z}{m}$ \\
+% |\JacobiNSInv{z}{m}| & $\JacobiNSInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiNSParen}{p}
+ \newcommand{\COOL@notation@JacobiNSInvParen}{p}
+ \DeclareMathOperator{\JacobiNSSymb}{ns}
+\newcommand{\JacobiNS}[2]{%
+\JacobiNSSymb\!\COOL@decide@paren%
+ {JacobiNS}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiNSInv}[2]{%
+\JacobiNSSymb^{-1}\!\COOL@decide@paren%
+ {JacobiNSInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiSC}
+% \begin{macro}{\JacobiSCInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiSC{z}{m}| & $\JacobiSC{z}{m}$ \\
+% |\JacobiSCInv{z}{m}| & $\JacobiSCInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiSCParen}{p}
+ \newcommand{\COOL@notation@JacobiSCInvParen}{p}
+ \DeclareMathOperator{\JacobiSCSymb}{sc}
+\newcommand{\JacobiSC}[2]{%
+\JacobiSCSymb\!\COOL@decide@paren%
+ {JacobiSC}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiSCInv}[2]{%
+\JacobiSCSymb^{-1}\!\COOL@decide@paren%
+ {JacobiSCInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiSD}
+% \begin{macro}{\JacobiSDInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiSD{z}{m}| & $\JacobiSD{z}{m}$ \\
+% |\JacobiSDInv{z}{m}| & $\JacobiSDInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiSDParen}{p}
+ \newcommand{\COOL@notation@JacobiSDInvParen}{p}
+ \DeclareMathOperator{\JacobiSDSymb}{sd}
+\newcommand{\JacobiSD}[2]{%
+\JacobiSDSymb\!\COOL@decide@paren%
+ {JacobiSD}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiSDInv}[2]{%
+\JacobiSDSymb^{-1}\!\COOL@decide@paren%
+ {JacobiSDInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\JacobiSN}
+% \begin{macro}{\JacobiSNInv}
+% Jacobi elliptic function and its inverse
+%
+% \begin{tabular}{ll}
+% |\JacobiSN{z}{m}| & $\JacobiSN{z}{m}$ \\
+% |\JacobiSNInv{z}{m}| & $\JacobiSNInv{z}{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@JacobiSNParen}{p}
+ \newcommand{\COOL@notation@JacobiSNInvParen}{p}
+ \DeclareMathOperator{\JacobiSNSymb}{sn}
+\newcommand{\JacobiSN}[2]{%
+\JacobiSNSymb\!\COOL@decide@paren%
+ {JacobiSN}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiSNInv}[2]{%
+\JacobiSNSymb^{-1}\!\COOL@decide@paren%
+ {JacobiSNInv}{#1 \left| \, #2 \right.\!\!}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Modular Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\DedekindEta}
+% Dedekind eta modular function, |\DedekindEta{z}|, $\DedekindEta{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@DedekindEtaParen}{p}
+\newcommand{\DedekindEta}[1]{\eta\!\COOL@decide@paren{DedekindEta}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\KleinInvariantJ}
+% Klein invariant modular function, |\KleinInvariantJ{z}|, $\KleinInvariantJ{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@KleinInvariantJParen}{p}
+\newcommand{\KleinInvariantJ}[1]%
+ {J\!\COOL@decide@paren{KleinInvariantJ}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ModularLambda}
+% Modular lambda function, |\ModularLambda{z}|, $\ModularLambda{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ModularLambdaParen}{p}
+\newcommand{\ModularLambda}[1]%
+ {\lambda\!\COOL@decide@paren{ModularLambda}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EllipticNomeQ}
+% \begin{macro}{\EllipticNomeQInv}
+% Nome and its inverse
+%
+% \begin{tabular}{ll}
+% |\EllipticNomeQ{m}| & $\EllipticNomeQ{m}$ \\
+% |\EllipticNomeQInv{m}| & $\EllipticNomeQInv{m}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EllipticNomeQParen}{p}
+ \newcommand{\COOL@notation@EllipticNomeQInvParen}{p}
+\newcommand{\EllipticNomeQ}[1]%
+ {q\!\COOL@decide@paren{EllipticNomeQ}{#1}}
+\newcommand{\EllipticNomeQInv}[1]%
+ {q^{-1}\!\COOL@decide@paren{EllipticNomeQ}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Arithmetic Geometric Mean}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\ArithGeoMean}
+% \begin{macro}{\AGM}
+% Arithmetic Geometric Mean
+%
+% \begin{tabular}{ll}
+% |\ArithGeoMean{a}{b}| & $\ArithGeoMean{a}{b}$ \\
+% |\AGM{a}{b}| & $\AGM{a}{b}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ArithGeoMeanParen}{p}
+ \DeclareMathOperator{\ArithGeoMeanSymb}{agm}
+\newcommand{\ArithGeoMean}[2]%
+ {\ArithGeoMeanSymb\!\COOL@decide@paren{ArithGeoMean}{#1, #2}}
+\newcommand{\AGM}[2]{\ArithGeoMean{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Elliptic Exp and Log}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\EllipticExp}
+% \begin{macro}{\EExp}
+% Elliptic exponential
+%
+% \begin{tabular}{ll}
+% |\EllipticExp{z}{a,b}| & $\EllipticExp{z}{a,b}$ \\
+% |\EExp{z}{a,b}| & $\EExp{z}{a,b}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EllipticExpParen}{p}
+ \DeclareMathOperator{\EllipticExpSymb}{eexp}
+\newcommand{\EllipticExp}[2]{%
+\liststore{#2}{COOL@EllipticExp@arg@}
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`EllipticExp' second argument must be
+ a comma separated list of length 2}%
+ }%
+% Else
+ {%
+ \EllipticExpSymb\!\COOL@decide@paren{EllipticExp}{#1; #2}%
+ }%
+}
+\newcommand{\EExp}[2]{\EllipticExp{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\EllipticLog}
+% \begin{macro}{\ELog}
+% Elliptic logarithm
+%
+% \begin{tabular}{ll}
+% |\EllipticLog{z_1,z_2}{a,b}| & $\EllipticLog{z_1,z_2}{a,b}$ \\
+% |\ELog{z_1,z_2}{a,b}| & $\ELog{z_1,z_2}{a,b}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EllipticLogParen}{p}
+ \DeclareMathOperator{\EllipticLogSymb}{elog}
+\newcommand{\EllipticLog}[2]{%
+\liststore{#1}{COOL@EllipticLog@arg@z@}%
+\liststore{#2}{COOL@EllipticLog@arg@a@}%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`EllipticLog' first argument must be
+ a comma separated list of length 2}%
+ }%
+% Else
+ {%
+ \listval{#2}{0}%
+ \ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+ {%
+ \PackageError{cool}{Invalid Argument}%
+ {`EllipticLog' second argument must be%
+ a comma separated list of length 2}%
+ }%
+ % Else
+ {%
+ \EllipticLogSymb\!\COOL@decide@paren{EllipticLog}{#1; #2}%
+ }%
+ }%
+}
+\newcommand{\ELog}[2]{\EllipticLog{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Zeta Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\RiemannZeta}
+% Riemann Zeta Function
+%
+% \begin{tabular}{ll}
+% |\RiemannZeta{s}| & $\RiemannZeta{s}$ \\
+% |\Zeta{s}| & $\Zeta{s}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\RiemannZeta}[1]{\Zeta{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HurwitzZeta}
+% Hurwitz Zeta Function
+%
+% \begin{tabular}{ll}
+% |\HurwitzZeta{s}{a}| & $\HurwitzZeta{s}{a}$ \\
+% |\Zeta{s,a}| & $\Zeta{s,a}$
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\HurwitzZeta}[2]{\Zeta{#1,#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Zeta}
+% Riemann and Hurwitz Zeta
+%
+% \begin{tabular}{lll}
+% Riemann Zeta & |\Zeta{s}| & $\Zeta{s}$ \\
+% Hurwitz Zeta & |\Zeta{s,a}| & $\Zeta{s,a}$
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ZetaParen}{p}
+\newcommand{\Zeta}[1]{%
+\liststore{#1}{COOL@Zeta@arg@}%
+\listval{#1}{0}% get the list length
+\ifthenelse{\value{COOL@listpointer} = 2}%
+ {%
+ \zeta\!\COOL@decide@paren{Zeta}{\COOL@Zeta@arg@i,\COOL@Zeta@arg@ii}%
+ }%
+% else
+ {%
+ \ifthenelse{\value{COOL@listpointer} = 1}%
+ {%
+ \zeta\!\COOL@decide@paren{Zeta}{#1}%
+ }%
+ % else
+ {%
+ \PackageError{cool}{`Zeta' Invalid Argument}%
+ {the Zeta function can only accept%
+ a comma deliminated list of length 1 or 2}
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\RiemannSiegelTheta}
+% Riemann-Siegel Theta Function, |\RiemannSiegelTheta{z}|, $\RiemannSiegelTheta{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@RiemannSiegelThetaParen}{p}
+\newcommand{\RiemannSiegelTheta}[1]%
+ {\vartheta\!\COOL@decide@paren{RiemannSiegelTheta}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\RiemannSiegelZ}
+% Riemann-Siegel Z Function, |\RiemannSiegelZ{z}|, $\RiemannSiegelZ{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@RiemannSiegelZParen}{p}
+\newcommand{\RiemannSiegelZ}[1]%
+ {Z\!\COOL@decide@paren{RiemannSiegelZ}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\StieltjesGamma}
+% Stieltjes Constant, |\StieltjesGamma{n}|, $\StieltjesGamma{n}$
+% \begin{macrocode}
+\newcommand{\StieltjesGamma}[1]{\gamma_{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LerchPhi}
+% Lerch transcendent, |\LerchPhi{z}{s}{a}|, $\LerchPhi{z}{s}{a}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@LerchPhiParen}{p}
+\newcommand{\LerchPhi}[3]{\Phi\!\COOL@decide@paren{LerchPhi}{#1,#2,#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Polylogarithms}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\NielsenPolyLog}
+% Nielsen Polylogarithm, |\NielsenPolyLog{\nu}{p}{z}|, $\NielsenPolyLog{\nu}{p}{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@NielsenPolyLogParen}{p}
+\newcommand{%
+\NielsenPolyLog}[3]{S_{#1}^{#2}\!%
+ \COOL@decide@paren{NielsenPolyLog}{#3}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PolyLog}
+% Polylogarithm
+%
+% \begin{tabular}{lll}
+% Nielsen PolyLog & |\PolyLog{\nu,p,z}| & $\PolyLog{\nu,p,z}$ \\
+% PolyLog & |\PolyLog{\nu,z}| & $\PolyLog{\nu,z}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@PolyLogParen}{p}
+ \DeclareMathOperator{\PolyLogSymb}{Li}
+\newcommand{\PolyLog}[1]{%
+\liststore{#1}{COOL@PolyLog@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 3}%
+ {%
+ \NielsenPolyLog{\COOL@PolyLog@arg@i}%
+ {\COOL@PolyLog@arg@ii}{\COOL@PolyLog@arg@iii}%
+ }%
+% else
+ {%
+ \ifthenelse{ \value{COOL@listpointer} = 2 }%
+ {%
+ \PolyLogSymb_{\COOL@PolyLog@arg@i}\!%
+ \COOL@decide@paren{PolyLog}{\COOL@PolyLog@arg@ii}%
+ }%
+ % else
+ {%
+ \PackageError{cool}{`PolyLog' Invalid Argument}%
+ {This function returns either the Polylogarithm or the%
+ Nielsen Polylogarithm. It therefore only accepts a comma%
+ deliminated list of length two or three (1 or 2 commas)}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DiLog}
+% Dilogarithm (alias for |\PolyLog{2,x}|); |\DiLog{x}|, $\DiLog{x}$
+% \begin{macrocode}
+\newcommand{\DiLog}[1]{\PolyLog{2,#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Mathieu Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\MathieuC}
+% Even Mathieu Function, |\MathieuC{a}{q}{z}|, $\MathieuC{a}{q}{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@MathieuCParen}{p}
+ \DeclareMathOperator{\MathieuCSymb}{Ce}
+\newcommand{\MathieuC}[3]%
+ {\MathieuCSymb\!\COOL@decide@paren{MathieuC}{#1,#2,#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MathieuS}
+% Odd Mathieu Function, |\MathieuS{a}{q}{z}|, $\MathieuS{a}{q}{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@MathieuSParen}{p}
+ \DeclareMathOperator{\MathieuSSymb}{Se}
+\newcommand{\MathieuS}[3]%
+ {\mathord{\MathieuSSymb}\!\COOL@decide@paren{MathieuS}{#1,#2,#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Mathieu Characteristics}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\MathieuCharacteristicA}
+% \begin{macro}{\MathieuCharisticA}
+% Characteristic Value of Even Mathieu Function
+%
+% \begin{tabular}{ll}
+% |\MathieuCharacteristicA{r}{q}| & $\MathieuCharacteristicA{r}{q}$ \\
+% |\MathieuCharisticA{r}{q}| & $\MathieuCharisticA{r}{q}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@MathieuCharacteristicAParen}{p}
+\newcommand{\MathieuCharacteristicA}[2]%
+ {a_{#1}\!\COOL@decide@paren{MathieuCharacteristicA}{#2}}
+\newcommand{\MathieuCharisticA}[2]{\MathieuCharacteristicA{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\MathieuCharacteristicB}
+% \begin{macro}{\MathieuCharisticB}
+% Characteristic Value of Even Mathieu Fucntion
+%
+% \begin{tabular}{ll}
+% |\MathieuCharacteristicB{r}{q}| & $\MathieuCharacteristicB{r}{q}$ \\
+% |\MathieuCharisticB{r}{q}| & $\MathieuCharisticB{r}{q}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@MathieuCharacteristicBParen}{p}
+\newcommand{\MathieuCharacteristicB}[2]%
+ {b_{#1}\!\COOL@decide@paren{MathieuCharacteristicB}{#2}}
+\newcommand{\MathieuCharisticB}[2]{\MathieuCharacteristicB{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\MathieuCharacteristicExponent}
+% \begin{macro}{\MathieuCharisticExp}
+% Characteristic Exponent of a Mathieu Fucntion
+%
+% \begin{tabular}{ll}
+% |\MathieuCharateristicExponent{a}{q}| & $\MathieuCharacteristicExponent{a}{q}$ \\
+% |\MathieuCharisticExp{a}{q}| & $\MathieuCharisticExp{a}{q}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@MathieuCharacteristicExponentParen}{p}
+\newcommand{\MathieuCharacteristicExponent}[2]%
+ {r\!\COOL@decide@paren{MathieuCharacteristicExponent}{#1,#2}}
+\newcommand{\MathieuCharisticExp}[2]%
+ {\MathieuCharacteristicExponent{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Complex variables}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Abs}
+% Absolute value, |\Abs{z}|, $\Abs{z}$
+% \begin{macrocode}
+\newcommand{\Abs}[1]{ \left|#1\right| }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Arg}
+% Argument, |\Arg{z}|, $\Arg{z}$
+% \begin{macrocode}
+\newcommand{\Arg}[1]{ \arg\!\inp{#1} }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Conjugate}
+% \begin{macro}{\Conj}
+% Complex Conjugate
+%
+% \begin{tabular}{ll}
+% |\Conj{z}| & $\Conj{z}$ \\
+% |\Conjugate{z}| & $\Conjugate{z}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \def\COOL@notation@Conjugate{star}
+ \newcommand{\COOL@notation@ConjugateParen}{inv}
+\newcommand{\Conjugate}[1]{\Conj{#1}}
+\newcommand{\Conj}[1]{%
+\ifthenelse{\equal{\COOL@notation@Conjugate}{bar}}%
+ {%
+ \bar{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\equal{\COOL@notation@Conjugate}{overline}}%
+ {%
+ \overline{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\equal{\COOL@notation@Conjugate}{star}}%
+ {%
+ \COOL@decide@paren{Conjugate}{#1}^*%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {`Conjugate' can only be set at `star', `bar', or `overline'}%
+ }%
+}}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Real}
+% Real Part, |\Real{z}|, $\Real{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@RealParen}{none}
+ \DeclareMathOperator{\RealSymb}{Re}
+\newcommand{\Real}[1]{%
+% \end{macrocode}
+% we put a space if there is no parentheses, or leave it out if there are
+% \begin{macrocode}
+\ifthenelse{\equal{\COOL@notation@ImagParen}{none}}%
+ {%
+ \RealSymb{#1}%
+ }%
+% Else
+ {%
+ \RealSymb\!\COOL@decide@paren{Imag}{#1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Imag}
+% Imaginary Part, |\Imag{z}|, $\Imag{z}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@ImagParen}{none}
+ \DeclareMathOperator{\ImagSymb}{Im}
+\newcommand{\Imag}[1]{%
+% \end{macrocode}
+% we put a space if there is no parentheses, or leave it out if there are
+% \begin{macrocode}
+\ifthenelse{\equal{\COOL@notation@ImagParen}{none}}%
+ {%
+ \ImagSymb{#1}%
+ }%
+% Else
+ {%
+ \ImagSymb\!\COOL@decide@paren{Imag}{#1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Sign}
+% Sign function, |\Sign{x}|, $\Sign{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@SignParen}{p}
+\newcommand{\Sign}[1]{\operatorname{sgn}\!\COOL@decide@paren{Sign}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Number Theory Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\FactorInteger}
+% \begin{macro}{\Factors}
+% Prime decomposition, |\Factors{n}|, $\Factors{n}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@FactorIntegerParen}{p}
+ \DeclareMathOperator{\FactorIntegerSymb}{factors}
+\newcommand{\FactorInteger}[1]%
+ {\FactorIntegerSymb\!\COOL@decide@paren{FactorInteger}{#1}}
+\newcommand{\Factors}[1]{\FactorInteger{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Divisors}
+% Divisors, |\Divisors{n}|, $\Divisors{n}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@DivisorsParen}{p}
+ \DeclareMathOperator{\DivisorsSymb}{divisors}
+\newcommand{\Divisors}[1]%
+ {\mathord{\DivisorsSymb}\!\COOL@decide@paren{Divisors}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Prime}
+% The $n$th Prime, |\Prime{n}|, $\Prime{n}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@PrimeParen}{p}
+ \DeclareMathOperator{\PrimeSymb}{prime}
+\newcommand{\Prime}[1]%
+ {\mathord{\PrimeSymb}\!\COOL@decide@paren{Prime}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PrimePi}
+% Prime counting function, |\PrimePi{x}|, $\PrimePi{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@PrimePiParen}{p}
+\newcommand{\PrimePi}[1]{\pi\!\COOL@decide@paren{PrimePi}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DivisorSigma}
+% Sum of divisor powers, |\DivisorSigma{k}{n}|, $\DivisorSigma{k}{n}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@DivisorSigmaParen}{p}
+\newcommand{\DivisorSigma}[2]%
+ {\sigma_{#1}\!\COOL@decide@paren{DivisorSigma}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EulerPhi}
+% Euler Totient Function, |\EulerPhi{x}|, $\EulerPhi{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@EulerPhiParen}{p}
+\newcommand{\EulerPhi}[1]{\varphi\!\COOL@decide@paren{EulerPhi}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MoebiusMu}
+% Moebius Function, |\MoebiusMu{x}|, $\MoebiusMu{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@MoebiusMuParen}{p}
+\newcommand{\MoebiusMu}[1]{\mu\!\COOL@decide@paren{MoebiusMu}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\JacobiSymbol}
+% Jacobi Symbol, |\JacobiSymbol{n}{m}|, $\JacobiSymbol{n}{m}$
+% \begin{macrocode}
+\newcommand{\JacobiSymbol}[2]{\inp{\frac{#1}{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CarmichaelLambda}
+% Carmichael Lambda Function, |\CarmichaelLambda{x}|, $\CarmichaelLambda{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@CarmichaelLambdaParen}{p}
+\newcommand{\CarmichaelLambda}[1]%
+ {\lambda\!\COOL@decide@paren{CarmichaelLambda}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DigitCount}
+% Count the digits of an integer n for a given base b
+%
+% \begin{tabular}{c}
+% |\DigitCount{n}{b}| \\
+% $\DigitCount{n}{b}$ \\
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\DigitCount}[2]{%
+\isint{#2}%
+\ifthenelse{\boolean{COOL@isint}}%
+ {%
+ \{%
+ \setcounter{COOL@ct@}{#2}%
+ \addtocounter{COOL@ct@}{-1}%
+ \forLoop{1}{\arabic{COOL@ct@}}{COOL@ct}%
+ {%
+ s^{\arabic{COOL@ct}}_{#2}\!\inp{#1},
+ }%
+ s^{\inp{0}}_{#2}\!\inp{#1}%
+ \}%
+ }%
+% else
+ {%
+ \{%
+ s^{\inp{1}}_{#2}\!\inp{#1},%
+ s^{\inp{2}}_{#2}\!\inp{#1},%
+ \ldots,%
+ s^{\inp{#2} - 1}_{#2}\!\inp{#1},%
+ s^{\inp{0}}_{#2}\!\inp{#1}%
+ \}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Generalized Functions}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\DiracDelta}
+% Dirac Delta Function, |\DiracDelta{x}|, $\DiracDelta{x}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@DiracDeltaParen}{p}
+\newcommand{\DiracDelta}[1]{\delta\!\COOL@decide@paren{DiracDelta}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HeavisideStep}
+% \begin{macro}{\UnitStep}
+% Heaviside Step Function
+%
+% \begin{tabular}{ll}
+% |\HeavisideStep{x}| & $\HeavisideStep{x}$ \\
+% |\UnitStep{x}| & $\UnitStep{x}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@HeavisideStepParen}{p}
+\newcommand{\HeavisideStep}[1]%
+ {\theta\!\COOL@decide@paren{HeavisideStep}{#1}}
+\newcommand{\UnitStep}[1]{\HeavisideStep{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Calculus}
+% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\COOL@notation@DDisplayFunc}
+% \begin{macro}{\COOL@notation@DShorten}
+% Both |\D| and |\pderiv| are controlled by these keys.
+%
+% |DDisplayFunc| controls how the function is displayed, it can take the values:
+%
+% \begin{tabular}{ll}
+% inset & Display as $\frac{d f}{d x}$ \\
+% outset & Display as $\frac{d}{d x} f$
+% \end{tabular}
+%
+% |DShorten| is for multiple derivatives. it can take the values
+%
+% \begin{tabular}{ll}
+% true & force derivatives to be consolidated, as in $\frac{d^2}{dx dy} f$ \\
+% false & expand derivatives as in $\frac{d}{dx} \frac{d}{dx} f$
+% \end{tabular}
+%
+% \begin{macrocode}
+ \newcounter{COOL@multideriv}
+ \newcommand{\COOL@notation@DDisplayFunc}{inset}
+ \newcommand{\COOL@notation@DShorten}{true}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\COOL@derivative}
+% Both |\D| and |pderiv| have the same basic operation, so a macro is defined that does the internals
+%
+% |\COOL@derivative{|\meta{derivative power(s)}|}{|\meta{function}|}{|\meta{wrt}|}{|\meta{symbol}|}|
+%
+% \meta{wrt} is a comma separated list of length $\ge$ 1.
+%
+% \meta{symbol} is passed by |\D| or |\pderiv| and is `d' or `$\partial$' respectively
+%
+% \begin{tabular}{ll}
+% |\COOL@derivative{2,3}{f}{x,y,z}{d}| & \makeatletter
+% $\COOL@derivative{2,3}{f}{x,y,z}{d}$
+% \makeatother
+% \vspace{.15cm}
+% \\
+% |\COOL@derivative{2,3,4,5}{f}{x,y,z}{d}| & \makeatletter
+% $\COOL@derivative{2,3,4,5}{f}{x,y,z}{d}$
+% \makeatother
+% \vspace{.15cm}
+% \\
+% |\COOL@derivative{2,n,1}{f}{x,y,z}{d}| & \makeatletter
+% $\COOL@derivative{2,n,1}{f}{x,y,z}{d}$
+% \makeatother
+% \vspace{.15cm}
+% \\
+% |\COOL@derivative{2,n}{f}{x,y,z}{d}| & \makeatletter
+% $\COOL@derivative{2,n}{f}{x,y,z}{d}$
+% \makeatother
+% \\
+% \\
+% |\Style{DDisplayFunc=outset}| \Style{DDisplayFunc=outset}
+% \\
+% |\COOL@derivative{2,n}{f}{x,y,z}{d}| & \makeatletter
+% $\COOL@derivative{2,n}{f}{x,y,z}{d}$
+% \makeatother
+% \\
+% \\
+% |\Style{DShorten=false,DDisplayFunc=inset}| \Style{DShorten=false}\Style{DDisplayFunc=inset}
+% \\
+% |\COOL@derivative{2,n}{f}{x,y,z}{d}| & \makeatletter
+% $\COOL@derivative{2,n}{f}{x,y,z}{d}$
+% \makeatother
+% \vspace{.15cm}
+% \\
+% |\COOL@derivative{2,3,4,5}{f}{x,y,z}{d}| & \makeatletter
+% $\COOL@derivative{2,3,4,5}{f}{x,y,z}{d}$
+% \makeatother
+% \\
+% \\
+% |\Style{DShorten=false,DDisplayFunc=outset}| \Style{DShorten=false}\Style{DDisplayFunc=outset}
+% \\
+% |\COOL@derivative{2,n}{f}{x,y,z}{d}| & \makeatletter
+% $\COOL@derivative{2,n}{f}{x,y,z}{d}$
+% \makeatother
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\COOL@derivative}[4]{%
+% \end{macrocode}
+% Get the length of \meta{wrt} argument.
+% |\listval{#3}{0}| gives the length of the list since lists begin indexing at 1.
+% \begin{macrocode}
+\listval{#3}{0}%
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}%
+% \end{macrocode}
+% Store the \meta{wrt} list and get the length of \meta{derivative power(s)}.
+% \begin{macrocode}
+\liststore{#3}{COOL@deriv@wrt@}%
+\listval{#1}{0}%
+\setcounter{COOL@ct}{\value{COOL@listpointer}}%
+\ifthenelse{\value{COOL@ct}>\value{COOL@listlen}}%
+ {\setcounter{COOL@ct}{\value{COOL@listlen}}}{}%
+\liststore{#1}{COOL@deriv@powers@}%
+% \end{macrocode}
+% Check to see if all of the powers are integers---if they are, then we may sum them in the usual sense
+% \begin{macrocode}
+\isint{\COOL@deriv@powers@i}%
+\setcounter{COOL@multideriv}{2}%
+\whiledo{ \boolean{COOL@isint} \AND
+ \NOT \value{COOL@multideriv}>\value{COOL@ct} }%
+ {%
+ \def\COOL@tempd%
+ {\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+ \isint{\COOL@tempd}%
+ \stepcounter{COOL@multideriv}%
+ }%
+% \end{macrocode}
+% If the length of \meta{derivative power(s)} is less than the length of \meta{wrt}, then we assume that
+% the last value applies to \emph{all} the remaining derivatives.
+%
+%^^A ==================================================================================================================
+%^^A ============================================ BEGIN SHORTEN AND INSET =============================================
+%^^A ==================================================================================================================
+% \begin{macrocode}
+\ifthenelse{ \equal{\COOL@notation@DShorten}{true} \AND
+ \equal{\COOL@notation@DDisplayFunc}{inset} }%
+ {%
+ \ifthenelse{ \boolean{COOL@isint} }%
+ {%
+ \def\COOL@temp@D@bot{}%
+ \setcounter{COOL@ct@}{0}%
+ \forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \addtocounter{COOL@ct@}{\COOL@power@temp}%
+ \ifthenelse{ \value{COOL@multideriv}=1 }{}%
+ {\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ }%
+% \end{macrocode}
+% we're done with the length of the \meta{derivative power(s)} argument, and we want to start at it $+ \; 1$
+% to add the remainders
+% \begin{macrocode}
+ \ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+ \stepcounter{COOL@ct}%
+ \forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+ {%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \addtocounter{COOL@ct@}{\COOL@power@temp}%
+ \ifthenelse{ \value{COOL@multideriv}=1 }{}%
+ {\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ }%
+ }%
+ % Else
+ {}%
+ \ifthenelse{\value{COOL@ct@}=1}%
+ {%
+ \frac{#4 #2}{\COOL@temp@D@bot}%
+ }%
+ % Else
+ {%
+ \frac{#4^{\arabic{COOL@ct@}} #2}{\COOL@temp@D@bot}%
+ }%
+ }%
+ % Else
+ {%
+% \end{macrocode}
+% Powers are not all Integers
+% \begin{macrocode}
+ \edef\COOL@temp@D@bot{}%
+ \def\COOL@temp@D@top@power{}%
+ \forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \ifthenelse{ \value{COOL@multideriv} = 1}%
+ {%
+ \edef\COOL@temp@D@top@power{\COOL@power@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top@power%
+ {\COOL@temp@D@top@power + \COOL@power@temp}%
+ \edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}%
+ }%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ }%
+% \end{macrocode}
+% we're done with the length of the \meta{derivative power(s)} argument, and we want to start at it $+ \; 1$
+% to add the remainders
+% \begin{macrocode}
+ \ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+ \stepcounter{COOL@ct}%
+ \forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+ {%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \ifthenelse{ \value{COOL@multideriv} = 1}%
+ {%
+ \edef\COOL@temp@D@top@power{\COOL@power@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top@power%
+ {\COOL@temp@D@top@power + \COOL@power@temp}%
+ \edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}%
+ }%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ }%
+ }%
+ % Else
+ {}%
+ \frac{#4^{\COOL@temp@D@top@power} #2}{\COOL@temp@D@bot}%
+ }%
+ }%
+% \end{macrocode}
+%^^A ==================================================================================================================
+%^^A ============================================= END SHORTEN AND INSET ==============================================
+%^^A ==================================================================================================================
+%
+%^^A ==================================================================================================================
+%^^A ============================================ BEGIN SHORTEN AND OUTSET ============================================
+%^^A ==================================================================================================================
+% \begin{macrocode}
+% Else If
+{ \ifthenelse{ \equal{\COOL@notation@DShorten}{true} \AND
+ \equal{\COOL@notation@DDisplayFunc}{outset} }%
+ {%
+ \ifthenelse{ \boolean{COOL@isint} }%
+ {%
+ \def\COOL@temp@D@bot{}%
+ \setcounter{COOL@ct@}{0}%
+ \forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \addtocounter{COOL@ct@}{\COOL@power@temp}%
+ \ifthenelse{ \value{COOL@multideriv}=1 }{}%
+ {\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ }%
+% \end{macrocode}
+% we're done with the length of the \meta{derivative power(s)} argument, and we want to start at it $+ \; 1$
+% to add the remainders
+% \begin{macrocode}
+ \ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+ \stepcounter{COOL@ct}%
+ \forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+ {%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \addtocounter{COOL@ct@}{\COOL@power@temp}%
+ \ifthenelse{ \value{COOL@multideriv}=1 }{}%
+ {\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ }%
+ }%
+ % Else
+ {}%
+ \ifthenelse{\value{COOL@ct@}=1}%
+ {%
+ \frac{#4}{\COOL@temp@D@bot} #2%
+ }%
+ % Else
+ {%
+ \frac{#4^{\arabic{COOL@ct@}}}{\COOL@temp@D@bot} #2%
+ }%
+ }%
+ % Else
+ {%
+% \end{macrocode}
+% Powers are not all Integers
+% \begin{macrocode}
+ \edef\COOL@temp@D@bot{}%
+ \def\COOL@temp@D@top@power{}%
+ \forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \ifthenelse{ \value{COOL@multideriv} = 1}%
+ {%
+ \edef\COOL@temp@D@top@power{\COOL@power@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top@power%
+ {\COOL@temp@D@top@power + \COOL@power@temp}%
+ \edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}%
+ }%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ }%
+% \end{macrocode}
+% we're done with the length of the \meta{derivative power(s)} argument, and we want to start at it $+ \; 1$
+% to add the remainders
+% \begin{macrocode}
+ \ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+ \stepcounter{COOL@ct}%
+ \forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+ {%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \ifthenelse{ \value{COOL@multideriv} = 1}%
+ {%
+ \edef\COOL@temp@D@top@power{\COOL@power@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top@power%
+ {\COOL@temp@D@top@power + \COOL@power@temp}%
+ \edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}%
+ }%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@bot%
+ {\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ }%
+ }%
+ % Else
+ {}%
+ \frac{#4^{\COOL@temp@D@top@power} }{\COOL@temp@D@bot} #2%
+ }%
+ }%
+% \end{macrocode}
+%^^A ==================================================================================================================
+%^^A ============================================= END SHORTEN AND OUTSET =============================================
+%^^A ==================================================================================================================
+%
+%^^A ==================================================================================================================
+%^^A =========================================== BEGIN NO SHORTEN AND INSET ===========================================
+%^^A ==================================================================================================================
+% \begin{macrocode}
+% Else If
+{ \ifthenelse{ \equal{\COOL@notation@DShorten}{false} \AND
+ \equal{\COOL@notation@DDisplayFunc}{inset} }%
+ {%
+ \def\COOL@temp@D@result{}%
+ \def\COOL@temp@D@bot{}%
+ \def\COOL@temp@D@top{}%
+ \setcounter{COOL@ct@}{\value{COOL@ct}}%
+ \addtocounter{COOL@ct@}{-1}
+ \forLoop{1}{\value{COOL@ct@}}{COOL@multideriv}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@top{#4}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ \edef\COOL@temp@D@result%
+ {\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+ }%
+% \end{macrocode}
+% we're done with the length of the \meta{derivative power(s)} argument, and we want to start at it $+ \; 1$
+% to add the remainders
+% \begin{macrocode}
+ \ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+ {%
+% \end{macrocode}
+% Must pick up the one for |\value{COOL@ct}|
+% \begin{macrocode}
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@ct}\endcsname}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@top{#4}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ \edef\COOL@temp@D@result%
+ {\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+% \end{macrocode}
+% Now add the ones beyond
+% \begin{macrocode}
+ \stepcounter{COOL@ct}%
+ \setcounter{COOL@ct@}{\value{COOL@listlen}}%
+ \addtocounter{COOL@ct@}{-1}%
+ \forLoop{\value{COOL@ct}}{\value{COOL@ct@}}{COOL@multideriv}%
+ {%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@top{#4}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ \edef\COOL@temp@D@result%
+ {\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+ }%
+% \end{macrocode}
+% Must pick up the one for |\value{COOL@listlen}|
+% \begin{macrocode}
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@listlen}\endcsname}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@top{#4}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ \edef\COOL@temp@D@result%
+ {\COOL@temp@D@result \frac{\COOL@temp@D@top #2}{\COOL@temp@D@bot}}%
+ }%
+ % Else
+ {%
+% \end{macrocode}
+% Must pick up the one for |\value{COOL@ct}|
+% \begin{macrocode}
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@ct}\endcsname}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@top{#4}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ \edef\COOL@temp@D@result%
+ {\COOL@temp@D@result \frac{\COOL@temp@D@top #2}{\COOL@temp@D@bot}}%
+ }%
+ \COOL@temp@D@result%
+ }%
+% \end{macrocode}
+%^^A ==================================================================================================================
+%^^A ============================================ END NO SHORTEN AND INSET ============================================
+%^^A ==================================================================================================================
+%
+%^^A ==================================================================================================================
+%^^A =========================================== BEGIN NO SHORTEN AND OUTSET ==========================================
+%^^A ==================================================================================================================
+% \begin{macrocode}
+% Else If
+{ \ifthenelse{ \equal{\COOL@notation@DShorten}{false} \AND
+ \equal{\COOL@notation@DDisplayFunc}{outset} }%
+ {%
+ \def\COOL@temp@D@result{}%
+ \def\COOL@temp@D@bot{}%
+ \def\COOL@temp@D@top{}%
+ \forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@top{#4}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ \edef\COOL@temp@D@result%
+ {\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+ }%
+% \end{macrocode}
+% we're done with the length of the \meta{derivative power(s)} argument, and we want to start at it $+ \; 1$
+% to add the remainders
+% \begin{macrocode}
+ \ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+ {%
+ \edef\COOL@power@temp%
+ {\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+ \stepcounter{COOL@ct}%
+ \forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+ {%
+ \edef\COOL@wrt@temp%
+ {\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+ \ifthenelse{ \equal{\COOL@power@temp}{1} }%
+ {%
+ \edef\COOL@temp@D@top{#4}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+ }%
+ % Else
+ {%
+ \edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+ \edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+ }%
+ \edef\COOL@temp@D@result%
+ {\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+ }%
+ }%
+ % Else
+ {%
+ }%
+ \COOL@temp@D@result #2
+ }%
+% \end{macrocode}
+%^^A ==================================================================================================================
+%^^A ============================================ END NO SHORTEN AND OUTSET ===========================================
+%^^A ==================================================================================================================
+% \begin{macrocode}
+% Else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {DShorten can only be `true' or `false';%
+ DDisplayFunc can only be `inset' or `outset'}%
+ }%
+}}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\D}
+% \begin{macro}{\pderiv}
+% Derivatives
+%
+% \begin{tabular}{ll}
+% |\D{f}{x}| & \vspace{0.15cm}$\D{f}{x}$ \\
+% |\D[n]{f}{x}| & \vspace{0.15cm}$\D[n]{f}{x}$ \\
+% |\D{f}{x,y,z}| & \vspace{0.15cm}$\D{f}{x,y,z}$ \\
+% |\D[1,2,1]{f}{x,y,z}| & \vspace{0.15cm}$\D[1,2,1]{f}{x,y,z}$ \\
+% |\pderiv{f}{x}| & \vspace{0.15cm}$\pderiv{f}{x}$ \\
+% |\pderiv[n]{f}{x}| & \vspace{0.15cm}$\pderiv[n]{f}{x}$ \\
+% |\pderiv{f}{x,y,z}| & \vspace{0.15cm}$\pderiv{f}{x,y,z}$ \\
+% |\pderiv[1,2,1]{f}{x,y,z}| & \vspace{0.15cm}$\pderiv[1,2,1]{f}{x,y,z}$ \\
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\D}[3][1]{\COOL@derivative{#1}{#2}{#3}{d}}
+\newcommand{\pderiv}[3][1]{\COOL@derivative{#1}{#2}{#3}{\partial}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\Integrate}
+% \begin{macro}{\Int}
+% Integrate
+%
+% This has the option |IntegrateDisplayFunc| which can be |inset| or |outset|:
+%
+% \begin{tabular}{c}
+% |\Style{IntegrateDisplayFunc=inset}| (Default)%
+% \Style{IntegrateDisplayFunc=inset}
+% \\
+% \begin{tabular}{ll}
+% |\Integrate{f}{x}| & \vspace{0.15cm}$\Integrate{f}{x}$ \\
+% |\Int{f}{x}| & \vspace{0.15cm}$\Int{f}{x}$ \\
+% |\Integrate{f}{x,A}| & \vspace{0.15cm}$\Integrate{f}{x,A}$ \\
+% |\Int{f}{x,A}| & \vspace{0.15cm}$\Int{f}{x,A}$ \\
+% |\Integrate{f}{x,a,b}| & \vspace{0.15cm}$\Integrate{f}{x,a,b}$ \\
+% |\Int{f}{x,a,b}| & \vspace{0.15cm}$\Int{f}{x,a,b}$ \\
+% \end{tabular}
+% \\
+% \\
+% |\Style{IntegrateDisplayFunc=outset}|%
+% \Style{IntegrateDisplayFunc=outset}
+% \\
+% \begin{tabular}{ll}
+% |\Integrate{f}{x}| & \vspace{0.15cm}$\Integrate{f}{x}$ \\
+% |\Int{f}{x}| & \vspace{0.15cm}$\Int{f}{x}$ \\
+% |\Integrate{f}{x,A}| & \vspace{0.15cm}$\Integrate{f}{x,A}$ \\
+% |\Int{f}{x,A}| & \vspace{0.15cm}$\Int{f}{x,A}$ \\
+% |\Integrate{f}{x,a,b}| & \vspace{0.15cm}$\Integrate{f}{x,a,b}$ \\
+% |\Int{f}{x,a,b}| & \vspace{0.15cm}$\Int{f}{x,a,b}$ \\
+% \end{tabular}
+% \Style{IntegrateDisplayFunc=inset}
+% \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@IntegrateDisplayFunc}{inset}
+\newcommand{\Integrate}[2]{%
+\listval{#2}{0}%
+% \end{macrocode}
+% record the length of the list
+% \begin{macrocode}
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}%
+\ifthenelse{ \value{COOL@listlen} = 1 }%
+ {%
+ \ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{outset}}%
+ {%
+ \int \! d#2 \, #1%
+ }%
+ % ElseIf
+ { \ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{inset}}%
+ {%
+ \int #1 \, d#2%
+ }%
+ % Else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {`DisplayFunc' can only be `inset' or `outset'}%
+ }}%
+ }%
+% ElseIf
+{ \ifthenelse{ \value{COOL@listlen} = 2 }%
+ {%
+ \ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{outset}}%
+ {%
+ \int_{\listval{#2}{2}} \! d{\listval{#2}{1}} \, #1%
+ }%
+ % ElseIf
+ { \ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{inset}}%
+ {%
+ \int_{\listval{#2}{2}} #1 \, d{\listval{#2}{1}}%
+ }%
+ % Else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {`DisplayFunc' can only be `inset' or `outset'}%
+ }}%
+ }%
+% ElseIf
+{ \ifthenelse{ \value{COOL@listlen} = 3 }%
+ {%
+ \ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{outset}}%
+ {%
+ \int_{\listval{#2}{2}}^{\listval{#2}{3}} \! d{\listval{#2}{1}} \, #1%
+ }%
+ % ElseIf
+ { \ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{inset}}%
+ {%
+ \int_{\listval{#2}{2}}^{\listval{#2}{3}} #1 \, d{\listval{#2}{1}}%
+ }%
+ % Else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {`DisplayFunc' can only be `inset' or `outset'}%
+ }}%
+ }%
+% Else
+ {%
+ \PackageError{cool}{`Integrate' has invalid parameter list}%
+ {this happens when the second argument has more than two commas}%
+ }}}%
+}%
+\newcommand{\Int}[2]{\Integrate{#1}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\Sum}
+% Sum
+%
+% \begin{tabular}{ll}
+% |\Sum{a_n}{n}| & \vspace{0.1cm}$\Sum{a_n}{n}$ \\
+% |\Sum{a_n}{n,1,N}| & \vspace{0.1cm}$\Sum{a_n}{n,1,N}$ \\
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\Sum}[2]{%
+\listval{#2}{0}%
+% \end{macrocode}
+% record the length of the list
+% \begin{macrocode}
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}
+\ifthenelse{ \value{COOL@listlen} = 1 }%
+ {%
+ \sum_{#2} #1%
+ }%
+% else
+ {%
+ \ifthenelse{ \value{COOL@listlen} = 3 }%
+ {%
+ \sum_{ \listval{#2}{1} = \listval{#2}{2} }^{ \listval{#2}{3} } #1
+ }%
+ % else
+ {%
+ \PackageError{cool}{Invalid list length for `Sum'}%
+ {can only have none or two commas for second argument}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Prod}
+% Product
+%
+% \begin{tabular}{ll}
+% |\Prod{a_n}{n}| & \vspace{0.1cm}$\Prod{a_n}{n}$ \\
+% |\Prod{a_n}{n,1,N}| & \vspace{0.1cm}$\Prod{a_n}{n,1,N}$ \\
+% \end{tabular}
+% \begin{macrocode}
+\newcommand{\Prod}[2]{%
+\listval{#2}{0}%
+% \end{macrocode}
+% record the length of the list
+% \begin{macrocode}
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}
+\ifthenelse{ \value{COOL@listlen} = 1 }%
+ {%
+ \prod_{#2} #1%
+ }%
+% else
+ {%
+ \ifthenelse{ \value{COOL@listlen} = 3 }%
+ {%
+ \prod_{ \listval{#2}{1} = \listval{#2}{2} }^{ \listval{#2}{3} } #1
+ }%
+ % else
+ {%
+ \PackageError{cool}{Invalid list length for `Prod'}%
+ {can only have none or two commas for second argument}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Vector Operators}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\DotProduct}
+% The dot product, |\DotProduct{\vec{A}}{\vec{B}}|, $\DotProduct{\vec{A}}{\vec{B}}$
+% \begin{macrocode}
+\newcommand{\DotProduct}[2]{#1 \cdot #2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Cross}
+% The cross product, |\Cross{\vec{A}}{\vec{B}}|, $\Cross{\vec{A}}{\vec{B}}$
+% \begin{macrocode}
+\newcommand{\Cross}[2]{#1 \times #2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Div}
+% the divergence, |\Div{\vec{A}}|, $\Div{\vec{A}}$
+% \begin{macrocode}
+\newcommand{\Div}[1]{\nabla \cdot #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Grad}
+% The gradient, |\Grad{f}|, $\Grad{f}$
+% \begin{macrocode}
+\newcommand{\Grad}[1]{\nabla #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Curl}
+% The curl, |\Curl{\vec{A}}|, $\Curl{\vec{A}}$
+% \begin{macrocode}
+\newcommand{\Curl}[1]{\nabla \times #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Laplacian}
+% The laplacian, |\Laplacian{f}|, $\Laplacian{f}$
+% \begin{macrocode}
+\newcommand{\Laplacian}[1]{\nabla^2 #1}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Matrix Operations}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\Transpose}
+% Transpose of a matrix, |\Transpose{A}|, $\Transpose{A}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@TransposeParen}{inv}
+\newcommand{\Transpose}[1]{ \COOL@decide@paren{Transpose}{#1}^T }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Dagger}
+% Conjugate Transpose of a matrix, |\Dagger{A}|, $\Dagger{A}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@DaggerParen}{inv}
+\newcommand{\Dagger}[1]{ \COOL@decide@paren{Dagger}{#1}^\dagger }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Det}
+% determinant of a matrix
+%
+% \begin{tabular}{ll}
+% |\Style{DetDisplay=det}|%
+% \Style{DetDisplay=det} (Default) \\
+% |\Det{A}| & $\Det{A}$ \\
+% |\Style{DetDisplay=barenc}|%
+% \Style{DetDisplay=barenc} \\
+% |\Det{A}| & $\Det{A}$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@DetParen}{none}
+ \newcommand{\COOL@notation@DetDisplay}{det}
+\newcommand{\Det}[1]{%
+\ifthenelse{\equal{\COOL@notation@DetDisplay}{det}}%
+ {%
+ \det\COOL@decide@paren{Det}{#1}%
+ }%
+% ElseIf
+{ \ifthenelse{\equal{\COOL@notation@DetDisplay}{barenc}}%
+ {%
+ \left|#1\right|%
+ }%
+% Else
+ {%
+ \PackageError{cool}{Invalid Option Sent}%
+ {`DetDisplay' can only be `det' or `barenc'}%
+ }}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Tr}
+% Trace of a Matrix, |\Tr{A}|, $\Tr{A}$
+% \begin{macrocode}
+ \newcommand{\COOL@notation@TrParen}{none}
+\newcommand{\Tr}[2][]{%
+\ifthenelse{\equal{#1}{}}
+ {%
+ \operatorname{Tr}\COOL@decide@paren{Tr}{#2}%
+ }%
+% Else
+ {%
+ \operatorname{Tr}_{#1}\COOL@decide@paren{Tr}{#2}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% \subsubsection{Matricies}
+% % %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macro}{\IdentityMatrix}
+% The Identity Matrix
+%
+% \begin{tabular}{cc}
+% |\IdentityMatrix| & $\IdentityMatrix$ \\
+% |\IdentityMatrix[2]| & $\IdentityMatrix[2]$ \\
+% \end{tabular}
+% \begin{macrocode}
+ \newcommand{\COOL@notation@IdentityMatrixParen}{p}
+ \newcounter{COOL@row}%
+ \newcounter{COOL@col}%
+\newcommand{\IdentityMatrix}[1][0]{%
+\isint{#1}%
+\ifthenelse{\boolean{COOL@isint}}%
+ {%
+ \ifthenelse{ #1=0 }%
+ {%
+ \mathbb{I}%
+ }%
+ % Else
+ {%
+ \setcounter{COOL@ct}{\value{MaxMatrixCols}}%
+ \setcounter{MaxMatrixCols}{#1}%
+ \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{p}}%
+ {%
+ \begin{pmatrix}%
+ }%
+ % ElseIf
+ { \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{b}}%
+ {%
+ \begin{bmatrix}%
+ }%
+ % ElseIf
+ { \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{br}}%
+ {%
+ \begin{Bmatrix}%
+ }%
+ % Else
+ {%
+ \begin{matrix}%
+ }}}%
+ \forLoop{1}{#1}{COOL@row}%
+ {%
+ \ifthenelse{\NOT \value{COOL@row} = 1}{\\}{}%
+ \forLoop{1}{#1}{COOL@col}%
+ {%
+ \ifthenelse{ \NOT \value{COOL@col} = 1 }{&}{}%
+ \ifthenelse{ \value{COOL@row}=\value{COOL@col} }{1}{0}%
+ }%
+ }%
+ \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{p}}%
+ {%
+ \end{pmatrix}%
+ }%
+ % ElseIf
+ { \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{b}}%
+ {%
+ \end{bmatrix}%
+ }%
+ % ElseIf
+ { \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{br}}%
+ {%
+ \end{Bmatrix}%
+ }%
+ % Else
+ {%
+ \end{matrix}%
+ }}}%
+ \setcounter{MaxMatrixCols}{\value{COOL@ct}}%
+ }%
+ }%
+% Else
+ {%
+ \mathbb{I}%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/cool/cool.ins b/Master/texmf-dist/source/latex/cool/cool.ins
new file mode 100644
index 00000000000..0f41b595606
--- /dev/null
+++ b/Master/texmf-dist/source/latex/cool/cool.ins
@@ -0,0 +1,40 @@
+%%
+%% Copyright (C) 2005 by nsetzer
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the Lesser General Product License
+%%
+
+\input docstrip.tex
+
+\keepsilent
+
+\usedir{texmf/tex/latex/cool}
+
+\preamble
+
+This is a generated file
+
+This file may be distributed and/or modified under the
+conditions of the Limited General Product License
+
+\endpreamble
+
+
+\generate{\file{cool.sty}{\from{cool.dtx}{package}}}
+
+\obeyspaces
+\Msg{****************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the *}
+\Msg{* following file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* cool.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file *}
+\Msg{* cool.dtx through LaTeX. *}
+\Msg{* *}
+\Msg{* *}
+\Msg{****************************************************}
+
+\endbatchfile \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/cool/cool.sty b/Master/texmf-dist/tex/latex/cool/cool.sty
new file mode 100644
index 00000000000..51fa1ffe6fd
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/cool/cool.sty
@@ -0,0 +1,2631 @@
+%%
+%% This is file `cool.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cool.dtx (with options: `package')
+%%
+%% This is a generated file
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the Limited General Product License
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{cool}
+ [2006/09/17 v1.2 COntent Oriented LaTeX]
+\RequirePackage{ifthen}
+\RequirePackage{coollist}
+\RequirePackage{coolstr}
+\RequirePackage{forloop}
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\newcounter{COOL@ct} %just a general counter
+\newcounter{COOL@ct@}%just a general counter
+\newcommand{\inp}[2][0cm]{\left(#2\parbox[h][#1]{0cm}{}\right)}
+ % in parentheses ()
+\newcommand{\inb}[2][0cm]{\left[#2\parbox[h][#1]{0cm}{}\right]}
+ % in brackets []
+\newcommand{\inbr}[2][0cm]{\left\{#2\parbox[h][#1]{0cm}{}\right\}}
+\newcommand{\inap}[2][0cm]{\left<{#2}\parbox[h][#1]{0cm}{}\right>}
+\newcommand{\nop}[1]{\left.{#1}\right.}
+\let\COOL@decide@paren@no@type=\relax
+\newcommand{\COOL@decide@paren}[3][\COOL@decide@paren@no@type]{%
+\ifthenelse{ \equal{#1}{\COOL@decide@paren@no@type} }%
+{%
+\def\COOL@decide@paren@type{\csname COOL@notation@#2Paren\endcsname}%
+}%
+{%
+\def\COOL@decide@paren@type{#1}%
+}%
+\ifthenelse{ \equal{\COOL@decide@paren@type}{none} }%
+{%
+#3%
+}%
+{%
+\ifthenelse{ \equal{\COOL@decide@paren@type}{p} }%
+{%
+\inp{#3}%
+}%
+{%
+\ifthenelse{ \equal{\COOL@decide@paren@type}{b} }%
+{%
+\inb{#3}%
+}%
+{%
+\ifthenelse{ \equal{\COOL@decide@paren@type}{br} }%
+{%
+\inbr{#3}%
+}%
+{%
+\ifthenelse{ \equal{\COOL@decide@paren@type}{ap} }%
+{%
+\inap{#3}%
+}%
+{%
+\ifthenelse{ \equal{\COOL@decide@paren@type}{inv} }%
+{%
+\nop{#3}%
+}%
+{%
+\PackageError{cool}{Invalid Parenthesis Option}%
+{*Paren can only be `none', `p', `b', `br', `ap', `inv'}%
+}%
+}%
+}%
+}%
+}%
+}%
+}
+\newcommand{\COOL@decide@indicies}[3]{%
+\def\COOL@decide@indicies@placement%
+{\csname COOL@notation@#1Indicies\endcsname}%
+\ifthenelse{\equal{\COOL@decide@indicies@placement}{local}}%
+{%
+\ifthenelse{\equal{#2}{u}}%
+{^{#3}}%
+{_{#3}}%
+}%
+{%
+\ifthenelse{\equal{\COOL@decide@indicies@placement}{up}}%
+{%
+{^{#3}}%
+}%
+{%
+\ifthenelse{\equal{\COOL@decide@indicies@placement}{down}}%
+{%
+{_{#3}}%
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{#1Indices can only be 'up', 'down', or 'local'}%
+}%
+}%
+}%
+}
+\newcommand{\Style}[1]{%
+\COOL@keyeater#1,\COOL@keystop\COOL@keyend%
+}
+\newcommand{\COOL@keystop}{@@@}%
+\def\COOL@keyeater#1=#2,#3\COOL@keyend{%
+\ifx#3\COOL@keystop%
+\expandafter\gdef\csname COOL@notation@#1\endcsname{#2}%
+\else%
+\expandafter\gdef\csname COOL@notation@#1\endcsname{#2}%
+\COOL@keyeater#3\COOL@keyend%
+\fi%
+}
+\newcommand{\UseStyleFile}[1]{}
+\newcommand{\I}{i}
+\newcommand{\E}{e}
+\newcommand{\PI}{\pi}
+\newcommand{\GoldenRatio}{\varphi}
+\newcommand{\EulerGamma}{\gamma}
+\newcommand{\Catalan}{C}
+\newcommand{\Glaisher}{\mathord{\operatorname{Glaisher}}}
+\newcommand{\Khinchin}{\mathord{\operatorname{Khinchin}}}
+\newcommand{\Infinity}{\infty}
+\newcommand{\Indeterminant}{%
+\mathchoice%
+{\mbox{\textrm>}}%
+{\mbox{\small>}}%
+{\mbox{\scriptsize>}}%
+{\mbox{\tiny>}}%
+}
+\newcommand{\DirectedInfinity}[1]{#1 \, \infty}
+\newcommand{\DirInfty}[1]{\DirectedInfinity{#1}}
+\newcommand{\ComplexInfinity}{\tilde{\infty}}
+\newcommand{\CInfty}{\ComplexInfinity}
+\newcommand{\COOL@notation@ExpParen}{p}
+\newcommand{\Exp}[1]
+{%
+\exp\COOL@decide@paren{Exp}{#1}%
+}
+\newcommand{\COOL@notation@LogParen}{none}
+\newcommand{\COOL@notation@LogBaseESymb}{ln}% 'ln', 'log'
+\newcommand{\COOL@notation@LogShowBase}{at will}% 'at will', 'always'
+\newcommand{\Log}[2][\E]
+{%
+\ifthenelse{ \equal{\COOL@notation@LogShowBase}{at will} }%
+{%
+\ifthenelse{ \equal{#1}{\E} }%
+{%
+\ifthenelse{ \equal{\COOL@notation@LogBaseESymb}{ln} }%
+{%
+\ln \COOL@decide@paren{Log}{#2}%
+}%
+{%
+\ifthenelse{ \equal{\COOL@notation@LogBaseESymb}{log} }%
+{%
+\log \COOL@decide@paren{Log}{#2}%
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{LogBaseESymb can only be `ln' or `log'}%
+}%
+}%
+}%
+{%
+\ifthenelse{ \equal{#1}{10} \AND
+\NOT \equal{\COOL@notation@LogBaseESymb}{log} }%
+{%
+\log \COOL@decide@paren{Log}{#2}%
+}%
+{%
+\log_{#1} \COOL@decide@paren{Log}{#2}%
+}%
+}%
+}%
+{%
+\ifthenelse{ \equal{\COOL@notation@LogShowBase}{always} }%
+{%
+\log_{#1}\COOL@decide@paren{Log}{#2}%
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{LogShowBase can only be 'at will' or 'always'}%
+}%
+}%
+}
+\newcommand{\COOL@notation@SinParen}{p}
+\newcommand{\Sin}[1]{\sin\COOL@decide@paren{Sin}{#1}}
+\newcommand{\COOL@notation@CosParen}{p}
+\newcommand{\Cos}[1]{\cos\COOL@decide@paren{Cos}{#1}}
+\newcommand{\COOL@notation@TanParen}{p}
+\newcommand{\Tan}[1]{\tan\COOL@decide@paren{Tan}{#1}}
+\newcommand{\COOL@notation@CscParen}{p}
+\newcommand{\Csc}[1]{\csc\COOL@decide@paren{Csc}{#1}}
+\newcommand{\COOL@notation@SecParen}{p}
+\newcommand{\Sec}[1]{\sec\COOL@decide@paren{Sec}{#1}}
+\newcommand{\COOL@notation@CotParen}{p}
+\newcommand{\Cot}[1]{\cot\COOL@decide@paren{Cot}{#1}}
+\def\COOL@notation@ArcTrig{inverse}
+\newcommand{\COOL@notation@ArcSinParen}{p}
+\newcommand{\ArcSin}[1]{%
+\ifthenelse{ \equal{\COOL@notation@ArcTrig}{inverse} }%
+{%
+\sin^{-1}\COOL@decide@paren{ArcSin}{#1}%
+}
+{
+\ifthenelse{\equal{\COOL@notation@ArcTrig}{arc}}%
+{%
+\arcsin\COOL@decide@paren{ArcSin}{#1}%
+}%
+{%
+\PackageError{cool}{Invalid option sent}{}%
+}%
+}%
+}
+\newcommand{\COOL@notation@ArcCosParen}{p}
+\newcommand{\ArcCos}[1]{%
+\ifthenelse{ \equal{\COOL@notation@ArcTrig}{inverse} }%
+{%
+\cos^{-1}\COOL@decide@paren{ArcCos}{#1}%
+}%
+{%
+\ifthenelse{\equal{\COOL@notation@ArcTrig}{arc}}%
+{%
+\arccos\COOL@decide@paren{ArcCos}{#1}%
+}%
+{%
+\PackageError{cool}{Invalid option sent}{}%
+}%
+}%
+}
+\newcommand{\COOL@notation@ArcTanParen}{p}
+\newcommand{\ArcTan}[1]{%
+\ifthenelse{ \equal{\COOL@notation@ArcTrig}{inverse} }%
+{%
+\tan^{-1}\COOL@decide@paren{ArcTan}{#1}%
+}%
+{%
+\ifthenelse{\equal{\COOL@notation@ArcTrig}{arc}}%
+{%
+\arctan\COOL@decide@paren{ArcTan}{#1}%
+}%
+{%
+\PackageError{cool}{Invalid option sent}{}%
+}%
+}%
+}
+\newcommand{\COOL@notation@ArcCscParen}{p}
+\newcommand{\ArcCsc}[1]{\csc^{-1}\COOL@decide@paren{ArcCsc}{#1}}
+\newcommand{\COOL@notation@ArcSecParen}{p}
+\newcommand{\ArcSec}[1]{\sec^{-1}\COOL@decide@paren{ArcSec}{#1}}
+\newcommand{\COOL@notation@ArcCotParen}{p}
+\newcommand{\ArcCot}[1]{\cot^{-1}\COOL@decide@paren{ArcCot}{#1}}
+\newcommand{\COOL@notation@SinhParen}{p}
+\newcommand{\Sinh}[1]{\sinh\COOL@decide@paren{Sinh}{#1}}
+\newcommand{\COOL@notation@CoshParen}{p}
+\newcommand{\Cosh}[1]{\cosh\COOL@decide@paren{Cosh}{#1}}
+\newcommand{\COOL@notation@TanhParen}{p}
+\newcommand{\Tanh}[1]{\tanh\COOL@decide@paren{Tanh}{#1}}
+\newcommand{\COOL@notation@CschParen}{p}
+\DeclareMathOperator{\csch}{csch}
+\newcommand{\Csch}[1]{\csch\COOL@decide@paren{Csch}{#1}}
+\newcommand{\COOL@notation@SechParen}{p}
+\DeclareMathOperator{\sech}{sech}
+\newcommand{\Sech}[1]{\sech\COOL@decide@paren{Sech}{#1}}
+\newcommand{\COOL@notation@CothParen}{p}
+\newcommand{\Coth}[1]{\coth\COOL@decide@paren{Coth}{#1}}
+\newcommand{\COOL@notation@ArcSinhParen}{p}
+\newcommand{\ArcSinh}[1]{\sinh^{-1}\COOL@decide@paren{ArcSinh}{#1}}
+\newcommand{\COOL@notation@ArcCoshParen}{p}
+\newcommand{\ArcCosh}[1]{\cosh^{-1}\COOL@decide@paren{ArcCosh}{#1}}
+\newcommand{\COOL@notation@ArcTanhParen}{p}
+\newcommand{\ArcTanh}[1]{\tanh^{-1}\COOL@decide@paren{ArcTanh}{#1}}
+\newcommand{\COOL@notation@ArcCschParen}{p}
+\newcommand{\ArcCsch}[1]{\csch^{-1}\COOL@decide@paren{ArcCsch}{#1}}
+\newcommand{\COOL@notation@ArcSechParen}{p}
+\newcommand{\ArcSech}[1]{\sech^{-1}\COOL@decide@paren{ArcSech}{#1}}
+\newcommand{\COOL@notation@ArcCothParen}{p}
+\newcommand{\ArcCoth}[1]{\coth^{-1}\COOL@decide@paren{ArcCoth}{#1}}
+\newcommand{\LambertW}[1]{\ProductLog{#1}}
+\newcommand{\COOL@notation@ProductLogParen}{p}
+\newcommand{\ProductLog}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer}=1}%
+{%
+W\!\COOL@decide@paren{ProductLog}{#1}%
+}%
+{%
+\ifthenelse{\value{COOL@listpointer}=2}%
+{%
+W_{\listval{#1}{1}}\!\COOL@decide@paren{ProductLog}{\listval{#1}{2}}%
+}%
+{%
+\PackageError{cool}{`ProductLog' Invaid Argument}%
+{Must have a comma separated list of length 1 or 2}
+}%
+}%
+}
+\newcommand{\COOL@notation@MaxParen}{p}
+\newcommand{\Max}[1]{\max\COOL@decide@paren{Max}{#1}}
+\newcommand{\COOL@notation@MinParen}{p}
+\newcommand{\Min}[1]{\min\COOL@decide@paren{Min}{#1}}
+\newcommand{\COOL@notation@BesselJSymb}{J}
+\newcommand{\COOL@notation@BesselJParen}{p}
+\newcommand{\BesselJ}[2]%
+{\COOL@notation@BesselJSymb_{#1}\!\COOL@decide@paren{BesselJ}{#2}}
+\newcommand{\COOL@notation@BesselYSymb}{Y}
+\newcommand{\COOL@notation@BesselYParen}{p}
+\newcommand{\BesselY}[2]%
+{\COOL@notation@BesselYSymb_{#1}\!\COOL@decide@paren{BesselY}{#2}}
+\newcommand{\COOL@notation@BesselISymb}{I}
+\newcommand{\COOL@notation@BesselIParen}{p}
+\newcommand{\BesselI}[2]%
+{\COOL@notation@BesselISymb_{#1}\!\COOL@decide@paren{BesselI}{#2}}
+\newcommand{\COOL@notation@BesselKSymb}{K}
+\newcommand{\COOL@notation@BesselKParen}{p}
+\newcommand{\BesselK}[2]%
+{\COOL@notation@BesselKSymb_{#1}\!\COOL@decide@paren{BesselK}{#2}}
+\newcommand{\COOL@notation@AiryAiParen}{p}
+\DeclareMathOperator{\AiryAiSymb}{Ai}
+\newcommand{\AiryAi}[1]{\AiryAiSymb\!\COOL@decide@paren{AiryAi}{#1}}
+\newcommand{\COOL@notation@AiryBiParen}{p}
+\DeclareMathOperator{\AiryBiSymb}{Bi}
+\newcommand{\AiryBi}[1]{\AiryBiSymb\!\COOL@decide@paren{AiryBi}{#1}}
+\newcommand{\COOL@notation@StruveHParen}{p}
+\newcommand{\StruveH}[2]{ {\bf H}_{#1}\!\COOL@decide@paren{StruveH}{#2}}
+\newcommand{\COOL@notation@StruveLParen}{p}
+\newcommand{\StruveL}[2]{ {\bf L}_{#1}\!\COOL@decide@paren{StruveL}{#2}}
+\newcommand{\Floor}[1]{\lfloor #1 \rfloor}
+\newcommand{\Ceiling}[1]{\lceil #1 \rceil}
+\newcommand{\Round}[1]{\lfloor #1 \rceil}
+\newcommand{\COOL@notation@IntegerPartParen}{p}
+\DeclareMathOperator{\iPartSymb}{int}
+\newcommand{\iPart}[1]{\iPartSymb\COOL@decide@paren{IntegerPart}{#1}}
+\newcommand{\IntegerPart}[1]{\iPart{#1}}
+\newcommand{\COOL@notation@FractionalPartParen}{p}
+\DeclareMathOperator{\fPartSymb}{frac}
+\newcommand{\fPart}[1]{\fPartSymb\COOL@decide@paren{FractionalPart}{#1}}
+\newcommand{\FractionalPart}[1]{\fPart{#1}}
+\newcommand{\COOL@notation@ModDisplay}{mod}
+\newcommand{\Mod}[2]{%
+\ifthenelse{\equal{\COOL@notation@ModDisplay}{mod}}%
+{%
+#1 \mod #2%
+}%
+{ \ifthenelse{\equal{\COOL@notation@ModDisplay}{bmod}}%
+{%
+#1 \bmod #2%
+}%
+{ \ifthenelse{\equal{\COOL@notation@ModDisplay}{pmod}}%
+{%
+#1 \pmod #2%
+}%
+{\ifthenelse{\equal{\COOL@notation@ModDisplay}{pod}}%
+{%
+#1 \pod #2%
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{ModDisplay can only be `mod', `bmod', `pmod', or `pod'}%
+}}}}%
+}
+\newcommand{\COOL@notation@QuotientParen}{p}
+\DeclareMathOperator{\QuotientSymb}{quotient}
+\newcommand{\Quotient}[2]%
+{\QuotientSymb\COOL@decide@paren{Quotient}{#1,#2}}
+\newcommand{\COOL@notation@GCDParen}{p}
+\newcommand{\GCD}[1]{\gcd\COOL@decide@paren{GCD}{#1}}
+\newcommand{\COOL@notation@ExtendedGCDParen}{p}
+\DeclareMathOperator{\ExtendedGCDSymb}{egcd}
+\newcommand{\ExtendedGCD}[2]%
+{\ExtendedGCDSymb\COOL@decide@paren{ExtendedGCD}{#1,#2}}
+\newcommand{\EGCD}[2]{\ExtendedGCD{#1}{#2}}
+\newcommand{\COOL@notation@LCMParen}{p}
+\DeclareMathOperator{\LCMSymb}{lcm}
+\newcommand{\LCM}[1]{\LCMSymb\COOL@decide@paren{LCM}{#1}}
+\newcommand{\COOL@notation@FibonacciParen}{p}
+\newcommand{\Fibonacci}[1]{%
+\liststore{#1}{COOL@Fibonacci@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+F_{#1}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+F_{\COOL@Fibonacci@arg@i}\!%
+\COOL@decide@paren{Fibonacci}{\COOL@Fibonacci@arg@ii}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`Fibonacci' can only accept a
+comma separate list of length 1 or 2}%
+}}%
+}
+\newcommand{\COOL@notation@EulerParen}{p}
+\newcommand{\Euler}[1]{%
+\liststore{#1}{COOL@Euler@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+E_{#1}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+E_{\COOL@Euler@arg@i}\!%
+\COOL@decide@paren{Euler}{\COOL@Euler@arg@ii}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`Euler' can only accept a
+comma separate list of length 1 or 2}%
+}}%
+}
+\newcommand{\COOL@notation@BernoulliParen}{p}
+\newcommand{\Bernoulli}[1]{%
+\liststore{#1}{COOL@Bernoulli@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+B_{#1}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+B_{\COOL@Bernoulli@arg@i}\!%
+\COOL@decide@paren{Bernoulli}{\COOL@Bernoulli@arg@ii}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`Bernoulli' can only accept a
+comma separate list of length 1 or 2}%
+}}%
+}
+\newcommand{\StirlingSOne}[2]{S_{#1}^{\inp{#2}}}
+\newcommand{\StirlingSTwo}[2]{{\cal S}_{#1}^{\inp{#2}}}
+\newcommand{\COOL@notation@PartitionsPParen}{p}
+\newcommand{\PartitionsP}[1]{p\!\COOL@decide@paren{PartitionsP}{#1}}
+\newcommand{\COOL@notation@PartitionsQParen}{p}
+\newcommand{\PartitionsQ}[1]{q\!\COOL@decide@paren{PartitionsQ}{#1}}
+\newcommand{\COOL@notation@DiscreteDeltaParen}{p}
+\newcommand{\DiscreteDelta}[1]%
+{\delta\COOL@decide@paren{DiscreteDelta}{#1}}
+\newcommand{\COOL@notation@KroneckerDeltaUseComma}{false}%
+\newcommand{\COOL@notation@KroneckerDeltaIndicies}{local}
+\newcommand{\KroneckerDelta}[2][u]{%
+\liststore{#2}{COOL@arg@}%
+\listval{#2}{0}%
+\def\COOL@arg@temp{}%
+\forLoop{1}{\value{COOL@listpointer}}{COOL@ct}%
+{%
+\ifthenelse{\equal{\COOL@notation@KroneckerDeltaUseComma}{true}}%
+{%
+\ifthenelse{\NOT \value{COOL@ct} = 1}
+{%
+\edef\COOL@arg@temp%
+{\COOL@arg@temp, \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+}%
+{%
+\edef\COOL@arg@temp%
+{\COOL@arg@temp \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+}%
+}%
+{%
+\edef\COOL@arg@temp%
+{\COOL@arg@temp \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+}%
+}%
+\delta\COOL@decide@indicies{KroneckerDelta}{#1}{\COOL@arg@temp}%
+}
+\newcommand{\COOL@notation@LeviCivitaUseComma}{false}
+\newcommand{\COOL@notation@LeviCivitaIndicies}{local}
+\newcommand{\LeviCivita}[2][u]{%
+\liststore{#2}{COOL@arg@}%
+\listval{#2}{0}%
+\def\COOL@arg@temp{}%
+\forLoop{1}{\value{COOL@listpointer}}{COOL@ct}%
+{%
+\ifthenelse{\equal{\COOL@notation@LeviCivitaUseComma}{true}}%
+{%
+\ifthenelse{\NOT \value{COOL@ct} = 1}{,}{}%
+\edef\COOL@arg@temp%
+{\COOL@arg@temp \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+}%
+{%
+\edef\COOL@arg@temp%
+{\COOL@arg@temp \csname COOL@arg@\roman{COOL@ct}\endcsname}%
+}%
+}%
+\epsilon\COOL@decide@indicies{LeviCivita}{#1}{\COOL@arg@temp}%
+}%
+\newcommand{\Signature}[2][u]{\LeviCivita[#1]{#2}}
+\newcommand{\COOL@notation@HermiteHParen}{p}
+\newcommand{\COOL@notation@HermiteHSymb}{H}
+\newcommand{\HermiteH}[2]%
+{\COOL@notation@HermiteHSymb_{#1}\!\COOL@decide@paren{HermiteH}{#2}}
+\newcommand{\COOL@notation@LaugerreLParen}{p}
+\newcommand{\COOL@notation@LaugerreLSymb}{L}
+\newcommand{\LaugerreL}[1]{%
+\liststore{#1}{COOL@list@temp@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer}=2}%
+{%
+\COOL@notation@LaugerreLSymb_{\COOL@list@temp@i}%
+\!\COOL@decide@paren{LaugerreL}{\COOL@list@temp@ii}%
+}%
+{ \ifthenelse{\value{COOL@listpointer}=3}%
+{%
+\COOL@notation@LaugerreLSymb_{\COOL@list@temp@i}^{\COOL@list@temp@ii}%
+\!\COOL@decide@paren{LaugerreL}{\COOL@list@temp@iii}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`LaugerrL' only accepts a comma separated list of length 2 or 3}%
+}}%
+}
+\newcommand{\COOL@notation@LegendrePParen}{p}
+\newcommand{\COOL@notation@LegendrePSymb}{P}
+\newcommand{\LegendreP}[1]{%
+\liststore{#1}{COOL@LegendreP@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\COOL@notation@LegendrePSymb_{\COOL@LegendreP@arg@i}\!%
+\COOL@decide@paren{LegendreP}{\COOL@LegendreP@arg@ii}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+\COOL@notation@LegendrePSymb_{\COOL@LegendreP@arg@i}%
+^{\COOL@LegendreP@arg@ii}\!%
+\COOL@decide@paren{LegendreP}{\COOL@LegendreP@arg@iii}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+{%
+\isint{\COOL@LegendreP@arg@iii}%
+\ifthenelse{\boolean{COOL@isint}}%
+{%
+\ifcase\COOL@LegendreP@arg@iii\relax%
+\PackageError{cool}{Invalid Argument}%
+{`LegendreP' third argument must be $>$ 1}%
+\or%
+\PackageError{cool}{Invalid Argument}%
+{`LegendreP' third argument must be $>$ 1}%
+\or%
+\COOL@notation@LegendrePSymb_{\COOL@LegendreP@arg@i}%
+^{\COOL@LegendreP@arg@ii}\!%
+\COOL@decide@paren{LegendreP}{\COOL@LegendreP@arg@iv}%
+\or%
+{\cal P}_{\COOL@LegendreP@arg@i}%
+^{\COOL@LegendreP@arg@ii}\!%
+\COOL@decide@paren{LegendreP}{\COOL@LegendreP@arg@iv}%
+\else%
+\PackageError{cool}{Invalid Argument}{unsupported}%
+\fi%
+}
+{%
+\PackageError{cool}{Invalid Argument}{third arg must be int}%
+}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`LegendreP' can only accept a%
+ comma separated list of length 2-4}%
+}}}%
+}
+\newcommand{\COOL@notation@LegendreQParen}{p}
+\newcommand{\COOL@notation@LegendreQSymb}{Q}
+\newcommand{\LegendreQ}[1]{%
+\liststore{#1}{COOL@LegendreQ@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\COOL@notation@LegendreQSymb_{\COOL@LegendreQ@arg@i}\!%
+\COOL@decide@paren{LegendreQ}{\COOL@LegendreQ@arg@ii}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+\COOL@notation@LegendreQSymb_{\COOL@LegendreQ@arg@i}%
+^{\COOL@LegendreQ@arg@ii}\!%
+\COOL@decide@paren{LegendreQ}{\COOL@LegendreQ@arg@iii}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+{%
+\isint{\COOL@LegendreQ@arg@iii}%
+\ifthenelse{\boolean{COOL@isint}}%
+{%
+\ifcase\COOL@LegendreQ@arg@iii\relax%
+\PackageError{cool}{Invalid Argument}%
+{`LegendreQ' third argument must be $>$ 1}%
+\or%
+\PackageError{cool}{Invalid Argument}%
+{`LegendreQ' third argument must be $>$ 1}%
+\or%
+\COOL@notation@LegendreQSymb_{\COOL@LegendreQ@arg@i}%
+^{\COOL@LegendreQ@arg@ii}\!%
+\COOL@decide@paren{LegendreQ}{\COOL@LegendreQ@arg@iv}%
+\or%
+{\cal Q}_{\COOL@LegendreQ@arg@i}%
+^{\COOL@LegendreQ@arg@ii}\!%
+\COOL@decide@paren{LegendreQ}{\COOL@LegendreQ@arg@iv}%
+\else%
+\PackageError{cool}{Invalid Argument}{unsupported}%
+\fi%
+}
+{%
+\PackageError{cool}{Invalid Argument}{third arg must be int}%
+}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`LegendreQ' can only accept a%
+ comma separated list of length 2-4}%
+}}}%
+}
+\newcommand{\COOL@notation@ChebyshevTParen}{p}
+\newcommand{\COOL@notation@ChebyshevTSymb}{T}
+\newcommand{\ChebyshevT}[2]%
+{\COOL@notation@ChebyshevTSymb_{#1}\!\COOL@decide@paren{ChebyshevT}{#2}}
+\newcommand{\COOL@notation@ChebyshevUParen}{p}
+\newcommand{\COOL@notation@ChebyshevUSymb}{U}
+\newcommand{\ChebyshevU}[2]%
+{\COOL@notation@ChebyshevUSymb_{#1}\!\COOL@decide@paren{ChebyshevU}{#2}}
+\newcommand{\COOL@notation@JacobiPParen}{p}
+\newcommand{\COOL@notation@JacobiPSymb}{P}
+\newcommand{\JacobiP}[4]{%
+\COOL@notation@JacobiPSymb_{#1}^{\inp{#2, #3}}%
+\!\COOL@decide@paren{JacobiP}{#4}%
+}
+\newcommand{\AssocLegendreP}[3]{\LegendreP{#1,#2,#3}}
+\newcommand{\AssocLegendreQ}[3]{\LegendreQ{#1,#2,#3}}
+\newcommand{\COOL@notation@GegenbauerCParen}{p}
+\newcommand{\COOL@notation@GegenbauerCSymb}{C}
+\newcommand{\GegenbauerC}[3]{%
+\COOL@notation@GegenbauerCSymb_{#1}^{#2}%
+\!\COOL@decide@paren{GegenbauerC}{#3}%
+}
+\newcommand{\COOL@notation@SphericalHarmonicYParen}{p}
+\newcommand{\COOL@notation@SphericalHarmonicYSymb}{Y}
+\newcommand{\SphericalHarmonicY}[4]{%
+\COOL@notation@SphericalHarmonicYSymb_{#1}^{#2}%
+\!\COOL@decide@paren{SphericalHarmonicY}{#3,#4}%
+}
+\newcommand{\SphericalHarmY}[4]{\SphericalHarmonicY{#1}{#2}{#3}{#4}}
+\newcommand{\SpHarmY}[4]{\SphericalHarmonicY{#1}{#2}{#3}{#4}}
+\newcommand{\COOL@notation@CyclotomicCParen}{p}
+\newcommand{\CyclotomicC}[2]%
+{C_{#1}\!\COOL@decide@paren{CyclotomicC}{#2}}
+\newcommand{\FibonacciF}[2]{\Fibonacci{#1,#2}}
+\newcommand{\EulerE}[2]{\Euler{#1,#2}}
+\newcommand{\BernoulliB}[2]{\Bernoulli{#1,#2}}
+\newcommand{\Factorial}[1]{#1!}
+\newcommand{\DblFactorial}[1]{#1!!}
+\newcommand{\Binomial}[2]{ \binom{#1}{#2} }
+\newcommand{\Multinomial}[1]%
+{%
+\listval{#1}{0}% get the length of the list
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}% record length
+\liststore{#1}{COOL@list@temp@}%
+\isint{\COOL@list@temp@i}% check that the entries are integers
+\setcounter{COOL@ct}{2}%
+\whiledo{ \boolean{COOL@isint} \AND
+\NOT \value{COOL@ct}>\value{COOL@listlen} }%
+{%
+\def\COOL@Multinomial@tempa%
+{\csname COOL@list@temp@\roman{COOL@ct}\endcsname}%
+\isint{\COOL@Multinomial@tempa}%
+\stepcounter{COOL@ct}%
+}%
+\ifthenelse{\boolean{COOL@isint}}%
+{%
+\setcounter{COOL@ct@}{ \COOL@list@temp@i }% records the sum
+\forLoop{2}{\value{COOL@listlen}}{COOL@ct}%
+{%
+\addtocounter{COOL@ct@}%
+{\csname COOL@list@temp@\roman{COOL@ct}\endcsname}%
+}%
+\left(\arabic{COOL@ct@}%
+}%
+{%
+\left(%
+\listval{#1}{1}%
+\forLoop{2}{\value{COOL@listlen}}{COOL@ct}%
+{%
++ \listval{#1}{\arabic{COOL@ct}}%
+}%
+}%
+;#1\right)%
+}
+\newcommand{\COOL@notation@GammaFuncParen}{p}
+\newcommand{\GammaFunc}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+\Gamma\!\COOL@decide@paren{GammaFunc}{#1}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\Gamma\!\COOL@decide@paren{GammaFunc}{#1}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+\Gamma\!\COOL@decide@paren{GammaFunc}{#1}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`GammaFunc' can only accept a comma separate list of length 1 to 3}%
+}%
+}}%
+}
+\newcommand{\IncGamma}[2]{\GammaFunc{#1,#2}}
+\newcommand{\GenIncGamma}[3]{\GammaFunc{#1, #2, #3}}
+\newcommand{\COOL@notation@GammaRegularizedParen}{p}%
+\newcommand{\GammaRegularized}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+Q\!\COOL@decide@paren{GammaRegularized}{#1}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+Q\!\COOL@decide@paren{GammaRegularized}{#1}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`GammaRegularized' can only accept comma%
+ separated lists of length 2 or 3}%
+}%
+}%
+}
+\newcommand{\RegIncGamma}[2]{\GammaRegularized{#1, #2}}
+\newcommand{\GammaReg}[1]{\GammaRegularized{#1}}
+\newcommand{\COOL@notation@InverseGammaRegularizedParen}{p}
+\newcommand{\InverseGammaRegularized}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+Q^{-1}\!\COOL@decide@paren{InverseGammaRegularized}{#1}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+Q^{-1}\!\COOL@decide@paren{InverseGammaRegularized}{#1}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`InverseGammaRegularized' can only accept%
+ a comma separated list of length 2 or 3}%
+}%
+}%
+}
+\newcommand{\RegIncGammaInv}[2]{\InverseGammaRegularized{#1, #2}}
+\newcommand{\GammaRegInv}[1]{\InverseGammaRegularized{#1}}
+\newcommand{\GenRegIncGamma}[3]{\GammaRegularized{#1, #2, #3}}
+\newcommand{\GenRegIncGammaInv}[3]{\InverseGammaRegularized{#1, #2, #3}}
+\newcommand{\Pochhammer}[2]{\inp{#1}_{#2}}
+\newcommand{\COOL@notation@LogGammaParen}{p}
+\DeclareMathOperator{\LogGammaSymb}{log\Gamma}
+\newcommand{\LogGamma}[1]{\LogGammaSymb\COOL@decide@paren{LogGamma}{#1}}
+\newcommand{\COOL@notation@DiGammaParen}{p}
+\newcommand{\DiGamma}[1]{\digamma\!\COOL@decide@paren{DiGamma}{#1}}
+\newcommand{\COOL@notation@PolyGammaParen}{p}
+\newcommand{\PolyGamma}[2]%
+{\psi^{\inp{#1}}\!\COOL@decide@paren{PolyGamma}{#2}}
+\newcommand{\HarmNum}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer}=1}%
+{%
+H_{#1}
+}%
+{ \ifthenelse{\value{COOL@listpointer}=2}%
+{%
+\liststore{#1}{COOL@list@temp@}%
+H^{\inp{\COOL@list@temp@ii}}_{\COOL@list@temp@i}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`Harm Num' can only accept a comma separated list of length 1 or 2}%
+}}%
+}
+\newcommand{\COOL@notation@BetaParen}{p}
+\newcommand{\Beta}[1]{%
+\liststore{#1}{COOL@Beta@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+B\!\COOL@decide@paren{Beta}{\COOL@Beta@arg@i, \COOL@Beta@arg@ii}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+B_{\COOL@Beta@arg@i}\!%
+\COOL@decide@paren{Beta}{\COOL@Beta@arg@ii, \COOL@Beta@arg@iii}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+{%
+B_{\inp{\COOL@Beta@arg@i,\COOL@Beta@arg@ii}}\!%
+\COOL@decide@paren{Beta}{\COOL@Beta@arg@iii, \COOL@Beta@arg@iv}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`Beta' can only accept a comma separated list of length 2 to 4}%
+}%
+}}%
+}
+\newcommand{\IncBeta}[3]{\Beta{#1,#2, #3}}
+\newcommand{\GenIncBeta}[4]{\Beta{#1,#2,#3,#4}}
+\newcommand{\COOL@notation@BetaRegularizedParen}{p}
+\newcommand{\BetaRegularized}[1]{%
+\liststore{#1}{COOL@BetaRegularized@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+I_{\COOL@BetaRegularized@arg@i}\!%
+\COOL@decide@paren{BetaRegularized}%
+{\COOL@BetaRegularized@arg@ii, \COOL@BetaRegularized@arg@iii}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+{%
+I_{\inp{\COOL@BetaRegularized@arg@i, \COOL@BetaRegularized@arg@ii}}\!%
+\COOL@decide@paren{BetaRegularized}%
+{\COOL@BetaRegularized@arg@iii, \COOL@BetaRegularized@arg@iv}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`BetaRegularized' can only accept%
+ a comma separated list of length 3 or 4}%
+}%
+}%
+}
+\newcommand{\RegIncBeta}[3]{\BetaRegularized{#1,#2,#3}}
+\newcommand{\BetaReg}[1]{\BetaRegularized{#1}}
+\newcommand{\COOL@notation@InverseBetaRegularizedParen}{p}
+\newcommand{\InverseBetaRegularized}[1]{%
+\liststore{#1}{COOL@InverseBetaRegularized@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+I^{-1}_{\COOL@InverseBetaRegularized@arg@i}\!%
+\COOL@decide@paren{InverseBetaRegularized}%
+{\COOL@InverseBetaRegularized@arg@ii,%
+ \COOL@InverseBetaRegularized@arg@iii}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 4}%
+{%
+I^{-1}_{\inp{ \COOL@InverseBetaRegularized@arg@i,%
+\COOL@InverseBetaRegularized@arg@ii%
+ }%
+}\!%
+\COOL@decide@paren{InverseBetaRegularized}%
+{\COOL@InverseBetaRegularized@arg@iii,%
+ \COOL@InverseBetaRegularized@arg@iv}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`InverseBetaRegularized' can only accept%
+ a comma separated list of length 3 or 4}%
+}%
+}%
+}
+\newcommand{\RegIncBetaInv}[3]{\InverseBetaRegularized{#1,#2,#3}}
+\newcommand{\BetaRegInv}[1]{\InverseBetaRegularized{#1}}
+\newcommand{\GenRegIncBeta}[4]{\Beta{#1,#2,#3,#4}}
+\newcommand{\GenRegIncBetaInv}[4]{\InverseBetaRegularized{#1,#2,#3,#4}}
+\newcommand{\COOL@notation@ErfParen}{p}
+\DeclareMathOperator{\ErfSymb}{erf}
+\newcommand{\Erf}[1]{%
+\liststore{#1}{COOL@Erf@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+\ErfSymb\!\COOL@decide@paren{Erf}{#1}
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\ErfSymb\!\COOL@decide@paren{Erf}{#1}
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`Erf' can only accept a comma separated list of length 1 or 2}%
+}%
+}%
+}
+\newcommand{\COOL@notation@ErfInvParen}{p}
+\newcommand{\ErfInv}[1]{%
+\liststore{#1}{COOL@Erf@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+\ErfSymb^{-1}\!\COOL@decide@paren{ErfInv}{#1}
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\ErfSymb^{-1}\!\COOL@decide@paren{ErfInv}{#1}
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`Erf' can only accept a comma separated list of length 1 or 2}%
+}%
+}%
+}
+
+\newcommand{\GenErf}[2]{\Erf{#1,#2}}
+\newcommand{\GenErfInv}[2]{\ErfInv{#1, #2}}
+\newcommand{\COOL@notation@ErfcParen}{p}
+\DeclareMathOperator{\ErfcSymb}{erfc}
+\newcommand{\Erfc}[1]{\ErfcSymb\!\COOL@decide@paren{Erfc}{#1}}
+\newcommand{\COOL@notation@ErfcInvParen}{p}
+\newcommand{\ErfcInv}[1]%
+{\ErfcSymb^{-1}\!\COOL@decide@paren{ErfcInv}{#1}}
+\newcommand{\COOL@notation@ErfiParen}{p}
+\DeclareMathOperator{\ErfiSymb}{erfi}
+\newcommand{\Erfi}[1]{\ErfiSymb\!\COOL@decide@paren{Erfi}{#1}}
+\newcommand{\COOL@notation@FresnelSParen}{p}
+\newcommand{\FresnelS}[1]{S\!\COOL@decide@paren{FresnelS}{#1}}
+\newcommand{\COOL@notation@FresnelCParen}{p}
+\newcommand{\FresnelC}[1]{C\!\COOL@decide@paren{FresnelC}{#1}}
+\newcommand{\COOL@notation@ExpIntEParen}{p}
+\newcommand{\ExpIntE}[2]{E_{#1}\!\COOL@decide@paren{ExpIntE}{#2}}
+\newcommand{\COOL@notation@ExpIntEiParen}{p}
+\DeclareMathOperator{\ExpIntEiSymb}{Ei}
+\newcommand{\ExpIntEi}[1]%
+{\ExpIntEiSymb\!\COOL@decide@paren{ExpIntEi}{#1}}
+\newcommand{\COOL@notation@LogIntParen}{p}
+\DeclareMathOperator{\LogIntSymb}{li}
+\newcommand{\LogInt}[1]{\LogIntSymb\!\COOL@decide@paren{LogInt}{#1}}
+\newcommand{\COOL@notation@SinIntParen}{p}
+\DeclareMathOperator{\SinIntSymb}{Si}
+\newcommand{\SinInt}[1]{\SinIntSymb\!\COOL@decide@paren{SinInt}{#1}}
+\newcommand{\COOL@notation@CosIntParen}{p}
+\DeclareMathOperator{\CosIntSymb}{Ci}
+\newcommand{\CosInt}[1]{\CosIntSymb\!\COOL@decide@paren{CosInt}{#1}}
+\newcommand{\COOL@notation@SinhIntParen}{p}
+\DeclareMathOperator{\SinhIntSymb}{Shi}
+\newcommand{\SinhInt}[1]{\SinhIntSymb\!\COOL@decide@paren{SinhInt}{#1}}
+\newcommand{\COOL@notation@CoshIntParen}{p}
+\DeclareMathOperator{\CoshIntSymb}{Chi}
+\newcommand{\CoshInt}[1]{\CoshIntSymb\!\COOL@decide@paren{CoshInt}{#1}}
+\newcommand{\COOL@Hypergeometric@pq@ab@value}[4]{%
+\ifthenelse{\boolean{COOL@#1@isint} \AND \boolean{COOL@#3@islist}}%
+{% #1 is an INT and #3 is a LIST
+\ifthenelse{ #2 = 0 }%
+{%
+\PackageWarning{cool}{`#3'-arg ignored}%
+}%
+{%
+\ifthenelse{ #2 = 1 }%
+{%
+\PackageError{cool}{`Hypergeometric' `#1'-arg mismatch with `#3'-arg}{}%
+}%
+{%
+#4%
+}%
+}%
+}%
+{}%
+\ifthenelse{ \boolean{COOL@#1@isint} \AND
+\NOT \boolean{COOL@#3@islist} }%
+{%
+\ifthenelse{ #2 = 0 }%
+{%
+}%
+{%
+\ifthenelse{ #2 = 1 }%
+{%
+#4%
+}%
+{%
+\forLoop{1}{#2}{COOL@ct}
+{%
+\ifthenelse{ \value{COOL@ct} = 1 }{}{,}%
+#4_{\arabic{COOL@ct}}%
+}% end for loop
+}%
+}%
+}%
+{}%
+\ifthenelse{ \NOT \boolean{COOL@#1@isint} \AND
+\boolean{COOL@#3@islist} }%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`Hypergeometric': `#1'-arg is not int but `#3'-arg is list}
+}%
+{}%
+\ifthenelse{ \NOT \boolean{COOL@#1@isint} \AND
+\NOT \boolean{COOL@#3@islist} }%
+{%
+#4_1,\ldots,#4_{#2}%
+}%
+{}%
+}%
+\newcommand{\COOL@notation@HypergeometricParen}{p}
+\newcommand{\COOL@notation@HypergeometricSymb}{F}
+\newcommand{\Hypergeometric}[6][F]{%
+\provideboolean{COOL@p@isint}%
+\provideboolean{COOL@q@isint}%
+\provideboolean{COOL@a@islist}%
+\provideboolean{COOL@b@islist}%
+\isint{#2}%
+\ifthenelse{\boolean{COOL@isint}}%
+{\setboolean{COOL@p@isint}{true}}%
+{\setboolean{COOL@p@isint}{false}}%
+\isint{#3}%
+\ifthenelse{\boolean{COOL@isint}}%
+{\setboolean{COOL@q@isint}{true}}%
+{\setboolean{COOL@q@isint}{false}}%
+\listval{#4}{0}%
+\ifthenelse{\value{COOL@listpointer}>1}%
+{\setboolean{COOL@a@islist}{true}}%
+{\setboolean{COOL@a@islist}{false}}%
+\ifthenelse{ \boolean{COOL@p@isint} \AND
+\boolean{COOL@a@islist} \AND
+\NOT \( #2 = \value{COOL@listpointer} \) }%
+{%
+\PackageError{cool}{`Hypergeometric' `p'-arg mismatch with `a'-arg}{}%
+}%
+{}%
+\listval{#5}{0}%
+\ifthenelse{\value{COOL@listpointer}>1}%
+{\setboolean{COOL@b@islist}{true}}%
+{\setboolean{COOL@b@islist}{false}}%
+\ifthenelse{ \boolean{COOL@q@isint} \AND
+\boolean{COOL@b@islist} \AND
+\NOT \( #3 = \value{COOL@listpointer} \) }%
+{%
+\PackageError{cool}{`Hypergeometric' `q'-arg mismatch with `b'-arg}%
+{`b' list is not the same length as `q'}%
+}%
+{}%
+\ifthenelse{ \boolean{COOL@a@islist} \AND \NOT \boolean{COOL@p@isint} }%
+{%
+\PackageError{cool}{`Hypergeometric' `a'-arg mismatch with `p'-arg}%
+{happens if `a'-arg is a list and `p'-arg isn't an integer}%
+}%
+{}%
+\ifthenelse{ \boolean{COOL@b@islist} \AND \NOT \boolean{COOL@q@isint} }%
+{%
+\PackageError{cool}{`Hypergeometric' `b'-arg mismatch with `q'-arg}%
+{happens if `b'-arg is a list and `q'-arg isn't an integer}%
+}%
+{}%
+{}_{#2}{\COOL@notation@HypergeometricSymb}_{#3}\!%
+\COOL@decide@paren{Hypergeometric}%
+{%
+\COOL@Hypergeometric@pq@ab@value{p}{#2}{a}{#4};%
+\COOL@Hypergeometric@pq@ab@value{q}{#3}{b}{#5};%
+#6%
+}%
+}
+\newcommand{\COOL@notation@RegHypergeometricParen}{p}
+\newcommand{\COOL@notation@RegHypergeometricSymb}{\tilde{F}}
+\newcommand{\RegHypergeometric}[6][\tilde{F}]{%
+\provideboolean{COOL@p@isint}%
+\provideboolean{COOL@q@isint}%
+\provideboolean{COOL@a@islist}%
+\provideboolean{COOL@b@islist}%
+\isint{#2}%
+\ifthenelse{\boolean{COOL@isint}}%
+{\setboolean{COOL@p@isint}{true}}%
+{\setboolean{COOL@p@isint}{false}}%
+\isint{#3}%
+\ifthenelse{\boolean{COOL@isint}}%
+{\setboolean{COOL@q@isint}{true}}%
+{\setboolean{COOL@q@isint}{false}}%
+\listval{#4}{0}%
+\ifthenelse{\value{COOL@listpointer}>1}%
+{\setboolean{COOL@a@islist}{true}}%
+{\setboolean{COOL@a@islist}{false}}%
+\ifthenelse{ \boolean{COOL@p@isint} \AND
+\boolean{COOL@a@islist} \AND
+\NOT \( #2 = \value{COOL@listpointer} \) }%
+{%
+\PackageError{cool}%
+{`RegHypergeometric' `p'-arg mismatch with `a'-arg}{}%
+}%
+{}%
+\listval{#5}{0}%
+\ifthenelse{\value{COOL@listpointer}>1}%
+{\setboolean{COOL@b@islist}{true}}%
+{\setboolean{COOL@b@islist}{false}}%
+\ifthenelse{ \boolean{COOL@q@isint} \AND
+\boolean{COOL@b@islist} \AND
+\NOT \( #3 = \value{COOL@listpointer} \) }%
+{%
+\PackageError{cool}%
+{`RegHypergeometric' `q'-arg mismatch with `b'-arg}%
+{`b' list is not the same length as `q'}%
+}%
+{}%
+\ifthenelse{ \boolean{COOL@a@islist} \AND \NOT \boolean{COOL@p@isint} }%
+{%
+\PackageError{cool}%
+{`RegHypergeometric' `a'-arg mismatch with `p'-arg}%
+{happens if `a'-arg is a list and `p'-arg isn't an integer}%
+}%
+{}%
+\ifthenelse{ \boolean{COOL@b@islist} \AND \NOT \boolean{COOL@q@isint} }%
+{%
+\PackageError{cool}%
+{`RegHypergeometric' `b'-arg mismatch with `q'-arg}%
+{happens if `b'-arg is a list and `q'-arg isn't an integer}%
+}%
+{}%
+{}_{#2}{\COOL@notation@RegHypergeometricSymb}_{#3}\!%
+\COOL@decide@paren{RegHypergeometric}%
+{%
+\COOL@Hypergeometric@pq@ab@value{p}{#2}{a}{#4};%
+\COOL@Hypergeometric@pq@ab@value{q}{#3}{b}{#5};%
+#6%
+}%
+}
+\newcommand{\COOL@notation@AppellFOneParen}{p}
+\newcommand{\AppellFOne}[4]%
+{F_{1}\!\COOL@decide@paren{AppellFOne}{#1; #2; #3; #4}}
+\newcommand{\COOL@notation@HypergeometricUSymb}{U}
+\newcommand{\HypergeometricU}[3]%
+{\COOL@notation@HypergeometricUSymb\!\inp{#1, #2, #3}}
+\newcommand{\COOL@MeijerG@anp@value}[3]{%
+\isint{#3}%
+\ifthenelse{\boolean{COOL@isint}}%
+{%
+\isint{#2}%
+\ifthenelse{\boolean{COOL@isint}}%
+{%
+\forLoop{1}{#3}{COOL@ct}%
+{%
+\ifthenelse{\value{COOL@ct}=1}{}{,}%
+#1_{\arabic{COOL@ct}}%
+}%
+}%
+{%
+#1_1,\ldots,#1_{#2},#1_{#2+1},\dots,#1_{#3}%
+}%
+}%
+{%
+\isint{#2}%
+\ifthenelse{\boolean{COOL@isint}}%
+{%
+\forLoop{1}{#2}{COOL@ct}%
+{%
+\ifthenelse{\value{COOL@ct}=1}{}{,}%
+#1_{\arabic{COOL@ct}}%
+}%
+\setcounter{COOL@ct}{#2}%
+\addtocounter{COOL@ct}{1}%
+,#1_{\arabic{COOL@ct}}, \ldots, #1_{#3}%
+}%
+{%
+#1_1,\ldots,#1_{#2},#1_{#2+1},\dots,#1_{#3}%
+}%
+}%
+}
+\newcommand{\COOL@notation@MeijerGSymb}{G}
+\newcommand{\MeijerG}[6][@,@]{%
+\listval{#1}{0}
+\ifthenelse{\value{COOL@listpointer}>2 \OR \value{COOL@listpointer}<1}%
+{%
+\PackageError{cool}{`MeijerG' Invalid Optional Argument}%
+{Must be a comma separated list of length 1 or 2}%
+}%
+{%
+}%
+\COOL@notation@MeijerGSymb%
+\ifthenelse{\equal{#1}{@,@}}%
+{%
+\listval{#2}{0}% n
+\setcounter{COOL@ct}{\value{COOL@listpointer}}%
+\listval{#4}{0}% m
+\setcounter{COOL@ct@}{\value{COOL@listpointer}}%
+^{\arabic{COOL@ct@},\arabic{COOL@ct}}%
+\listval{#3}{0}% p - n
+\addtocounter{COOL@ct}{\value{COOL@listpointer}}%
+\listval{#5}{0}% q - m
+\addtocounter{COOL@ct@}{\value{COOL@listpointer}}%
+_{\arabic{COOL@ct},\arabic{COOL@ct@}}%
+\!\left(%
+#6%
+\left|%
+{ {#2,#3} \@@atop {#4,#5} }%
+\right)\right.%
+}%
+{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer}=2}%
+{%
+\provideboolean{COOL@MeijerG@opt@one@blank}%
+\def\COOL@MeijerG@sniffer##1,##2\COOL@MeijerG@sniffer@end{%
+\ifthenelse{\equal{##1}{}}%
+{%
+\setboolean{COOL@MeijerG@opt@one@blank}{true}%
+}%
+{%
+\setboolean{COOL@MeijerG@opt@one@blank}{false}%
+}%
+}%
+\expandafter\COOL@MeijerG@sniffer#1\COOL@MeijerG@sniffer@end\relax%
+\ifthenelse{\boolean{COOL@MeijerG@opt@one@blank}}%
+{%
+\listval{#2}{0}% n
+\setcounter{COOL@ct}{\value{COOL@listpointer}}%
+^{#4,\arabic{COOL@ct}}%
+\listval{#3}{0}% p
+\addtocounter{COOL@ct}{\value{COOL@listpointer}}%
+_{\arabic{COOL@ct},#5}%
+\!\left(%
+#6%
+\left|%
+{%
+{#2,#3} \@@atop {\COOL@MeijerG@anp@value{\listval{#1}{2}}{#4}{#5}}
+}%
+\right)\right.%
+}%
+{%
+^{#4,#2}_{#3,#5}%
+\!\left(%
+#6%
+\left|%
+{%
+{\COOL@MeijerG@anp@value{\listval{#1}{1}}{#2}{#3}}%
+\@@atop%
+{\COOL@MeijerG@anp@value{\listval{#1}{2}}{#4}{#5}}
+}%
+\right)\right.%
+}%
+}%
+{%
+\listval{#4}{0}% m
+\setcounter{COOL@ct}{\value{COOL@listpointer}}%
+^{\arabic{COOL@ct}, #2}%
+\listval{#5}{0}% q
+\addtocounter{COOL@ct}{\value{COOL@listpointer}}%
+_{#3, \arabic{COOL@ct}}%
+\!\left(%
+#6%
+\left|%
+{%
+{\COOL@MeijerG@anp@value{#1}{#2}{#3}} \@@atop {#4,#5}
+}%
+\right)\right.%
+}%
+}%
+}%
+\newcommand{\ClebschGordon}[3]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+{%
+\PackageError{cool}{`ClebschGordon' Invalid Argument}%
+{Must have a comma separated list of length two}%
+}%
+{}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+{%
+\PackageError{cool}{`ClebschGordon' Invalid Argument}%
+{Must have a comma separated list of length two}%
+}%
+{}%
+\listval{#3}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+{%
+\PackageError{cool}{`ClebschGordon' Invalid Argument}%
+{Must have a comma separated list of length two}%
+}%
+{}%
+\left<%
+\listval{#1}{1},\listval{#2}{1};%
+\listval{#1}{2},\listval{#2}{2}%
+\left|%
+\listval{#1}{1},\listval{#2}{1};%
+\listval{#3}{1},\listval{#3}{2}%
+\right>\right.%
+}
+\newcommand{\ThreeJSymbol}[3]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+{%
+\PackageError{cool}{`ThreeJSymbol' Invalid Argument}%
+{Must have comma separated list of length 2}%
+}%
+{}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+{%
+\PackageError{cool}{`ThreeJSymbol' Invalid Argument}%
+{Must have comma separated list of length 2}%
+}%
+{}%
+\listval{#3}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=2}%
+{%
+\PackageError{cool}{`ThreeJSymbol' Invalid Argument}%
+{Must have comma separated list of length 2}%
+}%
+{}%
+\mathchoice{%
+\inp{\!%
+\begin{array}{ccc}%
+\listval{#1}{1} & \listval{#2}{1} & \listval{#3}{1} \\%
+\listval{#1}{2} & \listval{#2}{2} & \listval{#3}{2}
+\end{array}%
+ \!}%
+ }%
+ {%
+\inp{\!%
+{\listval{#1}{1} \@@atop \listval{#1}{2}}%
+{\listval{#2}{1} \@@atop \listval{#2}{2}}%
+{\listval{#3}{1} \@@atop \listval{#3}{2}}%
+ \!}%
+ }%
+ {%
+\inp{\!%
+{\listval{#1}{1} \@@atop \listval{#1}{2}}%
+{\listval{#2}{1} \@@atop \listval{#2}{2}}%
+{\listval{#3}{1} \@@atop \listval{#3}{2}}%
+ \!}%
+ }%
+ {%
+\inp{\!%
+{\listval{#1}{1} \@@atop \listval{#1}{2}}%
+{\listval{#2}{1} \@@atop \listval{#2}{2}}%
+{\listval{#3}{1} \@@atop \listval{#3}{2}}%
+ \!}%
+ }%
+}
+\newcommand{\SixJSymbol}[2]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=3}%
+{%
+\PackageError{cool}{`SixJSymbol' Invalid Argument}%
+{Must have a comma separated list of length 3}%
+}%
+{}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer}=3}%
+{%
+\PackageError{cool}{`SixJSymbol' Invalid Argument}%
+{Must have a comma separated list of length 3}%
+}%
+{}%
+\mathchoice{%
+\inbr{\!%
+\begin{array}{ccc}%
+\listval{#1}{1} & \listval{#1}{2} & \listval{#1}{3} \\%
+\listval{#2}{1} & \listval{#2}{2} & \listval{#2}{3}%
+\end{array}%
+ \!}%
+ }%
+ {%
+\inbr{\!%
+{\listval{#1}{1} \@@atop \listval{#2}{1}}%
+{\listval{#1}{2} \@@atop \listval{#2}{2}}%
+{\listval{#1}{3} \@@atop \listval{#2}{3}}%
+ \!}%
+ }%
+ {%
+\inbr{\!%
+{\listval{#1}{1} \@@atop \listval{#2}{1}}%
+{\listval{#1}{2} \@@atop \listval{#2}{2}}%
+{\listval{#1}{3} \@@atop \listval{#2}{3}}%
+ \!}%
+ }%
+ {%
+\inbr{\!%
+{\listval{#1}{1} \@@atop \listval{#2}{1}}%
+{\listval{#1}{2} \@@atop \listval{#2}{2}}%
+{\listval{#1}{3} \@@atop \listval{#2}{3}}%
+ \!}%
+ }%
+}
+\newcommand{\COOL@notation@EllipticKParen}{p}
+\newcommand{\COOL@notation@EllipticKSymb}{K}
+\newcommand{\EllipticK}[1]%
+{\COOL@notation@EllipticKSymb\!\COOL@decide@paren{EllipticK}{#1}}%
+\newcommand{\COOL@notation@EllipticEParen}{p}
+\newcommand{\COOL@notation@EllipticESymb}{E}
+\newcommand{\EllipticE}[1]{%
+\liststore{#1}{COOL@EllipticE@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+\COOL@notation@EllipticESymb\!\COOL@decide@paren{EllipticE}{#1}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\COOL@notation@EllipticESymb\!%
+\COOL@decide@paren{EllipticE}%
+{\COOL@EllipticE@arg@i \left| \, \COOL@EllipticE@arg@ii \!\!\right.}%
+}%
+{%
+\PackageError{Invalid Argument}%
+{`EllipticE' can only accept a comma separated list of length 1 or 2}%
+}%
+}%
+}
+\newcommand{\COOL@notation@EllipticPiParen}{p}
+\newcommand{\COOL@notation@EllipticPiSymb}{\Pi}
+\newcommand{\EllipticPi}[1]{%
+\liststore{#1}{COOL@EllipticPi@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\COOL@notation@EllipticPiSymb%
+\!\COOL@decide@paren{EllipticPi}%
+{\COOL@EllipticPi@arg@i \left| \, \COOL@EllipticPi@arg@ii \!\!\right.}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+\COOL@notation@EllipticPiSymb%
+\!\COOL@decide@paren{EllipticPi}%
+{ \COOL@EllipticPi@arg@i; \,%
+\COOL@EllipticPi@arg@ii \left| \,%
+\COOL@EllipticPi@arg@iii \!\!\right.%
+}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`EllipticPi' can only accept a comma separated list of length 2 or 3}%
+}%
+}%
+}
+\newcommand{\COOL@notation@EllipticFParen}{p}
+\newcommand{\COOL@notation@EllipticFSymb}{F}
+\newcommand{\EllipticF}[1]{%
+\liststore{#1}{COOL@EllipticF@arg@}%
+\listval{#1}{0}%
+\ifthenelse{ \value{COOL@listpointer} = 2 }%
+{%
+\COOL@notation@EllipticFSymb%
+\!\COOL@decide@paren{EllipticF}%
+{\COOL@EllipticF@arg@i \left| \, \COOL@EllipticF@arg@ii \!\!\right.}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`EllipticF' can only accept a comma separated list of length 2}%
+}%
+}
+\newcommand{\IncEllipticF}[2]{\EllipticF{#1,#2}}
+\newcommand{\IncEllipticE}[2]{\EllipticE{#1,#2}}
+\newcommand{\IncEllipticPi}[3]{\EllipticPi{#1,#2,#3}}
+\newcommand{\COOL@notation@JacobiZetaParen}{p}
+\newcommand{\COOL@notation@JacobiZetaSymb}{Z}
+\newcommand{\JacobiZeta}[2]{%
+\COOL@notation@JacobiZetaSymb
+\!\COOL@decide@paren{JacobiZeta}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@EllipticThetaParen}{p}
+\newcommand{\EllipticTheta}[3]%
+{\vartheta_{#1}\!\COOL@decide@paren{EllipticTheta}{#2, #3}}
+\newcommand{\JacobiTheta}[3]{\EllipticTheta{#1}{#2}{#3}}
+\newcommand{\COOL@notation@NevilleThetaCParen}{p}
+\newcommand{\NevilleThetaC}[2]{%
+\vartheta_{c}\!\COOL@decide@paren{NevilleThetaC}%
+{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@NevilleThetaDParen}{p}
+\newcommand{\NevilleThetaD}[2]{%
+\vartheta_{d}\!\COOL@decide@paren{NevilleThetaD}%
+{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@NevilleThetaNParen}{p}
+\newcommand{\NevilleThetaN}[2]{%
+\vartheta_{n}\!\COOL@decide@paren{NevilleThetaN}%
+{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@NevilleThetaSParen}{p}
+\newcommand{\NevilleThetaS}[2]{%
+\vartheta_{s}\!\COOL@decide@paren{NevilleThetaS}%
+{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@WeierstrassPParen}{p}
+\newcommand{\WeierstrassP}[2]{%
+\liststore{#2}{COOL@WeiP@arg@g@}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassP' second argument must be%
+ a comma separated list of length 2}%
+}
+{%
+\wp\!\COOL@decide@paren{WeierstrassP}{#1; #2}
+}%
+}
+\newcommand{\WeiP}[2]{\WeierstrassP{#1}{#2}}
+\newcommand{\COOL@notation@WeierstrassPInvParen}{p}
+\newcommand{\WeierstrassPInv}[2]{%
+\liststore{#1}{COOL@WeiPinv@arg@z@}%
+\liststore{#1}{COOL@WeiPinv@arg@g@}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassPInv' second argument must be%
+ a comma separated list of length 2}%
+}
+{
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+\wp^{-1}\!\COOL@decide@paren{WeierstrassPInv}{#1; #2}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\wp^{-1}\!\COOL@decide@paren{WeierstrassPInv}{#1; #2}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassPInv' first argument must be%
+ a comma separate list of length 1 or 2}%
+}}%
+}%
+}
+\newcommand{\WeiPInv}[2]{\WeierstrassPInv{#1}{#2}}
+\newcommand{\WeierstrassPGenInv}[4]{\WeierstrassPInv{#1,#2}{#3,#4}}
+\newcommand{\WeierstrassSigma}[2]{%
+\liststore{#1}{COOL@WeiSigma@arg@z@}%
+\liststore{#2}{COOL@WeiSigma@arg@g@}%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassSigma' second argument must be%
+ a comma separated list of length 2}%
+}%
+{%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+\sigma\!\inp{#1; #2}%
+}%
+{ \ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\sigma_{\COOL@WeiSigma@arg@z@i}\!\inp{\COOL@WeiSigma@arg@z@ii; #2}%
+}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassSigma' first argument must be%
+ a comma separated list of length 1 or 2}%
+}}%
+}%
+}
+\newcommand{\WeiSigma}[2]{\WeierstrassSigma{#1}{#2}}
+\newcommand{\AssocWeierstrassSigma}[4]{\WeierstrassSigma{#1,#2}{#3,#4}}
+\newcommand{\COOL@notation@WeierstrassZetaParen}{p}%
+\newcommand{\WeierstrassZeta}[2]{%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassZeta' second argument must be%
+ a comma separated list of length 2}%
+}%
+{%
+\zeta\!\COOL@decide@paren{WeierstrassZeta}{#1; #2}%
+}%
+}
+\newcommand{\WeiZeta}[2]{\WeierstrassZeta{#1}{#2}}
+\newcommand{\WeierstrassHalfPeriods}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassHalfPeriods' can only accept%
+ a comma separated list of length 2}%
+}%
+{%
+\{ \omega_1\!\inp{#1}, \omega_3\!\inp{#1} \}%
+}%
+}
+\newcommand{\WeiHalfPeriods}[1]{\WeierstrassHalfPeriods{#1}}
+\newcommand{\WeierstrassInvariants}[1]{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassInvariants' can only accept%
+ a comma separated list of length 2}%
+}%
+{%
+\{ g_2\!\inp{#1}, g_3\!\inp{#1} \}%
+}%
+}
+\newcommand{\WeiInvars}[1]{\WeierstrassInvariants{#1}}
+\newcommand{\COOL@hideOnSF}[2]
+{%
+\ifthenelse{ \equal{\csname COOL@notation@#1\endcsname}{sf} }%
+{}%
+{#2}%
+}
+\newcommand{\COOL@notation@WeierstrassPHalfPeriodValuesDisplay}{sf}
+\newcommand{\WeierstrassPHalfPeriodValues}[1]
+{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassPHalfPeriodValues' can only accept%
+ a comma separated list of length 2}%
+}%
+{%
+\{ e_1\COOL@hideOnSF{WeierstrassPHalfPeriodValuesDisplay}{\!\inp{#1}},%
+e_2\COOL@hideOnSF{WeierstrassPHalfPeriodValuesDisplay}{\!\inp{#1}},%
+e_3\COOL@hideOnSF{WeierstrassPHalfPeriodValuesDisplay}{\!\inp{#1}}%
+\}%
+}%
+}
+\newcommand{\WeiPHalfPeriodVal}[1]{\WeierstrassPHalfPeriodValues{#1}}
+\newcommand{\COOL@notation@WeierstrassZetaHalfPeriodValuesDisplay}{sf}
+\newcommand{\WeierstrassZetaHalfPeriodValues}[1]
+{%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`WeierstrassZetaHalfPeriodValues' can only accept%
+ a comma separated list of length 2}%
+}%
+{%
+\{%
+\eta_1\COOL@hideOnSF%
+{WeierstrassZetaHalfPeriodValuesDisplay}{\!\inp{#1}},%
+\eta_2\COOL@hideOnSF%
+{WeierstrassZetaHalfPeriodValuesDisplay}{\!\inp{#1}},%
+\eta_3\COOL@hideOnSF%
+{WeierstrassZetaHalfPeriodValuesDisplay}{\!\inp{#1}}%
+\}%
+}%
+}
+\newcommand{\WeiZetaHalfPeriodVal}[1]%
+{\WeierstrassZetaHalfPeriodValues{#1}}
+\newcommand{\COOL@notation@JacobiAmplitudeParen}{p}
+\DeclareMathOperator{\JacobiAmplitudeSymb}{am}
+\newcommand{\JacobiAmplitude}[2]{%
+\JacobiAmplitudeSymb\!\COOL@decide@paren%
+{JacobiAmplitude}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiCDParen}{p}
+\newcommand{\COOL@notation@JacobiCDInvParen}{p}
+\DeclareMathOperator{\JacobiCDSymb}{cd}
+\newcommand{\JacobiCD}[2]{%
+\JacobiCDSymb\!\COOL@decide@paren%
+{JacobiCD}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiCDInv}[2]{%
+\JacobiCDSymb^{-1}\!\COOL@decide@paren%
+{JacobiCDInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiCNParen}{p}
+\newcommand{\COOL@notation@JacobiCNInvParen}{p}
+\DeclareMathOperator{\JacobiCNSymb}{cn}
+\newcommand{\JacobiCN}[2]{%
+\JacobiCNSymb\!\COOL@decide@paren%
+{JacobiCN}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiCNInv}[2]{%
+\JacobiCNSymb^{-1}\!\COOL@decide@paren%
+{JacobiCNInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiCSParen}{p}
+\newcommand{\COOL@notation@JacobiCSInvParen}{p}
+\DeclareMathOperator{\JacobiCSSymb}{cs}
+\newcommand{\JacobiCS}[2]{%
+\JacobiCSSymb\!\COOL@decide@paren%
+{JacobiCS}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiCSInv}[2]{%
+\JacobiCSSymb^{-1}\!\COOL@decide@paren%
+{JacobiCSInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiDCParen}{p}
+\newcommand{\COOL@notation@JacobiDCInvParen}{p}
+\DeclareMathOperator{\JacobiDCSymb}{dc}
+\newcommand{\JacobiDC}[2]{%
+\JacobiDCSymb\!\COOL@decide@paren%
+{JacobiDC}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiDCInv}[2]{%
+\JacobiDCSymb^{-1}\!\COOL@decide@paren%
+{JacobiDCInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiDNParen}{p}
+\newcommand{\COOL@notation@JacobiDNInvParen}{p}
+\DeclareMathOperator{\JacobiDNSymb}{dn}
+\newcommand{\JacobiDN}[2]{%
+\JacobiDNSymb\!\COOL@decide@paren%
+{JacobiDN}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiDNInv}[2]{%
+\JacobiDNSymb^{-1}\!\COOL@decide@paren%
+{JacobiDNInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiDSParen}{p}
+\newcommand{\COOL@notation@JacobiDSInvParen}{p}
+\DeclareMathOperator{\JacobiDSSymb}{ds}
+\newcommand{\JacobiDS}[2]{%
+\JacobiDSSymb\!\COOL@decide@paren%
+{JacobiDS}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiDSInv}[2]{%
+\JacobiDSSymb^{-1}\!\COOL@decide@paren%
+{JacobiDSInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiNCParen}{p}
+\newcommand{\COOL@notation@JacobiNCInvParen}{p}
+\DeclareMathOperator{\JacobiNCSymb}{nc}
+\newcommand{\JacobiNC}[2]{%
+\JacobiNCSymb\!\COOL@decide@paren%
+{JacobiNC}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiNCInv}[2]{%
+\JacobiNCSymb^{-1}\!\COOL@decide@paren%
+{JacobiNCInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiNDParen}{p}
+\newcommand{\COOL@notation@JacobiNDInvParen}{p}
+\DeclareMathOperator{\JacobiNDSymb}{nd}
+\newcommand{\JacobiND}[2]{%
+\JacobiNDSymb\!\COOL@decide@paren%
+{JacobiND}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiNDInv}[2]{%
+\JacobiNDSymb^{-1}\!\COOL@decide@paren%
+{JacobiNDInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiNSParen}{p}
+\newcommand{\COOL@notation@JacobiNSInvParen}{p}
+\DeclareMathOperator{\JacobiNSSymb}{ns}
+\newcommand{\JacobiNS}[2]{%
+\JacobiNSSymb\!\COOL@decide@paren%
+{JacobiNS}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiNSInv}[2]{%
+\JacobiNSSymb^{-1}\!\COOL@decide@paren%
+{JacobiNSInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiSCParen}{p}
+\newcommand{\COOL@notation@JacobiSCInvParen}{p}
+\DeclareMathOperator{\JacobiSCSymb}{sc}
+\newcommand{\JacobiSC}[2]{%
+\JacobiSCSymb\!\COOL@decide@paren%
+{JacobiSC}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiSCInv}[2]{%
+\JacobiSCSymb^{-1}\!\COOL@decide@paren%
+{JacobiSCInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiSDParen}{p}
+\newcommand{\COOL@notation@JacobiSDInvParen}{p}
+\DeclareMathOperator{\JacobiSDSymb}{sd}
+\newcommand{\JacobiSD}[2]{%
+\JacobiSDSymb\!\COOL@decide@paren%
+{JacobiSD}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiSDInv}[2]{%
+\JacobiSDSymb^{-1}\!\COOL@decide@paren%
+{JacobiSDInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@JacobiSNParen}{p}
+\newcommand{\COOL@notation@JacobiSNInvParen}{p}
+\DeclareMathOperator{\JacobiSNSymb}{sn}
+\newcommand{\JacobiSN}[2]{%
+\JacobiSNSymb\!\COOL@decide@paren%
+{JacobiSN}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\JacobiSNInv}[2]{%
+\JacobiSNSymb^{-1}\!\COOL@decide@paren%
+{JacobiSNInv}{#1 \left| \, #2 \right.\!\!}%
+}
+\newcommand{\COOL@notation@DedekindEtaParen}{p}
+\newcommand{\DedekindEta}[1]{\eta\!\COOL@decide@paren{DedekindEta}{#1}}
+\newcommand{\COOL@notation@KleinInvariantJParen}{p}
+\newcommand{\KleinInvariantJ}[1]%
+{J\!\COOL@decide@paren{KleinInvariantJ}{#1}}
+\newcommand{\COOL@notation@ModularLambdaParen}{p}
+\newcommand{\ModularLambda}[1]%
+{\lambda\!\COOL@decide@paren{ModularLambda}{#1}}
+\newcommand{\COOL@notation@EllipticNomeQParen}{p}
+\newcommand{\COOL@notation@EllipticNomeQInvParen}{p}
+\newcommand{\EllipticNomeQ}[1]%
+{q\!\COOL@decide@paren{EllipticNomeQ}{#1}}
+\newcommand{\EllipticNomeQInv}[1]%
+{q^{-1}\!\COOL@decide@paren{EllipticNomeQ}{#1}}
+\newcommand{\COOL@notation@ArithGeoMeanParen}{p}
+\DeclareMathOperator{\ArithGeoMeanSymb}{agm}
+\newcommand{\ArithGeoMean}[2]%
+{\ArithGeoMeanSymb\!\COOL@decide@paren{ArithGeoMean}{#1, #2}}
+\newcommand{\AGM}[2]{\ArithGeoMean{#1}{#2}}
+\newcommand{\COOL@notation@EllipticExpParen}{p}
+\DeclareMathOperator{\EllipticExpSymb}{eexp}
+\newcommand{\EllipticExp}[2]{%
+\liststore{#2}{COOL@EllipticExp@arg@}
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`EllipticExp' second argument must be
+ a comma separated list of length 2}%
+}%
+{%
+\EllipticExpSymb\!\COOL@decide@paren{EllipticExp}{#1; #2}%
+}%
+}
+\newcommand{\EExp}[2]{\EllipticExp{#1}{#2}}
+\newcommand{\COOL@notation@EllipticLogParen}{p}
+\DeclareMathOperator{\EllipticLogSymb}{elog}
+\newcommand{\EllipticLog}[2]{%
+\liststore{#1}{COOL@EllipticLog@arg@z@}%
+\liststore{#2}{COOL@EllipticLog@arg@a@}%
+\listval{#1}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`EllipticLog' first argument must be
+ a comma separated list of length 2}%
+}%
+{%
+\listval{#2}{0}%
+\ifthenelse{\NOT \value{COOL@listpointer} = 2}%
+{%
+\PackageError{cool}{Invalid Argument}%
+{`EllipticLog' second argument must be%
+ a comma separated list of length 2}%
+}%
+{%
+\EllipticLogSymb\!\COOL@decide@paren{EllipticLog}{#1; #2}%
+}%
+}%
+}
+\newcommand{\ELog}[2]{\EllipticLog{#1}{#2}}
+\newcommand{\RiemannZeta}[1]{\Zeta{#1}}
+\newcommand{\HurwitzZeta}[2]{\Zeta{#1,#2}}
+\newcommand{\COOL@notation@ZetaParen}{p}
+\newcommand{\Zeta}[1]{%
+\liststore{#1}{COOL@Zeta@arg@}%
+\listval{#1}{0}% get the list length
+\ifthenelse{\value{COOL@listpointer} = 2}%
+{%
+\zeta\!\COOL@decide@paren{Zeta}{\COOL@Zeta@arg@i,\COOL@Zeta@arg@ii}%
+}%
+{%
+\ifthenelse{\value{COOL@listpointer} = 1}%
+{%
+\zeta\!\COOL@decide@paren{Zeta}{#1}%
+}%
+{%
+\PackageError{cool}{`Zeta' Invalid Argument}%
+{the Zeta function can only accept%
+ a comma deliminated list of length 1 or 2}
+}%
+}%
+}%
+\newcommand{\COOL@notation@RiemannSiegelThetaParen}{p}
+\newcommand{\RiemannSiegelTheta}[1]%
+{\vartheta\!\COOL@decide@paren{RiemannSiegelTheta}{#1}}
+\newcommand{\COOL@notation@RiemannSiegelZParen}{p}
+\newcommand{\RiemannSiegelZ}[1]%
+{Z\!\COOL@decide@paren{RiemannSiegelZ}{#1}}
+\newcommand{\StieltjesGamma}[1]{\gamma_{#1}}
+\newcommand{\COOL@notation@LerchPhiParen}{p}
+\newcommand{\LerchPhi}[3]{\Phi\!\COOL@decide@paren{LerchPhi}{#1,#2,#3}}
+\newcommand{\COOL@notation@NielsenPolyLogParen}{p}
+\newcommand{%
+\NielsenPolyLog}[3]{S_{#1}^{#2}\!%
+\COOL@decide@paren{NielsenPolyLog}{#3}%
+}
+\newcommand{\COOL@notation@PolyLogParen}{p}
+\DeclareMathOperator{\PolyLogSymb}{Li}
+\newcommand{\PolyLog}[1]{%
+\liststore{#1}{COOL@PolyLog@arg@}%
+\listval{#1}{0}%
+\ifthenelse{\value{COOL@listpointer} = 3}%
+{%
+\NielsenPolyLog{\COOL@PolyLog@arg@i}%
+{\COOL@PolyLog@arg@ii}{\COOL@PolyLog@arg@iii}%
+}%
+{%
+\ifthenelse{ \value{COOL@listpointer} = 2 }%
+{%
+\PolyLogSymb_{\COOL@PolyLog@arg@i}\!%
+\COOL@decide@paren{PolyLog}{\COOL@PolyLog@arg@ii}%
+}%
+{%
+\PackageError{cool}{`PolyLog' Invalid Argument}%
+{This function returns either the Polylogarithm or the%
+ Nielsen Polylogarithm. It therefore only accepts a comma%
+ deliminated list of length two or three (1 or 2 commas)}%
+}%
+}%
+}
+\newcommand{\DiLog}[1]{\PolyLog{2,#1}}
+\newcommand{\COOL@notation@MathieuCParen}{p}
+\DeclareMathOperator{\MathieuCSymb}{Ce}
+\newcommand{\MathieuC}[3]%
+{\MathieuCSymb\!\COOL@decide@paren{MathieuC}{#1,#2,#3}}
+\newcommand{\COOL@notation@MathieuSParen}{p}
+\DeclareMathOperator{\MathieuSSymb}{Se}
+\newcommand{\MathieuS}[3]%
+{\mathord{\MathieuSSymb}\!\COOL@decide@paren{MathieuS}{#1,#2,#3}}
+\newcommand{\COOL@notation@MathieuCharacteristicAParen}{p}
+\newcommand{\MathieuCharacteristicA}[2]%
+{a_{#1}\!\COOL@decide@paren{MathieuCharacteristicA}{#2}}
+\newcommand{\MathieuCharisticA}[2]{\MathieuCharacteristicA{#1}{#2}}
+\newcommand{\COOL@notation@MathieuCharacteristicBParen}{p}
+\newcommand{\MathieuCharacteristicB}[2]%
+{b_{#1}\!\COOL@decide@paren{MathieuCharacteristicB}{#2}}
+\newcommand{\MathieuCharisticB}[2]{\MathieuCharacteristicB{#1}{#2}}
+\newcommand{\COOL@notation@MathieuCharacteristicExponentParen}{p}
+\newcommand{\MathieuCharacteristicExponent}[2]%
+{r\!\COOL@decide@paren{MathieuCharacteristicExponent}{#1,#2}}
+\newcommand{\MathieuCharisticExp}[2]%
+{\MathieuCharacteristicExponent{#1}{#2}}
+\newcommand{\Abs}[1]{ \left|#1\right| }
+\newcommand{\Arg}[1]{ \arg\!\inp{#1} }
+\def\COOL@notation@Conjugate{star}
+\newcommand{\COOL@notation@ConjugateParen}{inv}
+\newcommand{\Conjugate}[1]{\Conj{#1}}
+\newcommand{\Conj}[1]{%
+\ifthenelse{\equal{\COOL@notation@Conjugate}{bar}}%
+{%
+\bar{#1}%
+}%
+{ \ifthenelse{\equal{\COOL@notation@Conjugate}{overline}}%
+{%
+\overline{#1}%
+}%
+{ \ifthenelse{\equal{\COOL@notation@Conjugate}{star}}%
+{%
+\COOL@decide@paren{Conjugate}{#1}^*%
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{`Conjugate' can only be set at `star', `bar', or `overline'}%
+}%
+}}%
+}
+\newcommand{\COOL@notation@RealParen}{none}
+\DeclareMathOperator{\RealSymb}{Re}
+\newcommand{\Real}[1]{%
+\ifthenelse{\equal{\COOL@notation@ImagParen}{none}}%
+{%
+\RealSymb{#1}%
+}%
+{%
+\RealSymb\!\COOL@decide@paren{Imag}{#1}%
+}%
+}
+\newcommand{\COOL@notation@ImagParen}{none}
+\DeclareMathOperator{\ImagSymb}{Im}
+\newcommand{\Imag}[1]{%
+\ifthenelse{\equal{\COOL@notation@ImagParen}{none}}%
+{%
+\ImagSymb{#1}%
+}%
+{%
+\ImagSymb\!\COOL@decide@paren{Imag}{#1}%
+}%
+}
+\newcommand{\COOL@notation@SignParen}{p}
+\newcommand{\Sign}[1]{\operatorname{sgn}\!\COOL@decide@paren{Sign}{#1}}
+\newcommand{\COOL@notation@FactorIntegerParen}{p}
+\DeclareMathOperator{\FactorIntegerSymb}{factors}
+\newcommand{\FactorInteger}[1]%
+{\FactorIntegerSymb\!\COOL@decide@paren{FactorInteger}{#1}}
+\newcommand{\Factors}[1]{\FactorInteger{#1}}
+\newcommand{\COOL@notation@DivisorsParen}{p}
+\DeclareMathOperator{\DivisorsSymb}{divisors}
+\newcommand{\Divisors}[1]%
+{\mathord{\DivisorsSymb}\!\COOL@decide@paren{Divisors}{#1}}
+\newcommand{\COOL@notation@PrimeParen}{p}
+\DeclareMathOperator{\PrimeSymb}{prime}
+\newcommand{\Prime}[1]%
+{\mathord{\PrimeSymb}\!\COOL@decide@paren{Prime}{#1}}
+\newcommand{\COOL@notation@PrimePiParen}{p}
+\newcommand{\PrimePi}[1]{\pi\!\COOL@decide@paren{PrimePi}{#1}}
+\newcommand{\COOL@notation@DivisorSigmaParen}{p}
+\newcommand{\DivisorSigma}[2]%
+{\sigma_{#1}\!\COOL@decide@paren{DivisorSigma}{#2}}
+\newcommand{\COOL@notation@EulerPhiParen}{p}
+\newcommand{\EulerPhi}[1]{\varphi\!\COOL@decide@paren{EulerPhi}{#1}}
+\newcommand{\COOL@notation@MoebiusMuParen}{p}
+\newcommand{\MoebiusMu}[1]{\mu\!\COOL@decide@paren{MoebiusMu}{#1}}
+\newcommand{\JacobiSymbol}[2]{\inp{\frac{#1}{#2}}}
+\newcommand{\COOL@notation@CarmichaelLambdaParen}{p}
+\newcommand{\CarmichaelLambda}[1]%
+{\lambda\!\COOL@decide@paren{CarmichaelLambda}{#1}}
+\newcommand{\DigitCount}[2]{%
+\isint{#2}%
+\ifthenelse{\boolean{COOL@isint}}%
+{%
+\{%
+\setcounter{COOL@ct@}{#2}%
+\addtocounter{COOL@ct@}{-1}%
+\forLoop{1}{\arabic{COOL@ct@}}{COOL@ct}%
+{%
+s^{\arabic{COOL@ct}}_{#2}\!\inp{#1},
+}%
+s^{\inp{0}}_{#2}\!\inp{#1}%
+\}%
+}%
+{%
+\{%
+s^{\inp{1}}_{#2}\!\inp{#1},%
+s^{\inp{2}}_{#2}\!\inp{#1},%
+\ldots,%
+s^{\inp{#2} - 1}_{#2}\!\inp{#1},%
+s^{\inp{0}}_{#2}\!\inp{#1}%
+\}%
+}%
+}
+\newcommand{\COOL@notation@DiracDeltaParen}{p}
+\newcommand{\DiracDelta}[1]{\delta\!\COOL@decide@paren{DiracDelta}{#1}}
+\newcommand{\COOL@notation@HeavisideStepParen}{p}
+\newcommand{\HeavisideStep}[1]%
+{\theta\!\COOL@decide@paren{HeavisideStep}{#1}}
+\newcommand{\UnitStep}[1]{\HeavisideStep{#1}}
+\newcounter{COOL@multideriv}
+\newcommand{\COOL@notation@DDisplayFunc}{inset}
+\newcommand{\COOL@notation@DShorten}{true}
+\newcommand{\COOL@derivative}[4]{%
+\listval{#3}{0}%
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}%
+\liststore{#3}{COOL@deriv@wrt@}%
+\listval{#1}{0}%
+\setcounter{COOL@ct}{\value{COOL@listpointer}}%
+\ifthenelse{\value{COOL@ct}>\value{COOL@listlen}}%
+{\setcounter{COOL@ct}{\value{COOL@listlen}}}{}%
+\liststore{#1}{COOL@deriv@powers@}%
+\isint{\COOL@deriv@powers@i}%
+\setcounter{COOL@multideriv}{2}%
+\whiledo{ \boolean{COOL@isint} \AND
+\NOT \value{COOL@multideriv}>\value{COOL@ct} }%
+{%
+\def\COOL@tempd%
+{\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+\isint{\COOL@tempd}%
+\stepcounter{COOL@multideriv}%
+}%
+\ifthenelse{ \equal{\COOL@notation@DShorten}{true} \AND
+\equal{\COOL@notation@DDisplayFunc}{inset} }%
+{%
+\ifthenelse{ \boolean{COOL@isint} }%
+{%
+\def\COOL@temp@D@bot{}%
+\setcounter{COOL@ct@}{0}%
+\forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\addtocounter{COOL@ct@}{\COOL@power@temp}%
+\ifthenelse{ \value{COOL@multideriv}=1 }{}%
+{\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+}%
+\ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+\stepcounter{COOL@ct}%
+\forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+{%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\addtocounter{COOL@ct@}{\COOL@power@temp}%
+\ifthenelse{ \value{COOL@multideriv}=1 }{}%
+{\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+}%
+}%
+{}%
+\ifthenelse{\value{COOL@ct@}=1}%
+{%
+\frac{#4 #2}{\COOL@temp@D@bot}%
+}%
+{%
+\frac{#4^{\arabic{COOL@ct@}} #2}{\COOL@temp@D@bot}%
+}%
+}%
+{%
+\edef\COOL@temp@D@bot{}%
+\def\COOL@temp@D@top@power{}%
+\forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\ifthenelse{ \value{COOL@multideriv} = 1}%
+{%
+\edef\COOL@temp@D@top@power{\COOL@power@temp}%
+}%
+{%
+\edef\COOL@temp@D@top@power%
+{\COOL@temp@D@top@power + \COOL@power@temp}%
+\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}%
+}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+}%
+\ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+\stepcounter{COOL@ct}%
+\forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+{%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\ifthenelse{ \value{COOL@multideriv} = 1}%
+{%
+\edef\COOL@temp@D@top@power{\COOL@power@temp}%
+}%
+{%
+\edef\COOL@temp@D@top@power%
+{\COOL@temp@D@top@power + \COOL@power@temp}%
+\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}%
+}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+}%
+}%
+{}%
+\frac{#4^{\COOL@temp@D@top@power} #2}{\COOL@temp@D@bot}%
+}%
+}%
+{ \ifthenelse{ \equal{\COOL@notation@DShorten}{true} \AND
+\equal{\COOL@notation@DDisplayFunc}{outset} }%
+{%
+\ifthenelse{ \boolean{COOL@isint} }%
+{%
+\def\COOL@temp@D@bot{}%
+\setcounter{COOL@ct@}{0}%
+\forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\addtocounter{COOL@ct@}{\COOL@power@temp}%
+\ifthenelse{ \value{COOL@multideriv}=1 }{}%
+{\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+}%
+\ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+\stepcounter{COOL@ct}%
+\forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+{%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\addtocounter{COOL@ct@}{\COOL@power@temp}%
+\ifthenelse{ \value{COOL@multideriv}=1 }{}%
+{\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+}%
+}%
+{}%
+\ifthenelse{\value{COOL@ct@}=1}%
+{%
+\frac{#4}{\COOL@temp@D@bot} #2%
+}%
+{%
+\frac{#4^{\arabic{COOL@ct@}}}{\COOL@temp@D@bot} #2%
+}%
+}%
+{%
+\edef\COOL@temp@D@bot{}%
+\def\COOL@temp@D@top@power{}%
+\forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\ifthenelse{ \value{COOL@multideriv} = 1}%
+{%
+\edef\COOL@temp@D@top@power{\COOL@power@temp}%
+}%
+{%
+\edef\COOL@temp@D@top@power%
+{\COOL@temp@D@top@power + \COOL@power@temp}%
+\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}%
+}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+}%
+\ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+\stepcounter{COOL@ct}%
+\forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+{%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\ifthenelse{ \value{COOL@multideriv} = 1}%
+{%
+\edef\COOL@temp@D@top@power{\COOL@power@temp}%
+}%
+{%
+\edef\COOL@temp@D@top@power%
+{\COOL@temp@D@top@power + \COOL@power@temp}%
+\edef\COOL@temp@D@bot{\COOL@temp@D@bot \,}%
+}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@bot%
+{\COOL@temp@D@bot #4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+}%
+}%
+{}%
+\frac{#4^{\COOL@temp@D@top@power} }{\COOL@temp@D@bot} #2%
+}%
+}%
+{ \ifthenelse{ \equal{\COOL@notation@DShorten}{false} \AND
+\equal{\COOL@notation@DDisplayFunc}{inset} }%
+{%
+\def\COOL@temp@D@result{}%
+\def\COOL@temp@D@bot{}%
+\def\COOL@temp@D@top{}%
+\setcounter{COOL@ct@}{\value{COOL@ct}}%
+\addtocounter{COOL@ct@}{-1}
+\forLoop{1}{\value{COOL@ct@}}{COOL@multideriv}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@top{#4}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+\edef\COOL@temp@D@result%
+{\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+}%
+\ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@ct}\endcsname}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@top{#4}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+\edef\COOL@temp@D@result%
+{\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+\stepcounter{COOL@ct}%
+\setcounter{COOL@ct@}{\value{COOL@listlen}}%
+\addtocounter{COOL@ct@}{-1}%
+\forLoop{\value{COOL@ct}}{\value{COOL@ct@}}{COOL@multideriv}%
+{%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@top{#4}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+\edef\COOL@temp@D@result%
+{\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+}%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@listlen}\endcsname}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@top{#4}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+\edef\COOL@temp@D@result%
+{\COOL@temp@D@result \frac{\COOL@temp@D@top #2}{\COOL@temp@D@bot}}%
+}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@ct}\endcsname}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@top{#4}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+\edef\COOL@temp@D@result%
+{\COOL@temp@D@result \frac{\COOL@temp@D@top #2}{\COOL@temp@D@bot}}%
+}%
+\COOL@temp@D@result%
+}%
+{ \ifthenelse{ \equal{\COOL@notation@DShorten}{false} \AND
+\equal{\COOL@notation@DDisplayFunc}{outset} }%
+{%
+\def\COOL@temp@D@result{}%
+\def\COOL@temp@D@bot{}%
+\def\COOL@temp@D@top{}%
+\forLoop{1}{\value{COOL@ct}}{COOL@multideriv}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@multideriv}\endcsname}%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@top{#4}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+\edef\COOL@temp@D@result%
+{\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+}%
+\ifthenelse{\value{COOL@ct}<\value{COOL@listlen}}%
+{%
+\edef\COOL@power@temp%
+{\csname COOL@deriv@powers@\roman{COOL@ct}\endcsname}%
+\stepcounter{COOL@ct}%
+\forLoop{\value{COOL@ct}}{\value{COOL@listlen}}{COOL@multideriv}%
+{%
+\edef\COOL@wrt@temp%
+{\csname COOL@deriv@wrt@\roman{COOL@multideriv}\endcsname}%
+\ifthenelse{ \equal{\COOL@power@temp}{1} }%
+{%
+\edef\COOL@temp@D@top{#4}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp}%
+}%
+{%
+\edef\COOL@temp@D@top{#4^\COOL@power@temp}%
+\edef\COOL@temp@D@bot{#4 \COOL@wrt@temp^\COOL@power@temp}%
+}%
+\edef\COOL@temp@D@result%
+{\COOL@temp@D@result \frac{\COOL@temp@D@top}{\COOL@temp@D@bot}}%
+}%
+}%
+{%
+}%
+\COOL@temp@D@result #2
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{DShorten can only be `true' or `false';%
+ DDisplayFunc can only be `inset' or `outset'}%
+}%
+}}}%
+}
+\newcommand{\D}[3][1]{\COOL@derivative{#1}{#2}{#3}{d}}
+\newcommand{\pderiv}[3][1]{\COOL@derivative{#1}{#2}{#3}{\partial}}
+\newcommand{\COOL@notation@IntegrateDisplayFunc}{inset}
+\newcommand{\Integrate}[2]{%
+\listval{#2}{0}%
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}%
+\ifthenelse{ \value{COOL@listlen} = 1 }%
+{%
+\ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{outset}}%
+{%
+\int \! d#2 \, #1%
+}%
+{ \ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{inset}}%
+{%
+\int #1 \, d#2%
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{`DisplayFunc' can only be `inset' or `outset'}%
+}}%
+}%
+{ \ifthenelse{ \value{COOL@listlen} = 2 }%
+{%
+\ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{outset}}%
+{%
+\int_{\listval{#2}{2}} \! d{\listval{#2}{1}} \, #1%
+}%
+{ \ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{inset}}%
+{%
+\int_{\listval{#2}{2}} #1 \, d{\listval{#2}{1}}%
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{`DisplayFunc' can only be `inset' or `outset'}%
+}}%
+}%
+{ \ifthenelse{ \value{COOL@listlen} = 3 }%
+{%
+\ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{outset}}%
+{%
+\int_{\listval{#2}{2}}^{\listval{#2}{3}} \! d{\listval{#2}{1}} \, #1%
+}%
+{ \ifthenelse{\equal{\COOL@notation@IntegrateDisplayFunc}{inset}}%
+{%
+\int_{\listval{#2}{2}}^{\listval{#2}{3}} #1 \, d{\listval{#2}{1}}%
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{`DisplayFunc' can only be `inset' or `outset'}%
+}}%
+}%
+{%
+\PackageError{cool}{`Integrate' has invalid parameter list}%
+ {this happens when the second argument has more than two commas}%
+}}}%
+}%
+\newcommand{\Int}[2]{\Integrate{#1}{#2}}
+\newcommand{\Sum}[2]{%
+\listval{#2}{0}%
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}
+\ifthenelse{ \value{COOL@listlen} = 1 }%
+{%
+\sum_{#2} #1%
+}%
+{%
+\ifthenelse{ \value{COOL@listlen} = 3 }%
+{%
+\sum_{ \listval{#2}{1} = \listval{#2}{2} }^{ \listval{#2}{3} } #1
+}%
+{%
+\PackageError{cool}{Invalid list length for `Sum'}%
+{can only have none or two commas for second argument}%
+}%
+}%
+}
+\newcommand{\Prod}[2]{%
+\listval{#2}{0}%
+\setcounter{COOL@listlen}{\value{COOL@listpointer}}
+\ifthenelse{ \value{COOL@listlen} = 1 }%
+{%
+\prod_{#2} #1%
+}%
+{%
+\ifthenelse{ \value{COOL@listlen} = 3 }%
+{%
+\prod_{ \listval{#2}{1} = \listval{#2}{2} }^{ \listval{#2}{3} } #1
+}%
+{%
+\PackageError{cool}{Invalid list length for `Prod'}%
+{can only have none or two commas for second argument}%
+}%
+}%
+}
+\newcommand{\DotProduct}[2]{#1 \cdot #2}
+\newcommand{\Cross}[2]{#1 \times #2}
+\newcommand{\Div}[1]{\nabla \cdot #1}
+\newcommand{\Grad}[1]{\nabla #1}
+\newcommand{\Curl}[1]{\nabla \times #1}
+\newcommand{\Laplacian}[1]{\nabla^2 #1}
+\newcommand{\COOL@notation@TransposeParen}{inv}
+\newcommand{\Transpose}[1]{ \COOL@decide@paren{Transpose}{#1}^T }
+\newcommand{\COOL@notation@DaggerParen}{inv}
+\newcommand{\Dagger}[1]{ \COOL@decide@paren{Dagger}{#1}^\dagger }
+\newcommand{\COOL@notation@DetParen}{none}
+\newcommand{\COOL@notation@DetDisplay}{det}
+\newcommand{\Det}[1]{%
+\ifthenelse{\equal{\COOL@notation@DetDisplay}{det}}%
+{%
+\det\COOL@decide@paren{Det}{#1}%
+}%
+{ \ifthenelse{\equal{\COOL@notation@DetDisplay}{barenc}}%
+{%
+\left|#1\right|%
+}%
+{%
+\PackageError{cool}{Invalid Option Sent}%
+{`DetDisplay' can only be `det' or `barenc'}%
+}}%
+}
+\newcommand{\COOL@notation@TrParen}{none}
+\newcommand{\Tr}[2][]{%
+\ifthenelse{\equal{#1}{}}
+{%
+\operatorname{Tr}\COOL@decide@paren{Tr}{#2}%
+}%
+{%
+\operatorname{Tr}_{#1}\COOL@decide@paren{Tr}{#2}%
+}%
+}
+\newcommand{\COOL@notation@IdentityMatrixParen}{p}
+\newcounter{COOL@row}%
+\newcounter{COOL@col}%
+\newcommand{\IdentityMatrix}[1][0]{%
+\isint{#1}%
+\ifthenelse{\boolean{COOL@isint}}%
+{%
+\ifthenelse{ #1=0 }%
+{%
+\mathbb{I}%
+}%
+{%
+\setcounter{COOL@ct}{\value{MaxMatrixCols}}%
+\setcounter{MaxMatrixCols}{#1}%
+\ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{p}}%
+{%
+\begin{pmatrix}%
+}%
+{ \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{b}}%
+{%
+\begin{bmatrix}%
+}%
+{ \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{br}}%
+{%
+\begin{Bmatrix}%
+}%
+{%
+\begin{matrix}%
+}}}%
+\forLoop{1}{#1}{COOL@row}%
+{%
+\ifthenelse{\NOT \value{COOL@row} = 1}{\\}{}%
+\forLoop{1}{#1}{COOL@col}%
+{%
+\ifthenelse{ \NOT \value{COOL@col} = 1 }{&}{}%
+\ifthenelse{ \value{COOL@row}=\value{COOL@col} }{1}{0}%
+}%
+}%
+\ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{p}}%
+{%
+\end{pmatrix}%
+}%
+{ \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{b}}%
+{%
+\end{bmatrix}%
+}%
+{ \ifthenelse{\equal{\COOL@notation@IdentityMatrixParen}{br}}%
+{%
+\end{Bmatrix}%
+}%
+{%
+\end{matrix}%
+}}}%
+\setcounter{MaxMatrixCols}{\value{COOL@ct}}%
+}%
+}%
+{%
+\mathbb{I}%
+}%
+}%
+\endinput
+%%
+%% End of file `cool.sty'.
diff --git a/Master/texmf-dist/tpm/cool.tpm b/Master/texmf-dist/tpm/cool.tpm
new file mode 100644
index 00000000000..f96a4770407
--- /dev/null
+++ b/Master/texmf-dist/tpm/cool.tpm
@@ -0,0 +1,31 @@
+<!DOCTYPE rdf:RDF SYSTEM "../../support/tpm.dtd">
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:TPM="http://texlive.dante.de/">
+ <rdf:Description about="http://texlive.dante.de/texlive/Package/cool.zip">
+ <TPM:Name>cool</TPM:Name>
+ <TPM:Type>Package</TPM:Type>
+ <TPM:Date>2006/09/25 13:02:00</TPM:Date>
+ <TPM:Version></TPM:Version>
+ <TPM:Creator>karl</TPM:Creator>
+ <TPM:Title>The cool package.</TPM:Title>
+ <TPM:Description></TPM:Description>
+ <TPM:Author></TPM:Author>
+ <TPM:Size>824577</TPM:Size>
+ <TPM:Build/>
+ <TPM:RunFiles size="76264">
+texmf-dist/tex/latex/cool/cool.sty
+texmf-dist/tpm/cool.tpm
+ </TPM:RunFiles>
+ <TPM:DocFiles size="566260">
+texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.pdf
+texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.tex
+texmf-dist/doc/latex/cool/README
+texmf-dist/doc/latex/cool/cool.pdf
+ </TPM:DocFiles>
+ <TPM:SourceFiles size="183150">
+texmf-dist/source/latex/cool/cool.dtx
+texmf-dist/source/latex/cool/cool.ins
+ </TPM:SourceFiles>
+ <TPM:Provides>Package/cool</TPM:Provides>
+ </rdf:Description>
+</rdf:RDF>
+
diff --git a/Master/texmf/lists/cool b/Master/texmf/lists/cool
new file mode 100644
index 00000000000..bad5e184b34
--- /dev/null
+++ b/Master/texmf/lists/cool
@@ -0,0 +1,10 @@
+texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.pdf
+texmf-dist/doc/latex/cool/Content_LaTeX_Package_Demo.tex
+texmf-dist/doc/latex/cool/README
+texmf-dist/doc/latex/cool/cool.pdf
+texmf-dist/source/latex/cool/cool.dtx
+texmf-dist/source/latex/cool/cool.ins
+texmf-dist/tex/latex/cool/cool.sty
+texmf-dist/tpm/cool.tpm
+
+texmf/lists/cool
diff --git a/Master/texmf/tpm/collection-latexextra.tpm b/Master/texmf/tpm/collection-latexextra.tpm
index 5fb092abd6a..464d7a19e84 100644
--- a/Master/texmf/tpm/collection-latexextra.tpm
+++ b/Master/texmf/tpm/collection-latexextra.tpm
@@ -76,6 +76,7 @@ A large collection of add-on packages for LaTeX.
<TPM:Package name="concprog"/>
<TPM:Package name="contour"/>
<TPM:Package name="cooking"/>
+ <TPM:Package name="cool"/>
<TPM:Package name="coollist"/>
<TPM:Package name="coolstr"/>
<TPM:Package name="cooltooltips"/>