+++ /dev/null
-% algorithm2e.sty --- style file for algorithms
-% almost everything can be customized by users. See the document for more explanations
-%% Copyright 1996-2013 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 5.0 2013/01/06 14:40:35 cfiorio Exp $
-%
-% PACKAGES REQUIRED:
-%
-% - float (in contrib/supported/float)
-% - ifthen (in base)
-% - xspace (in packages/tools)
-% - relsize (in contrib/misc/relsize.sty)
-%
-%%%%%%%%%%%%%%% Release 5.0
-%
-% Package options:
-% ---------------
-% - oldcommands : to use old command names
-% - french, english, german, ngerman
-% portuguese, czech, italiano,
-% slovak, croatian, spanish : 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)
-% - displayblockmarkers : display begin, end keywords at start of each block
-%
-% 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:
-%
-% - January 06 2013 - revision 5.0
-% * CHANGE: SetKwSwith takes now 9 args: 9th arg is the same as
-% previous 8th arg ('end of switch' keyword). New 8th arg is
-% 'end of case' keyword. This is due to change of release
-% 3.2 which introduce end after case block... as I never
-% test with longend option, I never see that the 'end
-% switch' used for case was not good.
-% * CHANGE: when no end keyword is defined in a block macro, then
-% algorithm2e does no more try to print it. So even with lined or noline
-% option, no empty line is printed (before: a blank end was
-% printed, so a blank line appeared)
-% * Internal Change: add some internal function to improve readibility
-% (thanks to Philip K. F. H\ölzenspies)
-% * ADD: Block markers.
-% You can now ask package to put begin and end keywords automatically at begin
-% and end of blocks, it means each group of commands shifted and enclosed in
-% braces.
-% This is tricky to use but, combined with \SetStartEndCondition and
-% redefinition of keywords, you should be abble to simulate any syntax. See
-% examples in documentation where a generic example is derived in pseudo-code,
-% python and C by keeping code and changing only style using block markers
-% macros, \SetStartEndCondition and some redefinition of keywords.
-% These new block markers macros are:
-% - \AlgoDisplayBlockMarkers and \AlgoDontDisplayBlockMarkers
-% - \SetAlgoBlockMarkers{begin marker}{end marker}
-% - \BlockMarkersSty{text} and \SetBlockMarkersSty
-% Note that a new option has also been added: displayblockmarkers
-% * ADD: \leIf macro automatically defined by \SetKwIF: allow to define
-% an if-then-else on a single line.
-% * ADD: new macro \SetStartEndCondition{typo1}{typo2}{typo3} which
-% sets typo around condition in For, If, Switch, Case and
-% Repeat macros. First two are used around For, If, Swith
-% conditions, First and third are used for Case and Repeat
-% condition where condition ends the line. Default definition
-% is \SetStartEndCondition{ }{ }{}.
-% A common alternative is \SetStartEndCondition{ (}{) }{)}
-% Can also be used to remove space around condition, for
-% example if you want python style commands:
-% \SetStartEndCondition{ }{}{} and \SetKwFor{For}{for}{:}{}
-% * ADD: new environment algomathdisplay which allow display math (like inside \[ \] or $$ $$)
-% handling end line and line number
-% * ADD: new command \SetKwProg{Env}{Title}{is}{end} which defines a macro
-% \Env{args}{text}. Env is a block with 'Title' (in \CapSty) at the beginning
-% followed by args followed by 'is' then 'text' is put below inside a block ended
-% by 'end'. If no 'end' is specified, nothing is written (no
-% blank line is inserted). Useful to typeset function or prog for example:
-% \SetKwProg{Fn}{Function}{is}{end} makes \Fn{afunc(i: int) : int}{return 0\;}
-% writes:
-% Function afunc(i: int) : int is
-% | return 0;
-% end
-% or \SetKwProg{Def}{def}{:}{} makes \Def{afunc(i: int)}{return 0\;} writes:
-% def afunc(i: int):
-% | return 0
-% Tip: combine it with \SetKwFunction to write recursive function algorithm. With
-% example above, you could define \SetKwFunction{\Afunc}{afunc} and then write:
-% \Def{\Afunc{i:int}{\eIf{i>0}{\KwRet \Afunc{i-1}}{\KwRet 0\;}} that writes:
-% def afunc(i: int):
-% | if(i>0):
-% | return afunc(i-1)
-% | else:
-% | return 0
-% with appropriate typo.
-% * ADD: option croatian: croation keywords (thanks to Ivan Gavran)
-% * ADD: option ngerman: same as german option but so can be used with global option ngerman
-% of babel
-% * ADD: option spanish: Spanish support (thanks to Mario Abarca)
-% * ADD: unterminated block: useful to add part separator that doesn't necessary need an end
-% keyword.
-% Designed on the pattern of unterminated if (see \uIf macro) allowing to
-% add a block that is not terminated by a keyword. Such block are defined in the same
-% time as a block is defined by adding a macro beginning with u. So, for example,
-% predefined \SetKwBlock{Begin}{begin}{end} defines now two commands:
-% - \Begin{} as previously which print a begin - end block
-% - \uBegin{} that defines a begin only block
-% * FIX: problem when numbering line inside until condition of
-% \SetKwRepeat macro: line number was not correctly aligned.
-% * FIX: dotocloa option which was broken
-% * FIX: uIf and uCase didn't have same behavior when used with
-% noline, vlined or lined option. This is fixed. Side effect: no empty
-% line after an uIf or uCase when used with options lined or vlined
-% * FIX: a bug with Repeat Until command when use with side comment on Until
-% * FIX: a bug with side text -- text put into () -- of command macro (SetKwIf and so on)
-% which was always setting a ';' even after a \DontPrintSemicolon
-% * FIX: a bug with hyperref and chapter definition (thanks to Hubert Meier)
-% * FIX: bugs with l macro and side comment
-% * FIX: revision number
-% * FIX: fix non ascii character (utf8 not yet recognized by all latex engine)
-% * FIX: fnum@algocf had an useless parameter which sometimes broke expansion and output an error
-% * FIX: works now with multicol package
-%
-% - december 14 2009 - revision 4.1
-% * 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 (thanks to Nathan Tallent)
-%
-% - 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, portuguese 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:
-% -----------
-% - horizontal spacing (indent) doesn't work with revtex4 class.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% for more complete informations you can see algorithm2e.tex
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%% Identification Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-%
-\ProvidesPackage{algorithm2e}[2013/01/06 v5.00 algorithms environments]
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%% Initial Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\@makeother\*% some package redefined it as a letter (as color.sty)
-\def\@firstword#1 #2\@nil{#1}% an useful fonction
-%%%%%%% Utilities:
-% \ifArgumentEmpty<c><t><e> ; if c is empty, i.e. {}, then t, else e.
-% Function used internally, but may as well expose it to the user; it's useful
-\long\def\ifArgumentEmpty#1{\bgroup
- \catcode`\Q=3
- \catcode`\T=3
- \long\def\@tempa##1##2Q##3##4##5T{##4}%
- \xdef\@tempa{\@tempa#1QQ{\noexpand\@secondoftwo}{\noexpand\@firstoftwo}T}%
-\egroup\@tempa}
-%
-% \algocf@longdef -> shorthand to reduce
-% \expandafter\long\expandafter\def
-% to
-% \expandafter\algocf@longdef
-% may look insignificant, but reads that much better ;)
-\def\algocf@longdef{\long\def}
-%
-% \algocf@newcommand (and helper \algocf@new@command) behaves like LaTeX's newcommand,
-% with two differences:
-% - the argument is not "\<name>", but rather "<name>"; i.e. one level of indirection
-% - if the command exists already, then \renewcommand, rather than \newcommand
-\def\algocf@newcommand#1{\expandafter\algocf@new@command\csname#1\endcsname}
-\def\algocf@new@command#1{%
- \begingroup \escapechar\m@ne\xdef\@gtempa{{\string#1}}\endgroup
- \expandafter\@ifundefined\@gtempa\newcommand\renewcommand#1}%
-%
-% \algocf@newcmdside<name><arity><body>
-% The largest time-saver; many commands we define have the pattern:
-% \<name>(<side_text>)<argX><argY>...
-% where "(<side_text>)" is optional. By defining them with this function,
-% the arguments are parsed and renumbered, i.e. the body works as if the
-% command was:
-% \<name><side_text><argX><argY>...
-% and can use \ifArgumentEmpty to see whether its #1 exists (default case
-% for the side text is (), so there's no difference between calling
-% \foo{bar}
-% or
-% \foo(){bar}
-% Technically this is new behaviour, but it shouldn't really occur...
-\algocf@longdef\algocf@newcmdside#1#2#3{%
- \expandafter\def\csname#1\endcsname{%
- \@ifnextchar({\csname algocf@#1strip\endcsname}{\csname algocf@#1strip\endcsname()}%
- }%
- \expandafter\algocf@longdef\csname algocf@#1strip\endcsname(##1){\csname algocf@#1main\endcsname{##1}}%
- \algocf@newcommand{algocf@#1main}[#2]{#3}%
-}
-%
-% \algocf@newcmdsides<name><arity><body><tail><closing>
-% Like the command above, but with an optional side text at the end
-% of the command as well, i.e.:
-% \<name>(<side_text>)<argX><argY>(<end_text>)
-% It may be a bit confusing that <arity> doesn't count <end_text>,
-% but since it is for internal use, the naming can be a little more
-% fuzzy. This function behaves as if:
-% <body'> = <body><if end_text: tail{end_text}><closing>
-\algocf@longdef\algocf@newcmdsides#1#2#3#4#5{%
- \expandafter\def\csname#1\endcsname{%
- \@ifnextchar({\csname algocf@#1strip\endcsname}{\csname algocf@#1strip\endcsname()}%
- }%
- \expandafter\algocf@longdef\csname algocf@#1strip\endcsname(##1){\csname algocf@#1main\endcsname{##1}}%
- \algocf@newcommand{algocf@#1main}[#2]{#3\@ifnextchar({\csname algocf@#1end\endcsname}{#4#5}}%
- \expandafter\algocf@longdef\csname algocf@#1end\endcsname(##1){#4{##1}\strut\par}%
-}%
-%
-% 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}%
-%
-% bug correction with hyperref submitted by Hubert Meier
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname @chapter\endcsname\relax\else
-% \let\algocf@original@chapter=\chapter%
-% \def\chapter{\addtocontents{loa}{\protect\addvspace{10\p@}}\algocf@original@chapter}%
-\let\algocf@original@chapter=\@chapter%
-\def\@chapter[#1]#2{\algocf@original@chapter[#1]{#2}\addtocontents{loa}{\protect\addvspace{10\p@}}}%
-\fi
-%
-%% 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@displayblockmarkers}\setboolean{algocf@displayblockmarkers}{false}%
-\DeclareOption{displayblockmarkers}{%
- \setboolean{algocf@displayblockmarkers}{true}%
-}
-%
-\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\'edure}%
-\renewcommand{\@algocf@funcname}{Fonction}%
-\renewcommand{\procedureautorefname}{proc\'edure}%
-\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{ngerman}{%
-\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{spanish}{%
-\renewcommand{\listalgorithmcfname}{\'Indice de algoritmos}%
-\renewcommand{\algorithmcfname}{Algoritmo}%
-\renewcommand{\algorithmautorefname}{algoritmo}%
-\renewcommand{\algorithmcflinename}{l\'inea}%
-\renewcommand{\algocf@typo}{}%
-\renewcommand{\@algocf@procname}{Procedimiento}%
-\renewcommand{\@algocf@funcname}{Funci\'on}%
-\renewcommand{\procedureautorefname}{procedimiento}%
-\renewcommand{\functionautorefname}{funci\'on}%
-\renewcommand{\algocf@languagechoosen}{spanish}%
-}%
-\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}%
-}%
-%
-\DeclareOption{croatian}{%
-\renewcommand{\listalgorithmcfname}{Popis algoritama}%
-\renewcommand{\algorithmcfname}{Algoritam}%
-\renewcommand{\algorithmautorefname}{\algorithmcfname}%
-\renewcommand{\algorithmcflinename}{linija}%
-\renewcommand{\algocf@typo}{}%
-\renewcommand{\@algocf@procname}{Procedura}%
-\renewcommand{\@algocf@funcname}{Funkcija}%
-\renewcommand{\procedureautorefname}{\@algocf@procname}%
-\renewcommand{\functionautorefname}{\@algocf@funcname}%
-\renewcommand{\algocf@languagechoosen}{croatian}%
-}%
-%
-% 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{\algocf@style@plainruled}{\renewcommand{\algocf@style}{plainruled}}%
-\newcommand{\RestyleAlgo}[1]{\csname algocf@style@#1\endcsname}%
-\DeclareOption{plain}{\algocf@style@plain}%
-\DeclareOption{plainruled}{\algocf@style@plainruled}%
-\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
-%
-\DeclareOption{nosemicolon}{\AtBeginDocument{\DontPrintSemicolon}}% \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{\listofalgorithms}{\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%
-}{\relax}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Main Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\newcommand{\algocf@name}{algorithm2e}%
-\newcommand{\algocf@date}{january 06 2013}%
-\newcommand{\algocf@version}{Release 5.0}%
-\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 (cfiorio@um2.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\inoutindent%
-\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}%
-%%
-%%
-\newskip\algoskipindent
-\newcommand{\algocf@adjustskipindent}{%
- \algoskipindent=\skiprule%
- \advance\algoskipindent by \skiptext\advance\algoskipindent by 0.4pt}
-\algocf@adjustskipindent%
-%
-\newcommand{\Indentp}[1]{\advance\leftskip by #1}%
-\newcommand{\Indp}{\algocf@adjustskipindent\advance\leftskip by \algoskipindent}
-\newcommand{\Indpp}{\advance\leftskip by 0.5em}%
-\newcommand{\Indm}{\algocf@adjustskipindent\advance\leftskip by -\algoskipindent}
-\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%
- % to handle particular case of until: printnl is after 'until' keyword has been writen, so we need to substract length of this keyword
- \advance\skiplinenumber by-\algocf@skipuntil%
- \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}\ignorespaces}%
-%
-%% 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}%
-\newcommand{\BlockMarkersSty}[1]{\KwSty{#1}}%
-\newcommand{\SetBlockMarkersSty}[1]{\renewcommand{\BlockMarkersSty}[1]{\textnormal{\csname#1\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\advance\hsize by -\skiplength}% 0.4 pt=width of \vrule
-\newcommand{\algocf@subskiptotal}{\advance\skiptotal by -0.4pt\advance\hsize by 0.4pt\advance\hsize by \skiplength}% 0.4 pt=width of \vrule
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%% group of instructions definition
-%
-\skiphlne=.8ex%
-\newcommand{\SetVlineSkip}[1]{\skiphlne=#1}%
-\newcommand{\algocf@bblock}{\BlockMarkersSty{begin}}%
-\newcommand{\algocf@eblock}{\BlockMarkersSty{end}}%
-\newcommand{\AlgoDisplayBlockMarkers}{\setboolean{algocf@displayblockmarkers}{true}}%
-\newcommand{\AlgoDontDisplayBlockMarkers}{\setboolean{algocf@displayblockmarkers}{false}}%
-\newcommand{\algocf@bblockcode}{%
- \ifthenelse{\boolean{algocf@displayblockmarkers}}{\algocf@bblock\par}{\relax}%
-}%
-\newcommand{\algocf@eblockcode}{%
- \ifthenelse{\boolean{algocf@displayblockmarkers}}{\algocf@eblock\par}{\relax}%
-}%
-\newcommand{\SetAlgoBlockMarkers}[2]{%
- \ifArgumentEmpty{#1}{%
- \renewcommand{\algocf@bblock}{\relax}%
- }{%
- \renewcommand{\algocf@bblock}{\BlockMarkersSty{#1}}%
- }% begin marker set
- \ifArgumentEmpty{#2}{%
- \renewcommand{\algocf@eblock}{\relax}%
- }{%
- \renewcommand{\algocf@eblock}{\BlockMarkersSty{#2}}%
- }% end marker set
-}
-%
-%%%%%%%%% 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 #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@bblockcode%
- \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 #1}}}% inside the block
- \algocf@pop{\skiprule}% restore indentation
- \algocf@eblockcode%
-}
-%
-\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@bblockcode%
- \algocf@push{\skiprule}%
- \hbox{%
- \vtop{\algocf@push{\skiptext}%
- \vtop{\algocf@addskiptotal #1}}}% inside the block
- \algocf@pop{\skiprule}%
- \algocf@eblockcode%
- % \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]{#1\ifArgumentEmpty{#2}{\relax}{\KwSty{\@algocf@endoption{#2}}\strut\par}}% block: group with a end keyword.
-\newcommand{\algocf@@block}[2]{\algocf@@@block{#1}{#2}}% 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@@@block{\algocf@Noline{##1}}{##2}}%
-\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]{\algocf@@@block{\strut\algocf@Vsline{##1}}{##2}}% no skip after a block so garantie at least one 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=\inoutindent}% 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}%
- \sbox\algocf@inoutbox{\parbox[t]{\inoutsize}{\KwSty{#2}\algocf@typo\hfill:}~}\setlength{\inoutindent}{\wd\algocf@inoutbox}%
- \else% else keep the larger dimension
- \ifdim\wd\algocf@inoutbox>\inoutsize%
- \setlength{\inoutsize}{\wd\algocf@inoutbox}%
- \sbox\algocf@inoutbox{\parbox[t]{\inoutsize}{\KwSty{#2}\algocf@typo\hfill:}~}\setlength{\inoutindent}{\wd\algocf@inoutbox}%
- \fi%
- \fi% the dimension of the box is now defined.
- \algocf@newcommand{#1}[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}%
- {\let\\\algocf@newinout\hangindent=\inoutindent\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]{%
- \algocf@newcommand{#1}[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]{%
- \algocf@newcommand{@#1}[1]{\DataSty{#2(}\ArgSty{##1}\DataSty{)}}%
- \algocf@newcommand{#1}{%
- \@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]{%
- \algocf@newcommand{#1}[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]{%
- \algocf@newcommand{#1}{\@ifstar{\csname algocf@#1@star\endcsname}{\csname algocf@#1\endcsname}}%
- \algocf@newcommand{algocf@#1}[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
- \algocf@newcommand{algocf@#1@star}[2][]{%
- \ifArgumentEmpty{##1}\relax{% TODO: Is this even necessary, with all those \ifx's?
- \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%
- }%
- \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}{\@endalgocfline\ }%
- \algocf@scrfill\algocf@startsidecomment\CommentSty{%
- \strut\ignorespaces##2\strut\algocf@sclfill#3}\algocf@scpar%
- }%
- \algocf@linesnumbered% reset the numbering of the lines
- \ifArgumentEmpty{##1}\relax{%
- \ifthenelse{\boolean{algocf@sidecomment}}{\setboolean{algocf@scleft}{true}}{\setboolean{algocf@scleft}{false}}%
- \setboolean{algocf@altsidecomment}{false}%
- }%
- }%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% KwProg
-%
-\newcommand{\SetKwProg}[4]{%
- \algocf@newcmdside{#1} 3{\KwSty{#2}\ifArgumentEmpty{#2}\relax{\ }\ArgSty{##2}\KwSty{#3}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##3}{#4}}%
- \algocf@newcmdside{l#1}3{\KwSty{#2} \ArgSty{##2}\KwSty{#3} ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Kw
-%
-\newcommand{\SetKw}[2]{%
- \algocf@newcommand{@#1}[1]{\KwSty{#2} \ArgSty{##1}}
- \algocf@newcommand{#1}{\@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]{%
- \algocf@newcmdside{#1}{2}
- {\KwSty{#2}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##2}{#3}\par}
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% condition typo
-%
-\newcommand{\algocf@scond}{ }
-\newcommand{\algocf@econd}{ }
-\newcommand{\algocf@ucond}{}
-\newcommand{\SetStartEndCondition}[3]{%
- \renewcommand{\algocf@scond}{#1}\renewcommand{\algocf@econd}{#2}\renewcommand{\algocf@ucond}{#3}}
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% For Switch
-%
-\newcommand{\SetKwSwitch}[9]{% #1=\Switch #2=\Case #3=\Other #4=switch #5=do #6=case #7=otherwise #8=endcase #9=endsw
- \algocf@newcmdside{#1}{3}
- {\KwSty{#4}\algocf@scond\ArgSty{##2}\algocf@econd\KwSty{#5}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##3}{#9}}
-%%%% Case
- \algocf@newcmdside{#2}{3}{\KwSty{#6}\algocf@scond\ArgSty{##2}\algocf@ucond\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##3}{#8}}%
- \algocf@newcmdside{u#2}{3}{\KwSty{#6}\algocf@scond\ArgSty{##2}\algocf@ucond\ifArgumentEmpty{##1}\relax{ ##1}\algocf@group{##3}}%
- \algocf@newcmdside{l#2}{3}{\KwSty{#6}\algocf@scond\ArgSty{##2}\algocf@ucond\ ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{ ##1}\strut\par}%
-%%%% Other
- \algocf@newcmdside{#3}{2}{\KwSty{#7}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##2}{#8}}%
- \algocf@newcmdside{l#3}{2}{\KwSty{#7}\ ##2\@endalgocfline\ifArgumentEmpty{##1}\relax{ ##1}\strut\par}%
-}%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% If macros
-%
-\newcommand{\SetKwIF}[8]{% #1=\If #2=\ElseIf #3=\Else #4=if #5=then #6=elseif #7=else #8=endif
-%
-% common text
- \algocf@newcommand{#1@ifthen}[1]{\KwSty{#4}\algocf@scond\ArgSty{##1}\algocf@econd\KwSty{#5}}%
- \algocf@newcommand{#1@endif} [1]{\algocf@block{##1}{#8}}%
- \algocf@newcommand{#1@noend} [1]{\algocf@group{##1}}%
- \algocf@newcommand{#1@else} [1]{\algocf@group{##1}\KwSty{#7}}%
- \algocf@newcommand{#2@elseif}[1]{\KwSty{#6}\algocf@scond\ArgSty{##1}\algocf@econd\KwSty{#5}}%
- \algocf@newcommand{#3@else} {\KwSty{#7}}%
-%%%% If then { } endif
- \algocf@newcmdside{#1}3{\csname #1@ifthen\endcsname{##2}\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@endif\endcsname{##3}}%
-%%%% If then {} else {} endif
- % first command to handle optional side comment of else (so just after first braces)
- \algocf@newcmdside{algocf@e#1thenelse}2{\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@endif\endcsname{##2}}
- % the definition of if-then-else command using command above
- \algocf@newcmdside{e#1}3{\csname #1@ifthen\endcsname{##2}\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@else\endcsname{##3}\csname algocf@e#1thenelse\endcsname}%
- %%% leif
- \algocf@newcmdside{le#1}4{\csname #1@ifthen\endcsname{##2} ##3 \csname #3@else\endcsname\ ##4\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}
-%%%% If then
- \algocf@newcmdside{l#1}3{\csname #1@ifthen\endcsname{##2} ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}%
- \algocf@newcmdside{u#1}3{\csname #1@ifthen\endcsname{##2}\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@noend\endcsname{##3}}%
-%%%% ElseIf {} endif
- \algocf@newcmdside{#2} 3{\csname #2@elseif\endcsname{##2}\relax\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@endif\endcsname{##3}}%
-%%%% ElseIf
- \algocf@newcmdside{l#2}3{\csname #2@elseif\endcsname{##2} ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}%
- \algocf@newcmdside{u#2}3{\csname #2@elseif\endcsname{##2}\relax\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@noend\endcsname{##3}}%
-%%%% Else {} endif
- \algocf@newcmdside{#3} 2{\csname #3@else\endcsname\ifArgumentEmpty{##1}\relax\ ##1\csname #1@endif\endcsname{##2}}%
-%%%% Else
- \algocf@newcmdside{l#3}2{\csname #3@else\endcsname\ ##2\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}%
- \algocf@newcmdside{u#3}2{\csname #3@else\endcsname \ifArgumentEmpty{##1}\relax{\ ##1\relax}\csname #1@noend\endcsname{##2}}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% For macros
-%
-\newcommand{\SetKwFor}[4]{%
- \algocf@newcmdside{#1} 3{\KwSty{#2}\algocf@scond\ArgSty{##2}\algocf@econd\KwSty{#3}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##3}{#4}}%
- \algocf@newcmdside{l#1}3{\KwSty{#2}\algocf@scond\ArgSty{##2}\algocf@econd\KwSty{#3} ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Repeat macros
-%
-\newsavebox{\algocf@untilbox}% to handle width of until keyword needed to have good skip
- % for line numbers
-\newskip\algocf@skipuntil
-\newcommand{\SetKwRepeat}[3]{%
- \algocf@newcmdsides{#1}{3}{%
- \sbox\algocf@untilbox{\KwSty{#3}\algocf@scond}\algocf@skipuntil=\wd\algocf@untilbox%
- \KwSty{#2}\ifArgumentEmpty{##1}\relax{##1}\algocf@group{##3}%
- \KwSty{#3}\algocf@scond% until keyword and start condition typo
- \advance\skiptotal by\algocf@skipuntil%
- \ArgSty{##2}%
- \advance\skiptotal by-\algocf@skipuntil%
- \algocf@ucond%
- \algocf@skipuntil=0pt% reset counter
- }{\@endalgocfline}{\strut\par}%
- \algocf@newcmdside{l#1}3{\KwSty{#2} ##3 \KwSty{#3}\algocf@scond\ArgSty{##2}\algocf@ucond\@endalgocfline\ifArgumentEmpty{##1}\relax{ ##1}\strut\par}%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%% 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@plainruled}[2]{\algocf@makecaption@plain{#1}{#2}}%
-\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@plainruled}{\algocf@caption@plain}%
-\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\hrule height0pt depth0pt\kern\interspacealgoruled}%
-\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}{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thealgocf}}%
-\newcommand{\algocf@resetfnum}{\renewcommand{\fnum@algocf}{\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}%
-\def\@algocf@pre@plainruled{\@algocf@pre@ruled}% action to be done before printing the algo.
-\def\@algocf@post@plainruled{\@algocf@post@ruled\kern\interspacealgoruled}% action to be done before printing the algo.
-\def\@algocf@capt@plainruled{under}%
-%
-\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
-\newenvironment{algomathdisplay}{\[}{\@endalgocfline\]\ifthenelse{\boolean{algocf@linesnumbered}}{\nl}{\relax}}%
-\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%
-% \let\@emathdisplay=\]\def\]{\algocf@endline\@emathdisplay\nl}%
-}%
-%
-%% 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%
- \let\]=\@emathdisplay%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%
-%% 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}
-\SetKwHangingKw{HDonnees}{Donnees$\rightarrow$}
-\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 cas}{fin d'alternative}%
-\SetKwFor{Pour}{pour}{faire}{fin pour}%
-\SetKwFor{PourPar}{pour}{faire en parall\`ele}{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
-%
-\SetKwHangingKw{KwHData}{Data$\rightarrow$}
-\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 case}{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 Fall}{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 caso}{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\'e}%
-%
-\SetKwIF{Sea}{AltSe}{Altrimenti}{se}{allora}{altrimenti se}{allora}{fine se}%
-\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{end case}{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\'e}{fai}{fine finch\'e}%
-%
-% --- Spanish keywords
-%
-\SetKwInput{Datos}{Datos}
-\SetKwInput{Resultado}{Resultado}
-\SetKwInput{Entrada}{Entrada}
-\SetKwInput{Salida}{Salida}
-\SetKw{KwA}{a}
-\SetKw{KwDevolver}{devolver}
-\SetKw{Devolver}{devolver}
-\SetKwBlock{Inicio}{inicio}{fin}
-\SetKwIF{SSi}{EnOtroCasoSi}{EnOtroCaso}{si}{entonces}{sin\'o, si}{sin\'o}{fin si}
-\SetKwSwitch{Seleccionar}{Caso}{Otro}{seleccionar}{hacer}{caso}{sin\'o}{fin caso}{fin seleccionar}
-\SetKwFor{Para}{para}{hacer}{fin para}
-\SetKwFor{ParaPara}{par}{hacer en paralelo}{fin para}
-\SetKwFor{EnParalelo}{para}{hacer en paralelo}{fin para}
-\SetKwFor{Mientras}{mientras}{hacer}{fin mientras}
-\SetKwFor{ParaCada}{para cada}{hacer}{fin para cada}
-\SetKwFor{ParaTodo}{para todo}{hacer}{fin para todo}
-\SetKwRepeat{Repetir}{repetir}{hasta que}
-%
-% Croatian keywords
-%
-\SetKwInput{KwUlaz}{Ulaz}%KwIn
-\SetKwInput{KwIzlaz}{Izlaz}%KwOut
-\SetKwInput{KwPodaci}{Podaci}%KwData
-\SetKwInput{KwRezultat}{Rezultat}%KwResult
-\SetKw{KwDo}{do}%KwTo
-\SetKw{KwVrati}{vrati}%KwRet
-\SetKw{Vrati}{vrati}%Return
-\SetKwBlock{Pocetak}{po\v{c}etak}{kraj}%Begin
-\SetKwRepeat{Ponavljaj}{ponavljaj}{dok ne bude}%Repeat
-%
-\SetKwIF{Ako}{InaceAko}{Inace}{ako}{onda}{ina\v{c}e ako}{ina\v{c}e}{kraj}%gIf
-\SetKwSwitch{Granaj}{Slucaj}{Inace}{granaj}{\v{c}ini}{slu\v{c}aj}{ina\v{c}e}{kraj}{kraj}%Switch
-\SetKwFor{Za}{za}{\v{c}ini}{kraj}%For
-\SetKwFor{ZaPar}{za}{izvr\v{s}avaj paralelno}{kraj}%ForPar
-\SetKwFor{ZaSvaki}{za svaki}{\v{c}ini}{kraj}%mForEach
-\SetKwFor{ZaSvaku}{za svaku}{\v{c}ini}{kraj}%fForEach
-\SetKwFor{ZaSvako}{za svako}{\v{c}ini}{kraj}%nForEach
-\SetKwFor{ZaSve}{za sve}{\v{c}ini}{kraj}%ForAll
-\SetKwFor{Dok}{dok}{\v{c}ini}{kraj}%While
-%
-% --- 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 cas}{fin d'alternative}%
-\SetKwFor{For}{pour}{faire}{fin pour}%
-\SetKwFor{ForPar}{pour}{faire en parall\`ele}{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 Fall}{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}{portuguese}}{%
-\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 caso}{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\'e}%
-%
-\SetKwIF{If}{ElseIf}{Else}{se}{allora}{altrimenti se}{allora}{fine se}%
-\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{end case}{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\'e}{fai}{fine finch\'e}%
-}{}%
-\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{spanish}}{%
-\SetKwInput{KwIn}{Entrada}%
-\SetKwInput{KwOut}{Salida}%
-\SetKwInput{KwData}{Datos}%
-\SetKwInput{KwResult}{Resultado}%
-\SetKw{KwTo}{a}%
-\SetKw{KwRet}{devolver}%
-\SetKw{Return}{devolver}%
-\SetKwBlock{Begin}{inicio}{fin}%
-\SetKwRepeat{Repeat}{repetir}{hasta que}%
-%
-\SetKwIF{If}{ElseIf}{Else}{si}{entonces}{sin\'o, si}{en otro caso}{fin si}
-\SetKwSwitch{Switch}{Case}{Other}{seleccionar}{hacer}{caso}{sin\'o}{fin caso}{fin seleccionar}
-\SetKwFor{For}{per}{fai}{fine per}%
-\SetKwFor{ForPar}{par}{hacer in paralelo}{fin para}%
-\SetKwFor{ForEach}{para cada}{hacer}{fin para cada}
-\SetKwFor{ForAll}{para todo}{hacer}{fin para todo}
-\SetKwFor{While}{mientras}{hacer}{fin mientras}
-}{}%
-%
-\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{croatian}}{%
-\SetKwInput{KwIn}{Ulaz}%KwIn
-\SetKwInput{KwOut}{Izlaz}%KwOut
-\SetKwInput{KwData}{Podaci}%KwData
-\SetKwInput{KwResult}{Rezultat}%KwResult
-\SetKw{KwTo}{do}%KwTo
-\SetKw{KwRet}{vrati}%KwRet
-\SetKw{Return}{vrati}%Return
-\SetKwBlock{Begin}{po\v{c}etak}{kraj}%Begin
-\SetKwRepeat{Repeat}{ponavljaj}{dok ne bude}%Repeat
-%
-\SetKwIF{If}{ElseIf}{Else}{ako}{onda}{ina\v{c}e ako}{ina\v{c}e}{kraj}%gIf
-\SetKwSwitch{Switch}{Case}{Other}{granaj}{\v{c}ini}{slu\v{c}aj}{ina\v{c}e}{kraj}{kraj}%Switch
-\SetKwFor{For}{za}{\v{c}ini}{kraj}%For
-\SetKwFor{ForPar}{za}{izvr\v{s}avaj paralelno}{kraj}%ForPar
-\SetKwFor{ForEach}{za svaki}{\v{c}ini}{kraj}%ForEach
-\SetKwFor{ForAll}{za sve}{\v{c}ini}{kraj}%ForAll
-\SetKwFor{While}{dok}{\v{c}ini}{kraj}%While
-}{}%
-%
-%%%% old commands compatibility
-%
-\ifthenelse{\boolean{algocf@oldcommands}}{%
-\newcommand{\SetNoLine}{\SetAlgoNoLine}%
-\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{If}{ElseIf}{Else}{if}{then}{else if}{else}{endif}
-\newcommand{\SetKwIf}[6]{\SetKwIF{#1}{#2#1}{#2}{#3}{#4}{#5 #1}{#5}{#6}}
-%
-\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}%
-\SetKw{Ret}{return}%
-\SetKwInput{Data}{Data}%
-\SetKwInput{Result}{Result}%
-}{%
- \relax%
-}%
-%
-%
-%
-%%
-%%%
-%%%% END
\ No newline at end of file
+++ /dev/null
-\r
-%% bare_adv.tex\r
-%% V1.3\r
-%% 2007/01/11\r
-%% by Michael Shell\r
-%% See: \r
-%% http://www.michaelshell.org/\r
-%% for current contact information.\r
-%%\r
-%% This is a skeleton file demonstrating the advanced use of IEEEtran.cls\r
-%% (requires IEEEtran.cls version 1.7 or later) with an IEEE Computer\r
-%% Society journal paper.\r
-%%\r
-%% Support sites:\r
-%% http://www.michaelshell.org/tex/ieeetran/\r
-%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/\r
-%% and\r
-%% http://www.ieee.org/\r
-\r
-%%*************************************************************************\r
-%% Legal Notice:\r
-%% This code is offered as-is without any warranty either expressed or\r
-%% implied; without even the implied warranty of MERCHANTABILITY or\r
-%% FITNESS FOR A PARTICULAR PURPOSE! \r
-%% User assumes all risk.\r
-%% In no event shall IEEE or any contributor to this code be liable for\r
-%% any damages or losses, including, but not limited to, incidental,\r
-%% consequential, or any other damages, resulting from the use or misuse\r
-%% of any information contained here.\r
-%%\r
-%% All comments are the opinions of their respective authors and are not\r
-%% necessarily endorsed by the IEEE.\r
-%%\r
-%% This work is distributed under the LaTeX Project Public License (LPPL)\r
-%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,\r
-%% distributed and modified. A copy of the LPPL, version 1.3, is included\r
-%% in the base LaTeX documentation of all distributions of LaTeX released\r
-%% 2003/12/01 or later.\r
-%% Retain all contribution notices and credits.\r
-%% ** Modified files should be clearly indicated as such, including **\r
-%% ** renaming them and changing author support contact information. **\r
-%%\r
-%% File list of work: IEEEtran.cls, IEEEtran_HOWTO.pdf, bare_adv.tex,\r
-%% bare_conf.tex, bare_jrnl.tex, bare_jrnl_compsoc.tex\r
-%%*************************************************************************\r
-\r
-% *** Authors should verify (and, if needed, correct) their LaTeX system ***\r
-% *** with the testflow diagnostic prior to trusting their LaTeX platform ***\r
-% *** with production work. IEEE's font choices can trigger bugs that do ***\r
-% *** not appear when using other class files. ***\r
-% The testflow support page is at:\r
-% http://www.michaelshell.org/tex/testflow/\r
-\r
-\r
-\r
-% IEEEtran V1.7 and later provides for these CLASSINPUT macros to allow the\r
-% user to reprogram some IEEEtran.cls defaults if needed. These settings\r
-% override the internal defaults of IEEEtran.cls regardless of which class\r
-% options are used. Do not use these unless you have good reason to do so as\r
-% they can result in nonIEEE compliant documents. User beware. ;)\r
-%\r
-%\newcommand{\CLASSINPUTbaselinestretch}{1.0} % baselinestretch\r
-%\newcommand{\CLASSINPUTinnersidemargin}{1in} % inner side margin\r
-%\newcommand{\CLASSINPUToutersidemargin}{1in} % outer side margin\r
-%\newcommand{\CLASSINPUTtoptextmargin}{1in} % top text margin\r
-%\newcommand{\CLASSINPUTbottomtextmargin}{1in}% bottom text margin\r
-\r
-\r
-\r
-% Note that the a4paper option is mainly intended so that authors in\r
-% countries using A4 can easily print to A4 and see how their papers will\r
-% look in print - the typesetting of the document will not typically be\r
-% affected with changes in paper size (but the bottom and side margins will).\r
-% Use the testflow package mentioned above to verify correct handling of\r
-% both paper sizes by the user's LaTeX system.\r
-%\r
-% Also note that the "draftcls" or "draftclsnofoot", not "draft", option\r
-% should be used if it is desired that the figures are to be displayed in\r
-% draft mode.\r
-%\r
-\documentclass[12pt,journal,compsoc]{IEEEtran}\r
-% The Computer Society requires 12pt.\r
-% If IEEEtran.cls has not been installed into the LaTeX system files,\r
-% manually specify the path to it like:\r
-% \documentclass[10pt,journal,compsoc]{../sty/IEEEtran}\r
-\r
-\r
-% For Computer Society journals, IEEEtran defaults to the use of \r
-% Palatino/Palladio as is done in IEEE Computer Society journals.\r
-% To go back to Times Roman, you can use this code:\r
-%\renewcommand{\rmdefault}{ptm}\selectfont\r
-\r
-\r
-\r
-\r
-\r
-% Some very useful LaTeX packages include:\r
-% (uncomment the ones you want to load)\r
-\r
-\r
-\r
-% *** MISC UTILITY PACKAGES ***\r
-%\r
-%\usepackage{ifpdf}\r
-% Heiko Oberdiek's ifpdf.sty is very useful if you need conditional\r
-% compilation based on whether the output is pdf or dvi.\r
-% usage:\r
-% \ifpdf\r
-% % pdf code\r
-% \else\r
-% % dvi code\r
-% \fi\r
-% The latest version of ifpdf.sty can be obtained from:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/\r
-% Also, note that IEEEtran.cls V1.7 and later provides a builtin\r
-% \ifCLASSINFOpdf conditional that works the same way.\r
-% When switching from latex to pdflatex and vice-versa, the compiler may\r
-% have to be run twice to clear warning/error messages.\r
-\r
-\r
-\r
-\r
-\r
-\r
-% *** CITATION PACKAGES ***\r
-%\r
-\ifCLASSOPTIONcompsoc\r
- % IEEE Computer Society needs nocompress option\r
- % requires cite.sty v4.0 or later (November 2003)\r
- % \usepackage[nocompress]{cite}\r
-\else\r
- % normal IEEE\r
- % \usepackage{cite}\r
-\fi\r
-% cite.sty was written by Donald Arseneau\r
-% V1.6 and later of IEEEtran pre-defines the format of the cite.sty package\r
-% \cite{} output to follow that of IEEE. Loading the cite package will\r
-% result in citation numbers being automatically sorted and properly\r
-% "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using\r
-% cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's\r
-% \cite will automatically add leading space, if needed. Use cite.sty's\r
-% noadjust option (cite.sty V3.8 and later) if you want to turn this off.\r
-% cite.sty is already installed on most LaTeX systems. Be sure and use\r
-% version 4.0 (2003-05-27) and later if using hyperref.sty. cite.sty does\r
-% not currently provide for hyperlinked citations.\r
-% The latest version can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/cite/\r
-% The documentation is contained in the cite.sty file itself.\r
-%\r
-% Note that some packages require special options to format as the Computer\r
-% Society requires. In particular, Computer Society papers do not use\r
-% compressed citation ranges as is done in typical IEEE papers\r
-% (e.g., [1]-[4]). Instead, they list every citation separately in order\r
-% (e.g., [1], [2], [3], [4]). To get the latter we need to load the cite\r
-% package with the nocompress option which is supported by cite.sty v4.0\r
-% and later. Note also the use of a CLASSOPTION conditional provided by\r
-% IEEEtran.cls V1.7 and later.\r
-\r
-\r
-\r
-\r
-\r
-% *** GRAPHICS RELATED PACKAGES ***\r
-%\r
-\ifCLASSINFOpdf\r
- % \usepackage[pdftex]{graphicx}\r
- % declare the path(s) where your graphic files are\r
- % \graphicspath{{../pdf/}{../jpeg/}}\r
- % and their extensions so you won't have to specify these with\r
- % every instance of \includegraphics\r
- % \DeclareGraphicsExtensions{.pdf,.jpeg,.png}\r
-\else\r
- % or other class option (dvipsone, dvipdf, if not using dvips). graphicx\r
- % will default to the driver specified in the system graphics.cfg if no\r
- % driver is specified.\r
- % \usepackage[dvips]{graphicx}\r
- % declare the path(s) where your graphic files are\r
- % \graphicspath{{../eps/}}\r
- % and their extensions so you won't have to specify these with\r
- % every instance of \includegraphics\r
- % \DeclareGraphicsExtensions{.eps}\r
-\fi\r
-% graphicx was written by David Carlisle and Sebastian Rahtz. It is\r
-% required if you want graphics, photos, etc. graphicx.sty is already\r
-% installed on most LaTeX systems. The latest version and documentation can\r
-% be obtained at: \r
-% http://www.ctan.org/tex-archive/macros/latex/required/graphics/\r
-% Another good source of documentation is "Using Imported Graphics in\r
-% LaTeX2e" by Keith Reckdahl which can be found as epslatex.ps or\r
-% epslatex.pdf at: http://www.ctan.org/tex-archive/info/\r
-%\r
-% latex, and pdflatex in dvi mode, support graphics in encapsulated\r
-% postscript (.eps) format. pdflatex in pdf mode supports graphics\r
-% in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure\r
-% that all non-photo figures use a vector format (.eps, .pdf, .mps) and\r
-% not a bitmapped formats (.jpeg, .png). IEEE frowns on bitmapped formats\r
-% which can result in "jaggedy"/blurry rendering of lines and letters as\r
-% well as large increases in file sizes.\r
-%\r
-% You can find documentation about the pdfTeX application at:\r
-% http://www.tug.org/applications/pdftex\r
-\r
-\r
-\r
-%\usepackage{ps4pdf}\r
-% dvi->ps workflow is required to use such packages as psfrag.sty and\r
-% pstricks.sty. However, Rolf Niepraschk's ps4pdf.sty provides a way to\r
-% apply psfrag/pstricks effects to .eps figures and then get the resultant\r
-% figures in .pdf form. Thus, providing an easier way for migrating from\r
-% .eps to .pdf figures. After ps4pdf.sty loads, if:\r
-% 1. producing .dvi output: the output file will consist ONLY of the\r
-% figures (or other constructs encased within \PSforPDF commands)\r
-% 2. producing .pdf output: pdflatex will look in the filename-pics.pdf\r
-% file, where filename is the basename of the tex document, for the\r
-% graphics (or other constructs encased within \PSforPDF commands).\r
-% NOTE: If you ever change your figures, you must remember to remake\r
-% the filename-pics.pdf file.\r
-%\r
-% This way you can do a:\r
-% \r
-% latex filename\r
-% dvips -Ppdf -o filename-pics.ps filename.dvi\r
-% ps2pdf filename-pics.ps filename-pics.pdf\r
-% \r
-% to produce a filename-pics.pdf graphics container that contains\r
-% .pdf versions of the graphics with psfrag, pstricks, etc. features.\r
-% Note that you will not typically be able to view the figures in \r
-% filename-pics.ps because of an offset. However, you will be able to\r
-% view them in filename-pics.pdf. Also, note that when ps4pdf is in effect\r
-% with .dvi output, you may get harmless over/under full box warnings - \r
-% ignore them. \r
-% Then, run pdflatex:\r
-% \r
-% pdflatex filename\r
-% \r
-% to use pdflatex to make PDF output, automatically using the figures in\r
-% filename-pics.pdf. Alternatively, you could use dvips -i option to\r
-% obtain separate .pdf files for each figure:\r
-%\r
-% dvips -Ppdf -i -E -o fig filename\r
-%\r
-% then convert each figure to pdf via a command such as epstopdf and then\r
-% use pdflatex with these pdf figures and then to dispense with ps4pdf.\r
-%\r
-% Remember to rerun through latex/dvips/ps2pdf if you ever change your\r
-% figures so that filename-pics.pdf gets updated.\r
-% ps4pdf requires David Kastrup's preview-latex and a recent LaTeX system\r
-% (circa 2001 or later). The ps4pdf package and documentation can be\r
-% obtained at: http://www.ctan.org/tex-archive/macros/latex/contrib/ps4pdf/\r
-% The preview-latex package and documentation can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/preview/\r
-%\r
-% provide a bogus \PSforPDF, even when not loading pd4pdf. This way we can\r
-% stop loading ps4pdf.sty if we choose to make separate .pdf versions of\r
-% each of our figures.\r
-\providecommand{\PSforPDF}[1]{#1}\r
-% Note that in order for ps4pdf to work, all commands related to psfrag,\r
-% pstricks, etc. must be called within the PSforPDF command. This applies\r
-% even when *loading* via \usepackage psfrag.sty, etc.\r
-\r
-\r
-%\PSforPDF{\usepackage{psfrag}}\r
-% psfrag.sty was written by Craig Barratt, Michael C. Grant, and\r
-% David Carlisle. It allows you to substitute LaTeX commands for text in\r
-% imported EPS graphic files. In this way, LaTeX symbols can be placed into\r
-% graphics that have been generated by other applications. You must use\r
-% latex->dvips->ps2pdf workflow (not direct pdf output from pdflatex) if\r
-% you wish to use this capability because it works via some PostScript\r
-% tricks. Alternatively, the graphics could be processed as separate files\r
-% via psfrag and dvips, then converted to PDF for inclusion in the main file\r
-% which uses pdflatex. ps4pdf.sty (above) provides a way of doing this all\r
-% at once within the main file.\r
-% Docs are in "The PSfrag System" by Michael C. Grant and David Carlisle.\r
-% There is also some information about using psfrag in "Using Imported\r
-% Graphics in LaTeX2e" by Keith Reckdahl which documents the graphicx\r
-% package (see above). The psfrag package and documentation can be obtained\r
-% at: http://www.ctan.org/tex-archive/macros/latex/contrib/psfrag/\r
-% \r
-% Note that the current version of psfrag does not "turn itself off" when\r
-% running under pdf output. This will result in a harmless warning\r
-% about a non-PDF \special. However, to silence this, a bogus psfrag\r
-% command can be provided instead of loading psfrag.sty when PDF output\r
-% is being used. Thus, a more complex alternative conditional loading scheme\r
-% can be employed instead of the straightforword way above:\r
-%\r
-%\ifCLASSINFOpdf\r
-% if outputting PDF, do not use or load psfrag.sty as current versions\r
-% output a non-PDF special that generates a harmless, but annoying warning.\r
-% Instead, we provide a bogus \psfrag command that does nothing with\r
-% its arguments. This is a tad tricky because \psfrag can have up to six\r
-% arguments four of which are optional: \psfrag{}[][][][]{}\r
-% Code based on that in psfrag.sty\r
-%\makeatletter\r
-%\def\psfrag{\@ifstar{\@BOGUSpsfraga}{\@BOGUSpsfraga}}\r
-%\def\@BOGUSpsfraga{\begingroup\r
-% \@makeother\"\@makeother\*\@makeother\!\@makeother\~%\r
-% \@makeother\:\@makeother\\\@makeother\%\@makeother\#%\r
-% \@makeother\ \@BOGUSpsfragb}\r
-%\def\@BOGUSpsfragb#1{\endgroup\r
-% \@ifnextchar [{\@BOGUSpsfragc}%\r
-% {\@BOGUSpsfrag}}\r
-%\def\@BOGUSpsfragc[#1]{\@ifnextchar [{\@BOGUSpsfragd}%\r
-% {\@BOGUSpsfrag}}\r
-%\def\@BOGUSpsfragd[#1]{\@ifnextchar [{\@BOGUSpsfrage}%\r
-% {\@BOGUSpsfrag}}\r
-%\def\@BOGUSpsfrage[#1]{\@ifnextchar [{\@BOGUSpsfragf}%\r
-% {\@BOGUSpsfrag}}\r
-%\def\@BOGUSpsfragf[#1]{\@BOGUSpsfrag}\r
-%\def\@BOGUSpsfrag#1{\ignorespaces}\r
-%\makeatother\r
-%\else\r
-% using dvi output, load psfrag, but funnel it through PSforPDF\r
-% as required by ps4pdf.sty\r
-%\PSforPDF{\usepackage{psfrag}}\r
-%\fi\r
-\r
-\r
-\r
-\r
-\r
-% *** MATH PACKAGES ***\r
-%\r
-%\usepackage[cmex10]{amsmath}\r
-% A popular package from the American Mathematical Society that provides\r
-% many useful and powerful commands for dealing with mathematics. If using\r
-% it, be sure to load this package with the cmex10 option to ensure that\r
-% only type 1 fonts will utilized at all point sizes. Without this option,\r
-% it is possible that some math symbols, particularly those within\r
-% footnotes, will be rendered in bitmap form which will result in a\r
-% document that can not be IEEE Xplore compliant!\r
-%\r
-% Also, note that the amsmath package sets \interdisplaylinepenalty to 10000\r
-% thus preventing page breaks from occurring within multiline equations. Use:\r
-%\interdisplaylinepenalty=2500\r
-% after loading amsmath to restore such page breaks as IEEEtran.cls normally\r
-% does. amsmath.sty is already installed on most LaTeX systems. The latest\r
-% version and documentation can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/\r
-\r
-\r
-\r
-\r
-\r
-% *** SPECIALIZED LIST PACKAGES ***\r
-%\usepackage{acronym}\r
-% acronym.sty was written by Tobias Oetiker. This package provides tools for\r
-% managing documents with large numbers of acronyms. (You don't *have* to\r
-% use this package - unless you have a lot of acronyms, you may feel that\r
-% such package management of them is bit of an overkill.)\r
-% Do note that the acronym environment (which lists acronyms) will have a\r
-% problem when used under IEEEtran.cls because acronym.sty relies on the\r
-% description list environment - which IEEEtran.cls has customized for\r
-% producing IEEE style lists. A workaround is to declared the longest\r
-% label width via the IEEEtran.cls \IEEEiedlistdecl global control:\r
-%\r
-% \renewcommand{\IEEEiedlistdecl}{\IEEEsetlabelwidth{SONET}}\r
-% \begin{acronym}\r
-%\r
-% \end{acronym}\r
-% \renewcommand{\IEEEiedlistdecl}{\relax}% remember to reset \IEEEiedlistdecl\r
-%\r
-% instead of using the acronym environment's optional argument.\r
-% The latest version and documentation can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/acronym/\r
-\r
-\r
-%\usepackage{algorithmic}\r
-% algorithmic.sty was written by Peter Williams and Rogerio Brito.\r
-% This package provides an algorithmic environment fo describing algorithms.\r
-% You can use the algorithmic environment in-text or within a figure\r
-% environment to provide for a floating algorithm. Do NOT use the algorithm\r
-% floating environment provided by algorithm.sty (by the same authors) or\r
-% algorithm2e.sty (by Christophe Fiorio) as IEEE does not use dedicated\r
-% algorithm float types and packages that provide these will not provide\r
-% correct IEEE style captions. The latest version and documentation of\r
-% algorithmic.sty can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/\r
-% There is also a support site at:\r
-% http://algorithms.berlios.de/index.html\r
-% Also of interest may be the (relatively newer and more customizable)\r
-% algorithmicx.sty package by Szasz Janos:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/\r
-\r
-\r
-\r
-\r
-% *** ALIGNMENT PACKAGES ***\r
-%\r
-%\usepackage{array}\r
-% Frank Mittelbach's and David Carlisle's array.sty patches and improves\r
-% the standard LaTeX2e array and tabular environments to provide better\r
-% appearance and additional user controls. As the default LaTeX2e table\r
-% generation code is lacking to the point of almost being broken with\r
-% respect to the quality of the end results, all users are strongly\r
-% advised to use an enhanced (at the very least that provided by array.sty)\r
-% set of table tools. array.sty is already installed on most systems. The\r
-% latest version and documentation can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/required/tools/\r
-\r
-\r
-%\usepackage{mdwmath}\r
-%\usepackage{mdwtab}\r
-% Also highly recommended is Mark Wooding's extremely powerful MDW tools,\r
-% especially mdwmath.sty and mdwtab.sty which are used to format equations\r
-% and tables, respectively. The MDWtools set is already installed on most\r
-% LaTeX systems. The lastest version and documentation is available at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/\r
-\r
-\r
-% IEEEtran contains the IEEEeqnarray family of commands that can be used to\r
-% generate multiline equations as well as matrices, tables, etc., of high\r
-% quality.\r
-\r
-\r
-%\usepackage{eqparbox}\r
-% Also of notable interest is Scott Pakin's eqparbox package for creating\r
-% (automatically sized) equal width boxes - aka "natural width parboxes".\r
-% Available at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/\r
-\r
-\r
-\r
-\r
-\r
-% *** SUBFIGURE PACKAGES ***\r
-%\ifCLASSOPTIONcompsoc\r
-%\usepackage[tight,normalsize,sf,SF]{subfigure}\r
-%\else\r
-%\usepackage[tight,footnotesize]{subfigure}\r
-%\fi\r
-% subfigure.sty was written by Steven Douglas Cochran. This package makes it\r
-% easy to put subfigures in your figures. e.g., "Figure 1a and 1b". For IEEE\r
-% work, it is a good idea to load it with the tight package option to reduce\r
-% the amount of white space around the subfigures. Computer Society papers\r
-% use a larger font and \sffamily font for their captions, hence the\r
-% additional options needed under compsoc mode. subfigure.sty is already\r
-% installed on most LaTeX systems. The latest version and documentation can\r
-% be obtained at:\r
-% http://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/\r
-% subfigure.sty has been superceeded by subfig.sty.\r
-\r
-\r
-%\ifCLASSOPTIONcompsoc\r
-% \usepackage[caption=false]{caption}\r
-% \usepackage[font=normalsize,labelfont=sf,textfont=sf]{subfig}\r
-%\else\r
-% \usepackage[caption=false]{caption}\r
-% \usepackage[font=footnotesize]{subfig}\r
-%\fi\r
-% subfig.sty, also written by Steven Douglas Cochran, is the modern\r
-% replacement for subfigure.sty. However, subfig.sty requires and\r
-% automatically loads Axel Sommerfeldt's caption.sty which will override\r
-% IEEEtran.cls handling of captions and this will result in nonIEEE style\r
-% figure/table captions. To prevent this problem, be sure and preload\r
-% caption.sty with its "caption=false" package option. This is will preserve\r
-% IEEEtran.cls handing of captions. Version 1.3 (2005/06/28) and later \r
-% (recommended due to many improvements over 1.2) of subfig.sty supports\r
-% the caption=false option directly:\r
-%\ifCLASSOPTIONcompsoc\r
-% \usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}\r
-%\else\r
-% \usepackage[caption=false,font=footnotesize]{subfig}\r
-%\fi\r
-%\r
-% The latest version and documentation can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/\r
-% The latest version and documentation of caption.sty can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/caption/\r
-\r
-\r
-\r
-\r
-% *** FLOAT PACKAGES ***\r
-%\r
-%\usepackage{fixltx2e}\r
-% fixltx2e, the successor to the earlier fix2col.sty, was written by\r
-% Frank Mittelbach and David Carlisle. This package corrects a few problems\r
-% in the LaTeX2e kernel, the most notable of which is that in current\r
-% LaTeX2e releases, the ordering of single and double column floats is not\r
-% guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a\r
-% single column figure to be placed prior to an earlier double column\r
-% figure. The latest version and documentation can be found at:\r
-% http://www.ctan.org/tex-archive/macros/latex/base/\r
-\r
-\r
-%\usepackage{stfloats}\r
-% stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e\r
-% the ability to do double column floats at the bottom of the page as well\r
-% as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in\r
-% LaTeX2e). It also provides a command:\r
-%\fnbelowfloat\r
-% to enable the placement of footnotes below bottom floats (the standard\r
-% LaTeX2e kernel puts them above bottom floats). This is an invasive package\r
-% which rewrites many portions of the LaTeX2e float routines. It may not work\r
-% with other packages that modify the LaTeX2e float routines. The latest\r
-% version and documentation can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/sttools/\r
-% Documentation is contained in the stfloats.sty comments as well as in the\r
-% presfull.pdf file. Do not use the stfloats baselinefloat ability as IEEE\r
-% does not allow \baselineskip to stretch. Authors submitting work to the\r
-% IEEE should note that IEEE rarely uses double column equations and\r
-% that authors should try to avoid such use. Do not be tempted to use the\r
-% cuted.sty or midfloat.sty packages (also by Sigitas Tolusis) as IEEE does\r
-% not format its papers in such ways.\r
-\r
-\r
-%\ifCLASSOPTIONcaptionsoff\r
-% \usepackage[nomarkers]{endfloat}\r
-% \let\MYoriglatexcaption\caption\r
-% \renewcommand{\caption}[2][\relax]{\MYoriglatexcaption[#2]{#2}}\r
-%\fi\r
-% endfloat.sty was written by James Darrell McCauley and Jeff Goldberg.\r
-% This package may be useful when used in conjunction with IEEEtran.cls'\r
-% captionsoff option. Some IEEE journals/societies require that submissions\r
-% have lists of figures/tables at the end of the paper and that\r
-% figures/tables without any captions are placed on a page by themselves at\r
-% the end of the document. If needed, the draftcls IEEEtran class option or\r
-% \CLASSINPUTbaselinestretch interface can be used to increase the line\r
-% spacing as well. Be sure and use the nomarkers option of endfloat to\r
-% prevent endfloat from "marking" where the figures would have been placed\r
-% in the text. The two hack lines of code above are a slight modification of\r
-% that suggested by in the endfloat docs (section 8.3.1) to ensure that\r
-% the full captions always appear in the list of figures/tables - even if\r
-% the user used the short optional argument of \caption[]{}.\r
-% IEEE papers do not typically make use of \caption[]'s optional argument,\r
-% so this should not be an issue. A similar trick can be used to disable\r
-% captions of packages such as subfig.sty that lack options to turn off\r
-% the subcaptions:\r
-% For subfig.sty:\r
-% \let\MYorigsubfloat\subfloat\r
-% \renewcommand{\subfloat}[2][\relax]{\MYorigsubfloat[]{#2}}\r
-% For subfigure.sty:\r
-% \let\MYorigsubfigure\subfigure\r
-% \renewcommand{\subfigure}[2][\relax]{\MYorigsubfigure[]{#2}}\r
-% However, the above trick will not work if both optional arguments of\r
-% the \subfloat/subfig command are used. Furthermore, there needs to be a\r
-% description of each subfigure *somewhere* and endfloat does not add\r
-% subfigure captions to its list of figures. Thus, the best approach is to\r
-% avoid the use of subfigure captions (many IEEE journals avoid them anyway)\r
-% and instead reference/explain all the subfigures within the main caption.\r
-% The latest version of endfloat.sty and its documentation can obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/endfloat/\r
-%\r
-% The IEEEtran \ifCLASSOPTIONcaptionsoff conditional can also be used\r
-% later in the document, say, to conditionally put the References on a \r
-% page by themselves.\r
-\r
-\r
-\r
-\r
-\r
-% *** PDF, URL AND HYPERLINK PACKAGES ***\r
-%\r
-%\usepackage{url}\r
-% url.sty was written by Donald Arseneau. It provides better support for\r
-% handling and breaking URLs. url.sty is already installed on most LaTeX\r
-% systems. The latest version can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/misc/\r
-% Read the url.sty source comments for usage information. Basically,\r
-% \url{my_url_here}.\r
-\r
-\r
-% NOTE: PDF thumbnail features are not required in IEEE papers\r
-% and their use requires extra complexity and work.\r
-%\ifCLASSINFOpdf\r
-% \usepackage[pdftex]{thumbpdf}\r
-%\else\r
-% \usepackage[dvips]{thumbpdf}\r
-%\fi\r
-% thumbpdf.sty and its companion Perl utility were written by Heiko Oberdiek.\r
-% It allows the user a way to produce PDF documents that contain fancy\r
-% thumbnail images of each of the pages (which tools like acrobat reader can\r
-% utilize). This is possible even when using dvi->ps->pdf workflow if the\r
-% correct thumbpdf driver options are used. thumbpdf.sty incorporates the\r
-% file containing the PDF thumbnail information (filename.tpm is used with\r
-% dvips, filename.tpt is used with pdftex, where filename is the base name of\r
-% your tex document) into the final ps or pdf output document. An external\r
-% utility, the thumbpdf *Perl script* is needed to make these .tpm or .tpt\r
-% thumbnail files from a .ps or .pdf version of the document (which obviously\r
-% does not yet contain pdf thumbnails). Thus, one does a:\r
-% \r
-% thumbpdf filename.pdf \r
-%\r
-% to make a filename.tpt, and:\r
-%\r
-% thumbpdf --mode dvips filename.ps\r
-%\r
-% to make a filename.tpm which will then be loaded into the document by\r
-% thumbpdf.sty the NEXT time the document is compiled (by pdflatex or\r
-% latex->dvips->ps2pdf). Users must be careful to regenerate the .tpt and/or\r
-% .tpm files if the main document changes and then to recompile the\r
-% document to incorporate the revised thumbnails to ensure that thumbnails\r
-% match the actual pages. It is easy to forget to do this!\r
-% \r
-% Unix systems come with a Perl interpreter. However, MS Windows users\r
-% will usually have to install a Perl interpreter so that the thumbpdf\r
-% script can be run. The Ghostscript PS/PDF interpreter is also required.\r
-% See the thumbpdf docs for details. The latest version and documentation\r
-% can be obtained at.\r
-% http://www.ctan.org/tex-archive/support/thumbpdf/\r
-% Be sure and use only version 3.8 (2005/07/06) or later of thumbpdf as\r
-% earlier versions will not work properly with recent versions of pdfTeX\r
-% (1.20a and later).\r
-\r
-\r
-% NOTE: PDF hyperlink and bookmark features are not required in IEEE\r
-% papers and their use requires extra complexity and work.\r
-% *** IF USING HYPERREF BE SURE AND CHANGE THE EXAMPLE PDF ***\r
-% *** TITLE/SUBJECT/AUTHOR/KEYWORDS INFO BELOW!! ***\r
-\newcommand\MYhyperrefoptions{bookmarks=true,bookmarksnumbered=true,\r
-pdfpagemode={UseOutlines},plainpages=false,pdfpagelabels=true,\r
-colorlinks=true,linkcolor={black},citecolor={black},pagecolor={black},\r
-urlcolor={black},\r
-pdftitle={Bare Demo of IEEEtran.cls for Computer Society Journals},%<!CHANGE!\r
-pdfsubject={Typesetting},%<!CHANGE!\r
-pdfauthor={Michael D. Shell},%<!CHANGE!\r
-pdfkeywords={Computer Society, IEEEtran, journal, LaTeX, paper,\r
- template}}%<^!CHANGE!\r
-%\ifCLASSINFOpdf\r
-%\usepackage[\MYhyperrefoptions,pdftex]{hyperref}\r
-%\else\r
-%\usepackage[\MYhyperrefoptions,breaklinks=true,dvips]{hyperref}\r
-%\usepackage{breakurl}\r
-%\fi\r
-% One significant drawback of using hyperref under DVI output is that the\r
-% LaTeX compiler cannot break URLs across lines or pages as can be done\r
-% under pdfLaTeX's PDF output via the hyperref pdftex driver. This is\r
-% probably the single most important capability distinction between the\r
-% DVI and PDF output. Perhaps surprisingly, all the other PDF features\r
-% (PDF bookmarks, thumbnails, etc.) can be preserved in\r
-% .tex->.dvi->.ps->.pdf workflow if the respective packages/scripts are\r
-% loaded/invoked with the correct driver options (dvips, etc.). \r
-% As most IEEE papers use URLs sparingly (mainly in the references), this\r
-% may not be as big an issue as with other publications.\r
-%\r
-% That said, recently Vilar Camara Neto introduced his breakurl.sty\r
-% package which permits hyperref to easily break URLs even in dvi\r
-% mode. Note that breakurl, unlike most other packages, must be loaded\r
-% AFTER hyperref. The latest version of breakurl and its documentation can\r
-% be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/breakurl/\r
-% breakurl.sty is not for use under pdflatex pdf mode. Versions 1.10 \r
-% (September 23, 2005) and later are recommened to avoid bugs in earlier\r
-% releases.\r
-%\r
-% The advanced features offer by hyperref.sty are not required for IEEE\r
-% submission, so users should weigh these features against the added\r
-% complexity of use. Users who wish to use hyperref *must* ensure that\r
-% their hyperref version is 6.72u or later *and* IEEEtran.cls is version\r
-% 1.6b or later.\r
-% The package options above demonstrate how to enable PDF bookmarks\r
-% (a type of table of contents viewable in Acrobat Reader) as well as\r
-% PDF document information (title, subject, author and keywords) that is\r
-% viewable in Acrobat reader's Document_Properties menu. PDF document\r
-% information is also used extensively to automate the cataloging of PDF\r
-% documents. The above set of options ensures that hyperlinks will not be\r
-% colored in the text and thus will not be visible in the printed page,\r
-% but will be active on "mouse over". USING COLORS OR OTHER HIGHLIGHTING\r
-% OF HYPERLINKS CAN RESULT IN DOCUMENT REJECTION BY THE IEEE, especially if\r
-% these appear on the "printed" page. IF IN DOUBT, ASK THE RELEVANT\r
-% SUBMISSION EDITOR. You may need to add the option hypertexnames=false if\r
-% you used duplicate equation numbers, etc., but this should not be needed\r
-% in normal IEEE work.\r
-% The latest version of hyperref and its documentation can be obtained at:\r
-% http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/\r
-\r
-\r
-\r
-\r
-\r
-% *** Do not adjust lengths that control margins, column widths, etc. ***\r
-% *** Do not use packages that alter fonts (such as pslatex). ***\r
-% There should be no need to do such things with IEEEtran.cls V1.6 and later.\r
-% (Unless specifically asked to do so by the journal or conference you plan\r
-% to submit to, of course. )\r
-\r
-\r
-% correct bad hyphenation here\r
-\hyphenation{op-tical net-works semi-conduc-tor}\r
-\r
-\r
-\begin{document}\r
-%\r
-% paper title\r
-% can use linebreaks \\ within to get better formatting as desired\r
-\title{Bare Advanced Demo of IEEEtran.cls\\ for Computer Society Journals}\r
-%\r
-%\r
-% author names and IEEE memberships\r
-% note positions of commas and nonbreaking spaces ( ~ ) LaTeX will not break\r
-% a structure at a ~ so this keeps an author's name from being broken across\r
-% two lines.\r
-% use \thanks{} to gain access to the first footnote area\r
-% a separate \thanks must be used for each paragraph as LaTeX2e's \thanks\r
-% was not built to handle multiple paragraphs\r
-%\r
-%\r
-%\IEEEcompsocitemizethanks is a special \thanks that produces the bulleted\r
-% lists the Computer Society journals use for "first footnote" author\r
-% affiliations. Use \IEEEcompsocthanksitem which works much like \item\r
-% for each affiliation group. When not in compsoc mode,\r
-% \IEEEcompsocitemizethanks becomes like \thanks and\r
-% \IEEEcompsocthanksitem becomes a line break with idention. This\r
-% facilitates dual compilation, although admittedly the differences in the\r
-% desired content of \author between the different types of papers makes a\r
-% one-size-fits-all approach a daunting prospect. For instance, compsoc \r
-% journal papers have the author affiliations above the "Manuscript\r
-% received ..." text while in non-compsoc journals this is reversed. Sigh.\r
-\r
-\author{Michael~Shell,~\IEEEmembership{Member,~IEEE,}\r
- John~Doe,~\IEEEmembership{Fellow,~OSA,}\r
- and~Jane~Doe,~\IEEEmembership{Life~Fellow,~IEEE}% <-this % stops a space\r
-\IEEEcompsocitemizethanks{\IEEEcompsocthanksitem M. Shell is with the Department\r
-of Electrical and Computer Engineering, Georgia Institute of Technology, Atlanta,\r
-GA, 30332.\protect\\\r
-% note need leading \protect in front of \\ to get a newline within \thanks as\r
-% \\ is fragile and will error, could use \hfil\break instead.\r
-E-mail: see http://www.michaelshell.org/contact.html\r
-\IEEEcompsocthanksitem J. Doe and J. Doe are with Anonymous University.}% <-this % stops a space\r
-\thanks{Manuscript received April 19, 2005; revised January 11, 2007.}}\r
-\r
-% note the % following the last \IEEEmembership and also \thanks - \r
-% these prevent an unwanted space from occurring between the last author name\r
-% and the end of the author line. i.e., if you had this:\r
-% \r
-% \author{....lastname \thanks{...} \thanks{...} }\r
-% ^------------^------------^----Do not want these spaces!\r
-%\r
-% a space would be appended to the last name and could cause every name on that\r
-% line to be shifted left slightly. This is one of those "LaTeX things". For\r
-% instance, "\textbf{A} \textbf{B}" will typeset as "A B" not "AB". To get\r
-% "AB" then you have to do: "\textbf{A}\textbf{B}"\r
-% \thanks is no different in this regard, so shield the last } of each \thanks\r
-% that ends a line with a % and do not let a space in before the next \thanks.\r
-% Spaces after \IEEEmembership other than the last one are OK (and needed) as\r
-% you are supposed to have spaces between the names. For what it is worth,\r
-% this is a minor point as most people would not even notice if the said evil\r
-% space somehow managed to creep in.\r
-\r
-\r
-\r
-% The paper headers\r
-\markboth{Journal of \LaTeX\ Class Files,~Vol.~6, No.~1, January~2007}%\r
-{Shell \MakeLowercase{\textit{et al.}}: Bare Advanced Demo of IEEEtran.cls for Journals}\r
-% The only time the second header will appear is for the odd numbered pages\r
-% after the title page when using the twoside option.\r
-% \r
-% *** Note that you probably will NOT want to include the author's ***\r
-% *** name in the headers of peer review papers. ***\r
-% You can use \ifCLASSOPTIONpeerreview for conditional compilation here if\r
-% you desire.\r
-\r
-\r
-\r
-% The publisher's ID mark at the bottom of the page is less important with\r
-% Computer Society journal papers as those publications place the marks\r
-% outside of the main text columns and, therefore, unlike regular IEEE\r
-% journals, the available text space is not reduced by their presence.\r
-% If you want to put a publisher's ID mark on the page you can do it like\r
-% this:\r
-%\IEEEpubid{0000--0000/00\$00.00~\copyright~2007 IEEE}\r
-% or like this to get the Computer Society new two part style.\r
-%\IEEEpubid{\makebox[\columnwidth]{\hfill 0000--0000/00/\$00.00~\copyright~2007 IEEE}%\r
-%\hspace{\columnsep}\makebox[\columnwidth]{Published by the IEEE Computer Society\hfill}}\r
-% Remember, if you use this you must call \IEEEpubidadjcol in the second\r
-% column for its text to clear the IEEEpubid mark (Computer Society jorunal\r
-% papers don't need this extra clearance.)\r
-\r
-\r
-\r
-% use for special paper notices\r
-%\IEEEspecialpapernotice{(Invited Paper)}\r
-\r
-\r
-\r
-% for Computer Society papers, we must declare the abstract and index terms\r
-% PRIOR to the title within the \IEEEcompsoctitleabstractindextext IEEEtran\r
-% command as these need to go into the title area created by \maketitle.\r
-\IEEEcompsoctitleabstractindextext{%\r
-\begin{abstract}\r
-%\boldmath\r
-The abstract goes here.\r
-\end{abstract}\r
-% IEEEtran.cls defaults to using nonbold math in the Abstract.\r
-% This preserves the distinction between vectors and scalars. However,\r
-% if the journal you are submitting to favors bold math in the abstract,\r
-% then you can use LaTeX's standard command \boldmath at the very start\r
-% of the abstract to achieve this. Many IEEE journals frown on math\r
-% in the abstract anyway. In particular, the Computer Society does\r
-% not want either math or citations to appear in the abstract.\r
-\r
-% Note that keywords are not normally used for peerreview papers.\r
-\begin{IEEEkeywords}\r
-Computer Society, IEEEtran, journal, \LaTeX, paper, template.\r
-\end{IEEEkeywords}}\r
-\r
-\r
-% make the title area\r
-\maketitle\r
-\r
-\r
-% To allow for easy dual compilation without having to reenter the\r
-% abstract/keywords data, the \IEEEcompsoctitleabstractindextext text will\r
-% not be used in maketitle, but will appear (i.e., to be "transported")\r
-% here as \IEEEdisplaynotcompsoctitleabstractindextext when compsoc mode\r
-% is not selected <OR> if conference mode is selected - because compsoc\r
-% conference papers position the abstract like regular (non-compsoc)\r
-% papers do!\r
-\IEEEdisplaynotcompsoctitleabstractindextext\r
-% \IEEEdisplaynotcompsoctitleabstractindextext has no effect when using\r
-% compsoc under a non-conference mode.\r
-\r
-\r
-% For peer review papers, you can put extra information on the cover\r
-% page as needed:\r
-% \ifCLASSOPTIONpeerreview\r
-% \begin{center} \bfseries EDICS Category: 3-BBND \end{center}\r
-% \fi\r
-%\r
-% For peerreview papers, this IEEEtran command inserts a page break and\r
-% creates the second title. It will be ignored for other modes.\r
-\IEEEpeerreviewmaketitle\r
-\r
-\r
-\r
-\section{Introduction}\r
-% Computer Society journal papers do something a tad strange with the very\r
-% first section heading (almost always called "Introduction"). They place it\r
-% ABOVE the main text! IEEEtran.cls currently does not do this for you.\r
-% However, You can achieve this effect by making LaTeX jump through some\r
-% hoops via something like:\r
-%\r
-%\ifCLASSOPTIONcompsoc\r
-% \noindent\raisebox{2\baselineskip}[0pt][0pt]%\r
-% {\parbox{\columnwidth}{\section{Introduction}\label{sec:introduction}%\r
-% \global\everypar=\everypar}}%\r
-% \vspace{-1\baselineskip}\vspace{-\parskip}\par\r
-%\else\r
-% \section{Introduction}\label{sec:introduction}\par\r
-%\fi\r
-%\r
-% Admittedly, this is a hack and may well be fragile, but seems to do the\r
-% trick for me. Note the need to keep any \label that may be used right\r
-% after \section in the above as the hack puts \section within a raised box.\r
-\r
-\r
-\r
-% The very first letter is a 2 line initial drop letter followed\r
-% by the rest of the first word in caps (small caps for compsoc).\r
-% \r
-% form to use if the first word consists of a single letter:\r
-% \IEEEPARstart{A}{demo} file is ....\r
-% \r
-% form to use if you need the single drop letter followed by\r
-% normal text (unknown if ever used by IEEE):\r
-% \IEEEPARstart{A}{}demo file is ....\r
-% \r
-% Some journals put the first two words in caps:\r
-% \IEEEPARstart{T}{his demo} file is ....\r
-% \r
-% Here we have the typical use of a "T" for an initial drop letter\r
-% and "HIS" in caps to complete the first word.\r
-\IEEEPARstart{T}{his} demo file is intended to serve as a ``starter file''\r
-for IEEE Computer Society journal papers produced under \LaTeX\ using\r
-IEEEtran.cls version 1.7 and later.\r
-% You must have at least 2 lines in the paragraph with the drop letter\r
-% (should never be an issue)\r
-I wish you the best of success.\r
-\r
-\hfill mds\r
- \r
-\hfill January 11, 2007\r
-\r
-\subsection{Subsection Heading Here}\r
-Subsection text here.\r
-\r
-% needed in second column of first page if using \IEEEpubid\r
-%\IEEEpubidadjcol\r
-\r
-\subsubsection{Subsubsection Heading Here}\r
-Subsubsection text here.\r
-\r
-\r
-% An example of a floating figure using the graphicx package.\r
-% Note that \label must occur AFTER (or within) \caption.\r
-% For figures, \caption should occur after the \includegraphics.\r
-% Note that IEEEtran v1.7 and later has special internal code that\r
-% is designed to preserve the operation of \label within \caption\r
-% even when the captionsoff option is in effect. However, because\r
-% of issues like this, it may be the safest practice to put all your\r
-% \label just after \caption rather than within \caption{}.\r
-%\r
-% Reminder: the "draftcls" or "draftclsnofoot", not "draft", class\r
-% option should be used if it is desired that the figures are to be\r
-% displayed while in draft mode.\r
-%\r
-%\begin{figure}[!t]\r
-%\centering\r
-%\includegraphics[width=2.5in]{myfigure}\r
-% where an .eps filename suffix will be assumed under latex, \r
-% and a .pdf suffix will be assumed for pdflatex; or what has been declared\r
-% via \DeclareGraphicsExtensions.\r
-%\caption{Simulation Results}\r
-%\label{fig_sim}\r
-%\end{figure}\r
-\r
-% Note that IEEE typically puts floats only at the top, even when this\r
-% results in a large percentage of a column being occupied by floats.\r
-% However, the Computer Society has been known to put floats at the bottom.\r
-\r
-\r
-% An example of a double column floating figure using two subfigures.\r
-% (The subfig.sty package must be loaded for this to work.)\r
-% The subfigure \label commands are set within each subfloat command, the\r
-% \label for the overall figure must come after \caption.\r
-% \hfil must be used as a separator to get equal spacing.\r
-% The subfigure.sty package works much the same way, except \subfigure is\r
-% used instead of \subfloat.\r
-%\r
-%\begin{figure*}[!t]\r
-%\centerline{\subfloat[Case I]\includegraphics[width=2.5in]{subfigcase1}%\r
-%\label{fig_first_case}}\r
-%\hfil\r
-%\subfloat[Case II]{\includegraphics[width=2.5in]{subfigcase2}%\r
-%\label{fig_second_case}}}\r
-%\caption{Simulation results}\r
-%\label{fig_sim}\r
-%\end{figure*}\r
-%\r
-% Note that often IEEE papers with subfigures do not employ subfigure\r
-% captions (using the optional argument to \subfloat), but instead will\r
-% reference/describe all of them (a), (b), etc., within the main caption.\r
-\r
-\r
-% An example of a floating table. Note that, for IEEE style tables, the \r
-% \caption command should come BEFORE the table. Table text will default to\r
-% \footnotesize as IEEE normally uses this smaller font for tables.\r
-% The \label must come after \caption as always.\r
-%\r
-%\begin{table}[!t]\r
-%% increase table row spacing, adjust to taste\r
-%\renewcommand{\arraystretch}{1.3}\r
-% if using array.sty, it might be a good idea to tweak the value of\r
-% \extrarowheight as needed to properly center the text within the cells\r
-%\caption{An Example of a Table}\r
-%\label{table_example}\r
-%\centering\r
-%% Some packages, such as MDW tools, offer better commands for making tables\r
-%% than the plain LaTeX2e tabular which is used here.\r
-%\begin{tabular}{|c||c|}\r
-%\hline\r
-%One & Two\\\r
-%\hline\r
-%Three & Four\\\r
-%\hline\r
-%\end{tabular}\r
-%\end{table}\r
-\r
-\r
-% Note that IEEE does not put floats in the very first column - or typically\r
-% anywhere on the first page for that matter. Also, in-text middle ("here")\r
-% positioning is not used. Most IEEE journals use top floats exclusively.\r
-% However, Computer Society journals sometimes do use bottom floats - bear\r
-% this in mind when choosing appropriate optional arguments for the\r
-% figure/table environments.\r
-% Note that, LaTeX2e, unlike IEEE journals, places footnotes above bottom\r
-% floats. This can be corrected via the \fnbelowfloat command of the\r
-% stfloats package.\r
-\r
-\r
-\r
-\section{Conclusion}\r
-The conclusion goes here.\r
-\r
-\r
-\r
-\r
-\r
-% if have a single appendix:\r
-%\appendix[Proof of the Zonklar Equations]\r
-% or\r
-%\appendix % for no appendix heading\r
-% do not use \section anymore after \appendix, only \section*\r
-% is possibly needed\r
-\r
-% use appendices with more than one appendix\r
-% then use \section to start each appendix\r
-% you must declare a \section before using any\r
-% \subsection or using \label (\appendices by itself\r
-% starts a section numbered zero.)\r
-%\r
-\r
-\r
-\appendices\r
-\section{Proof of the First Zonklar Equation}\r
-Appendix one text goes here.\r
-\r
-% you can choose not to have a title for an appendix\r
-% if you want by leaving the argument blank\r
-\section{}\r
-Appendix two text goes here.\r
-\r
-\r
-% use section* for acknowledgement\r
-\ifCLASSOPTIONcompsoc\r
- % The Computer Society usually uses the plural form\r
- \section*{Acknowledgments}\r
-\else\r
- % regular IEEE prefers the singular form\r
- \section*{Acknowledgment}\r
-\fi\r
-\r
-\r
-The authors would like to thank...\r
-\r
-\r
-% Can use something like this to put references on a page\r
-% by themselves when using endfloat and the captionsoff option.\r
-\ifCLASSOPTIONcaptionsoff\r
- \newpage\r
-\fi\r
-\r
-\r
-\r
-% trigger a \newpage just before the given reference\r
-% number - used to balance the columns on the last page\r
-% adjust value as needed - may need to be readjusted if\r
-% the document is modified later\r
-%\IEEEtriggeratref{8}\r
-% The "triggered" command can be changed if desired:\r
-%\IEEEtriggercmd{\enlargethispage{-5in}}\r
-\r
-% references section\r
-\r
-% can use a bibliography generated by BibTeX as a .bbl file\r
-% BibTeX documentation can be easily obtained at:\r
-% http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/\r
-% The IEEEtran BibTeX style support page is at:\r
-% http://www.michaelshell.org/tex/ieeetran/bibtex/\r
-%\bibliographystyle{IEEEtran}\r
-% argument is your BibTeX string definitions and bibliography database(s)\r
-%\bibliography{IEEEabrv,../bib/paper}\r
-%\r
-% <OR> manually copy in the resultant .bbl file\r
-% set second argument of \begin to the number of references\r
-% (used to reserve space for the reference number labels box)\r
-\begin{thebibliography}{1}\r
-\r
-\bibitem{IEEEhowto:kopka}\r
-H.~Kopka and P.~W. Daly, \emph{A Guide to {\LaTeX}}, 3rd~ed.\hskip 1em plus\r
- 0.5em minus 0.4em\relax Harlow, England: Addison-Wesley, 1999.\r
-\r
-\end{thebibliography}\r
-\r
-% biography section\r
-% \r
-% If you have an EPS/PDF photo (graphicx package needed) extra braces are\r
-% needed around the contents of the optional argument to biography to prevent\r
-% the LaTeX parser from getting confused when it sees the complicated\r
-% \includegraphics command within an optional argument. (You could create\r
-% your own custom macro containing the \includegraphics command to make things\r
-% simpler here.)\r
-%\begin{biography}[{\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{mshell}}]{Michael Shell}\r
-% or if you just want to reserve a space for a photo:\r
-\r
-\begin{IEEEbiography}{Michael Shell}\r
-Biography text here.\r
-\end{IEEEbiography}\r
-\r
-% if you will not have a photo at all:\r
-\begin{IEEEbiographynophoto}{John Doe}\r
-Biography text here.\r
-\end{IEEEbiographynophoto}\r
-\r
-% insert where needed to balance the two columns on the last page with\r
-% biographies\r
-%\newpage\r
-\r
-\begin{IEEEbiographynophoto}{Jane Doe}\r
-Biography text here.\r
-\end{IEEEbiographynophoto}\r
-\r
-% You can push biographies down or up by placing\r
-% a \vfill before or after them. The appropriate\r
-% use of \vfill depends on what kind of text is\r
-% on the last page and whether or not the columns\r
-% are being equalized.\r
-\r
-%\vfill\r
-\r
-% Can be used to pull up biographies so that the bottom of the last one\r
-% is flush with the other column.\r
-%\enlargethispage{-5in}\r
-\r
-\r
-\r
-% that's all folks\r
-\end{document}\r
-\r
-\r
+++ /dev/null
-This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=pdflatex 2013.7.11) 30 JUL 2013 21:23
-entering extended mode
- restricted \write18 enabled.
- %&-line parsing enabled.
-**bare_conf
-(./bare_conf.tex
-LaTeX2e <2011/06/27>
-Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
-aded.
-(./IEEEtran.cls
-Document Class: IEEEtran 2012/11/21 V1.8c by Harald Hanche-Olsen and Anders Chr
-istensen
--- Based on V1.7a by Michael Shell
--- See the "IEEEtran_HOWTO" manual for usage information.
--- http://www.michaelshell.org/tex/ieeetran/
-\@IEEEtrantmpdimenA=\dimen102
-\@IEEEtrantmpdimenB=\dimen103
-\@IEEEtrantmpcountA=\count79
-\@IEEEtrantmpcountB=\count80
-\@IEEEtrantmptoksA=\toks14
-LaTeX Font Info: Try loading font information for OT1+ptm on input line 373.
-
-(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd
-File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm.
-)
--- Using 8.5in x 11in (letter) paper.
--- Using PDF output.
-\@IEEEnormalsizeunitybaselineskip=\dimen104
--- This is a 10 point document.
-\CLASSINFOnormalsizebaselineskip=\dimen105
-\CLASSINFOnormalsizeunitybaselineskip=\dimen106
-\IEEEnormaljot=\dimen107
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <5> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <7> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <9> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <10> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <11> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <11> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <12> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <17> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <17> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <20> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <24> not available
-(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731.
-LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <24> not available
-(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731.
-\IEEEilabelindentA=\dimen108
-\IEEEilabelindentB=\dimen109
-\IEEEilabelindent=\dimen110
-\IEEEelabelindent=\dimen111
-\IEEEdlabelindent=\dimen112
-\IEEElabelindent=\dimen113
-\IEEEiednormlabelsep=\dimen114
-\IEEEiedmathlabelsep=\dimen115
-\IEEEiedtopsep=\skip41
-\c@section=\count81
-\c@subsection=\count82
-\c@subsubsection=\count83
-\c@paragraph=\count84
-\c@IEEEsubequation=\count85
-\abovecaptionskip=\skip42
-\belowcaptionskip=\skip43
-\c@figure=\count86
-\c@table=\count87
-\@IEEEeqnnumcols=\count88
-\@IEEEeqncolcnt=\count89
-\@IEEEtmpitemindent=\dimen116
-\c@IEEEbiography=\count90
-\@IEEEtranrubishbin=\box26
-) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty
-Package: float 2001/11/08 v1.3d Float enhancements (AL)
-\c@float@type=\count91
-\float@exts=\toks15
-\float@box=\box27
-\@float@everytoks=\toks16
-\@floatcapt=\box28
-)
-(/usr/share/texlive/texmf-dist/tex/latex/graphics/epsfig.sty
-Package: epsfig 1999/02/16 v1.7a (e)psfig emulation (SPQR)
-
-(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
-Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
-
-(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
-Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
-\KV@toks@=\toks17
-)
-(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
-Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
-
-(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
-Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
-)
-(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
-File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
-)
-Package graphics Info: Driver file: pdftex.def on input line 91.
-
-(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def
-File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
-
-(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
-Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
-)
-(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
-Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
-)
-\Gread@gobject=\count92
-))
-\Gin@req@height=\dimen117
-\Gin@req@width=\dimen118
-)
-\epsfxsize=\dimen119
-\epsfysize=\dimen120
-)
-(/usr/share/texlive/texmf-dist/tex/latex/subfigure/subfigure.sty
-Package: subfigure 2002/03/15 v2.1.5 subfigure package
-\subfigtopskip=\skip44
-\subfigcapskip=\skip45
-\subfigcaptopadj=\dimen121
-\subfigbottomskip=\skip46
-\subfigcapmargin=\dimen122
-\subfiglabelskip=\skip47
-\c@subfigure=\count93
-\c@lofdepth=\count94
-\c@subtable=\count95
-\c@lotdepth=\count96
-
-****************************************
-* Local config file subfigure.cfg used *
-****************************************
-(/usr/share/texlive/texmf-dist/tex/latex/subfigure/subfigure.cfg)
-\subfig@top=\skip48
-\subfig@bottom=\skip49
-)
-(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty
-Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
-\calc@Acount=\count97
-\calc@Bcount=\count98
-\calc@Adimen=\dimen123
-\calc@Bdimen=\dimen124
-\calc@Askip=\skip50
-\calc@Bskip=\skip51
-LaTeX Info: Redefining \setlength on input line 76.
-LaTeX Info: Redefining \addtolength on input line 77.
-\calc@Ccount=\count99
-\calc@Cskip=\skip52
-)
-(/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty
-Package: times 2005/04/12 PSNFSS-v9.2a (SPQR)
-)
-(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
-Package: amssymb 2009/06/22 v3.00
-
-(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
-Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support
-\@emptytoks=\toks18
-\symAMSa=\mathgroup4
-\symAMSb=\mathgroup5
-LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
-(Font) U/euf/m/n --> U/euf/b/n on input line 96.
-))
-(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
-Package: amsmath 2000/07/18 v2.13 AMS math features
-\@mathmargin=\skip53
-
-For additional information on amsmath, use the `?' option.
-(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
-Package: amstext 2000/06/29 v2.01
-
-(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
-File: amsgen.sty 1999/11/30 v2.0
-\@emptytoks=\toks19
-\ex@=\dimen125
-))
-(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
-Package: amsbsy 1999/11/29 v1.2d
-\pmbraise@=\dimen126
-)
-(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
-Package: amsopn 1999/12/14 v2.01 operator names
-)
-\inf@bad=\count100
-LaTeX Info: Redefining \frac on input line 211.
-\uproot@=\count101
-\leftroot@=\count102
-LaTeX Info: Redefining \overline on input line 307.
-\classnum@=\count103
-\DOTSCASE@=\count104
-LaTeX Info: Redefining \ldots on input line 379.
-LaTeX Info: Redefining \dots on input line 382.
-LaTeX Info: Redefining \cdots on input line 467.
-\Mathstrutbox@=\box29
-\strutbox@=\box30
-\big@size=\dimen127
-LaTeX Font Info: Redeclaring font encoding OML on input line 567.
-LaTeX Font Info: Redeclaring font encoding OMS on input line 568.
-\macc@depth=\count105
-\c@MaxMatrixCols=\count106
-\dotsspace@=\muskip10
-\c@parentequation=\count107
-\dspbrk@lvl=\count108
-\tag@help=\toks20
-\row@=\count109
-\column@=\count110
-\maxfields@=\count111
-\andhelp@=\toks21
-\eqnshift@=\dimen128
-\alignsep@=\dimen129
-\tagshift@=\dimen130
-\tagwidth@=\dimen131
-\totwidth@=\dimen132
-\lineht@=\dimen133
-\@envbody=\toks22
-\multlinegap=\skip54
-\multlinetaggap=\skip55
-\mathdisplay@stack=\toks23
-LaTeX Info: Redefining \[ on input line 2666.
-LaTeX Info: Redefining \] on input line 2667.
-)
-(/usr/share/texlive/texmf-dist/tex/latex/base/latexsym.sty
-Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
-\symlasy=\mathgroup6
-LaTeX Font Info: Overwriting symbol font `lasy' in version `bold'
-(Font) U/lasy/m/n --> U/lasy/b/n on input line 47.
-)
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty
-Package: txfonts 2008/01/22 v3.2.1
-LaTeX Font Info: Redeclaring symbol font `operators' on input line 21.
-LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
-(Font) OT1/cmr/m/n --> OT1/txr/m/n on input line 21.
-LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
-(Font) OT1/cmr/bx/n --> OT1/txr/m/n on input line 21.
-LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
-(Font) OT1/txr/m/n --> OT1/txr/bx/n on input line 22.
-\symitalic=\mathgroup7
-LaTeX Font Info: Overwriting symbol font `italic' in version `bold'
-(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 26.
-LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 29.
-LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
-(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29.
-LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
-(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29.
-LaTeX Font Info: Redeclaring math alphabet \mathit on input line 30.
-LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
-(Font) OT1/cmr/m/it --> OT1/txr/m/it on input line 30.
-LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
-(Font) OT1/cmr/bx/it --> OT1/txr/m/it on input line 30.
-LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
-(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 31.
-LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 40.
-LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
-(Font) OT1/cmss/m/n --> OT1/txss/m/n on input line 40.
-LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
-(Font) OT1/cmss/bx/n --> OT1/txss/m/n on input line 40.
-LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
-(Font) OT1/txss/m/n --> OT1/txss/b/n on input line 41.
-LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 50.
-LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
-(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50.
-LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
-(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50.
-LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
-(Font) OT1/txtt/m/n --> OT1/txtt/b/n on input line 51.
-LaTeX Font Info: Redeclaring symbol font `letters' on input line 58.
-LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
-(Font) OML/cmm/m/it --> OML/txmi/m/it on input line 58.
-LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
-(Font) OML/cmm/b/it --> OML/txmi/m/it on input line 58.
-LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
-(Font) OML/txmi/m/it --> OML/txmi/bx/it on input line 59.
-\symlettersA=\mathgroup8
-LaTeX Font Info: Overwriting symbol font `lettersA' in version `bold'
-(Font) U/txmia/m/it --> U/txmia/bx/it on input line 67.
-LaTeX Font Info: Redeclaring math alphabet \mathfrak on input line 70.
-LaTeX Font Info: Redeclaring symbol font `symbols' on input line 77.
-LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
-(Font) OMS/cmsy/m/n --> OMS/txsy/m/n on input line 77.
-LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
-(Font) OMS/cmsy/b/n --> OMS/txsy/m/n on input line 77.
-LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
-(Font) OMS/txsy/m/n --> OMS/txsy/bx/n on input line 78.
-LaTeX Font Info: Redeclaring symbol font `AMSa' on input line 93.
-LaTeX Font Info: Overwriting symbol font `AMSa' in version `normal'
-(Font) U/msa/m/n --> U/txsya/m/n on input line 93.
-LaTeX Font Info: Overwriting symbol font `AMSa' in version `bold'
-(Font) U/msa/m/n --> U/txsya/m/n on input line 93.
-LaTeX Font Info: Overwriting symbol font `AMSa' in version `bold'
-(Font) U/txsya/m/n --> U/txsya/bx/n on input line 94.
-LaTeX Font Info: Redeclaring symbol font `AMSb' on input line 102.
-LaTeX Font Info: Overwriting symbol font `AMSb' in version `normal'
-(Font) U/msb/m/n --> U/txsyb/m/n on input line 102.
-LaTeX Font Info: Overwriting symbol font `AMSb' in version `bold'
-(Font) U/msb/m/n --> U/txsyb/m/n on input line 102.
-LaTeX Font Info: Overwriting symbol font `AMSb' in version `bold'
-(Font) U/txsyb/m/n --> U/txsyb/bx/n on input line 103.
-\symsymbolsC=\mathgroup9
-LaTeX Font Info: Overwriting symbol font `symbolsC' in version `bold'
-(Font) U/txsyc/m/n --> U/txsyc/bx/n on input line 113.
-LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 120.
-LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
-(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120.
-LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
-(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120.
-LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
-(Font) OMX/txex/m/n --> OMX/txex/bx/n on input line 121.
-\symlargesymbolsA=\mathgroup10
-LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `bold'
-(Font) U/txexa/m/n --> U/txexa/bx/n on input line 129.
-LaTeX Info: Redefining \not on input line 1043.
-)
-(./algorithmic.sty
-Package: algorithmic 2006/06/02
-
-Document Style `algorithmic' - environment
-(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
-Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
-)
-\c@ALC@line=\count112
-\c@ALC@rem=\count113
-\c@ALC@depth=\count114
-\ALC@tlm=\skip56
-\algorithmicindent=\skip57
-)
-(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
-Package: fontenc 2005/09/27 v1.99g Standard LaTeX package
-
-(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
-File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file
-LaTeX Font Info: Redeclaring font encoding T1 on input line 43.
-)
-LaTeX Font Info: Try loading font information for T1+ptm on input line 100.
-
-(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd
-File: t1ptm.fd 2001/06/04 font definitions for T1/ptm.
-))
-(/usr/share/texmf/tex/latex/pgf/frontendlayer/tikz.sty
-(/usr/share/texmf/tex/latex/pgf/basiclayer/pgf.sty
-(/usr/share/texmf/tex/latex/pgf/utilities/pgfrcs.sty
-(/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-common.tex
-\pgfutil@everybye=\toks24
-)
-(/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-latex.def
-\pgfutil@abb=\box31
-
-(/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty
-Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS)
-))
-(/usr/share/texmf/tex/generic/pgf/utilities/pgfrcs.code.tex
-Package: pgfrcs 2010/10/25 v2.10 (rcs-revision 1.24)
-))
-Package: pgf 2008/01/15 v2.10 (rcs-revision 1.12)
-
-(/usr/share/texmf/tex/latex/pgf/basiclayer/pgfcore.sty
-(/usr/share/texmf/tex/latex/pgf/systemlayer/pgfsys.sty
-(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys.code.tex
-Package: pgfsys 2010/06/30 v2.10 (rcs-revision 1.37)
-
-(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeys.code.tex
-\pgfkeys@pathtoks=\toks25
-\pgfkeys@temptoks=\toks26
-
-(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex
-\pgfkeys@tmptoks=\toks27
-))
-\pgf@x=\dimen134
-\pgf@y=\dimen135
-\pgf@xa=\dimen136
-\pgf@ya=\dimen137
-\pgf@xb=\dimen138
-\pgf@yb=\dimen139
-\pgf@xc=\dimen140
-\pgf@yc=\dimen141
-\w@pgf@writea=\write3
-\r@pgf@reada=\read1
-\c@pgf@counta=\count115
-\c@pgf@countb=\count116
-\c@pgf@countc=\count117
-\c@pgf@countd=\count118
-
-(/usr/share/texmf/tex/generic/pgf/systemlayer/pgf.cfg
-File: pgf.cfg 2008/05/14 (rcs-revision 1.7)
-)
-Package pgfsys Info: Driver file for pgf: pgfsys-pdftex.def on input line 900.
-
-(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
-File: pgfsys-pdftex.def 2009/05/22 (rcs-revision 1.26)
-
-(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
-File: pgfsys-common-pdf.def 2008/05/19 (rcs-revision 1.10)
-)))
-(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
-File: pgfsyssoftpath.code.tex 2008/07/18 (rcs-revision 1.7)
-\pgfsyssoftpath@smallbuffer@items=\count119
-\pgfsyssoftpath@bigbuffer@items=\count120
-)
-(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
-File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4)
-))
-(/usr/share/texmf/tex/latex/xcolor/xcolor.sty
-Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK)
-
-(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
-File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
-)
-Package xcolor Info: Driver file: pdftex.def on input line 225.
-Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337.
-Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341.
-Package xcolor Info: Model `RGB' extended on input line 1353.
-Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355.
-Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356.
-Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357.
-Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358.
-Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359.
-Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360.
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcore.code.tex
-Package: pgfcore 2010/04/11 v2.10 (rcs-revision 1.7)
-
-(/usr/share/texmf/tex/generic/pgf/math/pgfmath.code.tex
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathcalc.code.tex
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathutil.code.tex)
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathparser.code.tex
-\pgfmath@dimen=\dimen142
-\pgfmath@count=\count121
-\pgfmath@box=\box32
-\pgfmath@toks=\toks28
-\pgfmath@stack@operand=\toks29
-\pgfmath@stack@operation=\toks30
-)
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.code.tex
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex)
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex)
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.random.code.tex)
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex)
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.base.code.tex)
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.round.code.tex)
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex)))
-(/usr/share/texmf/tex/generic/pgf/math/pgfmathfloat.code.tex
-\c@pgfmathroundto@lastzeros=\count122
-))
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
-File: pgfcorepoints.code.tex 2010/04/09 (rcs-revision 1.20)
-\pgf@picminx=\dimen143
-\pgf@picmaxx=\dimen144
-\pgf@picminy=\dimen145
-\pgf@picmaxy=\dimen146
-\pgf@pathminx=\dimen147
-\pgf@pathmaxx=\dimen148
-\pgf@pathminy=\dimen149
-\pgf@pathmaxy=\dimen150
-\pgf@xx=\dimen151
-\pgf@xy=\dimen152
-\pgf@yx=\dimen153
-\pgf@yy=\dimen154
-\pgf@zx=\dimen155
-\pgf@zy=\dimen156
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
-File: pgfcorepathconstruct.code.tex 2010/08/03 (rcs-revision 1.24)
-\pgf@path@lastx=\dimen157
-\pgf@path@lasty=\dimen158
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
-File: pgfcorepathusage.code.tex 2008/04/22 (rcs-revision 1.12)
-\pgf@shorten@end@additional=\dimen159
-\pgf@shorten@start@additional=\dimen160
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
-File: pgfcorescopes.code.tex 2010/09/08 (rcs-revision 1.34)
-\pgfpic=\box33
-\pgf@hbox=\box34
-\pgf@layerbox@main=\box35
-\pgf@picture@serial@count=\count123
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
-File: pgfcoregraphicstate.code.tex 2008/04/22 (rcs-revision 1.9)
-\pgflinewidth=\dimen161
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex
-File: pgfcoretransformations.code.tex 2009/06/10 (rcs-revision 1.11)
-\pgf@pt@x=\dimen162
-\pgf@pt@y=\dimen163
-\pgf@pt@temp=\dimen164
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
-File: pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3)
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
-File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2)
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex
-File: pgfcorepathprocessing.code.tex 2008/10/09 (rcs-revision 1.8)
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
-File: pgfcorearrows.code.tex 2008/04/23 (rcs-revision 1.11)
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
-File: pgfcoreshade.code.tex 2008/11/23 (rcs-revision 1.13)
-\pgf@max=\dimen165
-\pgf@sys@shading@range@num=\count124
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
-File: pgfcoreimage.code.tex 2010/03/25 (rcs-revision 1.16)
-
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
-File: pgfcoreexternal.code.tex 2010/09/01 (rcs-revision 1.17)
-\pgfexternal@startupbox=\box36
-))
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
-File: pgfcorelayers.code.tex 2010/08/27 (rcs-revision 1.2)
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
-File: pgfcoretransparency.code.tex 2008/01/17 (rcs-revision 1.2)
-)
-(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
-File: pgfcorepatterns.code.tex 2009/07/02 (rcs-revision 1.3)
-)))
-(/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
-File: pgfmoduleshapes.code.tex 2010/09/09 (rcs-revision 1.13)
-\pgfnodeparttextbox=\box37
-)
-(/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleplot.code.tex
-File: pgfmoduleplot.code.tex 2010/10/22 (rcs-revision 1.8)
-)
-(/usr/share/texmf/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
-Package: pgfcomp-version-0-65 2007/07/03 v2.10 (rcs-revision 1.7)
-\pgf@nodesepstart=\dimen166
-\pgf@nodesepend=\dimen167
-)
-(/usr/share/texmf/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
-Package: pgfcomp-version-1-18 2007/07/23 v2.10 (rcs-revision 1.1)
-))
-(/usr/share/texmf/tex/latex/pgf/utilities/pgffor.sty
-(/usr/share/texmf/tex/latex/pgf/utilities/pgfkeys.sty
-(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeys.code.tex))
-(/usr/share/texmf/tex/generic/pgf/utilities/pgffor.code.tex
-Package: pgffor 2010/03/23 v2.10 (rcs-revision 1.18)
-\pgffor@iter=\dimen168
-\pgffor@skip=\dimen169
-\pgffor@stack=\toks31
-\pgffor@toks=\toks32
-))
-(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
-Package: tikz 2010/10/13 v2.10 (rcs-revision 1.76)
-
-(/usr/share/texmf/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
-File: pgflibraryplothandlers.code.tex 2010/05/31 v2.10 (rcs-revision 1.15)
-\pgf@plot@mark@count=\count125
-\pgfplotmarksize=\dimen170
-)
-\tikz@lastx=\dimen171
-\tikz@lasty=\dimen172
-\tikz@lastxsaved=\dimen173
-\tikz@lastysaved=\dimen174
-\tikzleveldistance=\dimen175
-\tikzsiblingdistance=\dimen176
-\tikz@figbox=\box38
-\tikz@tempbox=\box39
-\tikztreelevel=\count126
-\tikznumberofchildren=\count127
-\tikznumberofcurrentchild=\count128
-\tikz@fig@count=\count129
-
-(/usr/share/texmf/tex/generic/pgf/modules/pgfmodulematrix.code.tex
-File: pgfmodulematrix.code.tex 2010/08/24 (rcs-revision 1.4)
-\pgfmatrixcurrentrow=\count130
-\pgfmatrixcurrentcolumn=\count131
-\pgf@matrix@numberofcolumns=\count132
-)
-\tikz@expandcount=\count133
-
-(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopat
-hs.code.tex
-File: tikzlibrarytopaths.code.tex 2008/06/17 v2.10 (rcs-revision 1.2)
-))) (/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
-Package: xspace 2009/10/20 v1.13 Space after command names (DPC,MH)
-)
-(./algorithm2e.sty
-Package: algorithm2e 2013/01/06 v5.00 algorithms environments
-\c@AlgoLine=\count134
- (/usr/share/texlive/texmf-dist/tex/latex/relsize/relsize.sty
-Package: relsize 2011/09/21 ver 4.0
-Examine \normalsize starts \@setfontsize size may be 10.
-Examine \small starts \@setfontsize size may be 9.
-Examine \footnotesize starts \@setfontsize size may be 8.
-Examine \large starts \@setfontsize size may be 12.
-Examine \Large starts \@setfontsize size may be 14.
-Examine \LARGE starts \@setfontsize size may be 17.
-Examine \scriptsize starts \@setfontsize size may be 7.
-Examine \tiny starts \@setfontsize size may be 5.
-Examine \huge starts \@setfontsize size may be 20.
-Examine \Huge starts \@setfontsize size may be 24. )
-********************************************************
-Package `algorithm2e' Release 5.0 -- january 06 2013 --
-- algorithm2e-announce@lirmm.fr mailing list for announcement about releases
-- algorithm2e-discussion@lirmm.fr mailing list for discussion about package
-subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'
-- Author: Christophe Fiorio (cfiorio@um2.fr)
-********************************************************
-\skiptotal=\skip58
-\skiplinenumber=\skip59
-\skiprule=\skip60
-\skiphlne=\skip61
-\skiptext=\skip62
-\skiplength=\skip63
-\algomargin=\skip64
-\skipalgocfslide=\skip65
-\algowidth=\dimen177
-\inoutsize=\dimen178
-\inoutindent=\dimen179
-\interspacetitleruled=\dimen180
-\interspacealgoruled=\dimen181
-\interspacetitleboxruled=\dimen182
-\algocf@inoutbox=\box40
-\algocf@inputbox=\box41
-\AlCapSkip=\skip66
-\AlCapHSkip=\skip67
-\algoskipindent=\skip68
-\algocf@nlbox=\box42
-\algocf@hangingbox=\box43
-\algocf@untilbox=\box44
-\algocf@skipuntil=\skip69
-\algocf@capbox=\box45
-\algoheightruledefault=\skip70
-\algoheightrule=\skip71
-\algotitleheightruledefault=\skip72
-\algotitleheightrule=\skip73
-\c@algocfline=\count135
-\c@algocfproc=\count136
-\c@algocf=\count137
-\algocf@algoframe=\box46
-\algocf@algobox=\box47
-) (/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty
-Package: caption 2012/02/19 v3.2f Customizing captions (AR)
-
-(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty
-Package: caption3 2012/01/12 v1.4b caption3 kernel (AR)
-\captionmargin=\dimen183
-\captionmargin@=\dimen184
-\captionwidth=\dimen185
-\caption@indent=\dimen186
-\caption@parindent=\dimen187
-\caption@hangindent=\dimen188
-Package caption Info: Unknown document class (or package),
-(caption) standard defaults will be used.
-)
-
-Package caption Warning: Unsupported document class (or package) detected,
-(caption) usage of the caption package is not recommended.
-See the caption package documentation for explanation.
-
-Package caption Info: \@makecaption = \long macro:#1#2->\ifx \@captype \@IEEEta
-blestring \footnotesize {\centering \normalfont \footnotesize #1.\qquad \scshap
-e #2\par }\@IEEEtablecaptionsepspace \else \@IEEEfigurecaptionsepspace \setbox
-\@tempboxa \hbox {\normalfont \footnotesize {#1.}~~ #2}\ifdim \wd \@tempboxa >\
-hsize \setbox \@tempboxa \hbox {\normalfont \footnotesize {#1.}~~ }\parbox [t]{
-\hsize }{\normalfont \footnotesize \noindent \unhbox \@tempboxa #2}\else \ifCLA
-SSOPTIONconference \hbox to\hsize {\normalfont \footnotesize \box \@tempboxa \h
-fil }\else \hbox to\hsize {\normalfont \footnotesize \box \@tempboxa \hfil }\fi
- \fi \fi .
-\c@ContinuedFloat=\count138
-Package caption Info: float package is loaded.
-Package caption Info: subfigure package is loaded.
-) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty
-Package: multicol 2011/06/27 v1.7a multicolumn formatting (FMi)
-\c@tracingmulticols=\count139
-\mult@box=\box48
-\multicol@leftmargin=\dimen189
-\c@unbalance=\count140
-\c@collectmore=\count141
-\doublecol@number=\count142
-\multicoltolerance=\count143
-\multicolpretolerance=\count144
-\full@width=\dimen190
-\page@free=\dimen191
-\premulticols=\dimen192
-\postmulticols=\dimen193
-\multicolsep=\skip74
-\multicolbaselineskip=\skip75
-\partial@page=\box49
-\last@line=\box50
-\mult@rightbox=\box51
-\mult@grightbox=\box52
-\mult@gfirstbox=\box53
-\mult@firstbox=\box54
-\@tempa=\box55
-\@tempa=\box56
-\@tempa=\box57
-\@tempa=\box58
-\@tempa=\box59
-\@tempa=\box60
-\@tempa=\box61
-\@tempa=\box62
-\@tempa=\box63
-\@tempa=\box64
-\@tempa=\box65
-\@tempa=\box66
-\@tempa=\box67
-\@tempa=\box68
-\@tempa=\box69
-\@tempa=\box70
-\@tempa=\box71
-\c@columnbadness=\count145
-\c@finalcolumnbadness=\count146
-\last@try=\dimen194
-\multicolovershoot=\dimen195
-\multicolundershoot=\dimen196
-\mult@nat@firstbox=\box72
-\colbreak@box=\box73
-\multicol@sort@counter=\count147
-) (./bare_conf.aux
-
-LaTeX Warning: Label `fig3' multiply defined.
-
-)
-\openout1 = `bare_conf.aux'.
-
-LaTeX Font Info: Checking defaults for OML/txmi/m/it on input line 37.
-LaTeX Font Info: Try loading font information for OML+txmi on input line 37.
-
- (/usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd
-File: omltxmi.fd 2000/12/15 v3.1
-)
-LaTeX Font Info: ... okay on input line 37.
-LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
-LaTeX Font Info: ... okay on input line 37.
-LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
-LaTeX Font Info: ... okay on input line 37.
-LaTeX Font Info: Checking defaults for OMS/txsy/m/n on input line 37.
-LaTeX Font Info: Try loading font information for OMS+txsy on input line 37.
-
-
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd
-File: omstxsy.fd 2000/12/15 v3.1
-)
-LaTeX Font Info: ... okay on input line 37.
-LaTeX Font Info: Checking defaults for OMX/txex/m/n on input line 37.
-LaTeX Font Info: Try loading font information for OMX+txex on input line 37.
-
-
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd
-File: omxtxex.fd 2000/12/15 v3.1
-)
-LaTeX Font Info: ... okay on input line 37.
-LaTeX Font Info: Checking defaults for U/txexa/m/n on input line 37.
-LaTeX Font Info: Try loading font information for U+txexa on input line 37.
-
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd
-File: utxexa.fd 2000/12/15 v3.1
-)
-LaTeX Font Info: ... okay on input line 37.
-LaTeX Font Info: Try loading font information for T1+txr on input line 37.
-
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd
-File: t1txr.fd 2000/12/15 v3.1
-)
-(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii
-[Loading MPS to PDF converter (version 2006.09.02).]
-\scratchcounter=\count148
-\scratchdimen=\dimen197
-\scratchbox=\box74
-\nofMPsegments=\count149
-\nofMParguments=\count150
-\everyMPshowfont=\toks33
-\MPscratchCnt=\count151
-\MPscratchDim=\dimen198
-\MPnumerator=\count152
-\makeMPintoPDFobject=\count153
-\everyMPtoPDFconversion=\toks34
-) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
-Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
-)
-
-(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
-Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
-Package ifluatex Info: LuaTeX not detected.
-)
-(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
-Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
-Package ifpdf Info: pdfTeX in PDF mode is detected.
-)
-Package pdftexcmds Info: LuaTeX not detected.
-Package pdftexcmds Info: \pdf@primitive is available.
-Package pdftexcmds Info: \pdf@ifprimitive is available.
-Package pdftexcmds Info: \pdfdraftmode found.
-)
-(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
-Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf
-
-(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty
-Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)
-
-(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty
-Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
-))
-(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
-Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
-
-(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
-Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
-
-(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty
-Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
-Package etexcmds Info: Could not find \expanded.
-(etexcmds) That can mean that you are not using pdfTeX 1.50 or
-(etexcmds) that some package has redefined \expanded.
-(etexcmds) In the latter case, load this package earlier.
-)))
-Package grfext Info: Graphics extension search list:
-(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
-G,.JBIG2,.JB2,.eps]
-(grfext) \AppendGraphicsExtensions on input line 452.
-
-(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
-File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
-e
-))
-ABD: EveryShipout initializing macros
-Package caption Info: Begin \AtBeginDocument code.
-Package caption Info: End \AtBeginDocument code.
-LaTeX Font Info: Try loading font information for OT1+txr on input line 59.
-
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd
-File: ot1txr.fd 2000/12/15 v3.1
-)
-LaTeX Font Info: Try loading font information for U+txsya on input line 59.
-
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd
-File: utxsya.fd 2000/12/15 v3.1
-)
-LaTeX Font Info: Try loading font information for U+txsyb on input line 59.
-
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd
-File: utxsyb.fd 2000/12/15 v3.1
-)
-LaTeX Font Info: Try loading font information for U+lasy on input line 59.
-
-(/usr/share/texlive/texmf-dist/tex/latex/base/ulasy.fd
-File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
-)
-LaTeX Font Info: Try loading font information for U+txmia on input line 59.
-
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd
-File: utxmia.fd 2000/12/15 v3.1
-)
-LaTeX Font Info: Try loading font information for U+txsyc on input line 59.
-
-(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd
-File: utxsyc.fd 2000/12/15 v3.1
-) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
-
-
-]
-Underfull \hbox (badness 1436) in paragraph at lines 134--138
-\T1/txr/m/n/10 where each round has a self-scheduling phase fol-lowed
- []
-
-
-Underfull \hbox (badness 2103) in paragraph at lines 134--138
-\T1/txr/m/n/10 and net-work life-time is max-i-mized while the cov-er-age
- []
-
-
-Underfull \hbox (badness 1436) in paragraph at lines 134--138
-\T1/txr/m/n/10 re-quire-ments be-ing main-tained. This al-go-rithm works in
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 134--138
-
- []
-
-[2]
-Package epstopdf Info: Source file: <FirstModel.eps>
-(epstopdf) date: 2013-07-30 21:23:32
-(epstopdf) size: 886264 bytes
-(epstopdf) Output file: <FirstModel-eps-converted-to.pdf>
-(epstopdf) Command: <repstopdf --outfile=FirstModel-eps-converted-t
-o.pdf FirstModel.eps>
-(epstopdf) \includegraphics on input line 209.
-runsystem(repstopdf --outfile=FirstModel-eps-converted-to.pdf FirstModel.eps)..
-.executed safely (allowed).
-
-Package epstopdf Info: Result file: <FirstModel-eps-converted-to.pdf>
-(epstopdf) date: 2013-07-30 21:23:42
-(epstopdf) size: 50483 bytes.
- <FirstModel-eps-converted-to.pdf, id=20, 586.19pt x 140.525pt>
-File: FirstModel-eps-converted-to.pdf Graphic file (type pdf)
-
-<use FirstModel-eps-converted-to.pdf>
-Package pdftex.def Info: FirstModel-eps-converted-to.pdf used on input line 209
-.
-(pdftex.def) Requested size: 199.16928pt x 47.7457pt.
-
-Underfull \hbox (badness 10000) in paragraph at lines 235--239
-
- []
-
-[3 <./FirstModel-eps-converted-to.pdf>]
-Package epstopdf Info: Source file: <principles13.eps>
-(epstopdf) date: 2013-07-30 21:23:32
-(epstopdf) size: 166031 bytes
-(epstopdf) Output file: <principles13-eps-converted-to.pdf>
-(epstopdf) date: 2013-07-30 21:23:32
-(epstopdf) size: 57812 bytes
-(epstopdf) Command: <repstopdf --outfile=principles13-eps-converted
--to.pdf principles13.eps>
-(epstopdf) \includegraphics on input line 289.
-Package epstopdf Info: Output file is already uptodate.
-
-<principles13-eps-converted-to.pdf, id=27, 794.97pt x 614.295pt>
-File: principles13-eps-converted-to.pdf Graphic file (type pdf)
-
-<use principles13-eps-converted-to.pdf>
-Package pdftex.def Info: principles13-eps-converted-to.pdf used on input line 2
-89.
-(pdftex.def) Requested size: 158.99118pt x 122.85681pt.
-
-Underfull \hbox (badness 10000) in paragraph at lines 298--313
-
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 325--327
-
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 344--346
-
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 358--360
-
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 370--371
-
- []
-
-[4 <./principles13-eps-converted-to.pdf>]
-
-LaTeX Warning: File `CR2R2L_1.eps' not found on input line 437.
-
-Package epstopdf Info: Source file: <CR2R2L_1.eps>
-(epstopdf) Output file: <CR2R2L_1-eps-converted-to.pdf>
-(epstopdf) Command: <repstopdf --outfile=CR2R2L_1-eps-converted-to.
-pdf CR2R2L_1.eps>
-(epstopdf) \includegraphics on input line 437.
-Package epstopdf Info: Output file is already uptodate.
-
-! Package pdftex.def Error: File `CR2R2L_1-eps-converted-to.pdf' not found.
-
-See the pdftex.def package documentation for explanation.
-Type H <return> for immediate help.
- ...
-
-l.437 \includegraphics[scale=0.5]{CR2R2L_1.eps}
- \\~ ~ ~(a)
-? x
-
-Here is how much of TeX's memory you used:
- 15032 strings out of 495059
- 262900 string characters out of 3182030
- 334138 words of memory out of 3000000
- 17876 multiletter control sequences out of 15000+200000
- 123570 words of font info for 153 fonts, out of 3000000 for 9000
- 17 hyphenation exceptions out of 8191
- 56i,9n,55p,1070b,283s stack positions out of 5000i,500n,10000p,200000b,50000s
-{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texlive/
-texmf-dist/fonts/type1/public/txfonts/rtxb.pfb></usr/share/texlive/texmf-dist/f
-onts/type1/public/txfonts/rtxmi.pfb></usr/share/texlive/texmf-dist/fonts/type1/
-public/txfonts/rtxr.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/txfon
-ts/rtxsc.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txex.pfb
-></usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txsy.pfb></usr/share
-/texlive/texmf-dist/fonts/type1/public/txfonts/txsyb.pfb></usr/share/texlive/te
-xmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr/share/texlive/texmf-dist/fonts/
-type1/urw/times/utmbi8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/time
-s/utmr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
-Output written on bare_conf.pdf (4 pages, 192349 bytes).
-PDF statistics:
- 73 PDF objects out of 1000 (max. 8388607)
- 48 compressed objects within 1 object stream
- 0 named destinations out of 1000 (max. 500000)
- 11 words of extra memory for PDF output out of 10000 (max. 10000000)
-