%  ALGORITHM  STYLE  --  Released  8  April  1996
%        for  LaTeX-2e
%  Copyright  --  1994  Peter  Williams
%  E-mail  Peter.Williams@dsto.defence.gov.au
\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{algorithm}
\typeout{Document  Style  `algorithm'  -  floating  environment}

\RequirePackage{float} \RequirePackage{ifthen}
\newcommand{\ALG@within}{nothing}
\newboolean{ALG@within}
\setboolean{ALG@within}{false}
\newcommand{\ALG@floatstyle}{ruled}
\newcommand{\ALG@name}{Algorithm}
\newcommand{\listalgorithmname}{List  of  \ALG@name  s}

%  Declare  Options
%  first  appearance
\DeclareOption{plain}{
    \renewcommand{\ALG@floatstyle}{plain}
} \DeclareOption{ruled}{
    \renewcommand{\ALG@floatstyle}{ruled}
} \DeclareOption{boxed}{
    \renewcommand{\ALG@floatstyle}{boxed}
}
%  then  numbering  convention
\DeclareOption{part}{
    \renewcommand{\ALG@within}{part}
    \setboolean{ALG@within}{true}
} \DeclareOption{chapter}{
    \renewcommand{\ALG@within}{chapter}
    \setboolean{ALG@within}{true}
} \DeclareOption{section}{
    \renewcommand{\ALG@within}{section}
    \setboolean{ALG@within}{true}
} \DeclareOption{subsection}{
    \renewcommand{\ALG@within}{subsection}
    \setboolean{ALG@within}{true}
} \DeclareOption{subsubsection}{
    \renewcommand{\ALG@within}{subsubsection}
    \setboolean{ALG@within}{true}
} \DeclareOption{nothing}{
    \renewcommand{\ALG@within}{nothing}
    \setboolean{ALG@within}{true}
} \DeclareOption*{\edef\ALG@name{\CurrentOption}}

%  ALGORITHM
%
\ProcessOptions \floatstyle{\ALG@floatstyle}
\ifthenelse{\boolean{ALG@within}}{
    \ifthenelse{\equal{\ALG@within}{part}}
          {\newfloat{algorithm}{htbp}{loa}[part]}{}
    \ifthenelse{\equal{\ALG@within}{chapter}}
          {\newfloat{algorithm}{htbp}{loa}[chapter]}{}
    \ifthenelse{\equal{\ALG@within}{section}}
          {\newfloat{algorithm}{htbp}{loa}[section]}{}
    \ifthenelse{\equal{\ALG@within}{subsection}}
          {\newfloat{algorithm}{htbp}{loa}[subsection]}{}
    \ifthenelse{\equal{\ALG@within}{subsubsection}}
          {\newfloat{algorithm}{htbp}{loa}[subsubsection]}{}
    \ifthenelse{\equal{\ALG@within}{nothing}}
          {\newfloat{algorithm}{htbp}{loa}}{}
}{
    \newfloat{algorithm}{htbp}{loa}
} \floatname{algorithm}{\ALG@name}

\newcommand{\listofalgorithms}{\listof{algorithm}{\listalgorithmname}}
