]> AND Private Git Repository - book_gpu.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
new
authorRaphael Couturier <raphael.couturier@univ-fcomte.fr>
Tue, 22 Jan 2013 09:57:02 +0000 (10:57 +0100)
committerRaphael Couturier <raphael.couturier@univ-fcomte.fr>
Tue, 22 Jan 2013 09:57:02 +0000 (10:57 +0100)
BookGPU/BookGPU.tex
BookGPU/algorithm.sty [deleted file]
BookGPU/algorithm2e.sty [deleted file]
BookGPU/algorithmicx.sty [deleted file]

index 15fe1756431f545c9169ce7d7f89d8e6963592ed..8bb03d4a6bc52b93e108af983a97afd09c8f9f32 100755 (executable)
@@ -13,8 +13,8 @@
 \usepackage[sectionbib]{bibunits}
 \usepackage{multicol}
 \usepackage{cite}
 \usepackage[sectionbib]{bibunits}
 \usepackage{multicol}
 \usepackage{cite}
-\usepackage{algorithm}
-\usepackage{algorithmic}
+%\usepackage{algorithm}
+%\usepackage{algorithmic}
 \usepackage[lined,boxed,commentsnumbered]{algorithm2e}
 \usepackage{epstopdf}
 \usepackage{url}
 \usepackage[lined,boxed,commentsnumbered]{algorithm2e}
 \usepackage{epstopdf}
 \usepackage{url}
 
 \setcounter{page}{1}
 \part{This is a Part}
 
 \setcounter{page}{1}
 \part{This is a Part}
-\include{Chapters/chapter1/ch1}
-\include{Chapters/chapter2/ch2}
-\include{Chapters/chapter3/ch3}
-\include{Chapters/chapter5/ch5}
-\include{Chapters/chapter6/ch6}
-\include{Chapters/chapter7/ch7}
-\include{Chapters/chapter8/ch8}
+%\include{Chapters/chapter1/ch1}
+%\include{Chapters/chapter2/ch2}
+%\include{Chapters/chapter3/ch3}
+%\include{Chapters/chapter5/ch5}
+%\include{Chapters/chapter6/ch6}
+%\include{Chapters/chapter7/ch7}
+%\include{Chapters/chapter8/ch8}
 \include{Chapters/chapter9/ch9}
 \include{Chapters/chapter9/ch9}
-\include{Chapters/chapter11/ch11}
-\include{Chapters/chapter14/ch14}
-\include{Chapters/chapter15/ch15}
+%\include{Chapters/chapter11/ch11}
+%\include{Chapters/chapter14/ch14}
+%\include{Chapters/chapter15/ch15}
 
 \bibliographystyle{hep}
 %%%\bibliography{biblio}
 
 \bibliographystyle{hep}
 %%%\bibliography{biblio}
diff --git a/BookGPU/algorithm.sty b/BookGPU/algorithm.sty
deleted file mode 100644 (file)
index 843e3d5..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-% 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}}
-
diff --git a/BookGPU/algorithm2e.sty b/BookGPU/algorithm2e.sty
deleted file mode 100644 (file)
index 8c5f4b7..0000000
+++ /dev/null
@@ -1,2637 +0,0 @@
-%  algorithm2e.sty --- style file for algorithms
-%                      almost everything can be customized by users. See the document for more explanations
-%% Copyright 1996-2008 Christophe Fiorio
-%
-% This program may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.2
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.2 or later is part of all distributions of LaTeX 
-% version 1999/12/01 or later.
-%
-% This program consists of the files algorithm2e.sty and algorithm2e.tex and algorithm2e-compatibility.sty
-%  
-%  Report bugs and comments to:
-%  - algorithm2e-announce@lirmm.fr  mailing list for announcement about releases^^J%
-%  - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J%
-%  subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'^^J%
-%
-%  $Id: algorithm2e.sty,v 4.1 2009/12/15 08:54:08 cfiorio Exp $
-%
-%  PACKAGES REQUIRED:
-%
-%  - float   (in contrib/supported/float)
-%  - ifthen  (in base)
-%  - xspace  (in packages/tools)
-%  - relsize (in contrib/misc/relsize.sty)
-%
-%%%%%%%%%%%%%%%  Release 4.01
-%
-%   Package options: 
-%   ---------------
-%   - oldcommands                      : to use old command names
-%   - french, english, german, 
-%     portuguese, czech, italiano,
-%     slovak                           : for the name of the algorithm and some keyword code
-%   - onelanguage                      : to simply switch keyword from one language to another without changing
-%                                        keyword commands
-%   - boxed, boxruled, ruled, tworuled, 
-%     algoruled, plain                 : layout of the algorithm
-%   - algo2e                           : environment is algorithm2e instead of algorithms and \listofalgorithmes
-%                                        instead of \listofalgorithms
-%   - slide                            : to use when making slides
-%   - noline,lined,vlined              : how block are designed.
-%   - shortend, longend, noend         : short or long end keyword as endif for e.g.
-%   - linesnumbered                    : auto numbering of the algorithm's lines
-%   - linesnumberedhidden              : to hide autonumbered lines (show number on a line with \ShowLn
-%   - commentsnumbered, inoutnumbered  : to autonumber comments and inout keywords (by defaut not numbered)
-%   - rightnl                          : to have line number on the right instead of on the left as default
-%   - algonl                           : line numbers preceded by algo number
-%   - scright, scleft                  : right or left justified side comments
-%   - fillcomment, nofillcomment       : end mark of comment is flushed to the right so comments fill the line
-%   - dotocloa                         : add an entry in the toc for list of algorithms (require tocbibind package)
-%   - endfloat                         : add algoendfloat environment pushing algorithm so written to the end of document
-%   - resetcount, noresetcount         : start value of line numbers.
-%   - algopart,algochapter,algosection : algo numbering within part, chapter or section
-%   - titlenumbered,titlenotnumbered   : numbering of title set by \Titleofalgo
-%   - figure                           : algorithms are figures, numbered as figures, and put in the list of figures.
-%   - procnumbered                     : procedure or function are numbered as algorithm
-%   - nokwfunc                         : procedure or function name doens't become a command
-%   - norelsize                        : don't use relsize package (useful if it breaks the compatibily)
-%  
-%   defaults are; english,plain,resetcount,titlenotnumbered
-%
-%%%%%%%%%%%%%%
-%
-%   Short summary  
-%   -------------
-%  
-%   algorithm is an environment for writing algorithm in LaTeX2e.
-%   Almost all is customizable. You can add keywords, change style, change the layout, ...
-%   It provide macros that allow you to create differents sorts of key words, therefore a set of predefined key
-%   word is gived.
-%
-%   IT should be used as follows
-%
-%   \begin{algorithm}
-%       ...
-%       ...
-%   \end{algorithm}
-%
-%
-%   IMPORTANT : each line MUST end with \;
-%
-%   Note that if you define macros outside algorithm environment they
-%   are avaible in all the document and particulary you can use then
-%   inside all algorithms without re-define them.
-%  
-%   an example:
-%
-%   \begin{algorithm}
-%     \SetAlgoLined
-%     \KwIn{this text}
-%     \KwOut{how to write algorithm with \LaTeX2e }
-%     
-%     initialization\;
-%     \While{not at end of this document}{
-%       read current section\;
-%       \eIf{understand}{
-%         go to next section\;
-%         current section becomes this one\;
-%         }{
-%         go back to the beginning of current section\;
-%         }
-%       }
-%     \caption{How to write algorithm}
-%   \end{algorithm}
-%
-%
-%%%%%%%%%%%%%%         predefined keywords
-%
-%     \KwIn{input}
-%     \KwOut{output}
-%     \KwData{input}
-%     \KwResult{output}
-%     \KwTo                                       % a simple keyword
-%     \KwFrom                                     % a simple keyword
-%     \KwRet{[value]}
-%     \Return{[value]}
-%     \Begin{block inside}
-%     \eIf{condition}{Then Block}{Else block}     % in blocks
-%     \If{condition}{Then block}                  % in a block
-%     \uIf{condition}{Then block}                 % in a block unended
-%     \lIf{condition}{Else text}                  % on the same line
-%     \Else{inside Else}                          % in a block
-%     \lElse{Else text}                           % on the same line        
-%     \uElse{Else text}                           % in a block unended
-%     \ElseIf{inside Elseif}                      % in a block
-%     \lElseIf{Elseif text}                       % on the same line        
-%     \uElseIf{Elseif text}                       % in a block unended
-%     \Switch{Condition}{Switch block}
-%     \Case{a case}{case block}                   % in a block
-%     \lCase{a case}{case text}                   % on the same line
-%     \Other{otherwise block}                     % in a block
-%     \lOther{otherwise block}                    % on the same line
-%     \For{condition}{text loop}                  % in a block
-%     \lFor{condition}{text}                      % on the same line
-%     \ForEach{condition}{text loop}              % in a block
-%     \lForEach{condition}{text}                  % on the same line
-%     \ForPar{condition}{text loop}               % in a block
-%     \lForPar{condition}{text}                   % on the same line
-%     \While{condition}{text loop}                % in a block
-%     \lWhile{condition}{text loop}               % on the same line
-%     \Repeat{End condition}{text loop}           % in a block
-%     \lRepeat{condition}{text}                   % on the same line
-%
-%%%%%%%%%%%%%%
-%
-%   History: 
-%
-%   - december 14 2009 - revision 4.01
-%                     * ADD : new command \SetKwHangingKw{Name}{text} (hanging indent with keyword): This creates a
-%                             hanging indent much like \texttt{SetKwInput}, except that it removes the trailing `:'
-%                             and does not reset numbering.
-%
-%   - november 17 2009  - revision 4.00 -
-%
-%                      * CHANGE : IMPORTANT : some commands have been renamed to have consistent naming (CamlCase
-%                                 syntax) and old commands are no more available. If you doesn't want to change
-%                                 your mind or use old latex files, you can use oldcommands option to enable old
-%                                 commands back.
-%                                 text. Here are these commands:
-%                                 - \SetNoLine becomes \SetAlgoNoLine
-%                                 - \SetVline  becomes \SetAlgoVlined
-%                                 - \Setvlineskip  becomes \SetVlineSkip
-%                                 - \SetLine   becomes \SetAlgoLined
-%                                 - \dontprintsemicolon becomes \DontPrintSemicolon
-%                                 - \printsemicolon becomes \PrintSemicolon
-%                                 - \incmargin becomes \IncMargin
-%                                 - \decmargin becomes \DecMargin
-%                                 - \setnlskip becomes \SetNlSkip
-%                                 - \Setnlskip becomes \SetNlSkip
-%                                 - \setalcapskip becomes \SetAlCapSkip
-%                                 - \setalcaphskip becomes \SetAlCapHSkip
-%                                 - \nlSty becomes \NlSty
-%                                 - \Setnlsty becomes \SetNlSty
-%                                 - \linesnumbered becomes \LinesNumbered
-%                                 - \linesnotnumbered becomes \LinesNotNumbered
-%                                 - \linesnumberedhidden becomes \LinesNumberedHidden
-%                                 - \showln becomes \ShowLn
-%                                 - \showlnlabel becomes \ShowLnLabel
-%                                 - \nocaptionofalgo becomes \NoCaptionOfAlgo
-%                                 - \restorecaptionofalgo becomes \RestoreCaptionOfAlgo
-%                                 - \restylealgo becomes \RestyleAlgo
-%                                 - gIf macros and so on do no more exist
-%                      * NEW: - Compatibily with other packages improven by changing name of internal
-%                               macros. Algorithm2e can now be used with arabtex for example, if this last is
-%                               loaded after algorithm2e package.
-%                      * ADD: - OPTION endfloat: endfloat packages doesn't allow float environment inside other
-%                               environment. So using it with figure option of algorithm2e makes error. This
-%                               option enables a new environment algoendfloat to be used instead of algorithm
-%                               environment that put algorithm at the end. algoendfloat environment make
-%                               algorithm acting as endfloat figures. This option requires endfloat packages.
-%                      * ADD: - OPTION norelsize: starting from this release (v4.00), algorithm2e package uses
-%                               relsize package in order to get relative size for lines numbers; but it seems
-%                               that some rare classes (such as inform1.cls) are not compatible with relsize; to
-%                               have algorithm2e working, this option makes algorithm2e not to load relsize
-%                               package and go back to previous definition by using \scriptsize font for lines
-%                               numbers.
-%                      * ADD: - OPTION onelanguage: allow, if using standard keywords listed below, to switch
-%                               from one language to another without changing keywords by using appropriate
-%                               language option :
-%                               . KwIn, KwOut, KwData, KwResult
-%                               . KwTo KwFrom
-%                               . KwRet, Return
-%                               . Begin
-%                               . Repeat
-%                               . If, ElseIf, Else
-%                               . Switch, Case, Other
-%                               . For, ForPar, ForEach, ForAll, While
-%                               .
-%                      * ADD: - OPTION rightnl: put lines numbers to the right of the algorithm instead of left.
-%                      * ADD:   new commands \setRightLinesNumbers and \setLeftLinesNumbers which sets the lines
-%                               numbers to the right or to the left of the algorithm.
-%                      * ADD: - new kind of keywords : KwArray used to define arrays:
-%                               \SetKwArray{Kw}{array} defines an array keywords Kw called array and printed in
-%                               DataSty style when call with \Kw. It can be used with one argument which
-%                               denotes the element index: \Kw{n} prints array[n] with array in DataSty and n in
-%                               ArgSty.
-%                      * ADD/FIX: rules of ruled, algoruled, tworuled styles used rules of different sizes! This
-%                                 is now fixed. Moreover size of the rules is now controlled by a length and so
-%                                 can be customized by the user.
-%                                 \algoheightrule is the height of the rules and can be changed via \setlength
-%                                 \algoheightruledefault is the default height of he rules (0.8pt)
-%                                 \algotitleheightrule is the height of the rule that comes just after the
-%                                 caption in ruled and algoruled style; it can be changed via \setlength
-%                                 \algotitleheightruledefault is the default height of this rules (0.8pt)
-%                                 Thanks to Philippe Dumas who reports the bug and make the suggestion.
-%                      * ADD: - \SetAlgoCaptionSeparator which sets the separator between Algorithm 1 and the
-%                               title. By default it's ':' and caption looks like "Algorithm 2: title" but now
-%                               you can change it by using for example \SetAlgoCaptionSeparator{.} which will
-%                               give "Algorithm 3. title"
-%                      * ADD: - \SetAlgoLongEnd and \SetAlgoShortEnd and \SetAlgoNoEnd commands which act as
-%                               corresponding package options
-%                      * ADD: - OPTIONS italiano and slovak as new language (thanks to Roberto Posenato and
-%                               Miroslav Binas) 
-%                      * CHANGE: - Fnt and Sty macro to have consistent use and naming (see below)
-%                      * ADD: - \AlCapSty, \AlCapNameSty, \AlCapFnt, \AlCapNameFnt, \ProcSty, \ProcFnt,
-%                               \ProcNameSty, \ProcNameFnt, \ProcArgSty, ProcArgFnt and corresponding "set macro" 
-%                               \SetAlCapSty, \SetAlCapNameSty, \SetAlCapFnt, \SetAlCapNameFnt, \SetProcSty,
-%                               \SetProcFnt, \SetProcNameSty, \SetProcNameFnt, \SetProcArgSty, \SetProcArgFnt which
-%                               control the way caption is printed. Sty macro use command taking one parameter as
-%                               argument, Fnt macros use directly command. In Fact caption is printed as follow :
-%                               \AlCapSty{\AlCapFnt Algorithm 1:}\AlCapNameSty{\AlCapNameFnt my algorithm}
-%                               By default, \AlCapSty is textbf and \AlCapFnt is nothing. \AlCapNameSty keep text 
-%                               as it is, and \AlCapNameFnt do nothing also.
-%                               You can redefine \AlCapFnt and \AlCapNameFnt by giving macro to \Set commands. For
-%                               example, you can do \SetAlCapFnt{\large} to see Algorithm printed in \large font.
-%                               You can redefine \AlCapSty, \AlCapFnt, \AlCapNameSty and \AlCapNameFnt with the
-%                               corresponding \Set command. For the Sty commands, you have to give in parameter
-%                               name of a macro (whithout \)  which takes one argument. For example,
-%                               \SetAlCapFnt{textbf} defines the default behaviour. If you want to do more
-%                               complicated thing, you should define your own macro and give it to \SetAlCapFnt or
-%                               \SetAlCapNameFnt. Here are two examples:
-%                               - \newcommand{\mycapsty}[1]{\tiny #1}\SetAlCapNameSty{mycapsty}
-%                               - \newcommand{\mycapsty}[1]{\textsl{\small #1}}\SetAlCapNameSty{mycapsty}
-%                               Or you can combine the two, for the last example you can also do:
-%                               \SetAlCapNameSty{textsl}\SetAlCapNameFnt{\small}
-%                               Thanks to Jan Stilhammer who gives me the idea of \AlCapNameFnt.
-%                      * CHANGE \AlTitleFnt to match definition of all other Fnt macros and add a \AlTitleSty 
-%                               macro (see below) . Now you set \AlTitleFnt by calling \SetAlTitleFnt with 
-%                               directly a macro without parameter in argument:
-%                               Example: \SetAlTitleFnt{\small} to set title in small font.
-%                      * ADD: - \AlTitleSty and \SetAlTitleSty commands to set a style for title. These commands
-%                               are defined from a macro taking the text in argument, as \textbf for example. 
-%                               To set the TitleSty you have to give name of the macro (without the '\') 
-%                               to \SetAlTitleSty. For example \SetAlTitleSty{textbf} to set \textbf style.
-%                      * ADD: - new command \SetAlgorithmName{algorithmname}{list of algorithms name} which
-%                               redefines name of the algorithms and the sentence list of algorithms. Second
-%                               argument is the name that \autoref, from hyperref package, will use. Example:
-%                               \SetAlgorithmName{Protocol}{List of protocols} if you prefer protocol than
-%                               algorithm.
-%                      * ADD: - new \SetAlgoRefName{QXY} which change the default ref (number of the algorithm) by
-%                               the name given in parameter (QXY in the example). 
-%                      * ADD: - new command \SetAlgoRefRelativeSize{-2} which sets the output size of refs, defined
-%                               by \SetAlgoRefName, used in list of algorithms.
-%                      * ADD: - two dimensions to control the layout of caption in ruled, algoruled and boxruled
-%                               algorithms:
-%                               - interspacetitleruled (2pt by defaut) which controls the vertical space between
-%                                 rules and title in ruled and algoruled algorithms.
-%                               - interspaceboxruled (2\lineskip by default) which controls the vertical space
-%                                 between rules and title in boxruled algorithms.
-%                               These two dimensions can be changed by using \setlength command.
-%                      * ADD: - With the fix (see below) of procedure and function environments, a new feature has
-%                               been added: the name of the procedure or function set in caption is automatically
-%                               defined as a KwFunction and so can be used as a macro. For example, if inside a
-%                               procedure environment you set \caption{myproc()}, you can use \myproc macro in you
-%                               main text. Beware that the macro is only defined after the \caption!
-%                      * ADD: - OPTION nokwfunc to unable the new feature described above in function and
-%                               procedure environment. Useful if you use name of procedure or function that cannot
-%                               be a command name as a math display for example.
-%                      * ADD: - \SetAlgoNlRelativeSize{number} command which sets the relative size of line
-%                               numbers. By default, line numbers are two size smaller than algorithm text. Use
-%                               this macro to change this behavior. For example, \SetAlgoNlRelativeSize{0} sets it
-%                               to the same size, \SetAlgoNlRelativeSize{-1} to one size smaller and
-%                               \SetAlgoNlRelativeSize{1} to one size bigger
-%                      * ADD: - \SetAlgoProcName{aname} command which sets the name of Procedure printed by
-%                               procedure environment (the environment prints Procedure by default). Second
-%                               argument is the name that \autoref, from hyperref package, will use.
-%                      * ADD: - \SetAlgoFuncName{aname} command which sets the name of Function printed by
-%                               procedure environment (the environment prints Function by default). Second
-%                               argument is the name that \autoref, from hyperref package, will use. 
-%                      * ADD: - \SetAlgoCaptionLayout{style} command which sets style of the caption; style must
-%                               be the name of a macro taking one argument (the text of the caption). Examples
-%                               below show how to use it:
-%                               . \SetAlgoCaptionLayout{centerline} to have centered caption
-%                               . \SetAlgoCaptionLayout{textbf} to have bold caption
-%                               If you want to apply two styles in the same time, such as centered bold, you have
-%                               to define you own macro and then use \SetAlgoCaptionLayout with its name.
-%                      * ADD: - OPTION procnumbered: which makes the procedure and function to be numbered as
-%                               algorithm
-%                      * ADD: - OPTIONS tworuled and boxruled
-%                               these are two new layouts: tworuled acts like ruled but doesn't put a line after
-%                               caption ; boxruled surround algorithm by a box, puts caption above and add a line
-%                               after caption.
-%                      * REMOVE: - SetKwInParam has been deleted since not useful itself because of different
-%                                macros which can do the same in a better and a more consistent way as
-%                                SetKwFunction or SetKw.
-%                      * FIX: - line number is now correctly vertically aligned with math display.
-%                      * FIX: - references with hyperref. No more same identifier or missing name error. BUT now
-%                               you must NOT use naturalnames option of hyperref packages if you do PdfLaTeX
-%                      * FIX: - autoref with hyperref package (thanks to Jörg Sommer who notices the problem).
-%                      * FIX: - titlenumbered was not working! fixed.
-%                      * FIX: - Else(){} acted like uElse. Corrected.
-%                      * FIX: - noend management: when a block was inside another and end of block was following
-%                               each other, a blank line was added: it's now corrected.
-%                      * FIX: - Function and Procedure environment was no more working as defined originally: the
-%                               label was no more name of the procedure, it acts always as if procumbered option
-%                               has been used.
-%                      * FIX: - line numbers had a fixed size which can be bigger than algorithm text accordingly
-%                               to \AlFnt set (see also new command \SetAlgoNlRelativeSize above)
-%                      * FIX: - semicolon in comments when dontprintsemicolon is used.
-%                      * FIX: - listofalgorithms adds a vertical space before first algo of a chapter as for
-%                               listoffigures or listoftables
-%                      * FIX: - listofalgorithms with twocolumns mode and some classes which don't allow onecolumn
-%                               and so don't define \if@restonecol as prescribed in LaTeX (sig-alternate for
-%                               example)
-%                      * FIX: - algorithm2e now works with elsart cls and some more classes.
-%                      * FIX: - blocks defined by SetKwBlock act now as other blocks (if for instance) and don't
-%                               write end in vlined mode, instead they print a small horizontal line as required
-%                               by the option.
-%                      * FIX: - underfull hbox warning at each end of algorithm environment removed.
-%
-%                      * INTERNAL CHANGE: - short end keyword are deduce from long end keyword by keeping the
-%                                           first one. Allows to avoid double definition.
-%                      * INTERNAL CHANGE: - procedure, function and algorithm are now resolved by the same
-%                               environment to avoid code duplication. 
-%
-%   - October  04 2005  - revision 3.9 -
-%                      * ADD: - \setalcaphskip command which sets the horizontal skip before Algorithm: in caption
-%                               when used in ruled algorithm.
-%                      * ADD: - \SetAlgoInsideSkip command which allows to add an extra vertical space before and
-%                               after the core of the algorithm (ie: \SetAlgoInsideSkip{bigskip}) 
-%                      * CHANGE: - caption, when used with figure option, is no more controlled by algorithm2e
-%                                  package and so follows the exact behaviour of figures. The drawback is that you
-%                                  cannot change the typo with AlTitleFnt or CapFnt. The avantage is that if you
-%                                  use caption package, it works.
-%                      * FIX: - problem with numbering line and pdflatex
-%                      * FIX: - error when algorithm2e package was used with beamer and listings together
-%   - February 12 2005  - revision 3.8 -
-%                      * FIX: - extra line with noend option.
-%   - February 10 2005  - revision 3.7 -
-%                      * ADD: - sidecomment: different macros allowing to put text right after code on the same
-%                               line. They are defined in the same time comment macros are defined with a star
-%                               after the macro name. By default comments are right justified but this can be
-%                               change with appropriate option in the macro. Ex:
-%                               . default: \tcc*{side comment}
-%                               . same as previous: \tcc*[r]{side comment}
-%                               . left justify: \tcc*[l]{side comment}
-%                               . here: \tcc*[h]{side comment} don't put the end of line mark before
-%                                       comment (; by default) and don't end the line.
-%                               . flushed: \tcc*[f]{side comment} same as the precedent but right
-%                                 justified
-%                      * ADD: - OPTION scright (default): right justified side comments (side comments
-%                               are flushed to the righr)
-%                      * ADD: - OPTION scleft: left justified side comments (side comments are put right after the
-%                               code line)
-%                      * ADD: - \SetSideCommentLeft acts as scleft option
-%                      * ADD: - \SetSideCommentRight acts as scright option
-%                      * ADD: - block like macro side text: all macro defining a block allows now to put text right
-%                               after key words by putting text into (). Done to be used with sidecomment macros,
-%                               but all text can be used. 
-%                               Ex: \eIf(\tcc*[f]{then comment}){test}{then text}(else side text){else text}
-%                      * ADD: - OPTION fillcomment (default): end mark of comment is flushed to the right so
-%                               comments fill all the width of text.
-%                      * ADD: - OPTION nofillcomment: end mark of comment is put right after the comment.
-%                      * ADD: - \SetNoFillComment acts as nofillcomment option.
-%                      * ADD: - \SetFillComment acts as fillcomment option.
-%                      * ADD: - OPTION dotocloa: which adds an entry in the toc for the list of algorithms. This
-%                               option load package tocbibind if not already done and so list of figures and list
-%                               of tables are also added in the toc. If you want to control which ones of the lists
-%                               will be added in the toc, please load package tocbibind before package algorithm
-%                               and give it the options you want.
-%                      * FIX: - vertical spacing for uif macro with noend option
-%                      * FIX: - all the compatibility problems between caption and other packages
-%                      * FIX: - typographical differences between list of algorithms and other lists  when in
-%                               report or book 
-%
-%   - January 24 2005  - revision 3.6 -
-%                      * FIX: - vertical spacing and space characters at the beginning or end of comments.
-%                               line numbers of comments not in the NlSty.
-%                               Thanks to Arnaud Giersch for his comments and suggestions.
-%                      * FIX: - Set*Sty macro: the styles defined was not protected and was modified by surrounding
-%                               context. For example KwTo in a \For{}{} was in bold AND italic instead of just in
-%                               bold.
-%                      * FIX: - line number misplacement after \Indp
-%
-%   - January 21 2005  - revision 3.5 -
-%                      * ADD: - hidden numbering of the lines. Lines are auto-numbered but numbers are shown only
-%                               on lines you specify:
-%                               * linesnumberedhidden option or \LinesNumberedHidden macro activate this
-%                                 functionnality.
-%                               * \ShowLn and \ShowLnLabel{lab} macros make the number visible on the
-%                               line. \ShowLnLabel{lab} allows to set a label for this line. 
-%                               Thanks to Samson de Jager who makes this suggestion and provides the macros.
-%                      * ADD: - \AlCapFnt and \SetAlCapFnt which allow to have a different font for
-%                               caption. Works like \AlFnt and \SetAlFnt and by default is the same.
-%                      * ADD: - \AlCapSkip skip length. This vertical space is added before caption in plain ou
-%                               boxed mode. It allows to change distance between text and caption.
-%                      * FIX: - caption compatible with IEEEtran class. 
-%                      * FIX: - some vertical spacing error with \uIf macros (Thanks to Arnaud Giersch)
-%                      * FIX: - Procedure and Function: lines are also numbered like algorithms
-%                      * FIX: - CommentSty was not used for Comments
-%
-%   - January 10 2005  - revision 3.4 -
-%                      * FIX: - caption compatible with new release of Beamer class. 
-%
-%   - June 16 2004     - revision 3.3 - 
-%                      * FIX: - Hyperlink references of Hyperref package works now if compiled with pdflatex 
-%                               and [naturalnames] option of hyperref package is used.
-%                      * FIX: - algorithm[H] had problem in an list environment - corrected
-%                      * FIX: - interline was not so regular in nested blocks - corrected
-%                      * ADD  - \SetVlineSkip macro which sets the vertical skip after the little horizontal 
-%                               rule which closes a block in Vlined mode. By default 0.8ex
-%
-%   - June 11 2004     - revision 3.2 - AUTO NUMBERING LINES !!!
-%                      * ADD: auto numbering of the lines (the so asked and so long awaiting feature)
-%                             this feature is managed by 3 options and 3 commands:
-%                             - linesnumbered option: lines of the algo are numbered except for comments and
-%                               input/output (KwInput and KwInOut)
-%                             - commentsnumbered option: makes comments be numbered
-%                             - inoutnumbered option: makes data input/output be numbered
-%                             - \nllabel{lab} labels the line so you can cite with \ref{lab}
-%                             - \LinesNumbered make the following algorithms having auto-numbered lines
-%                             - \linesnotnumbered make the following algorithms having no auto-numbered lines
-%                      * Change: algo2e option renames listofalgorithms in listofalgorithmes
-%                      * FIX: new solution for compatibility with color package, more robust and not tricky.
-%                             Many thanks to David Carlisle for his advices
-%
-%   - June 09 2004     - revision 3.1 -
-%                      * Change: \SetKwSwitch command defines an additionnal macro \uCase and \Case prints end
-%                      * Change: now macros SetKw* do a renewcommand if the keyword is already defined. So you can
-%                                redefine default definition at your own convenience or change your definition
-%                                without introducing a new macro and changing your text.
-%                      * ADD: new macro \SetKwIF which do \SetKwIf and
-%                             \SetKwIfElseIf.The following default definition has been added:
-%                             \SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{endif}
-%                             and so you get the macros;
-%                             \If \eIf \lIf \uIf \ElseIf \uElseIf \lElseIf \Else \uElse \lElse
-%                      * ADD: new macro \SetAlgoSkip which allow to fix the vertical skip before and after the
-%                             algorithms. Default is smallskip, do \SetAlgoSkip{} if you don't want an extra space
-%                             or \SetAlgoSkip{medskip} or \SetAlgoSkip{bigskip} if you want bigger space.
-%                      * ADD: macro \SetKwIf defines in addition a new macro \uElse  (depending on wat name you
-%                             have given in #2 arg).
-%                      * ADD: macro \SetKwIfElseIf defines in addition a new macro \uElse and \ugElseIf (depending
-%                             on what name you have given in #2 and #3 arg).
-%                      * Change: baseline of algorithm is now top, so two algorithms can be put side by side.
-%                      * FIX: Compatibility with color package solved. The problem was due to a redefinition of
-%                             standard macros by color package. This solves compatibility problem with other
-%                             packages as pstcol or colortbl. (notified by Dirk Fressmann, Antti Tarvainen and Koby
-%                             Crammer)
-%                      * Fix: extra little shift to the right with boxed style algorithm removed (notified by
-%                             P. Tanovski)
-%                      * Fix: algoln option was buggy (notified bye Jiaying Shen)
-%                      * Fix: german and portuges option didn't work due to bad typo (notified by Martin Sievers,
-%                             Thorsten Vitt and Jeronimo Pellegrini)
-%                      
-%   - February 13 2004 - revision 3.0 -
-%                      * Major revision which makes the package independent from float.sty, so now
-%                        - algorithm* works better, in particular can be used in multicols environments
-%                        - (known bug corrected)
-%                          [H] works now for all sort of environment but is handled differently for classic
-%                          environment and star environment (algorithm, figure, procedure and function). For star
-%                          environment, H acts like for classical figure environment, so it doesn't stay here
-%                          absolutely.
-%                        - (known bug corrected)
-%                          you can use now floatflt package with algorithm package and even with figure
-%                          option. Beware that if you want to put an algorithm inside a floatingfigure, it cannot
-%                          be floating, so [H] is required and then figure option should not be used, since
-%                          standard figure[H] are still floating with LaTeX.
-%                      * boxruled: a new style added. Possible now since no style no more defined by the float
-%                        package.
-%                      * nocaptionofalgo: dosen't print Algorithm #: in the caption for algorithm in ruled or
-%                        algoruled style.
-%                        note: this is just documentation of a macro which was already in the package.
-%   - December 14 2003 - revision 2.52 -
-%                      * output message shorter
-%                      * french keyword macro \PourTous was missing for longend option, it has been added.
-%                      * TitleofAlgo prints Function or Procedure in corresponding environments.
-%
-%   - October 27 2003  - revision 2.51 - Revision submitted to CTAN archive
-%                      * correction of a minor which make caption in procedure
-%                        and function to be blanck with pdfscreen package
-%                        (thanks to Joel Gossens for the notification)
-%                      * add two internal definition to avoid some errors when
-%                        used with Hyperref package (Hyperref package need to
-%                        define new counter macro from existing ones, and
-%                        don't do it for algorithm2e package, so we do it)
-%
-%   - October 17 2003  - revision 2.50 - first revision for CTAN archive
-%                      * add \AlFnt and \SetAlFnt{font} macros: \AlFnt is used at the beginning of the caption and
-%                        the body of algorithm in order to define the fonts used for typesetting algorithms. You
-%                        can use it elsewhere you want to typeset text as algorithm. For example you can do
-%                        \SetAlFnt{\small\sf} to have algorithms typeset in small sf font. Default is nothing so
-%                        algorithm is typeset as the text of the document.
-%                      * add \AlTitleFnt{text} and \SetAlTitleFnt{font} macros: The {Algorithm: } in the caption is
-%                        typeset with \AlTitleFnt{Algorithm:}. You can use it to have text typeset as {Algorithm:}
-%                        of captions. Default is textbf.  Default can be redefined by \SetAlTitleFnt{font}, for
-%                        example you can do \SetAlTitleFnt{emph}
-%                      * add CommentSty typo for text comment.  
-%                      * add some compatibility with hyperref package (still an error on multiply defined refs but
-%                        pdf correctly generated)
-%                      * flush text to left in order to have correct indentation even with class as amsart which
-%                        center all figures
-%                      * add german, portugues and czech options for title of algorithms and typo.
-%                      * add portuguese translation of predefined keywords * add czech translation of some
-%                        predefined keywords
-%
-%   - December 23 2002 - revision 2.40
-%                      * add some french keyword missing
-%                      * add function* and procedure* environment like algorithme* environment: print in one column
-%                        even if twocolumn option is specified for the document.
-%                      * add a new macro \SetKwComment to define macro which writes comments in the text. First
-%                        argument is the name of the macro, second is the text put before the comment, third is the
-%                        text put at the end of the comment.Default are \tcc and \tcp
-%                      * add new options to change the way algo are numbered:
-%                        [algopart] algo are numbered within part (counter must exist)
-%                        [algochapter] algo are numbered within chapter
-%                        [algosection] algo are numbered within section
-%
-%   - March 27 2002   - revision 2.39
-%                      * Gilles Geeraerts: added the \SetKwIfElseIf to manage
-%                        if (c)
-%                             i;
-%                        else if (c)
-%                             i;
-%                        ...
-%                        else
-%                             i;
-%                        end
-%                      * Also added \gIf \gElseIf \gElse.
-%
-%   - January 02 2001 - revision 2.38
-%                      * bugs related to the caption in procedure and function
-%                        environment are corrected.
-%                      * bug related to option noend (extra vertical space added
-%                        after block command as If or For) is corrected.
-%                      * czech option language added (thanks to Libor Bus: l.bus@sh.cvut.cz).
-%  
-%   - October 16 2000 - revision 2.37
-%                      * option algo2e added: change the name of environment
-%                        algorithm into algorithm2e. So allow to use the package
-%                        with some journal style which already define an algorithm
-%                        environment.
-%  
-%   - September 13 2000 - revision 2.36
-%                      * option slide added: require package color
-%                      * Hack for slide class in order to have correct
-%                        margins
-%  
-%   - November 25 1999 - revision 2.35
-%                      * revision number match RCS number
-%                      * Thanks to David A. Bader, a new option is added:
-%                        noend: no end keywords are printed.
-%  
-%   - November 19 1999 - revision 2.32
-%                      * minor bug on longend option corrected.
-%  
-%   - August 26 1999 - revision 2.31
-%                      * add an option : figure
-%                        this option makes algorithms be figure and so are numbered
-%                        as figures, have Figure as caption and are put in 
-%                        the \listoffigures
-%  
-%   - January 21 1999 - revision 2.3 beta
-%                    add 2 new environments: procedure and function.
-%                    These environments works like algorithm environment but:
-%                    - the ruled (or algoruled) style is imperative.
-%                    - the caption now writes Procedure name....
-%                    - the syntax of the \caption command is restricted as
-%                      follow: you MUST put a name followed by 2 braces like
-%                      this ``()''. You can put arguments inside the braces and
-%                      text after. If no argument is given, the braces will be
-%                      removed in the title. 
-%                    - label now puts the name (the text before the braces in the
-%                      caption) of the procedure or function as reference (not
-%                      the number like a classic algorithm environment).
-%                    There are also two new styles : ProcNameSty and
-%                    ProcArgSty. These style are by default the same as FuncSty
-%                    and ArgSty but are used in the caption of a procedure or a
-%                    function.
-%                    
-%   - November 28 1996 - revision 2.22
-%                    add a new macro \SetKwInParam{arg1}{arg2}{arg3}:
-%                    it defines a macro \arg1{name}{arg} which prints name in keyword
-%                    style followed byt arg surrounded by arg2 and arg3. The main
-%                    application is to a function working as \SetKwInput to be used
-%                    in the head of the algorithm. For example
-%                    \SetKwInParam{Func}{(}{)} allows
-%                    \Func{functionname}{list of arguments} which prints:
-%                    \KwSty{functioname(}list of arguments\KwSty{)}
-%       
-%
-%   - November 27 1996 - revision 2.21 :
-%                    minor bug in length of InOut boxes fixed.
-%                    add algorithm* environment.
-%
-%   - July 12 1996 - revision 2.2 : \SetArg and \SetKwArg macros removed.
-%                        
-%                    \SetArg has been removed since it never has been
-%                    documented.
-%                    \SetKwArg has been removed since \SetKw can now
-%                    take an argument in order to be consistent with
-%                    \SetKwData and \SetKwFunction macros.
-%
-%   - July 04 1996 - revision 2.1 : still more LaTeX2e! Minor compatibility break
-%
-%                    Macros use now \newcommand instead of \def, use of \setlength, 
-%                    \newsavebox, ... and other LaTeX2e specific stuff.
-%                    The compatibility break:
-%                    - \SetData becomes \SetKwData to be more consistent. So the old 
-%                      \SetKwData becomes \SetKwInput
-%                    - old macros \titleofalgo, \Freetitleofalgo and \freetitleofalgo
-%                      from LaTeX209 version which did print a warning message and call 
-%                      \Titleofalgo in version 2.0 are now removed!
-%
-%   - March 13 1996 - revision 2.0: first official major revision.
-%   
-%
-%%%%%%%%%%%%%%
-%
-%   Known bugs: 
-%   -----------
-%   - no more known bugs... all are corrected!
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% for more complete informations you can see algorithm2e.tex
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%% Identification Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-%
-\ProvidesPackage{algorithm2e}[2008/00/00 v3.10 algorithms environments]
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%% Initial Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\@makeother\*% some package redefined it as a letter (as color.sty)
-\def\@firstword#1 #2\@nil{#1}% an useful fonction
-%
-% definition of commands which can be redefined in options of the package.
-%
-\newcounter{AlgoLine}%
-\setcounter{AlgoLine}{0}%
-%
-\newcommand{\algocf@algocfref}{\relax}%
-\newcommand{\listalgorithmcfname}{}%
-\newcommand{\algorithmcfname}{}%
-\@ifundefined{algorithmautorefname}{\newcommand{\algorithmautorefname}{algorithm}}{\renewcommand{\algorithmautorefname}{algorithm}}%
-\newcommand{\algorithmcflinename}{}%
-\newcommand{\algocf@typo}{}%
-\newcommand{\@algocf@procname}{}\newcommand{\procedureautorefname}{}%
-\newcommand{\SetAlgoProcName}[2]{\renewcommand{\@algocf@procname}{#1}\renewcommand{\procedureautorefname}{#2}}%
-\newcommand{\@algocf@funcname}{}\newcommand{\functionautorefname}{}%
-\newcommand{\SetAlgoFuncName}[2]{\renewcommand{\@algocf@funcname}{#1}\renewcommand{\functionautorefname}{#2}}%
-\newcommand{\@algocf@titleofalgoname}{\algorithmcfname}%
-\newcommand{\@algocf@algotitleofalgo}{%
-  \renewcommand{\@algocf@titleofalgoname}{\algorithmcfname}}%
-\newcommand{\@algocf@proctitleofalgo}{%
-  \renewcommand{\@algocf@titleofalgoname}{\algocf@procname}}%
-%
-\newcommand{\algocf@style}{plain}%
-\newcommand{\@ResetCounterIfNeeded}{}%
-\newcommand{\@titleprefix}{}%
-%
-\newcommand{\algocf@numbering}[1]{\newcommand{\algocf@within}{#1}}%
-%
-\newcommand{\defaultsmacros@algo}{\algocf@defaults@shortend}%
-%
-\newcommand{\algocf@list}{loa}%
-\newcommand{\algocf@float}{algocf}%
-%
-\newcommand{\algocf@envname}{algorithm}%
-\newcommand{\algocf@listofalgorithms}{listofalgorithms}%
-%
-%
-%% redefine chapter so that it adds a vspace in the loa as the original does for lof and lot
-\let\algocf@original@chapter=\chapter%
-\def\chapter{\expandafter\addtocontents{loa}{\protect\addvspace{10\p@}}\algocf@original@chapter}%
-%
-%% if@restonecol is defined in article and book but some other classes don't define it and we need it, so we do
-\ifx\if@restonecol\relax\else\newif\if@restonecol\fi%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%% Declaration of Options %%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\RequirePackage{ifthen}%
-%
-\newboolean{algocf@nokwfunc}\setboolean{algocf@nokwfunc}{false}%
-\DeclareOption{nokwfunc}{%
-  \setboolean{algocf@nokwfunc}{true}%
-}%
-%
-\newboolean{algocf@oldcommands}\setboolean{algocf@oldcommands}{false}%
-\DeclareOption{oldcommands}{%
-  \setboolean{algocf@oldcommands}{true}%
-}%
-%
-\newboolean{algocf@leftlinenumber}\setboolean{algocf@leftlinenumber}{true}%
-\newcommand{\setLeftLinesNumbers}{\setboolean{algocf@leftlinenumber}{true}}%
-\newcommand{\setRightLinesNumbers}{\setboolean{algocf@leftlinenumber}{false}}%
-\DeclareOption{rightnl}{%
-  \setRightLinesNumbers%
-}%
-%
-\newboolean{algocf@endfloat}\setboolean{algocf@endfloat}{false}%
-\DeclareOption{endfloat}{%
-  \setboolean{algocf@endfloat}{true}%
-  \newcounter{postalgo}\setcounter{postalgo}{0}%
-}%
-%
-\newboolean{algocf@procnumbered}\setboolean{algocf@procnumbered}{false}%
-\DeclareOption{procnumbered}{%
-  \setboolean{algocf@procnumbered}{true}%
-}%
-%
-\DeclareOption{algo2e}{%
-  \renewcommand{\algocf@envname}{algorithm2e}%
-  \renewcommand{\algocf@listofalgorithms}{listofalgorithmes}%
-}%
-%
-\newboolean{algocf@slide}\setboolean{algocf@slide}{false}%
-\DeclareOption{slide}{%
-  \setboolean{algocf@slide}{true}%
-}%
-%
-\DeclareOption{figure}{%
-\renewcommand{\algocf@list}{lof}%
-\renewcommand{\algocf@float}{figure}%
-}%
-%
-\newboolean{algocf@optonelanguage}\setboolean{algocf@optonelanguage}{false}%
-\DeclareOption{onelanguage}{\setboolean{algocf@optonelanguage}{true}}%
-%
-\newcommand{\algocf@languagechoosen}{english}%
-%
-\DeclareOption{english}{%
-\renewcommand{\listalgorithmcfname}{List of Algorithms}%
-\renewcommand{\algorithmcfname}{Algorithm}%
-\renewcommand{\algorithmautorefname}{algorithm}%
-\renewcommand{\algorithmcflinename}{line}%
-\renewcommand{\algocf@typo}{}%
-\renewcommand{\@algocf@procname}{Procedure}%
-\renewcommand{\@algocf@funcname}{Function}%
-\renewcommand{\procedureautorefname}{procedure}%
-\renewcommand{\functionautorefname}{function}%
-\renewcommand{\algocf@languagechoosen}{english}%
-}%
-%
-\DeclareOption{french}{%
-\renewcommand{\listalgorithmcfname}{Liste des Algorithmes}%
-\renewcommand{\algorithmcfname}{Algorithme}%
-\renewcommand{\algorithmautorefname}{algorithme}%
-\renewcommand{\algorithmcflinename}{ligne}%
-\renewcommand{\algocf@typo}{\ }%
-\renewcommand{\@algocf@procname}{Procédure}%
-\renewcommand{\@algocf@funcname}{Fonction}%
-\renewcommand{\procedureautorefname}{procédure}%
-\renewcommand{\functionautorefname}{fonction}%
-\renewcommand{\algocf@languagechoosen}{french}%
-}%
-%
-\DeclareOption{czech}{%
-\renewcommand{\listalgorithmcfname}{Seznam algoritm\v{u}}%
-\renewcommand{\algorithmcfname}{Algoritmus}%
-\renewcommand{\algorithmautorefname}{\algorithmcfname}%
-\renewcommand{\algorithmcflinename}{Radek}%
-\renewcommand{\algocf@typo}{}%
-\renewcommand{\@algocf@procname}{Procedura}%
-\renewcommand{\@algocf@funcname}{Funkce}%
-\renewcommand{\procedureautorefname}{\@algocf@procname}%
-\renewcommand{\functionautorefname}{\@algocf@funcname}%
-\renewcommand{\algocf@languagechoosen}{czech}%
-}%
-%
-\DeclareOption{german}{%
-\renewcommand{\listalgorithmcfname}{Liste der Algorithmen}%
-\renewcommand{\algorithmcfname}{Algorithmus}%
-\renewcommand{\algorithmautorefname}{\algorithmcfname}%
-\renewcommand{\algorithmcflinename}{Zeile}%
-\renewcommand{\algocf@typo}{\ }%
-\renewcommand{\@algocf@procname}{Prozedur}%
-\renewcommand{\@algocf@funcname}{Funktion}%
-\renewcommand{\procedureautorefname}{\@algocf@procname}%
-\renewcommand{\functionautorefname}{\@algocf@funcname}%
-\renewcommand{\algocf@languagechoosen}{german}%
-}%
-%
-\DeclareOption{portuguese}{%
-\renewcommand{\listalgorithmcfname}{Lista de Algoritmos}%
-\renewcommand{\algorithmcfname}{Algoritmo}%
-\renewcommand{\algorithmautorefname}{algoritmo}%
-\renewcommand{\algorithmcflinename}{linha}%
-\renewcommand{\algocf@typo}{}%
-\renewcommand{\@algocf@procname}{Procedimento}%
-\renewcommand{\@algocf@funcname}{Fun\c{c}\~{a}o}%
-\renewcommand{\procedureautorefname}{procedimento}%
-\renewcommand{\functionautorefname}{fun\c{c}\~{a}o}%
-\renewcommand{\algocf@languagechoosen}{portuguese}%
-}%
-%
-\DeclareOption{italiano}{%
-\renewcommand{\listalgorithmcfname}{Elenco degli algoritmi}%
-\renewcommand{\algorithmcfname}{Algoritmo}%
-\renewcommand{\algorithmautorefname}{algoritmo}%
-\renewcommand{\algorithmcflinename}{riga}%
-\renewcommand{\algocf@typo}{}%
-\renewcommand{\@algocf@procname}{Procedura}%
-\renewcommand{\@algocf@funcname}{Funzione}%
-\renewcommand{\procedureautorefname}{procedura}%
-\renewcommand{\functionautorefname}{funzione}%
-\renewcommand{\algocf@languagechoosen}{italiano}%
-}%
-\DeclareOption{slovak}{%
-\renewcommand{\listalgorithmcfname}{Zoznam algoritmov}%
-\renewcommand{\algorithmcfname}{Algoritmus}%
-\renewcommand{\algorithmautorefname}{\algorithmcfname}%
-\renewcommand{\algorithmcflinename}{Radek}%
-\renewcommand{\algocf@typo}{}%
-\renewcommand{\@algocf@procname}{Proced\'{u}ra}%
-\renewcommand{\@algocf@funcname}{Funkcia}%
-\renewcommand{\procedureautorefname}{\@algocf@procname}%
-\renewcommand{\functionautorefname}{\@algocf@funcname}%
-\renewcommand{\algocf@languagechoosen}{slovak}%
-}%
-%
-% OPTIONs plain, boxed, ruled, algoruled & boxruled
-%
-\newcommand{\algocf@style@plain}{\renewcommand{\algocf@style}{plain}}%
-\newcommand{\algocf@style@boxed}{\renewcommand{\algocf@style}{boxed}}%
-\newcommand{\algocf@style@ruled}{\renewcommand{\algocf@style}{ruled}}%
-\newcommand{\algocf@style@algoruled}{\renewcommand{\algocf@style}{algoruled}}%
-\newcommand{\algocf@style@boxruled}{\renewcommand{\algocf@style}{boxruled}}%
-\newcommand{\algocf@style@tworuled}{\renewcommand{\algocf@style}{tworuled}}%
-\newcommand{\RestyleAlgo}[1]{\csname algocf@style@#1\endcsname}%
-\DeclareOption{plain}{\algocf@style@plain}%
-\DeclareOption{boxed}{\algocf@style@boxed}%
-\DeclareOption{ruled}{\algocf@style@ruled}%
-\DeclareOption{algoruled}{\algocf@style@algoruled}%
-\DeclareOption{boxruled}{\algocf@style@boxruled}%
-\DeclareOption{tworuled}{\algocf@style@tworuled}%
-%
-% OPTIONs algopart,algochapter & algosection
-%
-\DeclareOption{algopart}{\algocf@numbering{part}}%       %algo part numbered
-\DeclareOption{algochapter}{\algocf@numbering{chapter}}% %algo chapter numbered
-\DeclareOption{algosection}{\algocf@numbering{section}}% %algo section numbered
-%
-% OPTIONs resetcount & noresetcount
-%
-\DeclareOption{resetcount}{\renewcommand{\@ResetCounterIfNeeded}{\setcounter{AlgoLine}{0}}}%
-\DeclareOption{noresetcount}{\renewcommand{\@ResetCounterIfNeeded}{}}%
-%
-% OPTION linesnumbered
-%
-\newboolean{algocf@linesnumbered}\setboolean{algocf@linesnumbered}{false}%
-\newcommand{\algocf@linesnumbered}{\relax}%
-\DeclareOption{linesnumbered}{%
-  \setboolean{algocf@linesnumbered}{true}%
-  \renewcommand{\algocf@linesnumbered}{\everypar={\nl}}%
-}%
-%
-% OPTION linesnumberedhidden
-%
-\DeclareOption{linesnumberedhidden}{%
-  \setboolean{algocf@linesnumbered}{true}%
-  \renewcommand{\algocf@linesnumbered}{\everypar{\stepcounter{AlgoLine}}}%
-}%
-%
-% OPTION commentsnumbered inoutnumbered
-%
-\newboolean{algocf@commentsnumbered}\setboolean{algocf@commentsnumbered}{false}%
-\DeclareOption{commentsnumbered}{\setboolean{algocf@commentsnumbered}{true}}%
-\newboolean{algocf@inoutnumbered}\setboolean{algocf@inoutnumbered}{false}%
-\DeclareOption{inoutnumbered}{\setboolean{algocf@inoutnumbered}{true}}%
-%
-% OPTIONs titlenumbered & titlenotnumbered
-%
-\DeclareOption{titlenumbered}{%
-  \renewcommand{\@titleprefix}{%
-    \refstepcounter{\algocf@float}%
-    \AlTitleSty{\AlTitleFnt\@algocf@titleofalgoname\ \expandafter\csname the\algocf@float\endcsname\algocf@typo: }%
-  }%
-}%
-%
-\DeclareOption{titlenotnumbered}{\renewcommand{\@titleprefix}{%
-    \AlTitleSty{\AlTitleFnt\@algocf@titleofalgoname\algocf@typo: }}%
-}%
-%
-% OPTIONs algonl
-% line numbered with the counter of the algorithm
-%
-\DeclareOption{algonl}{\renewcommand{\theAlgoLine}{\expandafter\csname the\algocf@float\endcsname.\arabic{AlgoLine}}}%
-%
-% OPTIONs lined, vlined & noline
-%
-\DeclareOption{lined}{\AtBeginDocument{\SetAlgoLined}}%   \SetAlgoLined
-\DeclareOption{vlined}{\AtBeginDocument{\SetAlgoVlined}}% \SetAlgoVlined
-\DeclareOption{noline}{\AtBeginDocument{\SetAlgoNoLine}}%\SetAlgoNoLine (default)
-%
-% OPTIONs longend, shotend & noend
-%
-\DeclareOption{longend}{\AtBeginDocument{\SetAlgoLongEnd}}%  \SetAlgoLongEnd
-\DeclareOption{shortend}{\AtBeginDocument{\SetAlgoShortEnd}}%\SetAlgoShortEnd
-\DeclareOption{noend}{\AtBeginDocument{\SetAlgoNoEnd}}%      \SetAlgoNoEnd
-%
-% OPTION dotoc
-%
-\newboolean{algocf@dotocloa}\setboolean{algocf@dotocloa}{false}%
-\DeclareOption{dotocloa}{%
-  \setboolean{algocf@dotocloa}{true}%
-}
-%
-% OPTION comments
-%
-\newboolean{algocf@optfillcomment}\setboolean{algocf@optfillcomment}{true}%
-\DeclareOption{nofillcomment}{%
-  \setboolean{algocf@optfillcomment}{false}%
-}%
-\DeclareOption{fillcomment}{%
-  \setboolean{algocf@optfillcomment}{true}%
-}%
-%
-% OPTION sidecommments
-%
-\newboolean{algocf@scleft}\setboolean{algocf@scleft}{false}%
-\DeclareOption{scleft}{%
-  \setboolean{algocf@scleft}{true}%
-}%
-\DeclareOption{sright}{% default
-  \setboolean{algocf@scleft}{false}%
-}%
-%
-% OPTION norelsize
-%
-\newboolean{algocf@norelsize}\setboolean{algocf@norelsize}{false}%
-\DeclareOption{norelsize}{%
-  \setboolean{algocf@norelsize}{true}%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%% Execution of Options %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\ExecuteOptions{english,plain,resetcount,titlenotnumbered,lined,shortend}%
-%
-\ProcessOptions%
-%
-\@algocf@algotitleofalgo% fix name for \TitleOfAlgo to \algorithmcfname by default
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%% Package Loading %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%
-\RequirePackage{xspace}%
-%
-\ifthenelse{\boolean{algocf@endfloat}}{%
-  \RequirePackage{endfloat}%
-}{\relax}%
-%
-\ifthenelse{\boolean{algocf@norelsize}}{%
-  \newcommand{\relsize}[1]{\scriptsize}%
-}{%
-  \RequirePackage{relsize}%
-}%
-%
-\ifthenelse{\boolean{algocf@slide}}{\RequirePackage{color}}{}%
-%
-
-\AtEndOfPackage{%
-  \ifthenelse{\boolean{algocf@dotocloa}}{%
-    \renewcommand{\listofalgorithmes}{\tocfile{\listalgorithmcfname}{loa}}%
-  }{\relax}%
-}%
-%
-% if loa in toc required, load tocbibind package if not already done.
-\ifthenelse{\boolean{algocf@dotocloa}}{%
-  \ifx\@tocextra\undefined%
-  \RequirePackage{tocbibind}%
-  \fi%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Main Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\newcommand{\algocf@name}{algorithm2e}%
-\newcommand{\algocf@date}{december 14 2009}%
-\newcommand{\algocf@version}{Release 4.01}%
-\newcommand{\algocf@id}{\algocf@version\space -- \algocf@date\space --}%
-\typeout{********************************************************^^JPackage `\algocf@name'\space\algocf@id^^J%
-         - algorithm2e-announce@lirmm.fr  mailing list for announcement about releases^^J%
-         - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J%
-         subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'^^J%
-         - Author: Christophe Fiorio (fiorio@lirmm.fr)^^J********************************************************}%
-%%
-%%
-%%
-%%
-%%
-%%
-%%%% hyperref compatibility tricks: Hyperref package defines H counters from
-   % standard counters (i.e \theHpage from \thepage) and check some particular
-   % counters of some packages, unfortunately it doesn't do the same for
-   % algorithm2e package but act as Hcounter was defined. To avoid errors we
-   % defined \theHalgocf ourself
-%%%%
-%
-\@ifundefined{theHalgocf}{\def\theHalgocf{\thealgocf}}{}%
-\@ifundefined{theHAlgoLine}{\def\theHAlgoLine{\theAlgoLine}}{}%
-\@ifundefined{theHalgocfproc}{\def\theHalgocfproc{0}}{}%
-\@ifundefined{theHalgocffunc}{\def\theHalgocffunc{0}}{}%
-\@ifundefined{toclevel@algocf}{\def\toclevel@algocf{0}}{}%
-%
-% autoref from hyperref needs an autorefname, so we give it.
-\def\AlgoLineautorefname{\algorithmcflinename}%
-\def\algocfautorefname{\algorithmautorefname}%
-\def\algocfprocautorefname{\procedureautorefname}%
-\def\algocffuncautorefname{\functionautorefname}%
-%%
-%%
-%%
-\newcommand{\@defaultskiptotal}{0.5em}%
-\newskip\skiptotal\skiptotal=0.5em%
-\newskip\skiplinenumber\skiplinenumber=\hsize\advance\skiplinenumber by-\skiptotal%
-\newskip\skiprule%
-\newskip\skiphlne%
-\newskip\skiptext%
-\newskip\skiplength%
-\newskip\algomargin%
-\newskip\skipalgocfslide\skipalgocfslide=1em%
-\newdimen\algowidth%
-\newdimen\inoutsize%
-\newdimen\inoutline%
-\newdimen\interspacetitleruled\setlength{\interspacetitleruled}{2pt}%
-\newdimen\interspacealgoruled\setlength{\interspacealgoruled}{2pt}%
-\newdimen\interspacetitleboxruled\setlength{\interspacetitleboxruled}{2\lineskip}%
-%
-\newcommand{\@algoskip}{\smallskip}%
-\newcommand{\SetAlgoSkip}[1]{\renewcommand{\@algoskip}{\csname#1\endcsname}}%
-\newcommand{\@algoinsideskip}{\relax}%
-\newcommand{\SetAlgoInsideSkip}[1]{\renewcommand{\@algoinsideskip}{\csname#1\endcsname}}%
-%
-\newsavebox{\algocf@inoutbox}%
-\newsavebox{\algocf@inputbox}%
-%%
-%%
-\newcommand{\arg@e}{}%
-\newcommand{\arg@space}{\ }%
-\newcommand{\BlankLine}{\vskip 1ex}%
-%%
-\newcommand{\vespace}{1ex}%
-\newcommand{\SetInd}[2]{%
-\skiprule=#1%
-\skiptext=#2%
-\skiplength=\skiptext\advance\skiplength by \skiprule\advance\skiplength by 0.4pt}%
-\SetInd{0.5em}{1em}
-\algomargin=\leftskip\advance\algomargin by \parindent%
-\newcommand{\IncMargin}[1]{\advance\algomargin by #1}%
-\newcommand{\DecMargin}[1]{\advance\algomargin by -#1}%
-\newcommand{\SetNlSkip}[1]{%
-  \renewcommand{\@defaultskiptotal}{#1}%
-  \setlength{\skiptotal}{#1}}%
-%%
-\newskip\AlCapSkip\AlCapSkip=0ex%
-\newskip\AlCapHSkip\AlCapSkip=0ex%
-\newcommand{\SetAlCapSkip}[1]{\setlength{\AlCapSkip}{#1}}%
-\newcommand{\SetAlCapHSkip}[1]{\setlength{\AlCapHSkip}{#1}}%
-\SetAlCapHSkip{.5\algomargin}%
-%%
-%%
-\newcommand{\Indentp}[1]{\advance\leftskip by #1}%
-\newcommand{\Indp}{\advance\leftskip by 1em}%
-\newcommand{\Indpp}{\advance\leftskip by 0.5em}%
-\newcommand{\Indm}{\advance\leftskip by -1em}%
-\newcommand{\Indmm}{\advance\leftskip by -0.5em}%
-%%
-%%
-%% Line Numbering
-%%
-%%
-% number line style
-\newcommand{\algocf@nlrelsize}{-2}\newcommand{\SetAlgoNlRelativeSize}[1]{\renewcommand{\algocf@nlrelsize}{#1}}%
-\newcommand{\NlSty}[1]{\textnormal{\textbf{\relsize{\algocf@nlrelsize}#1}}}% default definition
-\newcommand{\SetNlSty}[3]{\renewcommand{\NlSty}[1]{\textnormal{\csname#1\endcsname{\relsize{\algocf@nlrelsize}#2##1#3}}}}%
-%
-% nl definitions
-%
-\newsavebox{\algocf@nlbox}%
-\newcommand{\algocf@printnl}[1]{%
-  \ifthenelse{\boolean{algocf@leftlinenumber}}{%
-    \skiplinenumber=\skiptotal\advance\skiplinenumber by\leftskip%
-    \strut\raisebox{0pt}{\llap{\NlSty{#1}\kern\skiplinenumber}}\ignorespaces%
-  }{%
-    \sbox\algocf@nlbox{\NlSty{#1}}%
-    \skiplinenumber=\hsize\advance\skiplinenumber by-\leftskip\advance\skiplinenumber by-\skiptext%
-    \advance\skiplinenumber by\algomargin\advance\skiplinenumber by.3em\advance\skiplinenumber by-\wd\algocf@nlbox%
-    \strut\raisebox{0pt}{\rlap{\kern\skiplinenumber\NlSty{#1\ignorespaces}}}\ignorespaces%
-  }%
-}%
-\newcommand{\algocf@nl@sethref}[1]{%
-  \renewcommand{\theHAlgoLine}{\thealgocfproc.#1}%
-  \hyper@refstepcounter{AlgoLine}\gdef\@currentlabel{#1}%
-}%
-\newcommand{\nl}{%
-  \@ifundefined{hyper@refstepcounter}{% if not hyperref then do a simple refstepcounter
-    \refstepcounter{AlgoLine}%
-  }{% else if hyperref, do the anchor so 2 lines in two differents algorithms cannot have the same href
-    \stepcounter{AlgoLine}\algocf@nl@sethref{\theAlgoLine}%
-  }% now we can do the line numbering
-  \algocf@printnl{\theAlgoLine}%
-}%
-%
-\newcommand{\nllabel}[1]{\label{#1}}%
-%
-\newcommand{\enl}{%
-  \@ifundefined{hyper@refstepcounte}{% if not hyperref then do a simple refstepcounter
-    \refstepcounter{AlgoLine}%
-  }{% else if hyperref, do the anchor so 2 lines in two differents algorithms cannot have the same href
-    \stepcounter{AlgoLine}\algocf@nl@sethref{\theAlgoLine}%
-  }% now we can do the line numbering
-  \skiplinenumber=\hsize\advance\skiplinenumber by-\leftskip%
-  \strut\raisebox{0pt}{\rlap{\kern\skiplinenumber\strut\NlSty{\theAlgoLine}}}\ignorespaces%
-}
-%% nlset
-\newcommand{\nlset}[1]{%
-  \@ifundefined{hyper@refstepcounter}{\protected@edef\@currentlabel{#1}}{\algocf@nl@sethref{#1}}\algocf@printnl{#1}%
-}%
-%
-%% lnl definitions
-\newcommand{\lnl}[1]{\nl\label{#1}}%
-%
-%% lnlset
-\newcommand{\lnlset}[2]{\nlset{#2}\label{#1}}%
-%
-% set char put at end of each line
-%
-\newcommand{\algocf@endline}{\string;}
-\newcommand{\SetEndCharOfAlgoLine}[1]{\renewcommand{\algocf@endline}{#1}}
-%
-% end of line definition
-%
-\newcommand{\@endalgocfline}{\algocf@endline}% default definition: printsemicolon
-\newcommand{\DontPrintSemicolon}{\renewcommand{\@endalgocfline}{\relax}}%
-\newcommand{\PrintSemicolon}{\renewcommand{\@endalgocfline}{\algocf@endline}}%
-\newcommand{\@endalgoln}{\@endalgocfline\hfill\strut\par}%
-%
-% line numbering
-%
-\newcommand{\LinesNumbered}{\setboolean{algocf@linesnumbered}{true}\renewcommand{\algocf@linesnumbered}{\everypar={\nl}}}%
-\newcommand{\LinesNotNumbered}{%
-  \setboolean{algocf@linesnumbered}{false}%
-  \renewcommand{\algocf@linesnumbered}{\relax}%
-}%
-%
-\newcommand{\LinesNumberedHidden}{%
-  \setboolean{algocf@linesnumbered}{true}\renewcommand{\algocf@linesnumbered}{\everypar{\stepcounter{AlgoLine}}}}%
-\newcommand{\ShowLn}{\nlset{\theAlgoLine}\ignorespaces}% display the line number on this line (without labelling)
-\newcommand{\ShowLnLabel}[1]{\lnlset{#1}{\theAlgoLine}\ignorespaces}% display the line number and label this line
-%
-%%
-%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Styling text commands
-%
-\newcommand{\AlFnt}{\relax}% default definition
-\newcommand{\SetAlFnt}[1]{\renewcommand{\AlFnt}{#1}}%
-\newcommand{\AlTitleFnt}{\relax}% default definition
-\newcommand{\SetAlTitleFnt}[1]{\renewcommand{\AlTitleFnt}{#1}}%
-%
-\newcommand{\AlCapFnt}{\relax}% default definition
-\newcommand{\SetAlCapFnt}[1]{\renewcommand{\AlCapFnt}{#1}}%
-\newcommand{\AlCapNameFnt}{\relax}% default definition
-\newcommand{\SetAlCapNameFnt}[1]{\renewcommand{\AlCapNameFnt}{#1}}%
-%
-\newcommand{\ProcFnt}{\relax}% default definition
-\newcommand{\SetProcFnt}[1]{\renewcommand{\ProcFnt}{#1}}%
-\newcommand{\ProcNameFnt}{\relax}% default definition
-\newcommand{\SetProcNameFnt}[1]{\renewcommand{\ProcNameFnt}{#1}}%
-\newcommand{\ProcArgFnt}{\relax}% default definition
-\newcommand{\SetProcArgFnt}[1]{\renewcommand{\ProcArgFnt}{#1}}%
-%
-\newcommand{\AlTitleSty}[1]{\textbf{#1}\unskip}% default definition
-\newcommand{\SetAlTitleSty}[1]{\renewcommand{\AlTitleSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-\newcommand{\AlCapSty}[1]{\textnormal{\textbf{#1}}\unskip}% default definition
-\newcommand{\SetAlCapSty}[1]{\renewcommand{\AlCapSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-\newcommand{\AlCapNameSty}[1]{\textnormal{#1}\unskip}% default definition
-\newcommand{\SetAlCapNameSty}[1]{\renewcommand{\AlCapNameSty}[1]{\textnormal{\csname #1\endcsname{##1}}\unskip}}%
-%
-\newcommand{\ProcSty}[1]{\AlCapSty{#1}}%
-\newcommand{\SetProcSty}[1]{\renewcommand{\ProcSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-\newcommand{\ProcNameSty}[1]{\AlCapNameSty{#1}}%
-\newcommand{\SetProcNameSty}[1]{\renewcommand{\ProcNameSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-\newcommand{\ProcArgSty}[1]{\AlCapNameSty{#1}}%
-\newcommand{\SetProcArgSty}[1]{\renewcommand{\ProcArgSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-%
-\newcommand{\KwSty}[1]{\textnormal{\textbf{#1}}\unskip}% default definition
-\newcommand{\SetKwSty}[1]{\renewcommand{\KwSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-\newcommand{\ArgSty}[1]{\textnormal{\emph{#1}}\unskip}%\SetArgSty{emph}
-\newcommand{\SetArgSty}[1]{\renewcommand{\ArgSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-\newcommand{\FuncSty}[1]{\textnormal{\texttt{#1}}\unskip}%\SetFuncSty{texttt}
-\newcommand{\SetFuncSty}[1]{\renewcommand{\FuncSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-\newcommand{\DataSty}[1]{\textnormal{\textsf{#1}}\unskip}%%\SetDataSty{textsf}
-\newcommand{\SetDataSty}[1]{\renewcommand{\DataSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-\newcommand{\CommentSty}[1]{\textnormal{\texttt{#1}}\unskip}%%\SetDataSty{texttt}
-\newcommand{\SetCommentSty}[1]{\renewcommand{\CommentSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
-\newcommand{\TitleSty}[1]{#1\unskip}%\SetTitleSty{}{}
-\newcommand{\SetTitleSty}[2]{\renewcommand{\TitleSty}[1]{%
-\csname#1\endcsname{\csname#2\endcsname##1}}\unskip}%
-%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Block basic commands
-%
-\newcommand{\algocf@push}[1]{\advance\skiptotal by #1\moveright #1}%
-\newcommand{\algocf@pop}[1]{\advance\skiptotal by -#1}%
-\newcommand{\algocf@addskiptotal}{\advance\skiptotal by 0.4pt\advance\hsize by -0.4pt}% 0.4 pt=width of \vrule
-\newcommand{\algocf@subskiptotal}{\advance\skiptotal by -0.4pt\advance\hsize by 0.4pt}% 0.4 pt=width of \vrule
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%% group of instructions definition
-%
-\skiphlne=.8ex%
-\newcommand{\SetVlineSkip}[1]{\skiphlne=#1}%
-%
-%% block with a vertical line end by a little horizontal line
-\newcommand{\algocf@Vline}[1]{%     no vskip in between boxes but a strut to separate them, 
-  \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it
-  \algocf@push{\skiprule}%        move to the right before the vertical rule
-  \hbox{\vrule%
-    \vtop{\algocf@push{\skiptext}%move the right after the rule
-      \vtop{\algocf@addskiptotal\advance\hsize by -\skiplength #1}\Hlne}}\vskip\skiphlne% inside the block
-  \algocf@pop{\skiprule}%\algocf@subskiptotal% restore indentation
-  \nointerlineskip}% no vskip after
-%
-%% block with a vertical line
-\newcommand{\algocf@Vsline}[1]{%    no vskip in between boxes but a strut to separate them, 
-  \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it
-  \algocf@push{\skiprule}%        move to the right before the vertical rule
-  \hbox{\vrule%               the vertical rule
-    \vtop{\algocf@push{\skiptext}%move the right after the rule
-      \vtop{\algocf@addskiptotal\advance\hsize by -\skiplength #1}}}% inside the block
-  \algocf@pop{\skiprule}}% restore indentation
-%
-\newcommand{\algocf@Hlne}{\hrule height 0.4pt depth 0pt width .5em}%
-%
-%% block without line
-\newcommand{\algocf@Noline}[1]{%    no vskip in between boxes but a strut to separate them, 
-  \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it
-  \algocf@push{\skiprule}%
-  \hbox{%
-    \vtop{\algocf@push{\skiptext}%
-      \vtop{\advance\hsize by -\skiplength #1}}}% inside the block
-  \algocf@pop{\skiprule}%
-  % \nointerlineskip% no vskip after
-}%
-%
-%% default=NoLine
-%
-\newcommand{\algocf@group}[1]{\algocf@Noline{##1}}% group: set of instruction depending from another (ex: then part of the If)
-\newcommand{\algocf@@block}[2]{\algocf@Noline{##1}\KwSty{##2}\par}% block: group with a end keyword.
-\newcommand{\algocf@block}[2]{\algocf@@block{#1}{#2}}% command that will be used and redefined accordingly to noend option
-\newcommand{\algocf@setBlock}{%
-  \ifthenelse{\boolean{algocf@optnoend}}{%     if no end option
-    \renewcommand{\algocf@block}[2]{\algocf@group{##1}}%     block will be a group
-  }{%                                          else
-    \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}% block stays a block
-  }%
-}%
-%
-\newcommand{\Hlne}{}% little hrizontal line ending a block in vline mode
-%
-\newcommand{\@algocf@endoption}[1]{#1}%
-\newboolean{algocf@optnoend}\setboolean{algocf@optnoend}{false}%
-%
-\newcommand{\SetAlgoLongEnd}{%%%%%%%%%%%%%%%%%%%%%%%%% Long End
-  \setboolean{algocf@optnoend}{false}%
-  \renewcommand{\@algocf@endoption}[1]{##1}%
-  \algocf@setBlock}%
-%
-\newcommand{\SetAlgoShortEnd}{%%%%%%%%%%%%%%%%%%%%%%%% ShortEnd
-  \setboolean{algocf@optnoend}{false}%
-  \renewcommand{\@algocf@endoption}[1]{\@firstword##1 \@nil}%
-  \algocf@setBlock}%
-%
-\newcommand{\SetAlgoNoEnd}{%%%%%%%%%%%%%%%%%%%%%%%%%%% NoEnd
-  \setboolean{algocf@optnoend}{true}%
-  \renewcommand{\@algocf@endoption}[1]{}%
-  \algocf@setBlock}%
-%
-\newcommand{\SetAlgoNoLine}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline
-\renewcommand{\algocf@@block}[2]{\algocf@Noline{##1}\KwSty{##2}\strut\par}%
-\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}%
-\renewcommand{\Hlne}{}}%
-%
-\newcommand{\SetAlgoVlined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Vline
-\renewcommand{\algocf@@block}[2]{\algocf@Vline{##1}}%
-\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}%
-\renewcommand{\Hlne}{\algocf@Hlne}}%
-%
-\newcommand{\SetAlgoLined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Line
-\renewcommand{\algocf@@block}[2]{\strut\algocf@Vsline{##1}\KwSty{##2}\strut\par}% no skip after a block so garantie at least a line
-\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}%
-\renewcommand{\Hlne}{}}%
-%
-\newcommand{\SetNothing}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline
-\renewcommand{\algocf@@block}[2]{\algocf@Noline{##1}\par}%
-%\long
-\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}%
-\renewcommand{\Hlne}{}}%
-%
-%%
-%%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% ``Input :'''s like command 
-%
-%%%
-% text staying at the right of the longer keyword of KwInOut commands 
-% (text of KwInOut commands are all vertically aligned)
-%
-\newcommand{\algocf@newinout}{\par\parindent=\wd\algocf@inoutbox}% to put right indentation after a \\ in the KwInOut
-\newcommand{\SetKwInOut}[2]{%
-  \sbox\algocf@inoutbox{\KwSty{#2}\algocf@typo:}%
-  \expandafter\ifx\csname InOutSizeDefined\endcsname\relax% if first time used
-    \newcommand\InOutSizeDefined{}\setlength{\inoutsize}{\wd\algocf@inoutbox}%
-  \else% else keep the larger dimension
-    \ifdim\wd\algocf@inoutbox>\inoutsize\setlength{\inoutsize}{\wd\algocf@inoutbox}\fi%
-  \fi% the dimension of the box is now defined.
-  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-  \expandafter\algocf@mkcmd\csname#1\endcsname[1]{%
-    \ifthenelse{\boolean{algocf@inoutnumbered}}{\relax}{\everypar={\relax}}%
-    {\let\\\algocf@newinout\hangindent=\wd\algocf@inoutbox\hangafter=1\parbox[t]{\inoutsize}{\KwSty{#2}\algocf@typo\hfill:}~##1\par}%
-    \algocf@linesnumbered% reset the numbering of the lines
-  }}%
-%
-%% allow to ajust the skip size of InOut
-%%
-\newcommand{\ResetInOut}[1]{%
-  \sbox\algocf@inoutbox{\hbox{\KwSty{#1}\algocf@typo:\ }}%
-  \setlength{\inoutsize}{\wd\algocf@inoutbox}%
-  }%
-%
-% 
-%%%
-% text staying at the right of the keyword.
-%
-\newcommand{\algocf@newinput}{\par\parindent=\wd\algocf@inputbox}% to put right indentation after a \\ in the KwInput
-\newcommand{\SetKwInput}[2]{%
-  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-  \expandafter\algocf@mkcmd\csname#1\endcsname[1]{%
-    \sbox\algocf@inputbox{\hbox{\KwSty{#2}\algocf@typo: }}%
-    \ifthenelse{\boolean{algocf@inoutnumbered}}{\relax}{\everypar={\relax}}%
-    {\let\\\algocf@newinput\hangindent=\wd\algocf@inputbox\hangafter=1\unhbox\algocf@inputbox##1\par}%
-    \algocf@linesnumbered% reset the numbering of the lines
-  }}%
-\newcommand{\SetKwData}[2]{%
-  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-  \expandafter\algocf@mkcmd\csname @#1\endcsname[1]{\DataSty{#2(}\ArgSty{##1}\DataSty{)}}%
-  \expandafter\algocf@mkcmd\csname#1\endcsname{%
-    \@ifnextchar\bgroup{\csname @#1\endcsname}{\DataSty{#2}\xspace}}%
-  }%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% tallent:
-%
-% Add following macros:
-%   \SetKwHangingKw:  [kw] ------------   <= hanging determined by [kw]
-%                          ------------
-% Should act like a combination of \SetKwInput and \SetKw.
-% Based on \SetKwInput:
-%   - remove ':' at end of keyword
-%   - do not reset numbering
-%   - use separate savebox
-\newsavebox{\algocf@hangingbox}
-\newcommand{\algocf@newhanging}{\par\parindent=\wd\algocf@hangingbox}% to put right indentation after a \\ in the KwInput
-\newcommand{\SetKwHangingKw}[2]{%
-  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-  \expandafter\algocf@mkcmd\csname#1\endcsname[1]{%
-    \sbox\algocf@hangingbox{\hbox{\KwSty{#2}\algocf@typo\ }}%
-    {\let\\\algocf@newhanging\hangindent=\wd\algocf@hangingbox\hangafter=1\unhbox\algocf@hangingbox##1\;}%
-  }%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Comments macros
-%
-%%%%
-% comment in the text, first argument is the name of the macro, second is
-% the text put before the comment, third is the text put at the end of the
-% comment.
-%
-% first side comment justification
-\newcommand{\SetSideCommentLeft}{\setboolean{algocf@scleft}{true}}%
-\newcommand{\SetSideCommentRight}{\setboolean{algocf@scleft}{false}}%
-\newcommand{\SetNoFillComment}{\setboolean{algocf@optfillcomment}{false}}%
-\newcommand{\SetFillComment}{\setboolean{algocf@optfillcomment}{true}}%
-%
-% next comment and side comment
-%
-\newcommand{\algocf@endmarkcomment}{\relax}%
-\newcommand{\algocf@fillcomment}{%
-  \ifthenelse{\boolean{algocf@optfillcomment}}{\hfill}{\relax}}%
-%
-\newcommand{\algocf@startcomment}{%
-  \hangindent=\wd\algocf@inputbox\hangafter=1\usebox\algocf@inputbox}%
-\newcommand{\algocf@endcomment}{\algocf@fillcomment\algocf@endmarkcomment\ignorespaces\par}%
-\newcommand{\algocf@endstartcomment}{\algocf@endcomment\algocf@startcomment\ignorespaces}%
-%
-\newboolean{algocf@sidecomment}%
-\newboolean{algocf@altsidecomment}\setboolean{algocf@altsidecomment}{false}%
-\newcommand{\algocf@scpar}{\ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\par}}%
-\newcommand{\algocf@sclfill}{\ifthenelse{\boolean{algocf@scleft}}{\algocf@fillcomment}{\relax}}%
-\newcommand{\algocf@scrfill}{\ifthenelse{\boolean{algocf@scleft}}{\relax}{\hfill}}%
-\newcommand{\algocf@startsidecomment}{\usebox\algocf@inputbox}%
-\newcommand{\algocf@endsidecomment}{\algocf@endmarkcomment\algocf@scpar}%
-\newcommand{\algocf@endstartsidecomment}{%
-  \algocf@sclfill\algocf@endsidecomment%
-  \algocf@scrfill\algocf@startsidecomment\ignorespaces}%
-%
-\newcommand{\SetKwComment}[3]{%
-  % newcommand or renewcommand ?
-  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-  %%% comment definition
-  \expandafter\algocf@mkcmd\csname algocf@#1\endcsname[1]{%
-    \sbox\algocf@inputbox{\CommentSty{\hbox{#2}}}%
-    \ifthenelse{\boolean{algocf@commentsnumbered}}{\relax}{\everypar={\relax}}%
-    {\renewcommand{\algocf@endmarkcomment}{#3}%
-      \let\\\algocf@endstartcomment%
-      \algocf@startcomment\CommentSty{%
-        \strut\ignorespaces##1\strut\algocf@fillcomment#3}\par}%
-    \algocf@linesnumbered% reset the numbering of the lines
-  }%
-  %%% side comment definitions
-  % option or not?
-  \expandafter\algocf@mkcmd\csname algocf@#1@star\endcsname{%
-    \@ifnextchar [{\csname algocf@#1@staropt\endcsname}{\csname algocf@#1@sidecomment\endcsname}%
-  }%
-  % manage option
-  \expandafter\def\csname algocf@#1@staropt\endcsname[##1]##2{%
-    \ifthenelse{\boolean{algocf@scleft}}{\setboolean{algocf@sidecomment}{true}}{\setboolean{algocf@sidecomment}{false}}%
-    \ifx##1h\setboolean{algocf@altsidecomment}{true}\SetSideCommentLeft\fi%
-    \ifx##1f\setboolean{algocf@altsidecomment}{true}\SetSideCommentRight\fi%
-    \ifx##1l\setboolean{algocf@altsidecomment}{false}\SetSideCommentLeft\fi%
-    \ifx##1r\setboolean{algocf@altsidecomment}{false}\SetSideCommentRight\fi%
-    \csname algocf@#1@sidecomment\endcsname{##2}% call sidecomment
-    \ifthenelse{\boolean{algocf@sidecomment}}{\setboolean{algocf@scleft}{true}}{\setboolean{algocf@scleft}{false}}%
-    \setboolean{algocf@altsidecomment}{false}%
-  }%
-  % side comment
-  \expandafter\algocf@mkcmd\csname algocf@#1@sidecomment\endcsname[1]{%
-    \sbox\algocf@inputbox{\CommentSty{\hbox{#2}}}%
-    \ifthenelse{\boolean{algocf@commentsnumbered}}{\relax}{\everypar={\relax}}%
-    {%
-      \renewcommand{\algocf@endmarkcomment}{#3}%
-      \let\\\algocf@endstartsidecomment%
-      % here is the comment
-      %\ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\algocf@endline\ }%
-      \ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\@endalgocfline\ }%
-      \algocf@scrfill\algocf@startsidecomment\CommentSty{%
-        \strut\ignorespaces##1\strut\algocf@sclfill#3}\algocf@scpar%
-    }%
-    \algocf@linesnumbered% reset the numbering of the lines
-  }
-  \expandafter\algocf@mkcmd\csname#1\endcsname{\@ifstar{\csname algocf@#1@star\endcsname}{\csname algocf@#1\endcsname}}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Kw
-%
-\newcommand{\SetKw}[2]{%
-  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-  \expandafter\algocf@mkcmd\csname @#1\endcsname[1]{\KwSty{#2} \ArgSty{##1}}%
-  \expandafter\algocf@mkcmd\csname#1\endcsname{%
-    \@ifnextchar\bgroup{\csname @#1\endcsname}{\KwSty{#2}\xspace}}%
-  }%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% KwFunction
-%
-\newcommand{\SetKwFunction}[2]{%
-%%% use of gdef since newcommand doesn't manage to define the macro when SetKwFunction is used in \algocf@caption@proc
-  \expandafter\gdef\csname @#1\endcsname##1{\FuncSty{#2(}\ArgSty{##1}\FuncSty{)}}%
-  \expandafter\gdef\csname#1\endcsname{%
-    \@ifnextchar\bgroup{\csname @#1\endcsname}{\FuncSty{#2}\xspace}}%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% KwTab
-%
-\newcommand{\SetKwArray}[2]{%
-%%% use of gdef since newcommand doesn't manage to define the macro when SetKwFunction is used in \algocf@caption@proc
-  \expandafter\gdef\csname @#1\endcsname##1{\DataSty{#2[}\ArgSty{##1}\DataSty{]}}%
-  \expandafter\gdef\csname#1\endcsname{%
-    \@ifnextchar\bgroup{\csname @#1\endcsname}{\DataSty{#2}\xspace}}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% KwBlock
-%
-\newcommand{\SetKwBlock}[3]{%
-\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-% side text or not? 
-\expandafter\def\csname#1\endcsname{%Begin
-  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@#1opt\endcsname(##1)##2{% \Begin(){}
-  \KwSty{#2} ##1\algocf@block{##2}{\@algocf@endoption{#3}}%
-  \@ifnextchar({\csname algocf@#1end\endcsname}{\par}}%
-% without side text at the beginning
-\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[1]{% \Begin{}
-  \KwSty{#2}\algocf@block{##1}{\@algocf@endoption{#3}}\@ifnextchar({\csname algocf@#1end\endcsname}{\par}}%
-% side text at the end
-\expandafter\def\csname algocf@#1end\endcsname(##1){% \Begin{}
-  \ ##1\par}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% For Switch
-%
-\newcommand{\SetKwSwitch}[8]{% #1=\Switch #2=\Case #3=\Other #4=swicth #5=case #6=do #7=otherwise #8=endsw
-%%%% Switch
-\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-% side text or not? 
-\expandafter\def\csname#1\endcsname{%Switch
-  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \Switch(){}{}
-  \KwSty{#4} \ArgSty{##2} \KwSty{#5} ##1\algocf@block{##3}{\@algocf@endoption{#8}}}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \Switch{}{}
-  \KwSty{#4} \ArgSty{##1} \KwSty{#5}\algocf@block{##2}{\@algocf@endoption{#8}}}%
-% side text at the end
-\expandafter\def\csname algocf@#1end\endcsname(##1){% \Switch{}{}()
-}%
-%
-%%%% Case
-\@ifundefined{algocf@#2}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-% side text or not?
-\expandafter\def\csname#2\endcsname{%Case
-  \@ifnextchar({\csname algocf@#2opt\endcsname}{\csname algocf@#2\endcsname}}%
-\expandafter\def\csname u#2\endcsname{%uCase
-  \@ifnextchar({\csname algocf@u#2opt\endcsname}{\csname algocf@u#2\endcsname}}%
-\expandafter\def\csname l#2\endcsname{%lCase
-  \@ifnextchar({\csname algocf@l#2opt\endcsname}{\csname algocf@l#2\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@#2opt\endcsname(##1)##2##3{% \Case(){}{}
-  \KwSty{#6} \ArgSty{##2} ##1\algocf@block{##3}{\@algocf@endoption{#8}}}%
-\expandafter\def\csname algocf@u#2opt\endcsname(##1)##2##3{% \uCase(){}{}
-  \KwSty{#6} \ArgSty{##2} ##1\algocf@group{##3}}%
-\expandafter\def\csname algocf@l#2opt\endcsname(##1)##2##3{% \lCase(){}{}
-  \KwSty{#6} \ArgSty{##2} ##3\algocf@endline\ ##1\par}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@#2\endcsname[2]{% \Case{}{}
-  \KwSty{#6} \ArgSty{##1}\algocf@block{##2}{\@algocf@endoption{#8}}}%
-\expandafter\algocf@mkcmd\csname algocf@u#2\endcsname[2]{% \uCase{}{}
-  \KwSty{#6} \ArgSty{##1}\algocf@group{##2}}%
-\expandafter\algocf@mkcmd\csname algocf@l#2\endcsname[2]{% \lCase{}{}
-  \KwSty{#6} \ArgSty{##1} ##2}%
-%%%% Other
-\@ifundefined{algocf@#3}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-% side text or not?
-\expandafter\def\csname#3\endcsname{%Other
-  \@ifnextchar({\csname algocf@#3opt\endcsname}{\csname algocf@#3\endcsname}}%
-\expandafter\def\csname l#3\endcsname{%Other
-  \@ifnextchar({\csname algocf@l#3opt\endcsname}{\csname algocf@l#3\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@#3opt\endcsname(##1)##2{% \Other(){}{}
-  \KwSty{#7} ##1\algocf@block{##2}{\@algocf@endoption{#8}}}%
-\expandafter\def\csname algocf@l#3opt\endcsname(##1)##2{% \Other(){}{}
-  \KwSty{#7} ##2\algocf@endline\ ##1\par}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@#3\endcsname[1]{% default
-  \KwSty{#7}\algocf@block{##1}{\@algocf@endoption{#8}}}%
-\expandafter\algocf@mkcmd\csname algocf@l#3\endcsname[1]{% ldefault
-  \KwSty{#7} ##1}%
-}%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% If macros
-%
-\newcommand{\SetKwIF}[8]{% #1=\If #2=\ElseIf #3=\Else #4=if #5=then #6=elseif si #7=else #8=endif
-% 
-% common text
-\@ifundefined{#1@ifthen}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-\expandafter\algocf@mkcmd\csname #1@ifthen\endcsname[1]{%
-  \KwSty{#4} \ArgSty{##1} \KwSty{#5}}%
-\expandafter\algocf@mkcmd\csname #1@endif\endcsname[1]{\algocf@block{##1}{\@algocf@endoption{#8}}}%
-\expandafter\algocf@mkcmd\csname #1@noend\endcsname[1]{\algocf@group{##1}}%
-\expandafter\algocf@mkcmd\csname #1@else\endcsname[1]{\algocf@group{##1}\KwSty{#7}}%
-\@ifundefined{#2@elseif}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-\expandafter\algocf@mkcmd\csname #2@elseif\endcsname[1]{%
-  \KwSty{#6} \ArgSty{##1} \KwSty{#5}}%
-\@ifundefined{#3@else}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-\expandafter\algocf@mkcmd\csname #3@else\endcsname{\KwSty{#7}}%
-%%%% If then { } endif
-%
-\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-% side text or not?
-\expandafter\def\csname#1\endcsname{%
-  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \If(){}{}
-  \csname #1@ifthen\endcsname{##2} ##1\csname #1@endif\endcsname{##3}}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \If{}{}
-  \csname #1@ifthen\endcsname{##1}\csname #1@endif\endcsname{##2}}%
-%
-%%%% If then {} else {} endif
-%
-% side text or not?
-\expandafter\def\csname e#1\endcsname{%
-  \@ifnextchar({\csname algocf@e#1thenopt\endcsname}{\csname algocf@e#1then\endcsname}}%
-% with side text after if
-\expandafter\def\csname algocf@e#1thenopt\endcsname(##1)##2##3{% \eIf()
-  \csname #1@ifthen\endcsname{##2} ##1\csname #1@else\endcsname{##3}%
-  \csname algocf@e#1thenelse\endcsname}%
-% without side text after if
-\expandafter\def\csname algocf@e#1then\endcsname##1##2{% \eIf()
-  \csname #1@ifthen\endcsname{##1}\csname #1@else\endcsname{##2}%
-  \csname algocf@e#1thenelse\endcsname}%
-% side text after else or not ?
-\expandafter\def\csname algocf@e#1thenelse\endcsname{%
-  \@ifnextchar({\csname algocf@e#1elseopt\endcsname}{\csname algocf@e#1else\endcsname}}%
-% else with a side text
-\expandafter\def\csname algocf@e#1elseopt\endcsname(##1)##2{% 
-  ##1\csname #1@endif\endcsname{##2}}%
-% else without side text
-\expandafter\algocf@mkcmd\csname algocf@e#1else\endcsname[1]{%
-  \csname #1@endif\endcsname{##1}}%
-%
-%%%% If then 
-%
-% side text or not?
-\expandafter\def\csname l#1\endcsname{% lif
-  \@ifnextchar({\csname algocf@l#1opt\endcsname}{\csname algocf@l#1\endcsname}}%
-\expandafter\def\csname u#1\endcsname{% uif
-  \@ifnextchar({\csname algocf@u#1opt\endcsname}{\csname algocf@u#1\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@l#1opt\endcsname(##1)##2##3{% \lIf(){}{}
-  \csname #1@ifthen\endcsname{##2} ##3\algocf@endline\ ##1\par}%
-\expandafter\def\csname algocf@u#1opt\endcsname(##1)##2##3{% \uIf(){}{}
-  \csname #1@ifthen\endcsname{##2} ##1\csname#1@noend\endcsname{##3}}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@l#1\endcsname[2]{% \lIf{}{}
-  \csname #1@ifthen\endcsname{##1} ##2}%
-\expandafter\algocf@mkcmd\csname algocf@u#1\endcsname[2]{% \uIf{}{}
-  \csname #1@ifthen\endcsname{##1}\csname#1@noend\endcsname{##2}}%
-%
-%%%% ElseIf {} endif
-%
-\@ifundefined{algocf@#2}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-% side text or not?
-\expandafter\def\csname#2\endcsname{% ElseIf
-  \@ifnextchar({\csname algocf@#2opt\endcsname}{\csname algocf@#2\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@#2opt\endcsname(##1)##2##3{% \ElseIf(){}{}
-  \csname #2@elseif\endcsname{##2} ##1\csname #1@endif\endcsname{##3}}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@#2\endcsname[2]{% \ElseIf{}{}
-  \csname #2@elseif\endcsname{##1}\csname #1@endif\endcsname{##2}}%
-%
-%%%% ElseIf
-%
-% side text or not?
-\expandafter\def\csname l#2\endcsname{% lElseIf
-  \@ifnextchar({\csname algocf@l#2opt\endcsname}{\csname algocf@l#2\endcsname}}%
-\expandafter\def\csname u#2\endcsname{% uElseIf
-  \@ifnextchar({\csname algocf@u#2opt\endcsname}{\csname algocf@u#2\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@l#2opt\endcsname(##1)##2##3{% \lElseIf(){}{}
-  \csname #2@elseif\endcsname{##2} ##3\algocf@endline\ ##1\par}%
-\expandafter\def\csname algocf@u#2opt\endcsname(##1)##2##3{% \uElseIf(){}{}
-  \csname #2@elseif\endcsname{##2} ##1\csname #1@noend\endcsname{##3}}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@l#2\endcsname[2]{% \lElseIf{}{}
-  \csname #2@elseif\endcsname{##1} ##2}%
-\expandafter\algocf@mkcmd\csname algocf@u#2\endcsname[2]{% \uElseIf{}{}
-  \csname #2@elseif\endcsname{##1}\csname #1@noend\endcsname{##2}}%
-%
-%%%% Else {} endif
-%
-\@ifundefined{algocf@#3}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-% side text or not?
-\expandafter\def\csname#3\endcsname{% Else
-  \@ifnextchar({\csname algocf@#3opt\endcsname}{\csname algocf@#3\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@#3opt\endcsname(##1)##2{% \Else(){}
-  \csname #3@else\endcsname\ ##1\csname #1@endif\endcsname{##2}}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@#3\endcsname[1]{% \Else{}
-  \csname #3@else\endcsname\csname #1@endif\endcsname{##1}}%
-%
-%%%% Else 
-%
-% side text or not?
-\expandafter\def\csname l#3\endcsname{% lElse
-  \@ifnextchar({\csname algocf@l#3opt\endcsname}{\csname algocf@l#3\endcsname}}%
-\expandafter\def\csname u#3\endcsname{% uElse
-  \@ifnextchar({\csname algocf@u#3opt\endcsname}{\csname algocf@u#3\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@l#3opt\endcsname(##1)##2{% \lElse(){}
-  \csname #3@else\endcsname\ ##2\algocf@endline\ ##1\par}%
-\expandafter\def\csname algocf@u#3opt\endcsname(##1)##2{% \uElse(){}
-  \csname #3@else\endcsname\ ##1\csname #1@noend\endcsname{##2}}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@l#3\endcsname[1]{% \lElse{}
-  \csname #3@else\endcsname\ ##1}%
-\expandafter\algocf@mkcmd\csname algocf@u#3\endcsname[1]{% \uElse{}
-  \csname #3@else\endcsname\csname #1@noend\endcsname{##1}}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% For macros
-%
-\newcommand{\SetKwFor}[4]{%
-\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-% side text or not? 
-\expandafter\def\csname#1\endcsname{%For
-  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
-\expandafter\def\csname l#1\endcsname{%For
-  \@ifnextchar({\csname algocf@l#1opt\endcsname}{\csname algocf@l#1\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \For(){}{}
-  \KwSty{#2} \ArgSty{##2} \KwSty{#3} ##1\algocf@block{##3}{\@algocf@endoption{#4}}}%
-\expandafter\def\csname algocf@l#1opt\endcsname(##1)##2##3{% \lFor(){}{}
-  \KwSty{#2} \ArgSty{##2} \KwSty{#3} ##3\algocf@endline\ ##1\par}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \For{}{}
-  \KwSty{#2} \ArgSty{##1} \KwSty{#3}\algocf@block{##2}{\@algocf@endoption{#4}}}%
-\expandafter\algocf@mkcmd\csname algocf@l#1\endcsname[2]{% \lFor{}{}
-  \KwSty{#2} \ArgSty{##1} \KwSty{#3} ##2}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Repeat macros
-%
-\newcommand{\SetKwRepeat}[3]{%
-\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
-% side text or not?
-\expandafter\def\csname#1\endcsname{% Repeat
-  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
-\expandafter\def\csname l#1\endcsname{% lRepeat
-  \@ifnextchar({\csname algocf@l#1opt\endcsname}{\csname algocf@l#1\endcsname}}%
-% with side text
-\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \Repeat(){}{}
-  \KwSty{#2} ##1\algocf@group{##3}\KwSty{#3} \ArgSty{##2}%
-  \@ifnextchar({\csname algocf@#1optopt\endcsname}{\@endalgoln}%
-}%
-\expandafter\def\csname algocf@#1optopt\endcsname(##1){% \Repeat(){}{}()
-  ##1\@endalgoln}%
-\expandafter\def\csname algocf@l#1opt\endcsname(##1)##2##3{% \lRepeat(){}{}
-  \KwSty{#2} ##3 \KwSty{#3} \ArgSty{##2}\algocf@endline\ ##1\par}%
-% without side text
-\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \Repeat{}{}
-  \KwSty{#2}\algocf@group{##2}\KwSty{#3} \ArgSty{##1}%
-  \@ifnextchar({\csname algocf@#1optopt\endcsname}{\@endalgoln}%
-}%
-\expandafter\algocf@mkcmd\csname algocf@l#1\endcsname[2]{% \lRepeat{}{}
-  \KwSty{#2} ##2 \KwSty{#3} \ArgSty{##1}}%
-}%
-%
-% 
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%        Environments definitions     %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%%
-%% Caption management
-%%
-% for the following macros:
-% #1 is given by caption and is equal to fnum@algocf
-% #2 is the text given in argument by the user in the \caption macro
-%
-%%%%% text of caption
-\newcommand{\algocf@captionlayout}[1]{#1}%
-\newcommand{\SetAlgoCaptionLayout}[1]{%
-  \renewcommand{\algocf@captionlayout}[1]{\csname #1\endcsname{##1}}}%
-\newcommand{\algocf@capseparator}{:}%
-\newcommand{\SetAlgoCaptionSeparator}[1]{\renewcommand{\algocf@capseparator}{#1}}%
-\newcommand{\algocf@captiontext}[2]{%
-  \algocf@captionlayout{\AlCapSty{\AlCapFnt #1\algocf@typo\algocf@capseparator}\nobreakspace%
-    \AlCapNameSty{\AlCapNameFnt{}#2}}}% text of caption
-%
-%%%%% default caption of algorithm: used if no specific style caption is defined
-\newcommand{\algocf@makecaption}[2]{%
-  \addtolength{\hsize}{\algomargin}%
-  \sbox\@tempboxa{\algocf@captiontext{#1}{#2}}%
-  \ifdim\wd\@tempboxa >\hsize%     % if caption is longer than a line
-    \hskip .5\algomargin%
-    \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}% then caption is not centered
-  \else%
-    \global\@minipagefalse%
-    \hbox to\hsize{\hfil\box\@tempboxa\hfil}% else caption is centered
-  \fi%
-  \addtolength{\hsize}{-\algomargin}%
-}%
-%
-\newsavebox\algocf@capbox%
-\newcommand{\algocf@makecaption@plain}[2]{%
-  \global\sbox\algocf@capbox{\algocf@makecaption{#1}{#2}}}%
-\newcommand{\algocf@makecaption@boxed}[2]{%
-  \addtolength{\hsize}{-\algomargin}%
-  \global\sbox\algocf@capbox{\algocf@makecaption{#1}{#2}}%
-  \addtolength{\hsize}{\algomargin}%
- }%
-%
-\newcommand{\algocf@makecaption@tworuled}[2]{\algocf@makecaption@ruled{#1}{#2}}%
-\newcommand{\algocf@makecaption@algoruled}[2]{\algocf@makecaption@ruled{#1}{#2}}%
-\newcommand{\algocf@makecaption@boxruled}[2]{\algocf@makecaption@ruled{#1}{#2}}%
-\newcommand{\algocf@makecaption@ruled}[2]{%
-  \global\sbox\algocf@capbox{\hskip\AlCapHSkip% .5\algomargin%
-    \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}}% then caption is not centered
-}%
-%
-\newlength{\algoheightruledefault}\setlength{\algoheightruledefault}{0.8pt}%
-\newlength{\algoheightrule}\setlength{\algoheightrule}{\algoheightruledefault}%
-\newlength{\algotitleheightruledefault}\setlength{\algotitleheightruledefault}{0.8pt}%
-\newlength{\algotitleheightrule}\setlength{\algotitleheightrule}{\algotitleheightruledefault}%
-\newcommand{\algocf@caption@plain}{\vskip\AlCapSkip\box\algocf@capbox}%
-\newcommand{\algocf@caption@boxed}{\vskip\AlCapSkip\box\algocf@capbox}%
-\newcommand{\algocf@caption@ruled}{\box\algocf@capbox\kern\interspacetitleruled\hrule  height\algotitleheightrule depth0pt\kern\interspacealgoruled}%
-\newcommand{\algocf@caption@tworuled}{\box\algocf@capbox\kern\interspacetitleruled}%
-\newcommand{\algocf@caption@algoruled}{\algocf@caption@ruled}%
-\newcommand{\algocf@caption@boxruled}{%
-  \addtolength{\hsize}{-0.8pt}%
-  \hbox to\hsize{%
-    \vrule%\hskip-0.35pt%
-    \vbox{%
-      \hrule\vskip\interspacetitleboxruled%
-      \hbox to\hsize{\unhbox\algocf@capbox\hfill}\vskip\interspacetitleboxruled%
-    }% 
-    %\hskip-0.35pt%
-    \vrule%
-  }\nointerlineskip%
-  \addtolength{\hsize}{0.8pt}%
-}%
-%
-%
-%%%% set caption for the environment
-\newcommand{\algocf@captionref}{%
-  \renewcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\algocf@algocfref}}%
-  \addtocounter{algocf}{-1}% \caption do a refstepcounter, so we restore the precedent value
-  \let\old@thealgocf=\thealgocf\renewcommand{\thealgocf}{{\relsize{\algocf@refrelsize}\algocf@algocfref}}%
-  \gdef\@currentlabel{\algocf@algocfref}% let the label use the new ref
-}%
-%
-% Unfortunatly, we also need our own caption to set some specific stuff for special references. But after these
-% settings, we call the original caption.
-%
-\long\def\algocf@caption@algo#1[#2]#3{%
-  \ifthenelse{\equal{\algocf@algocfref}{\relax}}{}{\algocf@captionref}%
-  \@ifundefined{hyper@refstepcounter}{\relax}{% if hyper@refstepcounter undefind, no hyperref, else...
-    \ifthenelse{\equal{\algocf@algocfref}{\relax}}{\renewcommand{\theHalgocf}{\thealgocf}}{% take algocf as Href
-      \renewcommand{\theHalgocf}{\algocf@algocfref}}%else if SetAlgoRefName done, take this name as ref.
-    \hyper@refstepcounter{algocf}%set algocf as category of ref
-  }%
-  \algocf@latexcaption{#1}[#2]{#3}% call original caption
-}%
-%
-% beamer define is own caption overrinding latex caption!
-% as we need it, we have put here the original definition
-% to handle manual ref, unfortunately we have to add one line to handle algocf@algocfref
-\long\def\algocf@latexcaption#1[#2]#3{% original definition of caption
-  \par%
-  \addcontentsline{\csname ext@#1\endcsname}{#1}%
-  {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
-  \begingroup%
-  \@parboxrestore%
-  \if@minipage%
-    \@setminipage%
-  \fi%
-  \normalsize%
-  \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par%
-  \endgroup%
-}%
-%
-% \ifx\beamer@makecaption\undefined%
-% \else% beamer detected
-\ifx\@makecaption\undefined%
-\newcommand{\@makecaption}[2]{\relax}%
-\fi%
-%%
-
-%
-% more and more packages redefine \@caption instead of just \@makecaption which makes algorithm2e
-% caption not works since based on standard \@caption. So we force the definition of \@caption to be
-% the standard one (the one from LaTeX) inside algorithm environment.
-%
-% unfortunately, makecaption is called with \ignorespace #3 so 
-% we can't do the @currentlabel definition inside \algocf@captionproctext
-\long\def\algocf@caption@proc#1[#2]#3{%
-  \ifthenelse{\boolean{algocf@nokwfunc}}{\relax}{%
-    \SetKwFunction{\algocf@captname#3@}{\algocf@captname#3@}%
-  }%
-  % we tell hyperref to use algocfproc as category and to take the appropriate ref.
-  \ifthenelse{\boolean{algocf@func}}{\def\@proc@func{algocffunc}}{\def\@proc@func{algocfproc}}%
-  \@ifundefined{hyper@refstepcounter}{\relax}{% if hyper@refstepcounter undefind, no hyperref, else...
-    \ifthenelse{\boolean{algocf@procnumbered}}{% 
-      \expandafter\def\csname theH\@proc@func\endcsname{\algocf@captname#3@}%if procnumbered, take \thealgocf as ref
-    }{%
-      \expandafter\def\csname theH\@proc@func\endcsname{\algocf@captname#3@}%else take procedure or function name
-    }%
-    \hyper@refstepcounter{\@proc@func}%
-  }%
-  \ifthenelse{\boolean{algocf@procnumbered}}{\relax}{%
-    \addtocounter{algocf}{-1}% \caption do a refstepcounter, so we restore the precedent value
-    \gdef\@currentlabel{\algocf@captname#3@}% let the label be the name of the function, not the counter
-  }%
-  \ifthenelse{\equal{\algocf@captparam#2@}{\arg@e}}{% if no paramater, we remove the ()
-    \algocf@latexcaption{#1}[\algocf@procname\nobreakspace\algocf@captname#2@]{#3}%
-  }{%                                                 else we give the complete name
-    \algocf@latexcaption{#1}[\algocf@procname\nobreakspace#2]{#3}%
-  }%
-}%
-%%
-%%% setcaption
-\newcommand{\algocf@setcaption}{%
-  \ifthenelse{\boolean{algocf@procenvironment}}{% if proc environment, caption text must be changed
-    \let\algocf@oldcaptiontext=\algocf@captiontext%
-    \renewcommand{\algocf@captiontext}[2]{%
-      \algocf@captionproctext{##1}{##2}%
-    }%
-  }{}%
-  \let\algocf@savecaption=\@caption%
-  \ifthenelse{\boolean{algocf@procenvironment}}{\let\@caption=\algocf@caption@proc}{\let\@caption=\algocf@caption@algo}%
-  \let\algocf@oldmakecaption=\@makecaption%
-  \renewcommand{\@makecaption}[2]{%
-    \expandafter\csname algocf@makecaption@\algocf@style\endcsname{##1}{##2}%
-  }%
-}%
-%
-%%%%% reset caption
-%
-% since we have force the LaTeX caption for algorithm environment, we must go back to the caption
-% used in the text.
-\newcommand{\algocf@resetcaption}{%
-  \ifthenelse{\boolean{algocf@procenvironment}}{% if proc environment
-    \let\thealgocf=\old@thealgocf% restore normal counter printing
-    \let\algocf@captiontext=\algocf@oldcaptiontext% restore normal caption text
-  }{}%
-  \let\@caption=\algocf@savecaption% now restore caption outside algo/proc/func environment
-  \let\@makecaption=\algocf@oldmakecaption% and restore makecaption outside outside algo/proc/func environment
-  \algocf@resetfnum%
-}%
-%
-%%%%% nocaptionofalgo and restorecaptionofalgo --
-\newcommand{\NoCaptionOfAlgo}{%
-  \let\@old@algocf@captiontext=\algocf@captiontext%
-  \renewcommand{\algocf@captiontext}[2]{\AlCapNameSty{\AlCapNameFnt{}##2}}%
-}%
-\newcommand{\RestoreCaptionOfAlgo}{%
-  \let\algocf@captiontext=\@old@algocf@captiontext%
-}%
-%
-% ----------------------  algocf environment
-%
-\newcounter{algocfline}%                    % new counter to make lines numbers be internally 
-\setcounter{algocfline}{0}%                 % different in different algorithms
-\newcounter{algocfproc}% counter to count all algo environment (proc, func), just used by hyperref to avoir "same
-\setcounter{algocfproc}{0}% identifier" error caused by algocf being set to '-' for procedure or function or not
-  % changed if no caption is given.
-%
-\expandafter\ifx\csname algocf@within\endcsname\relax% if \algocf@within doesn't exist
-\newcounter{algocf}%                        % just define a new counter
-\renewcommand{\thealgocf}{\@arabic\c@algocf}% and the way it is printed
-\else%                                     else
-\newcounter{algocf}[\algocf@within]%        % counter is numbered within \algocf@within
-\renewcommand\thealgocf{\csname the\algocf@within\endcsname.\@arabic\c@algocf}%
-\fi%
-%
-\def\fps@algocf{htbp}%        % default
-\def\ftype@algocf{10}%        % float type
-\def\ext@algocf{\algocf@list} % loa by default, lof if figure option used
-\newcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thealgocf}}%
-\newcommand{\algocf@resetfnum}{\renewcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thealgocf}}}%
-\newenvironment{algocf}%      % float environment for algorithms
-               {\@float{algocf}}%
-               {\end@float}%
-\newenvironment{algocf*}%     % float* environment for algorithms
-               {\@dblfloat{algocf}}%
-               {\end@dblfloat}%
-%
-\def\algocf@seclistalgo{}%
-\ifx\l@chapter\undefined\let\algocf@seclistalgo=\section\else\let\algocf@seclistalgo=\chapter\fi%
-\@ifundefined{if@restonecol}{\newif\if@restonecol}\relax%
-\newcommand\listofalgocfs{%
-     \ifx\algocf@seclistalgo\chapter%
-      \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi%
-    \fi%
-     \algocf@seclistalgo*{\listalgorithmcfname}%
-       \@mkboth{\MakeUppercase\listalgorithmcfname}%
-               {\MakeUppercase\listalgorithmcfname}%
-     \@starttoc{loa}%
-    \ifx\algocf@seclistalgo\chapter%
-      \if@restonecol\twocolumn\fi%
-    \fi%
-}
-%
-\newcommand*\l@algocf{\@dottedtocline{1}{1em}{2.3em}}% line of the list
-%
-% ----------------------  algorithm environment
-%
-%%%%%%%
-%%
-%% Algorithm environment definition
-%%
-%%%%%%%
-%%
-%
-\newsavebox\algocf@algoframe%
-\def\@algocf@pre@plain{\relax}%  action to be done before printing the algo.
-\def\@algocf@post@plain{\relax}% action to be done after printing the algo.
-\def\@algocf@capt@plain{bottom}% where the caption should be localized.
-\def\@algocf@pre@boxed{\noindent\begin{lrbox}{\algocf@algoframe}}
-\def\@algocf@post@boxed{\end{lrbox}\framebox[\hsize]{\box\algocf@algoframe}\par}%
-\def\@algocf@capt@boxed{under}%
-\def\@algocf@pre@ruled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%
-\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule height\algoheightrule\relax}%
-\def\@algocf@capt@ruled{top}%
-\def\@algocf@pre@algoruled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%
-\def\@algocf@post@algoruled{\kern\interspacealgoruled\hrule height\algoheightrule \relax}%
-\def\@algocf@capt@algoruled{top}%
-\def\@algocf@pre@tworuled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%
-\def\@algocf@post@tworuled{\kern\interspacealgoruled\hrule height\algoheightrule\relax}%
-\def\@algocf@capt@tworuled{top}%
-\def\@algocf@pre@boxruled{\noindent\begin{lrbox}{\algocf@algoframe}}%
-\def\@algocf@post@boxruled{\end{lrbox}\framebox[\hsize]{\box\algocf@algoframe}\par}%
-\def\@algocf@capt@boxruled{above}%
-%
-\newcommand{\noalgocaption}{\def\@algocf@capt@ruled{none}}
-%
-%% before algocf or figure environment
-\newcommand{\@algocf@init@caption}{%
-  \ifthenelse{\boolean{algocf@procenvironment}}{% if we are inside a procedure/function environment
-    \@algocf@proctitleofalgo% set Titleofalgo to Procedure: or Function:
-                            % accordingly to the environment
-    \let\old@thealgocf=\thealgocf\ifthenelse{\boolean{algocf@procnumbered}}{\relax}{%
-      \renewcommand{\thealgocf}{-}}%
-  }{% else inside environment algorithm
-    \@algocf@algotitleofalgo% fix name for \Titleofalgo to \algorithmcfname
-  }%
-  \algocf@setcaption%       set caption to our caption style
-}%
-%
-\newcommand{\@algofloatboxreset}{\@setminipage}
-\newcommand{\@algocf@init}{%
-  \refstepcounter{algocfline}%
-  \stepcounter{algocfproc}%to have a different counter for each environment and being abble to make the difference
-    %between href of algoline in different algorithms.
-  \ifthenelse{\boolean{algocf@optnoend}}{%
-      \renewcommand{\algocf@block}[2]{\algocf@group{##1}}%
-    }{%
-      \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}%
-    }%
-}%
-%% after the end of algocf or figure environment
-\newcommand{\@algocf@term@caption}{%
-  \algocf@resetcaption% restore original caption
-}%
-%
-\newcommand{\@algocf@term}{%
-  \setboolean{algocf@algoH}{false}% no H by default
-  \ifthenelse{\boolean{algocf@optnoend}}{%
-    \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}%
-  }{%
-    \renewcommand{\algocf@block}[2]{\algocf@group{##1}}%
-  }%
-  \SetAlgoRefName{\relax}%
-}%
-%
-%%%%%%%%%%%%%%%%%
-%% makethealgo: macro which print effectively the algo in its box
-%% 
-\newsavebox\algocf@algobox%
-\newcommand{\algocf@makethealgo}{%
-  \vtop{%
-    % place caption above if needed  bye the style
-    \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{above}}%
-    {\csname algocf@caption@\algocf@style\endcsname}{}%
-    %
-    % precommand according to the style
-    \csname @algocf@pre@\algocf@style\endcsname%
-    % place caption at top if needed  bye the style
-     \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{top}}%
-     {\csname algocf@caption@\algocf@style\endcsname}{}%
-    %
-    \box\algocf@algobox% the algo
-    % place caption at bottom if needed  bye the style
-     \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{bottom}}%
-     {\csname algocf@caption@\algocf@style\endcsname}{}%
-    % postcommand according to the style
-    \csname @algocf@post@\algocf@style\endcsname%
-    % place caption under if needed  bye the style
-     \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{under}}%
-     {\csname algocf@caption@\algocf@style\endcsname}{}%
-  }%
-}%
-%%%%%%%%%%%%%%%%%%%
-%
-%% at the beginning of algocf or figure environment
-\newcommand{\@algocf@start}{%
-  \@algoskip%
-  \begin{lrbox}{\algocf@algobox}%
-  \setlength{\algowidth}{\hsize}%
-  \vbox\bgroup% save all the algo in a box
-  \hbox to\algowidth\bgroup\hbox to \algomargin{\hfill}\vtop\bgroup%
-  \ifthenelse{\boolean{algocf@slide}}{\parskip 0.5ex\color{black}}{}%
-  % initialization
-  \addtolength{\hsize}{-1.5\algomargin}%
-  \let\@mathsemicolon=\;\def\;{\ifmmode\@mathsemicolon\else\@endalgoln\fi}%
-  \raggedright\AlFnt{}%
-  \ifthenelse{\boolean{algocf@slide}}{\IncMargin{\skipalgocfslide}}{}%
-  \@algoinsideskip%
-}%
-%
-%% at the end of algocf or figure environment
-\newcommand{\@algocf@finish}{%
-  \@algoinsideskip%
-  \egroup%end of vtop which contain all the text
-  \hfill\egroup%end of hbox wich contains [margin][vtop]
-  \ifthenelse{\boolean{algocf@slide}}{\DecMargin{\skipalgocfslide}}{}%
-  %
-  \egroup%end of main vbox
-  \end{lrbox}%
-  \algocf@makethealgo% print the algo
-  \@algoskip%
-  % restore dimension and macros
-  \setlength{\hsize}{\algowidth}%
-  \lineskip\normallineskip\setlength{\skiptotal}{\@defaultskiptotal}%
-  \let\;=\@mathsemicolon%  
-}%
-%
-%%%%%%%%%%%%%%%%%%%%
-%% basic definition of the environment algorithm
-%%
-%
-\newboolean{algocf@procenvironment}\setboolean{algocf@procenvironment}{false}%
-\newboolean{algocf@func}\setboolean{algocf@func}{false}%
-\newboolean{algocf@algoH}\setboolean{algocf@algoH}{false}%
-\newboolean{algocf@algostar}\setboolean{algocf@algostar}{false}%
-%
-%%% environment for {algorithm}[H]
-\newenvironment{algocf@Here}{\noindent%
-  \def\@captype{algocf}% if not defined, caption exit with an error
-  \begin{minipage}{\hsize}%
-}{%
-  \end{minipage}%\par%
-}%
-%%% real algorithm environment which manages H and * option
-%    \let\algocf@originalfloatboxreset=\@floatboxreset%
-%    \let\@floatboxreset=\@algofloatboxreset%
-\newenvironment{algocf@algorithm}[1][htbp]{
-   \@algocf@init%
-   \ifthenelse{\equal{\algocf@float}{figure}}{% if option figure set
-     \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* with figure option
-       \begin{figure*}[#1]% call figure*
-     }{% else algorithm environment with figure option
-       \begin{figure}[#1]%  call figure
-     }%
-   }{% else normal algorithm environment
-     \@algocf@init@caption%
-     \ifthenelse{\equal{#1}{H}}{% if [H] algorithm
-       \if@twocolumn\@latex@error{[H] in two columns mode is not allowed for algorithms}\fi% TODO: SCREAM if H in two colums!
-       \setboolean{algocf@algoH}{true}\begin{algocf@Here}% call corresponding environment
-     }{% else floating algorithm environment
-       \ifthenelse{\boolean{algocf@algostar}}{% if algorithm*
-         \begin{algocf*}[#1]% call algocf*
-       }{% else algorithm environment
-         \begin{algocf}[#1]%  call algcf
-       }%
-     }%
-   }% fin test option figure ou pas
-   \@algocf@start% 
-   \@ResetCounterIfNeeded%
-   \algocf@linesnumbered\ignorespaces%
-}{%
-  \@algocf@finish%
-  \ifthenelse{\equal{\algocf@float}{figure}}{%
-     \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* with figure option
-       \end{figure*}% call figure*
-     }{% else algorithm environment with figure option
-       \end{figure}%  call figure
-     }%
-  }{%
-    \@algocf@term@caption%
-    \ifthenelse{\boolean{algocf@algoH}}{% if [H] algorithm
-       \end{algocf@Here}\par% call corresponding environment
-     }{% else floating algorithm environment
-       \ifthenelse{\boolean{algocf@algostar}}{% if algorithm*
-         \end{algocf*}% call algocf*
-       }{% else algorithm environment
-         \end{algocf}%  call algocf
-       }%
-     }%
-  }%
-  \@algocf@term\ignorespacesafterend%
-}%
-%
-%%% user algorithm environment
-% \newenvironment{\algocf@envname}[1][htbp]{%
-%   \setboolean{algocf@algostar}{false}%
-%   \setboolean{algocf@procenvironment}{false}\gdef\algocfautorefname{\algorithmautorefname}%
-%   \begin{algocf@algorithm}[#1]\ignorespaces%
-% }{%
-%   \end{algocf@algorithm}\ignorespacesafterend%
-% }%
-
-% %%% user algorithm* environment
-% \newenvironment{\algocf@envname*}[1][htbp]{%
-%   \setboolean{algocf@algostar}{true}%
-%   \setboolean{algocf@procenvironment}{false}\gdef\algocfautorefname{\algorithmautorefname}%
-%   \begin{algocf@algorithm}[#1]\ignorespaces%
-% }{%
-%   \end{algocf@algorithm}\ignorespacesafterend%
-% }%
-%
-%%%%%%%%%%%%%%%%%%%%%%%
-%%%
-%
-% \expandafter\newcommand\csname\algocf@listofalgorithms\endcsname{%
-%   \ifthenelse{\equal{\algocf@float}{figure}}{\listoffigures}{\listofalgocfs}%
-% }%
-%%%
-%%%
-%
-% ----------------------  procedure and function environments
-%
-%
-% -- new style (used in particular in the caption of function and procedure environments)
-%
-% three macros to extract parts of the caption
-\gdef\algocf@captname#1(#2)#3@{#1}  % keep characters before the first brace
-\gdef\algocf@captparam#1(#2)#3@{#2} % keep character in between the braces
-\gdef\algocf@captother#1(#2)#3@{#3} % keep character after the braces
-%
-%%% Text of caption for Procedure or Function
-\newcommand{\algocf@captionproctext}[2]{%
-  {%
-    \ProcSty{\ProcFnt\algocf@procname\ifthenelse{\boolean{algocf@procnumbered}}{\nobreakspace\thealgocf\algocf@typo\algocf@capseparator}{\relax}}%
-    \nobreakspace\ProcNameSty{\ProcNameFnt\algocf@captname #2@}% Name of the procedure in ProcName Style. 
-    \ifthenelse{\equal{\algocf@captparam #2@}{\arg@e}}{}{% if no argument, write nothing
-      \ProcNameSty{\ProcNameFnt(}\ProcArgSty{\ProcArgFnt\algocf@captparam #2@}\ProcNameSty{\ProcNameFnt)}%else put arguments in ProcArgSty:
-    }% endif
-    \algocf@captother #2@%
-  }%
-}%
-%
-%
-% -- procedure and function environments are defined from algocf@algorithm environment
-%
-\newenvironment{procedure}[1][htbp]{%
-  \setboolean{algocf@algostar}{false}%
-  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{false}%
-  \newcommand{\algocf@procname}{\@algocf@procname}\gdef\algocfprocautorefname{\procedureautorefname}%
-  \begin{algocf@algorithm}[#1]\ignorespaces%
-}{%
-  \end{algocf@algorithm}\ignorespacesafterend%
-}%
-\newenvironment{function}[1][htbp]{%
-  \setboolean{algocf@algostar}{false}%
-  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{true}%
-  \newcommand{\algocf@procname}{\@algocf@funcname}\gdef\algocffuncautorefname{\functionautorefname}%
-  \begin{algocf@algorithm}[#1]\ignorespaces%
-}{%
-  \end{algocf@algorithm}\ignorespacesafterend%
-}%
-%
-\newenvironment{procedure*}[1][htbp]{%
-  \setboolean{algocf@algostar}{true}%
-  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{false}%
-  \newcommand{\algocf@procname}{\@algocf@procname}\gdef\algocfprocautorefname{\procedureautorefname}%
-  \begin{algocf@algorithm}[#1]\ignorespaces%
-}{%
-  \end{algocf@algorithm}\ignorespacesafterend%
-}%
-\newenvironment{function*}[1][htbp]{%
-  \setboolean{algocf@algostar}{true}%
-  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{true}%
-  \newcommand{\algocf@procname}{\@algocf@funcname}\gdef\algocffuncautorefname{\functionautorefname}%
-  \begin{algocf@algorithm}[#1]\ignorespaces%
-}{%
-  \end{algocf@algorithm}\ignorespacesafterend%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%
-%% definition of algondfloat environment
-%%
-\ifthenelse{\boolean{algocf@endfloat}}{% if endfloat option then
-\newcommand{\algoplace}{% macro which is used to writhe algorithm about there
-   \begin{center}%
-     [\algorithmcfname~\thepostfig\ about here.]%
-   \end{center}%
-}%
-\newcommand{\algoendfloat}{% use as a \begin{algoendfloat} environment to start scanning of line
-%  \immediate\openout\@mainfff\jobname.fff%
-  \efloat@condopen{fff}
-  \efloat@iwrite{fff}{\string\begin{\algocf@envname}}%
-    \if@domarkers%
-       \ifthenelse{\equal{\algocf@list}{lof}}{%
-         \addtocounter{postfig}{1}%
-       }{%
-         \addtocounter{postalgo}{1}%
-       }%
-       \algoplace%
-    \fi%
-    \bgroup%
-    \let\do\ef@makeinnocent\dospecials%
-    \ef@makeinnocent\^^L% and whatever other special cases
-    \endlinechar`\^^M \catcode`\^^M=12 \ef@xalgocfendfloat}%
-}{\relax}%%%% end of endfloat option ifthenelse
-%% some macros useful for endfloat option that cannot be defined inside the ifthenelse
-%scan algoendfloat algorithm and write the text into .fff file
-{\catcode`\^^M=12 \endlinechar=-1 %
- \gdef\ef@xalgocfendfloat#1^^M{% scan the lines inside algoendfloat environment being read by latex
-   \def\test{#1}% test is the line being currently scan by latex
-   \ifx\test\ef@endalgocftest% if it is \end{algoendfloat}
-     \def\next{% define next as to not continue the scan and write \end{algorithm} into .fff file
-       \egroup\end{algoendfloat}%
-       \efloat@iwrite{fff}{\string\end{\algocf@envname}}%
-       \efloat@iwrite{fff}{\string\efloatseparator}%
-       \efloat@iwrite{fff}{ }%
-     }%
-     \else% else write the current line being scanned by latex and set next to continue the scan
-       \efloat@iwrite{fff}{#1}%
-       \let\next\ef@xalgocfendfloat%
-     \fi% endif
-     \next}% next is continue if it was else condition, else it does not continue the scan and write end to file
-}%
-% test if the scan is finish by looking at the string \end{algoendfloat}
-{\escapechar=-1%
- \xdef\ef@endalgocftest{\string\\end\string\{algoendfloat\string\}}%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% 
-\newcommand{\TitleOfAlgo}[1]{\@titleprefix\ 
-  \TitleSty{#1}\par\smallskip}%
-%
-\newcommand{\SetAlgorithmName}[3]{%
-  \renewcommand{\listalgorithmcfname}{#3}%
-  \renewcommand{\algorithmcfname}{#1}%
-  \renewcommand{\algorithmautorefname}{#2}%
-}%
-%
-\newcommand{\algocf@refrelsize}{-2}\newcommand{\SetAlgoRefRelativeSize}[1]{\renewcommand{\algocf@refrelsize}{#1}}%
-\newcommand{\SetAlgoRefName}[1]{%
-  \renewcommand{\algocf@algocfref}{#1}%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% 
-% -------------------------   Default Definitions
-%
-%%
-%%
-%
-\SetKwComment{tcc}{/* }{ */}%
-\SetKwComment{tcp}{// }{}%
-%
-%\newcommand{\algocf@defaults@common}{
-%
-%
-% french keywords
-%
-%\SetKwInOut{AlgDonnees}{Donn\'ees}\SetKwInOut{AlgRes}{R\'esultat}
-\SetKwInput{Donnees}{Donn\'ees}%
-\SetKwInput{Res}{R\'esultat}%
-\SetKwInput{Entree}{Entr\'ees}%
-\SetKwInput{Sortie}{Sorties}%
-\SetKw{KwA}{\`a}%
-\SetKw{Retour}{retourner}%
-\SetKwBlock{Deb}{d\'ebut}{fin}%
-\SetKwRepeat{Repeter}{r\'ep\'eter}{jusqu'\`a}%
-%
-\SetKwIF{Si}{SinonSi}{Sinon}{si}{alors}{sinon si}{sinon}{fin si}%
-\SetKwSwitch{Suivant}{Cas}{Autre}{suivant}{faire}{cas o\`u}{autres cas}{fin d'alternative}%
-\SetKwFor{Pour}{pour}{faire}{fin pour}%
-\SetKwFor{PourPar}{pour}{faire en parallèle}{fin pour}%
-\SetKwFor{PourCh}{pour chaque}{faire}{fin pour chaque}%
-\SetKwFor{PourTous}{pour tous les}{faire}{fin pour tous}%
-\SetKwFor{Tq}{tant que}{faire}{fin tq}%
-%
-% english keywords
-%
-\SetKwInput{KwIn}{Input}%
-\SetKwInput{KwOut}{Output}%
-\SetKwInput{KwData}{Data}%
-\SetKwInput{KwResult}{Result}%
-\SetKw{KwTo}{to}
-\SetKw{KwRet}{return}%
-\SetKw{Return}{return}%
-\SetKwBlock{Begin}{begin}{end}%
-\SetKwRepeat{Repeat}{repeat}{until}%
-%
-\SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{end if}%
-\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{end switch}%
-\SetKwFor{For}{for}{do}{end for}%
-\SetKwFor{ForPar}{for}{do in parallel}{end forpar}
-\SetKwFor{ForEach}{foreach}{do}{end foreach}%
-\SetKwFor{ForAll}{forall the}{do}{end forall}%
-\SetKwFor{While}{while}{do}{end while}%
-%
-% --- German keywords
-%
-\SetKwInput{Ein}{Eingabe}%KwIn
-\SetKwInput{Aus}{Ausgabe}%KwOut
-\SetKwInput{Daten}{Daten}%KwData
-\SetKwInput{Ergebnis}{Ergebnis}%KwResult
-\SetKw{Bis}{bis}%KwTo
-\SetKw{KwZurueck}{zur\"uck}%KwRet
-\SetKw{Zurueck}{zur\"uck}%Return
-\SetKwBlock{Beginn}{Beginn}{Ende}%Begin
-\SetKwRepeat{Wiederh}{wiederhole}{bis}%Repeat
-%
-\SetKwIF{Wenn}{SonstWenn}{Sonst}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf
-\SetKwSwitch{Unterscheide}{Fall}{Anderes}{unterscheide}{tue}{Fall}{sonst}{Ende Unt.}%Switch
-\SetKwFor{Fuer}{f\"ur}{tue}{Ende f\"ur}%For
-\SetKwFor{FuerPar}{f\"ur}{tue gleichzeitig}{Ende gleichzeitig}%ForPar
-\SetKwFor{FuerJedes}{f\"ur jedes}{tue}{Ende f\"ur}%ForEach
-\SetKwFor{FuerAlle}{f\"ur alle}{tue}{Ende f\"ur}%ForAll
-\SetKwFor{Solange}{solange}{tue}{Ende solange}%While
-%
-% --- Czech keywords
-%
-\SetKwInput{Vst}{Vstup}%
-\SetKwInput{Vyst}{V\'{y}stup}%
-\SetKwInput{Vysl}{V\'{y}sledek}%
-%
-% --- Portuguese keywords
-%
-\SetKwInput{Entrada}{Entrada}%
-\SetKwInput{Saida}{Sa\'{i}da}%
-\SetKwInput{Dados}{Dados}%
-\SetKwInput{Resultado}{Resultado}%
-\SetKw{Ate}{at\'{e}}
-\SetKw{KwRetorna}{retorna}%
-\SetKw{Retorna}{retorna}%
-\SetKwBlock{Inicio}{in\'{i}cio}{fim}%
-\SetKwRepeat{Repita}{repita}{at\'{e}}%
-%
-\SetKwIF{Se}{SenaoSe}{Senao}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}%
-\SetKwSwitch{Selec}{Caso}{Outro}{selecione}{fa\c{c}a}{caso}{sen\~{a}o}{fim selec}%
-\SetKwFor{Para}{para}{fa\c{c}a}{fim para}%
-\SetKwFor{ParaPar}{para}{fa\c{c}a em paralelo}{fim para}
-\SetKwFor{ParaCada}{para cada}{fa\c{c}a}{fim para cada}%
-\SetKwFor{ParaTodo}{para todo}{fa\c{c}a}{fim para todo}%
-\SetKwFor{Enqto}{enquanto}{fa\c{c}a}{fim enqto}%
-%
-% --- Italian keywords
-%
-\SetKwInput{KwIng}{Ingresso}%
-\SetKwInput{KwUsc}{Uscita}%
-\SetKwInput{KwDati}{Dati}%
-\SetKwInput{KwRisult}{Risultato}%
-\SetKw{KwA}{a}%
-\SetKw{KwRitorna}{ritorna}%
-\SetKw{Ritorna}{ritorna}%
-\SetKwBlock{Inizio}{inizio}{fine}%
-\SetKwRepeat{Ripeti}{ripeti}{finché}%
-%
-\SetKwIF{Sea}{AltSe}{Altrimenti}{se}{allora}{altrimenti se}{allora}{fine se}%
-\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{endsw}%
-\SetKwFor{Per}{per}{fai}{fine per}%
-\SetKwFor{PerPar}{per}{fai in parallelo}{fine per}%
-\SetKwFor{PerCiascun}{per ciascun}{fai}{fine per ciascun}%
-\SetKwFor{PerTutti}{per tutti i}{fai}{fine per tutti}%
-\SetKwFor{Finche}{finché}{fai}{fine finché}%
-%
-% --- End 
-%}
-%
-%\algocf@defaults@common
-%
-% option onelanguage redefinition
-%
-\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{french}}{%
-\SetKwInput{KwIn}{Entr\'ees}%
-\SetKwInput{KwOutSortie}{Sorties}%
-\SetKwInput{KwData}{Donn\'ees}%
-\SetKwInput{KwResult}{R\'esultat}%
-\SetKw{KwTo}{\`a}%
-\SetKw{KwRet}{retourner}%
-\SetKw{Return}{retourner}%
-\SetKwBlock{Begin}{d\'ebut}{fin}%
-\SetKwRepeat{Repeat}{r\'ep\'eter}{jusqu'\`a}%
-%
-\SetKwIF{If}{ElseIf}{Else}{si}{alors}{sinon si}{sinon}{fin si}%
-\SetKwSwitch{Switch}{Case}{Other}{suivant}{faire}{cas o\`u}{autres cas}{fin d'alternative}%
-\SetKwFor{For}{pour}{faire}{fin pour}%
-\SetKwFor{ForPar}{pour}{faire en parallèle}{fin pour}%
-\SetKwFor{ForEach}{pour chaque}{faire}{fin pour chaque}%
-\SetKwFor{ForAll}{pour tous les}{faire}{fin pour tous}%
-\SetKwFor{While}{tant que}{faire}{fin tq}%
-}{}%
-\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{german}}{%
-\SetKwInput{KwIn}{Eingabe}%KwIn
-\SetKwInput{KwOut}{Ausgabe}%KwOut
-\SetKwInput{KwData}{Daten}%KwData
-\SetKwInput{KwResult}{Ergebnis}%KwResult
-\SetKw{KwTo}{bis}%KwTo
-\SetKw{KwRet}{zur\"uck}%KwRet
-\SetKw{Return}{zur\"uck}%Return
-\SetKwBlock{Begin}{Beginn}{Ende}%Begin
-\SetKwRepeat{Repeat}{wiederhole}{bis}%Repeat
-%
-\SetKwIF{If}{ElseIf}{Else}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf
-\SetKwSwitch{Switch}{Case}{Other}{unterscheide}{tue}{Fall}{sonst}{Ende Unt.}%Switch
-\SetKwFor{For}{f\"ur}{tue}{Ende f\"ur}%For
-\SetKwFor{ForPar}{f\"ur}{tue gleichzeitig}{Ende gleichzeitig}%ForPar
-\SetKwFor{ForEach}{f\"ur jedes}{tue}{Ende f\"ur}%ForEach
-\SetKwFor{ForAll}{f\"ur alle}{tue}{Ende f\"ur}%ForAll
-\SetKwFor{While}{solange}{tue}{Ende solange}%While
-}{}%
-\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{portugues}}{%
-\SetKwInput{KwIn}{Entrada}%
-\SetKwInput{KwOut}{Sa\'{i}da}%
-\SetKwInput{KwData}{Dados}%
-\SetKwInput{KwResult}{Resultado}%
-\SetKw{KwTo}{at\'{e}}
-\SetKw{KwRet}{retorna}%
-\SetKw{Return}{retorna}%
-\SetKwBlock{Begin}{in\'{i}cio}{fim}%
-\SetKwRepeat{Repeat}{repita}{at\'{e}}%
-%
-\SetKwIF{If}{ElseIf}{Else}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}%
-\SetKwSwitch{Switch}{Case}{Other}{selecione}{fa\c{c}a}{caso}{sen\~{a}o}{fim selec}%
-\SetKwFor{For}{para}{fa\c{c}a}{fim para}%
-\SetKwFor{ForPar}{para}{fa\c{c}a em paralelo}{fim para}
-\SetKwFor{ForEach}{para cada}{fa\c{c}a}{fim para cada}%
-\SetKwFor{ForAll}{para todo}{fa\c{c}a}{fim para todo}%
-\SetKwFor{While}{enquanto}{fa\c{c}a}{fim enqto}%
-}{}%
-\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{italiano}}{%
-\SetKwInput{KwIn}{Ingresso}%
-\SetKwInput{KwOut}{Uscita}%
-\SetKwInput{KwData}{Dati}%
-\SetKwInput{KwResult}{Risultato}%
-\SetKw{KwTo}{a}%
-\SetKw{KwRet}{ritorna}%
-\SetKw{Return}{ritorna}%
-\SetKwBlock{Begin}{inizio}{fine}%
-\SetKwRepeat{Repeat}{ripeti}{finché}%
-%
-\SetKwIF{If}{ElseIf}{Else}{se}{allora}{altrimenti se}{allora}{fine se}%
-\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{endsw}%
-\SetKwFor{For}{per}{fai}{fine per}%
-\SetKwFor{ForPar}{per}{fai in parallelo}{fine per}%
-\SetKwFor{ForEach}{per ciascun}{fai}{fine per ciascun}%
-\SetKwFor{ForAll}{per tutti i}{fai}{fine per tutti}%
-\SetKwFor{While}{finché}{fai}{fine finché}%
-}{}%
-%
-%%%% old commands compatibility
-%
-\ifthenelse{\boolean{algocf@oldcommands}}{%
-\newcommand{\SetNoLine}{\SetAlgoNoLine}%
-\newcommand{\SetVline}{\SetAlgoVlined}%
-\newcommand{\SetLine}{\SetAlgoLined}%
-%
-\newcommand{\dontprintsemicolon}{\DontPrintSemicolon}%
-\newcommand{\printsemicolon}{\PrintSemicolon}%
-\newcommand{\incmargin}[1]{\IncMargin{#1}}%
-\newcommand{\decmargin}[1]{\DecMargin{-#1}}%
-\newcommand{\setnlskip}[1]{\SetNlSkip{#1}}%
-\newcommand{\Setnlskip}[1]{\SetNlSkip{#1}}%
-\newcommand{\setalcapskip}[1]{\SetAlCapSkip{#1}}%
-\newcommand{\setalcaphskip}[1]{\SetAlCapHSkip{#1}}%
-\newcommand{\nlSty}[1]{\NlSty{#1}}%
-\newcommand{\Setnlsty}[3]{\SetNlSty{#1}{#2}{#3}}%
-\newcommand{\linesnumbered}{\LinesNumbered}%
-\newcommand{\linesnotnumbered}{\LinesNotNumbered}%
-\newcommand{\linesnumberedhidden}{\LinesNumberedHidden}%
-\newcommand{\showln}{\ShowLn}%
-\newcommand{\showlnlabel}[1]{\ShowLnLabel{#1}}%
-\newcommand{\nocaptionofalgo}{\NoCaptionOfAlgo}%
-\newcommand{\restorecaptionofalgo}{\RestoreCaptionOfAlgo}%
-\newcommand{\restylealgo}[1]{\RestyleAlgo{#1}}%
-%
-\newcommand{\Titleofalgo}[1]{\TitleOfAlgo{#1}}%
-\SetKwIF{gSi}{gSinonSi}{gSinon}{si}{alors}{sinon si}{sinon}{fin si}%
-\SetKwIF{gIf}{gElsIf}{gElse}{if}{then}{else if}{else}{end if}%
-\SetKwIF{gIf}{gElseIf}{gElse}{if}{then}{else if}{else}{end if}%
-\SetKwIF{gWenn}{gSonstWenn}{gSonst}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf
-\SetKwIF{gSe}{gSenaoSe}{gSenao}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}%
-\SetKwIF{gSea}{gAltSe}{gAltrimenti}{se}{allora}{altrimenti se}{allora}{fine se}%
-}{%
-  \relax%
-}%
-%
-%
-%
-%%
-%%%
-%%%% END
\ No newline at end of file
diff --git a/BookGPU/algorithmicx.sty b/BookGPU/algorithmicx.sty
deleted file mode 100644 (file)
index bfb7dab..0000000
+++ /dev/null
@@ -1,786 +0,0 @@
-% ALGORITHMIC STYLE -- Released 27 APR 2005
-%    for LaTeX version 2e
-%
-% Copyright Szasz Janos
-% E-mail szaszjanos@users.sourceforge.net
-%
-%
-%      ***      INITIALISING      ***
-%
-%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{algorithmicx}[2005/04/27 v1.2 Algorithmicx]
-\RequirePackage{ifthen}
-\typeout{Document Style algorithmicx 1.2 - a greatly improved `algorithmic' style}
-%
-\newcounter{ALG@line}
-\newcounter{ALG@rem}
-\newcounter{ALG@nested}
-\newlength{\ALG@tlm}
-\newlength{\ALG@thistlm}
-\newcounter{ALG@Lnr}% the number of defined languages
-\setcounter{ALG@Lnr}{0}
-\newcounter{ALG@blocknr}% the number of defined blocks
-\setcounter{ALG@blocknr}{0}
-\newcounter{ALG@storecount}% number of stored but not restored algorithmic environments
-\setcounter{ALG@storecount}{0}
-\newcounter{ALG@tmpcounter}% only to decrement things
-\newlength\ALG@tmplength%
-%\def\algorithmicnoindent{-\ALG@tlm}
-%       \def\algbackskipbegin{\hskip\ALG@ctlm}
-%\def\algbackskip{\hskip-\ALG@thistlm}
-%\def\algbackskipend{\hskip-\ALG@tlm}
-\def\ALG@defaultindent{\algorithmicindent}
-%
-% conditional states
-%
-\def\ALG@newcondstate#1%
-   {%
-   \expandafter\edef\csname ALG@x@#1\endcsname%
-      {\expandafter\noexpand\csname @@ALG@x@#1\endcsname}%
-   }%
-\ALG@newcondstate{notext}%
-\ALG@newcondstate{default}%
-%
-%
-%      ***      ALGORITHMIC      ***
-%
-%
-\newcommand\ALG@beginblock[1]% #1 - indentation
-   {%
-      \ALG@thistlm\ALG@tlm%
-      \addtolength\ALG@tlm{#1}%
-      \addtocounter{ALG@nested}{1}%
-      \setlength\ALG@tmplength{#1}%
-      \expandafter\edef\csname ALG@ind@\theALG@nested\endcsname{\the\ALG@tmplength}%
-   }%
-\newcommand\ALG@endblock%
-   {%
-      \addtolength\ALG@tlm{-\csname ALG@ind@\theALG@nested\endcsname}%
-      \addtocounter{ALG@nested}{-1}%
-      \ALG@thistlm\ALG@tlm%
-   }%
-%
-%   algorithmic environment
-%
-\def\ALG@step%
-   {%
-   \addtocounter{ALG@line}{1}%
-   \addtocounter{ALG@rem}{1}%
-   \ifthenelse{\equal{\arabic{ALG@rem}}{\ALG@numberfreq}}%
-      {\setcounter{ALG@rem}{0}\alglinenumber{\arabic{ALG@line}}}%
-      {}%
-   }%
-\newenvironment{algorithmic}[1][0]%
-   {%
-   \edef\ALG@numberfreq{#1}%
-   \def\@currentlabel{\theALG@line}%
-   %
-   \setcounter{ALG@line}{0}%
-   \setcounter{ALG@rem}{0}%
-   %
-   \let\\\algbreak%
-   %
-   \expandafter\edef\csname ALG@currentblock@\theALG@nested\endcsname{0}%
-   \expandafter\let\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
-   %
-   \begin{list}%
-      {\ALG@step}%
-      {%
-      \rightmargin\z@%
-      \itemsep\z@ \itemindent\z@ \listparindent2em%
-      \partopsep\z@ \parskip\z@ \parsep\z@%
-      \labelsep 0.5em \topsep 0.2em%\skip 1.2em 
-      \ifthenelse{\equal{#1}{0}}%
-         {\labelwidth 0.5em}%
-         {\labelwidth 1.2em}%
-      \leftmargin\labelwidth \addtolength{\leftmargin}{\labelsep}% Ok. the perfect leftmargin :-))
-      \ALG@tlm\z@%
-      }%
-   \setcounter{ALG@nested}{0}%
-   \ALG@beginalgorithmic%
-   }%
-   {% end{algorithmic}
-   % check if all blocks are closed
-   \ALG@closeloops%
-   \expandafter\ifnum\csname ALG@currentblock@\theALG@nested\endcsname=0\relax%
-   \else%
-      \PackageError{algorithmicx}{Some blocks are not closed!!!}{}%
-   \fi%
-   \ALG@endalgorithmic%
-   \end{list}%
-   }%
-%
-%
-%   ***   Functional core   ***
-%
-%
-\def\ALG@makeentity#1% execute the entity (#1)
-   {%
-   \def\ALG@thisentity{#1}%
-   \expandafter\ifx\csname ALG@b@\ALG@L @#1@0\endcsname\relax%
-      \let\ALG@makenobeginrepeat\ALG@makenobegin\ALG@makenobeginrepeat% this entitie ends or continues blocks
-   \else%
-      \let\ALG@makebeginrepeat\ALG@makebegin\ALG@makebeginrepeat% this entitie can open blocks
-   \fi%
-   \ALG@entitiecommand%
-   }%
-%
-\def\ALG@makebegin% executes an entitie that can open blocks
-   {%
-   \expandafter\let\expandafter\ALG@thislifetime\csname ALG@currentlifetime@\theALG@nested\endcsname%
-   \ifx\ALG@thislifetime\relax%
-      \let\ALG@makebeginrepeat\ALG@doentity% in infinite block I can open my block
-   \else%
-      \ifnum\ALG@thislifetime>0\relax%
-         \ifnum\ALG@thislifetime>65534\else%
-            \setcounter{ALG@tmpcounter}{\ALG@thislifetime}% the block has 'space' for another included block
-            \addtocounter{ALG@tmpcounter}{-1}%
-            \expandafter\edef\csname ALG@currentlifetime@\theALG@nested\endcsname{\arabic{ALG@tmpcounter}}%
-         \fi%
-         \let\ALG@makebeginrepeat\ALG@doentity%
-      \else% the block needs to be closed
-         \expandafter\ifx\csname ALG@b@\ALG@L @\ALG@thisentity @\csname ALG@currentblock@\theALG@nested\endcsname\endcsname\relax%
-            \ALG@closebyforce% I can not close this block, continue after it is closed by force
-%            \ALG@makebegin%
-         \else%
-            % the block would be closed automatically, but this entitie can close it, so let's do it with the entity
-            \let\ALG@makebeginrepeat\ALG@doentity%
-         \fi%
-      \fi%
-   \fi%
-   \ALG@makebeginrepeat%
-   }%
-%
-\def\ALG@makenobegin% executes an entitie that can not open blocks
-   {%
-   \expandafter\ifx\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
-      \let\ALG@makenobeginrepeat\ALG@doentity% an infinite block must be broken
-   \else%
-      \expandafter\ifx\csname ALG@b@\ALG@L @\ALG@thisentity @\csname ALG@currentblock@\theALG@nested\endcsname\endcsname\relax%
-         \ALG@closebyforce% the block must be ended by force,
-      \else%
-         \let\ALG@makenobeginrepeat\ALG@doentity% I can continue / end this block, let's do it
-      \fi%
-   \fi%
-   \ALG@makenobeginrepeat%
-   }%
-%
-\def\ALG@dobegin%
-   {%
-   \ALG@beginblock{\csname ALG@i@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname}%
-   \expandafter\edef\csname ALG@currentblock@\theALG@nested\endcsname{\csname ALG@b@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname}%
-   \expandafter\ifx\csname ALG@c@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname\relax%
-      \expandafter\let\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
-   \else%
-      \expandafter\edef\csname ALG@currentlifetime@\theALG@nested\endcsname{\csname ALG@c@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname}%
-   \fi%
-   }%
-%
-\def\ALG@doend%
-   {%
-   \ALG@endblock%
-   }%
-%
-\def\ALG@doentity% the number of the closed block, the entitie
-   {%
-   \edef\ALG@thisblock{\csname ALG@currentblock@\theALG@nested\endcsname}%
-   \expandafter\ifx\csname ALG@b@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname\relax%
-      \def\ALG@thisblock{0}%
-   \fi%
-   \ALG@getentitytext%
-   \ifnum\ALG@thisblock=0\else\ALG@doend\fi%
-   \ifx\ALG@text\ALG@x@notext%
-      \item[]\nointerlineskip%\vskip-\prevdepth\nointerlineskip% bug: if there are no text and no lines, then this is wrong
-   \else%
-      \item%
-   \fi%
-   \noindent\hskip\ALG@tlm%
-   \expandafter\ifnum0=\csname ALG@b@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname\else%
-      \ALG@dobegin%
-   \fi%
-   \def\ALG@entitiecommand{\ALG@displayentity}%
-   }%
-%
-\def\ALG@getentitytext%
-   {%
-   \expandafter\let\expandafter\ALG@text\csname ALG@t@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname%
-   \ifx\ALG@text\ALG@x@default%
-      % block specific - default
-      \expandafter\let\expandafter\ALG@text\csname ALG@t@\ALG@L @\ALG@thisentity\endcsname%
-      \ifx\ALG@text\ALG@x@default%
-         % block specific - default, language specific - default
-         \def\ALG@text{\ALG@deftext{\ALG@thisentity}}%
-      \fi%
-   \fi%
-   }%
-%
-\def\ALG@deftext{\csname ALG@deftext@\ALG@L\endcsname}%
-%
-\def\ALG@displayentity%
-   {%
-   \ifx\ALG@text\ALG@x@notext%
-      \let\ALG@text\relax%
-   \fi
-   \ALG@text%
-   }%
-%
-\def\ALG@closebyforce%
-   {%
-   \ALG@endblock%
-   }%
-%
-\def\ALG@closeloops% closes all finite blocks
-   {%
-   \expandafter\ifx\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
-   \else% only if it is finite
-      \ALG@closebyforce% the block must be ended by force,
-      \ALG@closeloops% the command still runs
-   \fi%
-   }%
-%
-%
-%   ***   Low level block/entitie defining commands   ***
-%
-%
-\def\ALG@bl@{0}% the BIG block
-\let\ALG@bl@@\ALG@bl@% the BIG block
-%
-%  Create a block
-%
-\def\ALG@createblock#1% create the block #1, if it does not exists
-   {%
-   \@ifundefined{ALG@bl@\ALG@Ld @#1}% needs to be created?
-      {%
-      \addtocounter{ALG@blocknr}{1}% increment the block counter
-      \expandafter\edef\csname ALG@bl@\ALG@Ld @#1\endcsname{\arabic{ALG@blocknr}}% set the block number
-      }%
-      {}%
-   }%
-%
-%  Get the block number
-%
-\def\ALG@getblocknumber#1{\csname ALG@bl@\ALG@Ld @#1\endcsname}%
-%
-%  Create an entitie
-%
-\def\ALG@createentitie#1% create the entitie #1, if it does not exists
-   {%
-   \expandafter\ALG@edefcmd\csname #1\endcsname{\noexpand\ALG@makeentity{#1}}%
-   \@ifundefined{ALG@t@\ALG@Ld @#1}% the entity text is defined in this language?
-      {%
-      \expandafter\let\csname ALG@t@\ALG@Ld @#1\endcsname\ALG@x@default%
-      }%
-      {}%
-   }%
-%
-\def\ALG@createtext#1#2% #1 = closed block; #2 = entitie; creates \ALG@t@#2@#1
-   {%
-   \expandafter\let\csname ALG@t@\ALG@Ld @#2@#1\endcsname\ALG@x@default%
-   }%
-%
-%  End and Continue block
-%
-\def\ALG@endandcontinueblock#1#2#3#4#5% #1 = new block; #2 = old block; #3 = entitie; #4 = credits; #5 = indent
-   {%
-   \ifthenelse{\equal{#3}{}}{}% execute only if the entity is not empty
-      {%
-      \ALG@createentitie{#3}% create the entitie
-      \ALG@createblock{#2}% create the old block, if needed
-      \ifthenelse{\equal{#1}{}}% whe need to open a new block?
-         {\expandafter\edef\csname ALG@b@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname{0}}% no, just close the old one
-         {% yes,
-         \ALG@createblock{#1}% create the block
-         \expandafter\edef\csname ALG@b@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname{\ALG@getblocknumber{#1}}% ending the old block opens a new one
-         \ifthenelse{\equal{#4}{}}% infinite or finite credits?
-            {\expandafter\let\csname ALG@c@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname\relax}% infinite credits
-            {\expandafter\edef\csname ALG@c@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname{#4}}% finite credits
-         \ifthenelse{\equal{#5}{}}% default or specified indentation
-            {\expandafter\let\csname ALG@i@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname\ALG@defaultindent}% default indentation
-            {\expandafter\edef\csname ALG@i@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname{#5}}% indentation is specified
-         }%
-      \ALG@createtext{\ALG@getblocknumber{#2}}{#3}%
-      }%
-   }%
-%
-%   macros used in declarations
-%
-\def\ALG@p@endtext@E{\algrenewtext{\ALG@v@end}}%
-\def\ALG@p@endtext@xE{\algrenewtext[\ALG@v@newblock]{\ALG@v@end}}%
-\def\ALG@p@endtext@nE{\algnotext{\ALG@v@end}}%
-\def\ALG@p@endtext@xnE{\algnotext[\ALG@v@newblock]{\ALG@v@end}}%
-\def\ALG@p@endtext@{}%
-% starttext defines are more compex -- care must be taken for the optional parameters
-\def\ALG@p@starttext@S{\ALG@p@s@process{\algrenewtext}}%
-\def\ALG@p@starttext@C{\ALG@p@s@process{\algrenewtext}}%
-\def\ALG@p@starttext@xC{\ALG@p@s@process{\algrenewtext[\ALG@v@oldblock]}}%
-\def\ALG@p@s@process#1%
-   {%
-   \ifthenelse{\equal{\ALG@v@start}{}}%
-      {\ALG@p@endtext}%
-      {\@ifnextchar{[}{\ALG@p@s@getparamcount{#1}}{\ALG@p@s@simple{#1}}}%
-   }%
-\def\ALG@p@s@getparamcount#1[#2]%
-   {%
-   \@ifnextchar{[}{\ALG@p@s@getdefparam{#1}{#2}}{\ALG@p@s@param{#1}{#2}}%
-   }%
-\def\ALG@p@s@getdefparam#1#2[#3]%
-   {%
-   \ALG@p@s@defparam{#1}{#2}{#3}%
-   }%
-\def\ALG@p@s@simple#1#2{#1{\ALG@v@start}{#2}\ALG@p@endtext}%
-\def\ALG@p@s@param#1#2#3{#1{\ALG@v@start}[#2]{#3}\ALG@p@endtext}%
-\def\ALG@p@s@defparam#1#2#3#4{#1{\ALG@v@start}[#2][#3]{#4}\ALG@p@endtext}%
-% the rest of the crew
-\def\ALG@p@starttext@nS{\algnotext{\ALG@v@start}\ALG@p@endtext}%
-\def\ALG@p@starttext@nC{\algnotext{\ALG@v@start}\ALG@p@endtext}%
-\def\ALG@p@starttext@xnC{\algnotext[\ALG@v@oldblock]{\ALG@v@start}\ALG@p@endtext}%
-\def\ALG@p@starttext@{\ALG@p@endtext}%
-\def\ALG@p@indent@def#1{\def\ALG@v@indent{#1}\ALG@p@setup}%
-\def\ALG@p@indent@{\def\ALG@v@indent{}\ALG@p@setup}%
-\def\ALG@p@credits@def#1{\def\ALG@v@credits{#1}\ALG@p@indent}%
-\def\ALG@p@credits@{\ALG@p@indent}%
-\def\ALG@p@end@def#1{\def\ALG@v@end{#1}\ALG@p@credits}%
-\def\ALG@p@end@{\def\ALG@v@end{}\ALG@p@credits}%
-\def\ALG@p@start@def#1{\def\ALG@v@start{#1}\ALG@p@end}%
-\def\ALG@p@start@{\def\ALG@v@start{}\ALG@p@end}%
-\def\ALG@p@oldblock@def#1{\def\ALG@v@oldblock{#1}\ALG@p@start}%
-\def\ALG@p@oldblock@{\def\ALG@v@oldblock{}\ALG@p@start}%
-\newcommand\ALG@p@newblock[1][]{\def\ALG@v@newblock{#1}\ALG@p@oldblock}%
-\def\ALG@p@setup%
-   {%
-   \ifthenelse{\equal{\ALG@v@newblock}{}}%
-      {%
-      \ifthenelse{\equal{\ALG@v@start}{}}%
-         {%
-            \PackageError{algorithmicx}{Block or starting entitie must be specified!!!}{}%
-         }%
-         {%
-            \let\ALG@v@newblock\ALG@v@start%
-         }%
-      }%
-      {%
-      }%
-   \ALG@endandcontinueblock%
-      {\ALG@v@newblock}{\ALG@v@oldblock}{\ALG@v@start}%
-      {\ALG@v@credits}{\ALG@v@indent}%
-   \ALG@endandcontinueblock%
-      {}{\ALG@v@newblock}{\ALG@v@end}%
-      {}{}%
-   \ALG@p@starttext%
-   }%
-%
-%   param handling
-%
-\newcommand\ALG@p@def[2][def]%
-   {%
-   \expandafter\let\csname ALG@p@#2\expandafter\endcsname\csname ALG@p@#2@#1\endcsname%
-   }%
-\def\ALG@p@undef{\ALG@p@def[]}%
-%
-\def\ALG@p@ons{\ALG@p@def{start}}%
-\def\ALG@p@onS{\ALG@p@def{start}\ALG@p@def[S]{starttext}}%
-\def\ALG@p@onc{\ALG@p@def{oldblock}\ALG@p@def{start}}%
-\def\ALG@p@onC{\ALG@p@def{oldblock}\ALG@p@def{start}\ALG@p@def[C]{starttext}}%
-\def\ALG@p@one{\ALG@p@def{end}}%
-\def\ALG@p@onE{\ALG@p@def{end}\ALG@p@def[E]{endtext}}%
-\def\ALG@p@onxC{\ALG@p@def{oldblock}\ALG@p@def{start}\ALG@p@def[xC]{starttext}}%
-\def\ALG@p@onxE{\ALG@p@def{end}\ALG@p@def[xE]{endtext}}%
-\def\ALG@p@onnS{\ALG@p@def{start}\ALG@p@def[nS]{starttext}}%
-\def\ALG@p@onnC{\ALG@p@def{oldblock}\ALG@p@def{start}\ALG@p@def[nC]{starttext}}%
-\def\ALG@p@onnE{\ALG@p@def{end}\ALG@p@def[nE]{endtext}}%
-\def\ALG@p@onxnC{\ALG@p@def{oldblock}\ALG@p@def{start}\ALG@p@def[xnC]{starttext}}%
-\def\ALG@p@onxnE{\ALG@p@def{end}\ALG@p@def[xnE]{endtext}}%
-\def\ALG@p@onb{\def\ALG@v@credits{}}%
-\def\ALG@p@onl{\def\ALG@v@credits{1}}%
-\def\ALG@p@onL{\ALG@p@def{credits}}%
-\def\ALG@p@oni{\ALG@p@def{indent}}%
-%
-\def\ALG@p@main#1%
-   {%
-   \@ifundefined{ALG@ps@\ALG@p@state @#1}%
-      {%
-      \csname ALG@ps@\ALG@p@state @other\endcsname{#1}%
-      }%
-      {%
-      \csname ALG@ps@\ALG@p@state @#1\endcsname%
-      }%
-   \ALG@p@rec%
-   }%
-% STATE : <<starting state>>
-\expandafter\def\csname ALG@ps@@]\endcsname{\let\ALG@p@rec\relax}%
-\def\ALG@ps@@s{\ALG@p@ons}%
-\def\ALG@ps@@S{\ALG@p@onS}%
-\def\ALG@ps@@c{\ALG@p@onc}%
-\def\ALG@ps@@C{\ALG@p@onC}%
-\def\ALG@ps@@e{\ALG@p@one}%
-\def\ALG@ps@@E{\ALG@p@onE}%
-\def\ALG@ps@@N{\typeout{algdef: 'N' obsoloted, use 'nE'.}\ALG@p@onnE}%
-\def\ALG@ps@@b{\ALG@p@onb}%
-\def\ALG@ps@@l{\ALG@p@onl}%
-\def\ALG@ps@@L{\ALG@p@onL}%
-\def\ALG@ps@@i{\ALG@p@oni}%
-\def\ALG@ps@@x{\def\ALG@p@state{x}}%
-\def\ALG@ps@@n{\def\ALG@p@state{n}}%
-\def\ALG@ps@@other#1{\typeout{algdef: Ignoring unknown token #1}}%
-% STATE : x
-\def\ALG@ps@x@C{\def\ALG@p@state{}\ALG@p@onxC}%
-\def\ALG@ps@x@E{\def\ALG@p@state{}\ALG@p@onxE}%
-\def\ALG@ps@x@N{\def\ALG@p@state{}\typeout{algdef: 'xN' obsoloted, use 'xnE'.}\ALG@p@onxnE}%
-\def\ALG@ps@x@n{\def\ALG@p@state{xn}}%
-\def\ALG@ps@x@other#1%
-   {%
-   \typeout{algdef: Ignoring 'x' before '#1'.}%
-   \def\ALG@p@state{}%
-   \def\ALG@p@rec{\let\ALG@p@rec\ALG@p@main\ALG@p@rec#1}%
-   }%
-% STATE : n
-\def\ALG@ps@n@S{\def\ALG@p@state{}\ALG@p@onnS}%
-\def\ALG@ps@n@C{\def\ALG@p@state{}\ALG@p@onnC}%
-\def\ALG@ps@n@E{\def\ALG@p@state{}\ALG@p@onnE}%
-\def\ALG@ps@n@x{\def\ALG@p@state{nx}}%
-\def\ALG@ps@n@other#1%
-   {%
-   \typeout{algdef: Ignoring 'n' before '#1'.}%
-   \def\ALG@p@state{}%
-   \def\ALG@p@rec{\let\ALG@p@rec\ALG@p@main\ALG@p@rec#1}%
-   }%
-% STATE : xn
-\def\ALG@ps@xn@C{\def\ALG@p@state{}\ALG@p@onxnC}%
-\def\ALG@ps@xn@E{\def\ALG@p@state{}\ALG@p@onxnE}%
-\def\ALG@ps@xn@x{\typeout{algdef: Ignoring 'x' after 'xn'.}}%
-\def\ALG@ps@xn@n{\typeout{algdef: Ignoring 'n' after 'xn'.}}%
-\def\ALG@ps@xn@other#1%
-   {%
-   \typeout{algdef: Ignoring 'xn' before '#1'.}%
-   \def\ALG@p@state{}%
-   \def\ALG@p@rec{\let\ALG@p@rec\ALG@p@main\ALG@p@rec#1}%
-   }%
-% STATE : nx
-\def\ALG@ps@nx@C{\def\ALG@p@state{}\ALG@p@onxnC}%
-\def\ALG@ps@nx@E{\def\ALG@p@state{}\ALG@p@onxnE}%
-\def\ALG@ps@nx@x{\typeout{algdef: Ignoring 'x' after 'nx'.}}%
-\def\ALG@ps@nx@n{\typeout{algdef: Ignoring 'n' after 'nx'.}}%
-\def\ALG@ps@nx@other#1%
-   {%
-   \typeout{algdef: Ignoring 'nx' before '#1'.}%
-   \def\ALG@p@state{}%
-   \def\ALG@p@rec{\let\ALG@p@rec\ALG@p@main\ALG@p@rec#1}%
-   }%
-%
-%
-%   ***   User level block/entitie commands   ***
-%
-%
-%
-%   algdef{switches}... -- the king of all definitions in the algorithmicx package
-%
-\newcommand\algdef[1]%
-   {%
-   \ALG@p@undef{oldblock}%
-   \ALG@p@undef{start}%
-   \ALG@p@undef{end}%
-   \def\ALG@v@credits{}%
-   \ALG@p@undef{credits}%
-   \ALG@p@undef{indent}%
-   \ALG@p@undef{starttext}%
-   \ALG@p@undef{endtext}%
-   \def\ALG@p@state{}%
-   \let\ALG@p@rec\ALG@p@main%
-   \ALG@p@rec#1]%
-   \ALG@p@newblock%
-   }%
-%
-%   a lot of other macros are provided for convenience
-%
-\def\algblock{\algdef{se}}%
-\def\algcblock{\algdef{ce}}%
-\def\algloop{\algdef{sl}}%
-\def\algcloop{\algdef{cl}}%
-\def\algsetblock{\algdef{seLi}}%
-\def\algsetcblock{\algdef{ceLi}}%
-\def\algblockx{\algdef{SxE}}%
-\def\algblockdefx{\algdef{SE}}%
-\def\algcblockx{\algdef{CxE}}%
-\def\algcblockdefx{\algdef{CE}}%
-\def\algsetblockx{\algdef{SxELi}}%
-\def\algsetblockdefx{\algdef{SELi}}%
-\def\algsetcblockx{\algdef{CxELi}}%
-\def\algsetcblockdefx{\algdef{CELi}}%
-\def\algloopdefx{\algdef{Sl}}%
-\def\algcloopx{\algdef{xCl}}%
-\def\algcloopdefx{\algdef{Cl}}%
-% algloopx is not correct, use algloopdefx
-%
-%   Text output commands
-%
-\newcommand\algrenewtext[2][]% [block]{entity}
-   {%
-   \ifthenelse{\equal{#2}{}}{}%
-      {%
-      \ifthenelse{\equal{#1}{}}%
-         {%
-         \expandafter\let\csname ALG@t@\ALG@Ld @#2\endcsname\relax%
-         \expandafter\newcommand\csname ALG@t@\ALG@Ld @#2\endcsname%
-         }%
-         {%
-         \expandafter\let\csname ALG@t@\ALG@Ld @#2@\ALG@getblocknumber{#1}\endcsname\relax%
-         \expandafter\newcommand\csname ALG@t@\ALG@Ld @#2@\ALG@getblocknumber{#1}\endcsname%
-         }%
-      }%
-   }%
-%
-\def\ALG@letentitytext#1#2% [block]{entity}
-   {%
-   \ifthenelse{\equal{#2}{}}{}%
-      {%
-      \ifthenelse{\equal{#1}{}}%
-         {%
-         \expandafter\let\csname ALG@t@\ALG@Ld @#2\endcsname%
-         }%
-         {%
-         \expandafter\let\csname ALG@t@\ALG@Ld @#2@\ALG@getblocknumber{#1}\endcsname%
-         }%
-      }%
-   }%
-%
-\newcommand\algnotext[2][]% [block]{entity}
-   {%
-   \ALG@letentitytext{#1}{#2}\ALG@x@notext%
-   }%
-%
-\newcommand\algdefaulttext[2][]% [block]{entity}
-   {%
-   \ALG@letentitytext{#1}{#2}\ALG@x@default%
-   }%
-%
-\def\ALG@notext*{\algnotext}%
-\def\algtext{\@ifnextchar{*}{\ALG@notext}{\algrenewtext}}%
-%
-%
-%   ***   LANGUAGE SWITCHING   ***
-%
-%
-%
-\newcommand\algnewlanguage[1]%
-   {%
-   \@ifundefined{ALG@L@#1}% needs to be created?
-      {}%
-      {%
-      \PackageError{algorithmicx}{Language '#1' already defined!}{}%
-      }%
-   \addtocounter{ALG@Lnr}{1}% increment the language counter
-   \expandafter\edef\csname ALG@L@#1\endcsname{\arabic{ALG@Lnr}}% set the language number
-   \edef\ALG@Ld{\csname ALG@L@#1\endcsname}%
-   \expandafter\let\csname ALG@bl@\ALG@Ld @\endcsname\ALG@bl@% the BIG block
-   \expandafter\let\csname ALG@bl@\ALG@Ld @@\endcsname\ALG@bl@% the BIG block
-   \algdef{SL}[STATE]{State}{0}{}%
-   \expandafter\def\csname ALG@deftext@\ALG@Ld\endcsname{\textbf}%
-   \algnewcommand\algorithmiccomment[1]{\hfill\(\triangleright\) ##1}%
-   \algnewcommand\algorithmicindent{1.5em}%
-   \algnewcommand\alglinenumber[1]{\footnotesize ##1:}%
-   \algnewcommand\ALG@beginalgorithmic\relax% for user overrides
-   \algnewcommand\ALG@endalgorithmic\relax% for user overrides
-   }%
-%
-\newcommand\algsetlanguage[1]%
-   {%
-   \@ifundefined{ALG@L@#1}% needs to be created?
-      {%
-      \PackageError{algorithmicx}{Language '#1' is not yet defined!}{}%
-      }{}%
-   \edef\ALG@L{\csname ALG@L@#1\endcsname}%
-   }%
-%
-\newcommand\algdeflanguage[1]%
-   {%
-   \@ifundefined{ALG@L@#1}% needs to be created?
-      {%
-      \PackageError{algorithmicx}{Language '#1' is not yet defined!}{}%
-      }{}%
-   \edef\ALG@Ld{\csname ALG@L@#1\endcsname}%
-   }%
-%
-\newcommand\alglanguage[1]%
-   {%
-   \algdeflanguage{#1}%
-   \algsetlanguage{#1}%
-   }%
-%
-%
-%   ***   Defining language dependent stuff   ***
-%
-%
-\def\ALG@eatoneparam#1{}%
-\def\ALG@defbasecmd#1#2%
-   {%
-   \edef\ALG@tmp{\expandafter\ALG@eatoneparam\string #2}%
-   \@ifundefined\ALG@tmp{\edef #2{\noexpand\csname ALG@cmd@\noexpand\ALG@L @\ALG@tmp\endcsname}}{}%
-   \expandafter#1\csname ALG@cmd@\ALG@Ld @\ALG@tmp\endcsname%
-   }%
-\newcommand\algnewcommand{\ALG@defbasecmd\newcommand}%
-\newcommand\algrenewcommand{\ALG@defbasecmd\renewcommand}%
-\def\ALG@letcmd{\ALG@defbasecmd\let}%
-\def\ALG@defcmd{\ALG@defbasecmd\def}%
-\def\ALG@edefcmd{\ALG@defbasecmd\edef}%
-%
-%
-%   ***   OTHERS   ***
-%
-%
-\def\BState{\State \algbackskip}%
-\def\Statex{\item[]}% an empty line
-\newcommand\algrenewcomment{\algrenewcommand\algorithmiccomment}%
-\def\Comment{\algorithmiccomment}%
-\def\algref#1#2{\ref{#1}.\ref{#2}}%
-\algnewlanguage{default}%
-\algsetlanguage{default}%
-%
-%
-%   ***   Line breaks   ***
-%
-%
-\newcommand\algbreak% for multiline parameters !!! needs fix
-   {%
-      \item%
-%      \hskip\ALG@parindent%!!! not yet implemented
-%      \hskip-\algorithmicindent%
-   }%
-%
-\def\ALG@noputindents%
-   {%
-   \hskip\ALG@tlm%
-   }%
-%
-%
-%   ***   algorithm store / restore   ***
-%
-%
-%   store
-%
-\ALG@newcondstate{mustrestore}%
-\def\algstore%
-   {%
-   \renewcommand\ALG@beginblock%
-      {%
-      \PackageError{algorithmicx}{The environment must be closed after store!}{}%
-      }%
-   \@ifstar{\ALG@starstore}{\ALG@nostarstore}%
-   }%
-\def\ALG@nostarstore#1% save all infos into #1 and terminate the algorithmic block
-   {%
-   \addtocounter{ALG@storecount}{1}%
-   \expandafter\global\expandafter\let\csname ALG@save@mustrestore@#1\endcsname\ALG@x@mustrestore%
-   \ALG@starstore{#1}%
-   }%
-\def\ALG@starstore#1%
-   {%
-   \@ifundefined{ALG@save@line@#1}{}%
-       {\PackageError{algorithmicx}{This save name '#1' is already used!}{}}%
-   \def\ALG@savename{#1}%
-   \expandafter\xdef\csname ALG@save@totalnr@\ALG@savename\endcsname{\theALG@nested}%
-   \expandafter\xdef\csname ALG@save@line@\ALG@savename\endcsname{\theALG@line}%
-   \expandafter\xdef\csname ALG@save@numberfreq@\ALG@savename\endcsname{\ALG@numberfreq}%
-   \expandafter\xdef\csname ALG@save@rem@\ALG@savename\endcsname{\theALG@rem}%
-   \let\ALG@storerepeat\ALG@store%
-   \ALG@storerepeat%
-   }%
-\def\ALG@store% simply terminate all open blocks
-   {%
-   \ifnum\theALG@nested=0\let\ALG@storerepeat\relax%
-   \else%
-      \expandafter\xdef\csname ALG@save@currentblock@\ALG@savename @\theALG@nested\endcsname%
-         {\csname ALG@currentblock@\theALG@nested\endcsname}%
-      \expandafter\ifx\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
-      \else%
-         \expandafter\xdef\csname ALG@save@currentlifetime@\ALG@savename @\theALG@nested\endcsname%
-            {\csname ALG@currentlifetime@\theALG@nested\endcsname}%
-      \fi%
-      \expandafter\xdef\csname ALG@save@ind@\ALG@savename @\theALG@nested\endcsname%
-         {\csname ALG@ind@\theALG@nested\endcsname}%
-      \ALG@closebyforce%
-   \fi%
-   \ALG@storerepeat%
-   }%
-%
-%   restore
-%
-\def\algrestore%
-   {%
-   \@ifstar{\ALG@starrestore}{\ALG@nostarrestore}%
-   }%
-\def\ALG@starrestore%
-   {%
-   \let\ALG@restorerem\relax%
-   \let\ALG@restorereprem\relax%
-   \ALG@restoremain%
-   }%
-\def\ALG@nostarrestore%
-   {%
-   \let\ALG@restorerem\ALG@restoreremovesave%
-   \let\ALG@restorereprem\ALG@restorerepremovesave%
-   \ALG@restoremain%
-   }%
-\def\ALG@restoreremovesave%
-   {%
-   \expandafter\global\expandafter\let\csname ALG@save@totalnr@\ALG@savename\endcsname\relax%
-   \expandafter\global\expandafter\let\csname ALG@save@line@\ALG@savename\endcsname\relax%
-   \expandafter\global\expandafter\let\csname ALG@save@rem@\ALG@savename\endcsname\relax%
-   \expandafter\global\expandafter\let\csname ALG@save@totalnr@\ALG@savename\endcsname\relax%
-   \expandafter\global\expandafter\let\csname ALG@save@numberfreq@\ALG@savename\endcsname\relax%
-   }%
-\def\ALG@restorerepremovesave%
-   {%
-   \expandafter\global\expandafter\let\csname ALG@save@currentblock@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
-   \expandafter\global\expandafter\let\csname ALG@save@currentlifetime@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
-   \expandafter\global\expandafter\let\csname ALG@save@currentlifetime@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
-   \expandafter\global\expandafter\let\csname ALG@save@ind@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
-   }%
-\def\ALG@restoremain#1% restore all infos from #1 in an open algorithmic block
-   {%
-   \ifnum\theALG@line=0%
-      \else\PackageError{algorithmicx}{Restore might be used only at the beginning of the environment!}{}%
-   \fi%
-   \def\ALG@savename{#1}%
-   \expandafter\ifx\csname ALG@save@totalnr@\ALG@savename\endcsname\relax%
-      \PackageError{algorithmicx}{Save '\ALG@savename'\space not defined!!!}{}%
-   \fi%
-   \@ifundefined{ALG@save@mustrestore@\ALG@savename}{}%
-      {%
-      \addtocounter{ALG@storecount}{-1}%
-      \expandafter\global\expandafter\let\csname ALG@save@mustrestore@\ALG@savename\endcsname\relax%
-      }%
-   \setcounter{ALG@line}{\csname ALG@save@line@\ALG@savename\endcsname}%
-   \edef\ALG@numberfreq{\csname ALG@save@numberfreq@\ALG@savename\endcsname}%
-   \setcounter{ALG@rem}{\csname ALG@save@rem@\ALG@savename\endcsname}%
-   \setcounter{ALG@tmpcounter}{\csname ALG@save@totalnr@\ALG@savename\endcsname}%
-   \setcounter{ALG@nested}{0}%
-   \ALG@restorerem%
-   \let\ALG@restorerepeat\ALG@restore%
-   \ALG@restorerepeat%
-   }%
-\def\ALG@restore%
-   {%
-   \ifnum\theALG@tmpcounter>0%
-      \expandafter\edef\csname ALG@currentblock@\theALG@tmpcounter\endcsname%
-         {\csname ALG@save@currentblock@\ALG@savename @\theALG@tmpcounter\endcsname}%
-      \expandafter\ifx\csname ALG@save@currentlifetime@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
-         \expandafter\let\csname ALG@currentlifetime@\theALG@tmpcounter\endcsname\relax%
-         \else%
-            \expandafter\edef\csname ALG@currentlifetime@\theALG@tmpcounter\endcsname%
-            {\csname ALG@save@currentlifetime@\ALG@savename @\theALG@tmpcounter\endcsname}%
-         \fi%
-      %
-      \ALG@beginblock{\csname ALG@save@ind@\ALG@savename @\theALG@tmpcounter\endcsname}%
-      \ALG@restorereprem%
-      \addtocounter{ALG@tmpcounter}{-1}%
-   \else\let\ALG@restorerepeat\relax%
-   \fi%
-   \ALG@restorerepeat%
-   }%
-\AtEndDocument%
-   {%
-   \ifnum\theALG@storecount>0\relax%
-      \PackageError{algorithmicx}{Some stored algorithms are not restored!}{}%
-   \fi%
-   }%