%%
%% This is file `functan.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% functan.dtx  (with options: `package')
%% 
%% functan.ins
%% Copyright 2004 Antoine Lejay
%% 
%% This program is provided under the terms of the
%% LaTeX Project Public License distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt.
%% 
%% Author: Antoine Lejay (Antoine.Lejay@iecn.u-nancy.fr)
%% 
%% \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         \~}
%%
\ProvidesPackage{functan}
[2004/07/03 v1.0 Macros for functional analysis]
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{functan}[2004/07/03 v1.0, Macros for functional analysis]
\DeclareOption{leqno}{%
\PassOptionsToPackage{leqno}{amsmath}}
\DeclareOption{intlimits}{%
\PassOptionsToPackage{intlimits}{amsmath}}
\DeclareOption{nointlimits}{%
\PassOptionsToPackage{leqno}{amsmath}}
\DeclareOption{sumlimits}{%
\PassOptionsToPackage{sumlimits}{amsmath}}
\DeclareOption{nosumlimits}{%
\PassOptionsToPackage{leqno}{amsmath}}
\DeclareOption{namelimits}{%
\PassOptionsToPackage{namelimits}{amsmath}}
\DeclareOption{nonamelinits}{%
\PassOptionsToPackage{nonamelinits}{amsmath}}
\DeclareOption{reqno}{%
\PassOptionsToPackage{reqno}{amsmath}}
\DeclareOption{centertags}{%
\PassOptionsToPackage{centertags}{amsmath}}
\DeclareOption{tbtags}{%
\PassOptionsToPackage{tbtags}{amsmath}}
\DeclareOption{cmex10}{%
\PassOptionsToPackage{cmex10}{amsmath}}
\DeclareOption{fleqn}{%
\PassOptionsToPackage{fleqn}{amsmath}}
\ProcessOptions
\RequirePackage{amsmath}[2000/01/01 v2.0]
\newcommand{\Macro}[2]{\@ifundefined{functan@macro@#1}{}{%
\PackageWarning{functan}{The macro '#1' has already been defined}}
\@namedef{functan@macro@#1}{#2}}
\newcommand{\m}[1]{\@ifempty{#1}{%
\PackageError{functan}{No macro's name given}{}
}{%
\@ifundefined{functan@macro@#1}{%
\PackageError{functan}{The macro `#1' is not defined}{}}{%
\@nameuse{functan@macro@#1}}}}
\newcommand{\mempty}[1]{\@ifempty{#1}{}{%
\@ifundefined{functan@macro@#1}{%
\PackageError{functan}{The macro `#1' is not defined}{}}{%
\@nameuse{functan@macro@#1}}}}
\global\def\functan@size@auto{auto}
\newcommand{\functan@casesize}[4]{\def\functan@size{#1}%
\ifx\functan@size\functan@size@auto #2\else%
\@ifempty{#1}{#3}{#4}\fi}
\let\delcasesize\functan@casesize
\global\def\functan@size@big{big}
\global\def\functan@size@Big{Big}
\global\def\functan@size@bigg{bigg}
\global\def\functan@size@Bigg{Bigg}
\newcommand{\casesize}[7]{%
\def\functan@size{#1}
\@ifempty{#1}{#3}{%
\ifx\functan@size\functan@size@auto{#2}\else%
\ifx\functan@size\functan@size@big{#4}\else%
\ifx\functan@size\functan@size@Big{#5}\else%
\ifx\functan@size\functan@size@bigg{#6}\else%
\ifx\functan@size\functan@size@Bigg{#7}\else%
\PackageError{functan}{Size argument `#1' of `casesize' not valid}%
\fi\fi\fi\fi\fi}}
\newcommand{\delonearg}[4][auto]{%
\functan@casesize{#1}{\left#3 #2 \right#4}{%
#3 #2 #4}{\@nameuse{#1l}#3 #2 \@nameuse{#1r}#4}}
\newcommand{\deltwoarg}[6][auto]{%
\def\functan@vert@bar{|}%
\edef\functan@arg@bar{#6}%
\ifx\functan@arg@bar\functan@vert@bar%
\functan@casesize{#1}{\left#4 #2\;\vrule\; #3\right#5}{%
#4 #2\;\vert\;#3 #5}{%
\@nameuse{#1l}#4 #2\;\@nameuse{#1}\vert\;#3 \@nameuse{#1r}#5}
\else
\functan@casesize{#1}{\left#4 #2 #6 #3 \right#5}{%
#4 #2 #6 #3  #5}{%
\@nameuse{#1l}#4  #2 #6 #3 \@nameuse{#1r}#5}
\fi}
\newcommand{\functan@norm}[3]{%
\functan@casesize{#1}{\left\lVert #3\right\rVert%
\@ifnotempty{#2}{_{#2}}}{%
\lVert #3\rVert\@ifnotempty{#2}{_{#2}}}{%
\@nameuse{#1l}\lVert #3\@nameuse{#1r}\rVert%
\@ifnotempty{#2}{_{#2}}}}
\newcommand{\functan@starred@norm}[3][auto]{%
\functan@norm{#1}{#2}{#3}}
\newcommand{\functan@nonstarred@norm}[3][auto]{%
\@ifundefined{functan@named@norm@#2}%
{\@ifempty{#2}{\functan@norm{#1}{}{#3}}{%
\functan@norm{#1}{\m{#2}}{#3}}}%
{\@nameuse{functan@named@norm@#2}{#1}{#3}}}
\newcommand{\newnorm}[1]{%
\@namedef{functan@named@norm@#1}##1##2}
\newcommand{\norm}{\@ifstar{\functan@starred@norm}%
{\functan@nonstarred@norm}}
\newcommand{\newconv}[1]{%
\@namedef{functan@named@conv@#1}##1}
\newcommand{\conv}{%
\@ifstar{\functan@starred@conv}{\functan@nonstarred@conv}}
\newcommand{\functan@nonstarred@conv}[2]{%
\@ifundefined{functan@named@conv@#1}%
{\xrightarrow[#2]{\mempty{#1}}}{\@nameuse{functan@named@conv@#1}{#2}}}
\newcommand{\functan@starred@conv}[2]{\xrightarrow[#2]{#1}}
\newcommand{\xleftrightarrow}[2][]{%
\ext@arrow 9999\leftrightarrowfill@{#1}{#2}}
\newcommand{\Xrightarrow}[2][]{%
\ext@arrow 0359\Rightarrowfill@{#1}{#2}}
\newcommand{\Xleftarrow}[2][]{%
\ext@arrow 3095\Leftarrowfill@{#1}{#2}}
\newcommand{\Xleftrightarrow}[2][]{%
\ext@arrow 9999\Leftrightarrowfill@{#1}{#2}}
\newcommand{\leftconv}{%
\@ifstar{\functan@starred@leftconv}%
{\functan@nonstarred@leftconv}}
\newcommand{\functan@nonstarred@leftconv}[2]{%
\xleftarrow[#2]{\mempty{#1}}}
\newcommand{\functan@starred@leftconv}[2]{%
\xleftarrow[#2]{#1}}
\newcommand{\leftrightconv}{%
\@ifstar{\functan@starred@leftrightconv}%
{\functan@nonstarred@leftrightconv}}
\newcommand{\functan@nonstarred@leftrightconv}[2]{%
\xleftrightarrow[#2]{\mempty{#1}}}
\newcommand{\functan@starred@leftrightconv}[2]{%
\xleftrightarrow[#2]{#1}}
\newcommand{\Conv}{%
\@ifstar{\functan@starred@Conv}{\functan@nonstarred@Conv}}
\newcommand{\functan@nonstarred@Conv}[2]{%
\Xrightarrow[#2]{\mempty{#1}}}
\newcommand{\functan@starred@Conv}[2]{%
\Xrightarrow[#2]{#1}}
\newcommand{\Leftconv}{%
\@ifstar{\functan@starred@Leftconv}%
{\functan@nonstarred@Leftconv}}
\newcommand{\functan@nonstarred@Leftconv}[2]{%
\Xleftarrow[#2]{\mempty{#1}}}
\newcommand{\functan@starred@Leftconv}[2]{%
\Xleftarrow[#2]{#1}}
\newcommand{\Leftrightconv}{%
\@ifstar{\functan@starred@Leftrightconv}%
{\functan@nonstarred@Leftrightconv}}
\newcommand{\functan@nonstarred@Leftrightconv}[2]{%
\Xleftrightarrow[#2]{\mempty{#1}}}
\newcommand{\functan@starred@Leftrightconv}[2]{%
\Xleftrightarrow[#2]{#1}}
\def\rightharpoonfill@{\arrowfill@\relbar\relbar\rightharpoonup}
\newcommand{\xrightharpoon}[2][]%
{\ext@arrow 0359\rightharpoonfill@{#1}{#2}}
\def\leftharpoonfill@{\arrowfill@\leftharpoonup\relbar\relbar}
\newcommand{\xleftharpoon}[2][]%
{\ext@arrow 3095\leftharpoonfill@{#1}{#2}}
\def\leftrightharpoonfill@%
{\arrowfill@\leftharpoonup\relbar\rightharpoonup}
\newcommand{\xleftrightharpoon}[2][]%
{\ext@arrow 3095\leftrightharpoonfill@{#1}{#2}}
\newcommand{\wkconv}{%
\@ifstar{\functan@starred@wkconv}%
{\functan@nonstarred@wkconv}}
\newcommand{\functan@nonstarred@wkconv}[2]{%
\xrightharpoon[#2]{\mempty{#1}}}
\newcommand{\functan@starred@wkconv}[2]{%
\xrightharpoon[#2]{#1}}
\newcommand{\leftwkconv}{%
\@ifstar{\functan@starred@leftwkconv}%
{\functan@nonstarred@leftwkconv}}
\newcommand{\functan@nonstarred@leftwkconv}[2]{%
\xleftharpoon[#2]{\mempty{#1}}}
\newcommand{\functan@starred@leftwkconv}[2]{%
\xleftharpoon[#2]{#1}}
\newcommand{\leftrightwkconv}{%
\@ifstar{\functan@starred@leftrightwkconv}%
{\functan@nonstarred@leftrightwkconv}}
\newcommand{\functan@nonstarred@leftrightwkconv}[2]{%
\xleftrightharpoon[#2]{\mempty{#1}}}
\newcommand{\functan@starred@leftrightwkconv}[2]{%
\xleftrightharpoon[#2]{#1}}
\newcommand{\scalprod}{\@ifstar{\functan@starred@scalprod}%
{\functan@nonstarred@scalprod}}
\newcommand{\functan@starred@scalprod}[4][auto]{
\deltwoarg[#1]{#3}{#4}{\langle}%
{\rangle}{,}\@ifempty{#2}{}{_{#2}}}
\newcommand{\functan@nonstarred@scalprod}[4][auto]{
\@ifundefined{functan@scalprod@named@#2}{
\deltwoarg[#1]{#3}{#4}{\langle}%
{\rangle}{,}\@ifempty{#2}{}{_{\m{#2}}}}{%
\@nameuse{functan@scalprod@named@#2}{#1}{#3}{#4}}}
\newcommand{\newscalprod}[1]{%
\@namedef{functan@scalprod@named@#1}##1##2##3}
\endinput
%%
%% End of file `functan.sty'.
