--- /dev/null
+\NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{singlecol}\r
+ [1998/05/05 v1.3y\r
+ Standard LaTeX document class]\r
+\r
+%\def\clsdir{C:/Inderscience/IJBRA-sample}\r
+\RequirePackage{epsf,endnotes,ifthen,dcolumn,graphics,leqno,calc,lastpage,color}\r
+\r
+\usepackage{amsmath,amsfonts,amssymb,bm,latexsym}\r
+\r
+%\usepackage[LY1]{fontenc}\r
+%\r
+%\edef\@tempa{\rmdefault}\r
+%\def\@tempb {cmr}\r
+%\ifx\@tempa\@tempb\r
+% \renewcommand*\sfdefault{phv}\r
+% \renewcommand*\rmdefault{ptm}\r
+% \renewcommand*\ttdefault{fftt}\r
+% \renewcommand*\bfdefault{b}\r
+%\fi\r
+\r
+\DeclareOldFontCommand{\RMbi}{\rmfamily\bfseries\itshape}{\mathbi}\r
+ \let\bi=\RMbi\r
+\r
+\newcommand\@ptsize{}\r
+\newif\if@restonecol\r
+\newif\if@titlepage\r
+\@titlepagefalse\r
+\if@compatibility\else\r
+\DeclareOption{a4paper}\r
+ {\setlength\paperheight {297mm}%\r
+ \setlength\paperwidth {210mm}}\r
+\DeclareOption{a5paper}\r
+ {\setlength\paperheight {210mm}%\r
+ \setlength\paperwidth {148mm}}\r
+\DeclareOption{b5paper}\r
+ {\setlength\paperheight {250mm}%\r
+ \setlength\paperwidth {176mm}}\r
+\DeclareOption{letterpaper}\r
+ {\setlength\paperheight {11in}%\r
+ \setlength\paperwidth {8.5in}}\r
+\DeclareOption{legalpaper}\r
+ {\setlength\paperheight {14in}%\r
+ \setlength\paperwidth {8.5in}}\r
+\DeclareOption{executivepaper}\r
+ {\setlength\paperheight {9.5in}%\r
+ \setlength\paperwidth {6.5in}}\r
+\DeclareOption{landscape}\r
+ {\setlength\@tempdima {\paperheight}%\r
+ \setlength\paperheight {\paperwidth}%\r
+ \setlength\paperwidth {\@tempdima}}\r
+\fi\r
+\if@compatibility\r
+ \renewcommand\@ptsize{0}\r
+\else\r
+\DeclareOption{10pt}{\renewcommand\@ptsize{0}}\r
+\fi\r
+\DeclareOption{11pt}{\renewcommand\@ptsize{1}}\r
+\DeclareOption{12pt}{\renewcommand\@ptsize{2}}\r
+\if@compatibility\else\r
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}\r
+\fi\r
+\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}\r
+\DeclareOption{draft}{\setlength\overfullrule{5pt}%\r
+ \AtBeginDocument{\PagePositionCropYes\r
+ {7pc}{5.3pc}{5.9pc}{7pt}\r
+ {7in}{10in}{-1in}{-1in}}}\r
+\DeclareOption{boxdraft}{\setlength\overfullrule{5pt}%\r
+ \AtBeginDocument{\PagePositionBoxYes\r
+ {7pc}{5.3pc}{5.9pc}{7pt}\r
+ {7in}{10in}{-1in}{-1in}}}\r
+\DeclareOption{final}{\setlength\overfullrule{0pt}%\r
+ \AtBeginDocument{\PagePositionCropYes\r
+ {4pc}{4pc}{3.77pc}{7pt}\r
+ {8.26in}{11.68in}{-1in}{-1in}}}\r
+\DeclareOption{finalcro}{\setlength\overfullrule{0pt}%\r
+ \AtBeginDocument{\PagePositionCropYes\r
+ {7pc}{5.3pc}{5.9pc}{7pt}\r
+ {7in}{10in}{-1in}{-1in}}}\r
+\DeclareOption{titlepage}{\@titlepagetrue}\r
+\if@compatibility\else\r
+\DeclareOption{notitlepage}{\@titlepagefalse}\r
+\fi\r
+\if@compatibility\else\r
+\DeclareOption{onecolumn}{\@twocolumnfalse}\r
+\fi\r
+\DeclareOption{twocolumn}{\@twocolumntrue}\r
+\DeclareOption{leqno}{\input{leqno.clo}}\r
+\DeclareOption{fleqn}{\input{fleqn.clo}}\r
+\DeclareOption{openbib}{%\r
+ \AtEndOfPackage{%\r
+ \renewcommand\@openbib@code{%\r
+ \advance\leftmargin\bibindent\r
+ \itemindent -\bibindent\r
+ \listparindent \itemindent\r
+ \parsep \z@\r
+ }%\r
+ \renewcommand\newblock{\par}}%\r
+}\r
+\ExecuteOptions{letterpaper,10pt,twoside,onecolumn,final}\r
+\ProcessOptions\r
+\input{size1\@ptsize.clo}\r
+\setlength\lineskip{1\p@}\r
+\setlength\normallineskip{1\p@}\r
+\renewcommand\baselinestretch{}\r
+\setlength\parskip{0\p@ \@plus \p@}\r
+\@lowpenalty 51\r
+\@medpenalty 151\r
+\@highpenalty 301\r
+\setcounter{topnumber}{2}\r
+\renewcommand\topfraction{.7}\r
+\setcounter{bottomnumber}{1}\r
+\renewcommand\bottomfraction{.3}\r
+\setcounter{totalnumber}{3}\r
+\renewcommand\textfraction{.2}\r
+\renewcommand\floatpagefraction{.5}\r
+\setcounter{dbltopnumber}{2}\r
+\renewcommand\dbltopfraction{.7}\r
+\renewcommand\dblfloatpagefraction{.5}\r
+\r
+%\DeclareFontFamily{LY1}{fftt}{}%\r
+%\DeclareFontShape{LY1}{fftt}{m}{n}{<->jmcrxr}\r
+% {\hyphenchar\font=-1}%\r
+%\DeclareFontShape{LY1}{fftt}{m}{it}{<->jmcrxi}\r
+% {\hyphenchar\font=-1}%\r
+%\DeclareFontShape{LY1}{fftt}{b}{n}{<->jmcrxb}\r
+% {\hyphenchar\font=-1}%\r
+%\DeclareFontShape{LY1}{fftt}{b}{it}{<->jmcrxw}\r
+% {\hyphenchar\font=-1}%\r
+\r
+\def\SEVEN{\fontsize{7}{9}\selectfont}\r
+\def\EGT{\fontsize{8}{10}\selectfont}\r
+\def\NINE{\fontsize{9}{10}\selectfont}\r
+\def\TEN{\fontsize{10}{12}\selectfont}\r
+\def\ELEVEN{\fontsize{11}{13}\selectfont}\r
+\def\TWELVE{\fontsize{12}{14}\selectfont}\r
+\def\THIRTEEN{\fontsize{13}{15}\selectfont}\r
+\def\FOURTEEN{\fontsize{14}{16}\selectfont}\r
+\def\SIXTEEN{\fontsize{16}{22}\selectfont}\r
+\r
+\newdimen\markwidth\r
+\newdimen\blth\r
+\newdimen\marklength\r
+\newdimen\markdistance\r
+\newdimen\trimwidth\r
+\newdimen\trimheight\r
+\newdimen\auxaaa\r
+\newdimen\auxbbb\r
+\newdimen\auxccc\r
+\newdimen\auxddd\r
+\r
+\long\def\koo#1#2#3{\vbox to0pt{\hsize0pt\kern #2\hbox to0pt{\kern\r
+#1{#3}\hss}\vss}}\r
+\long\def\zeroCC#1{\vbox to0pt{\vss\hbox to0pt{\hss #1\hss}\vss}}\r
+\long\def\zeroLC#1{\vbox to0pt{\vss\hbox to0pt{\hss #1\hss}}}\r
+\long\def\zeroUC#1{\vbox to0pt{\hbox to0pt{\hss #1\hss}\vss}}\r
+\long\def\zeroLR#1{\vbox to0pt{\vss\hbox to0pt{\hss #1}}}\r
+\long\def\zeroLL#1{\vbox to0pt{\vss\hbox to0pt{#1\hss}}}\r
+\long\def\zeroUR#1{\vbox to0pt{\hbox to0pt{\hss #1}\vss}}\r
+\long\def\zeroUL#1{\vbox to0pt{\hbox to0pt{#1\hss}\vss}}\r
+\long\def\zeroCL#1{\vbox to0pt{\vss\hbox to0pt{#1\hss}\vss}}\r
+\long\def\zeroCR#1{\vbox to0pt{\vss\hbox to0pt{\hss #1}\vss}}\r
+\r
+\newcolumntype{d}[1]{D{.}{.}{#1}}\r
+\r
+%%%%%%%%%%%%%%%%%%% Numbers supplied down here!\r
+\markwidth=.5pt %0.4 truept % Thickness of the mark line\r
+\blth=0.2pt\r
+\marklength=20 truept % Length of the mark line\r
+\markdistance=3 truept % Distance of the real corner to the beg. of the mark\r
+%%% \trimwidth=\textwidth+\oddsidemargin+\evensidemargin\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+\auxaaa\marklength\advance\auxaaa\markdistance\r
+\def\oddevenswitch{\ifodd\c@page \auxbbb=\oddsidemargin\r
+ \else\auxbbb=\evensidemargin\fi}%\r
+\r
+%%% First reset all page position parameters depending on the job:\r
+% \PagePositionCropYes - should be just for testing\r
+% \PagePositionCropNo - should be the default behavior\r
+% \PagePositionBoxYes - gives the page box for testing\r
+\r
+\def\PagePositionCropYes#1#2#3#4#5#6#7#8{%\r
+ \oddsidemargin=#1% % [3] inner margin / gutter\r
+ \evensidemargin=#2% % [4] outside margin\r
+ \topmargin=#3% % [5] \rhsink = \topmargin + \headheight (=12pt here)\r
+ \headheight=#4% % [6] VERY IMPORTANT! (see above)\r
+ \trimwidth=#5% % [7]\r
+ \trimheight=#6% % [8]\r
+ \hoffset=#7% % = -1in to move the area in the upper left corner\r
+ \voffset=#8% % = -1in to move the area in the upper left corner\r
+%%%\r
+ \def\CROPMARKS{\oddevenswitch\r
+ \hbox to0pt{\kern-\auxbbb\r
+ \vbox to0bp{\kern-\topmargin\kern-\headheight\r
+ \hbox to\trimwidth{%\r
+ \koo{-\auxaaa}{-\markwidth}{\VRHDW{\markwidth}{0pt}{\marklength}}%\r
+ \koo{-\markwidth}{-\auxaaa}{\VRHDW{0pt}{\marklength}{\markwidth}}%\r
+ \hfill\r
+ \koo{\markdistance}{-\markwidth}{\VRHDW{\markwidth}{0pt}{\marklength}}%\r
+ \koo{0pt}{-\auxaaa}{\VRHDW{0pt}{\marklength}{\markwidth}}}%\r
+ \nointerlineskip\vskip\trimheight\r
+ \nointerlineskip\r
+ \hbox to\trimwidth{%\r
+ \koo{-\auxaaa}{0pt}{\VRHDW{0pt}{\markwidth}{\marklength}}%\r
+ \koo{-\markwidth}{\markdistance}{\VRHDW{0pt}{\marklength}{\markwidth}}%\r
+ \hfill\r
+ \koo{\markdistance}{0pt}{\VRHDW{0pt}{\markwidth}{\marklength}}%\r
+ \koo{0pt}{\markdistance}{\VRHDW{0pt}{\marklength}{\markwidth}}}%\r
+ \vss}\hss}}%\r
+}%\r
+\r
+\def\PagePositionCropNo#1#2#3#4#5#6#7#8{%\r
+ \oddsidemargin=#1% % [3] inner margin / gutter\r
+ \evensidemargin=#2% % [4] outside margin\r
+ \topmargin=#3% % [5] \rhsink = \topmargin + \headheight (=12pt here)\r
+ \headheight=#4% % [6] VERY IMPORTANT! (see above)\r
+ \trimwidth=#5% % [7]\r
+ \trimheight=#6% % [8]\r
+ \hoffset=#7% % = -1in to move the area in the upper left corner\r
+ \voffset=#8% % = -1in to move the area in the upper left corner\r
+%%%\r
+\def\CROPMARKS{}%\r
+}%\r
+\r
+\def\PagePositionBoxYes#1#2#3#4#5#6#7#8{%\r
+ \oddsidemargin=#1% % [3] inner margin / gutter\r
+ \evensidemargin=#2% % [4] outside margin\r
+ \topmargin=#3% % [5] \rhsink = \topmargin + \headheight (=12pt here)\r
+ \headheight=#4% % [6] VERY IMPORTANT! (see above)\r
+ \trimwidth=#5% % [7]\r
+ \trimheight=#6% % [8]\r
+ \hoffset=#7% % = -1in to move the area in the upper left corner\r
+ \voffset=#8% % = -1in to move the area in the upper left corner\r
+%%%\r
+ \def\CROPMARKS{\oddevenswitch\r
+ \hbox to0pt{\kern-\auxbbb\r
+ \vbox to0bp{\kern-\topmargin\kern-\headheight\r
+ \hbox to\trimwidth{%\r
+ \auxccc=\trimwidth \advance\auxccc by 2\blth\r
+ \auxddd=\trimheight \advance\auxddd by 2\blth\r
+ \koo{-\blth}{0pt}{\zeroLL{\VRHDW{\blth}{0pt}{\auxccc}}}%\r
+ \koo{-\blth}{-\blth}{\zeroUL{\VRHDW{\auxddd}{0pt}{\blth}}}%\r
+ \koo{\trimwidth}{-\blth}{\zeroUL{\VRHDW{\auxddd}{0pt}{\blth}}}%\r
+ \koo{-\blth}{\trimheight}{\zeroUL{\VRHDW{\blth}{0pt}{\auxccc}}}\hss}%\r
+ \vss}\hss}}%\r
+}%\r
+\r
+\def\LRH#1{\gdef\setLRH{#1}}\def\setLRH{}%\r
+\def\RRH#1{\gdef\setRRH{#1}}\def\setRRH{}%\r
+\r
+\LRH{author}\r
+\RRH{short title}\r
+\r
+\def\ps@headings{\let\@mkboth\markboth\r
+ \def\@oddfoot{\setoddFOOT}%\r
+ \def\@evenfoot{\setevenFOOT}%\r
+ \def\@evenhead{\setevenRH}%\r
+ \def\@oddhead{\setoddRH}%\r
+ \def\sectionmark##1{}%\r
+ \def\subsectionmark##1{}}%\r
+\r
+%%%%%%%%%%%%%%%%%%% Standard settings:\r
+\r
+\def\setoddRH{\VRHDW{\headheight}{0pt}{0pt}\CROPMARKS%\r
+ \raisebox{0pt}[\headheight][0pt]{%\r
+% \marginnumbering\r
+ \begin{tabular}{@{}c@{}}\\[-15pt]%\r
+% \TEN\hskip -1pt\today\\[27pt]%\r
+ \hbox to \textwidth{\hspace*{36pt}{\TEN\it\spaceskip0.41em\setRRH}\hfill{\TEN\thepage}}\r
+ \end{tabular}\r
+ }}%\r
+\r
+\def\setevenRH{\VRHDW{\headheight}{0pt}{0pt}\CROPMARKS%\r
+ \raisebox{0pt}[\headheight][0pt]{%\r
+% \marginnumbering\r
+ \begin{tabular}{@{}c@{}}\\[-15pt]%\r
+% \TEN\hskip -1pt\today \\[30pt]%\r
+ \hbox to \textwidth{\spaceskip0.41em{\TEN\thepage}\hspace*{30pt}\TEN\it%\r
+ \setLRH}%\r
+ \end{tabular}\r
+ }}%\r
+\r
+\def\setevenFOOT{\hfil}\r
+\def\setoddFOOT{\hfil}\r
+\r
+\let\savesetevenRH=\setevenRH\r
+\let\savesetoddRH=\setoddRH\r
+\let\savesetoddFOOT=\setoddFOOT\r
+\let\savesetevenFOOT=\setevenFOOT\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\ps@plain\r
+\def\ps@plain{\let\@mkboth\@gobbletwo\r
+ \def\@oddhead{\it \CROPMARKS\TEN \theJOURNALNAME, Vol. \theVOL, No. \theISSUE, \thePUBYEAR\hfill{\rm \thepage}}%\r
+ \let\@evenhead=\@oddhead\r
+ \def\@oddfoot{\NINE Copyright \copyright\ 2009 Inderscience Enterprises Ltd.\hfill}%\r
+ \def\@evenfoot{\NINE Copyright \copyright\ 2009 Inderscience Enterprises Ltd.\hfill}}\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\ps@empty\r
+\def\ps@empty{\let\@mkboth\@gobbletwo\r
+ \def\@oddhead{\hfil}%\r
+ \let\@evenhead=\@oddhead\r
+ \def\@oddfoot{\hfil}%\r
+ \let\@evenfoot=\@oddfoot}\r
+\r
+\def\jname{ETC}\r
+\r
+\def\boxtext{\begin{tabular}{l}\r
+\\[-190pt]\r
+\hbox to \textwidth{\hfill{\parbox{16pc}\r
+ {\EGT\r
+ \begin{tabular}{c}\r
+ \jname\ \artname\quad Pe:\ \penumber/LE/CP/DISK (LaTeX)\\\r
+ \today\quad \printtime\quad Ist Proof\r
+ \end{tabular}\r
+ }\r
+}\enskip}\r
+\end{tabular}}\r
+\r
+\def\DS{\displaystyle}\r
+\r
+\def\KLUWERLOGO{\epsffile[0 0 16 18]{aglogo3.eps}}%\r
+\r
+\def\setfirstoddFOOT{\hfil}\r
+\def\setfirstevenFOOT{\hfil}\r
+\r
+\def\JOURNALNAME#1{\gdef\theJOURNALNAME{#1}}%\r
+\def\VOL#1{\gdef\theVOL{#1}}%\r
+\VOL{0}%\r
+\def\PAGES#1{\gdef\thePAGES{#1}}%\r
+\PAGES{\thepage--\pageref{LastPage}}%\r
+\def\PUBYEAR#1{\gdef\thePUBYEAR{#1}}%\r
+\PUBYEAR{2004}%\r
+\def\ISSUE#1{\gdef\theISSUE{#1}}%\r
+\ISSUE{00}%\r
+\r
+\JOURNALNAME{\TEN{\it Int. J. Signal and Imaging Systems Engineering}}%\r
+\def\jtitlefont{\fontsize{16}{22}\selectfont\rm}\r
+\r
+\def\Dnum#1{\gdef\theDnum{#1}}%\r
+\Dnum{Please enter the Dekker No}%\r
+\r
+\def\CLline{{\CROPMARKS\vskip -36pt \fontsize{9}{12}\selectfont\r
+\TEN\hskip -1pt\\\r
+\NINE{\theJOURNALNAME\\[9pt]\r
+%Vol. \theVOL, No. \theISSUE, pp. \thePAGES, \thePUBYEAR}\r
+}\endgraf}\vspace*{38pt}}%\r
+\r
+\def\BottomCatch{%\r
+\vskip -10pt\r
+\thispagestyle{empty}%\r
+\begin{table}[b]%\r
+\NINE\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lcr@{}}%\r
+\\[-12pt]\r
+Copyright \copyright\ 2008 Inderscience Enterprises Ltd. & &%\r
+\end{tabular*}%\r
+\vskip -15pt%\r
+\end{table}%\r
+}%\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SSS\r
+%%%%%% \Trivlist, \TRivlist, \Center, \Flushleft, \Flushright\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+\def\Trivlist{\parskip0pt\topsep=0pt\parsep0pt\partopsep0pt\@nmbrlistfalse\r
+ \@trivlist \labelwidth\z@ \leftmargin\z@\r
+ \itemindent\z@ \def\makelabel##1{##1}}\r
+\r
+\def\endTrivlist{\if@newlist\@noitemerr\fi\r
+ \if@inlabel\indent\fi\r
+ \ifhmode\unskip \par\fi\r
+ \if@noparlist \else\r
+ \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip\r
+ \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip\r
+ \vskip\@tempskipa\r
+ \fi\@endparenv\fi}\r
+\r
+\def\TRivlist{\parskip0pt\topsep=12pt plus 5pt minus 5pt\r
+ \parsep0pt\partopsep0pt\@nmbrlistfalse\r
+ \@trivlist \labelwidth\z@\r
+ \leftmargin 0pt \rightmargin 0pt\r
+ \itemindent\z@ \def\makelabel##1{##1}}\r
+\r
+\def\endTRivlist{\if@newlist\@noitemerr\fi\r
+ \if@inlabel\indent\fi\r
+ \ifhmode\unskip \par\fi\r
+ \if@noparlist \else\r
+ \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip\r
+ \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip\r
+ \vskip\@tempskipa\r
+ \fi\@endparenv\fi}\r
+\r
+\def\Center{\Trivlist \centering\item[]}\r
+\let\endCenter=\endTrivlist\r
+\def\Flushleft{\Trivlist \raggedright\item[]}\r
+\let\endFlushleft=\endTrivlist\r
+\def\Flushright{\Trivlist \raggedleft\item[]}\r
+\let\endFlushright=\endTrivlist\r
+\r
+\newcommand{\up}{\HD{9}{0}}% for tables\r
+\newcommand{\down}{\HD{0}{6}}%\r
+\r
+%%%%%%%%%%koo.sty\r
+\def\VRHDW#1#2#3{\vrule height #1 depth #2 width #3}\r
+\def\HRHDW#1#2#3{\hrule height #1 depth #2 width #3}\r
+\def\HD#1#2{\vrule height #1pt depth #2pt width 0pt\relax}\r
+\def\halmos{\VRHDW{8pt}{0pt}{4pt}}%\r
+\r
+\newcommand\abstractname{\NINE Abstract:}\r
+%\newcommand\keywordname{Keywords:\null}\r
+\r
+\newbox\t@abstract\r
+\newbox\t@receivedname\r
+\newbox\temptbox\r
+\newdimen\tempdime\r
+\r
+\def\authorA#1{\gdef\@authorA{\bf #1}}%{\authfont #1}}\r
+\def\authorB#1{\gdef\@authorB{\bf #1}}%{\authfont #1}}\r
+\def\authorC#1{\gdef\@authorC{\bf #1}}%{\authfont #1}}\r
+\def\authorD#1{\gdef\@authorD{\bf #1}}%{\authfont #1}}\r
+\r
+\def\affA#1{\gdef\@affA{\TEN #1}}\r
+\def\affB#1{\gdef\@affB{\TEN #1}}\r
+\def\affC#1{\gdef\@affC{\TEN #1}}\r
+\def\affD#1{\gdef\@affD{\TEN #1}}\r
+\r
+\def\HISTORY#1{\gdef\@HISTORY{\NINE #1}}\r
+\def\ADDITIONAL#1{\gdef\@ADDITIONAL{\NINE #1}}\r
+\def\PRESENTED#1{\gdef\@PRESENTED{\NINE #1}}\r
+\def\DEDICATED#1{\gdef\@DEDICATED{{\TWELVE\it #1}}}\r
+\r
+\def\REF#1{\gdef\@REF{\NINE #1}}\r
+\def\BIO#1{\gdef\@BIO{\NINE #1}}\r
+\def\JEL#1{\gdef\@JEL{\NINE #1}}\r
+\def\PACS#1{\gdef\@PACS{\NINE #1}}\r
+\def\KEYWORD#1{\gdef\@KEYWORD{\NINE #1}}\r
+\r
+%%\r
+\def\sechead#1{\def\@sechead{#1}}\r
+\def\docHeading#1{\def\@docHeading{#1}}\r
+\def\subtitle#1{\def\@subtitle{\uppercase{#1}}}\r
+\r
+\def\address#1{\def\@address{#1}}\r
+\def\Date#1{\def\@Date{Accepted~#1}}\r
+\def\abstract{\@ifnextchar[{\@abstract}{\@abstract[]}}\r
+\r
+\def\@abstract[#1]{%\r
+ \global\setbox\t@abstract=\vbox\bgroup%\r
+ \parindent10pt\leftskip 12.75pc%\rightskip 3pc%\r
+ \noindent{\bf\TEN \abstractname}\ %\vskip 12.8pt\r
+ \noindent\NINE%\r
+ \ignorespaces}%\r
+\def\endabstract{\egroup}\r
+\r
+\newcommand\bioname{\NINE Biographical notes:}\r
+\newbox\t@bio\r
+\def\bio{\@ifnextchar[{\@bio}{\@bio[]}}\r
+\def\@bio[#1]{%\r
+ \global\setbox\t@bio=\vbox\bgroup%\r
+ \parindent10pt\leftskip 12.75pc%\rightskip 3pc%\r
+ \noindent{\bf\TEN \bioname}\ %\vskip 12.8pt\r
+ \noindent\NINE%\r
+ \ignorespaces}%\r
+\def\endbio{\egroup}\r
+\r
+%\font\titfont=ARIALBD at 14pt\r
+%\font\authfont=ARIAL at 14pt\r
+\r
+\newcommand\maketitle{\par\r
+ \begingroup\r
+ \gdef\thefootnote{\alph{footnote}}\r
+ \def\@makefnmark{\hbox\r
+ to 0pt{$^{\@thefnmark}$\hss}}\r
+ \long\def\@makefntext##1{\noindent\r
+ \ifnum\c@footnote=1\hbox{*\,}\else\r
+ \hbox{\@textsuperscript{\normalfont\@thefnmark}\,}\fi\r
+ \foot ##1}%\r
+% \ifnum \col@number=\@ne\r
+% \@maketitle\r
+% \else\r
+% \@maketitle\r
+ \twocolumn[\@maketitle]%\r
+% \fi\r
+ \thispagestyle{plain}\r
+ \@thanks\r
+ \endgroup\r
+ \setcounter{footnote}{0}%\r
+ \global\let\maketitle\relax\global\let\@maketitle\relax\r
+}\r
+\r
+\long\gdef\ARTICLEOPENING#1{\long\gdef\@maketitle{#1}}%\r
+\ARTICLEOPENING{}%\r
+\r
+%FFF\r
+\def\@maketitle{%\r
+% \begin{Center}%\r
+ \let \footnote \thanks%\r
+ {%\r
+ \hyphenpenalty 10000%\r
+ \begin{Flushleft}\r
+ \vskip-1pc\r
+ \leftskip 12.75pc plus 20pc\r
+ \rule{30pc}{1.5pt}\\%[1pt]\r
+ \baselineskip16pt plus .2pt minus .2pt\r
+ \HD{0}{0}\FOURTEEN%\titfont\r
+ {\bf \@title}\\[-8pt]\r
+ \rule{30pc}{1.5pt}\HD{0}{6}%\r
+ \end{Flushleft}\r
+ \par}%\r
+%%%authorA %GGG\r
+ \ifx\@authorA\undefined%\r
+ \else%\r
+ \begin{Flushleft}%\r
+ \baselineskip16pt plus .25pt minus .24pt\r
+ \leftskip 12.75pc plus 20pc %\rightskip 3pc plus 20pc\r
+ \HD{19}{0}\FOURTEEN\@authorA\HD{0}{0}\r
+ \end{Flushleft}%\r
+ \fi\par%\r
+ \ifx\@affA\undefined%\r
+ \else\r
+ \begin{Flushleft}%\r
+ \HD{15}{0}%\r
+ \leftskip 12.75pc plus 0pt %\rightskip 3pc plus 0pt\r
+ \@affA\HD{0}{12}%\r
+ \end{Flushleft}%\r
+ \fi%\r
+%%%\r
+ \ifx\@authorB\undefined%\r
+ \else%\r
+ \begin{Flushleft}%\r
+ \leftskip 12.75pc plus 20pc %\rightskip 3pc plus 20pc\r
+ \HD{10}{0}\FOURTEEN\@authorB\HD{0}{0}\r
+ \end{Flushleft}\r
+ \fi%\r
+ \ifx\@affB\undefined%\r
+ \else \begin{Flushleft}\HD{15}{0}%\r
+ \leftskip 12.75pc plus 0pc %\rightskip 3pc plus 20pc\r
+ \@affB\HD{0}{12}%\r
+ \end{Flushleft}%%\r
+ \fi%\r
+%%%\r
+%%%\r
+ \ifx\@authorC\undefined%\r
+ \else%\r
+ \begin{Flushleft}%\r
+ \leftskip 12.75pc plus 20pc %\rightskip 3pc plus 20pc\r
+ \HD{10}{0}\FOURTEEN\@authorC\HD{0}{0}\r
+ \end{Flushleft}\r
+ \fi%\r
+ \ifx\@affC\undefined%\r
+ \else \begin{Flushleft}\HD{15}{0}%\r
+ \leftskip 12.75pc plus 0pc %\rightskip 3pc plus 20pc\r
+ \@affC\HD{0}{12}%\r
+ \end{Flushleft}%%\r
+ \fi%\r
+%%%\r
+%%%\r
+ \ifx\@authorD\undefined%\r
+ \else%\r
+ \begin{Flushleft}%\r
+ \leftskip 12.75pc plus 20pc %\rightskip 3pc plus 20pc\r
+ \HD{10}{0}\FOURTEEN\@authorD\HD{0}{0}\r
+ \end{Flushleft}\r
+ \fi%\r
+ \ifx\@affD\undefined%\r
+ \else \begin{Flushleft}\HD{15}{0}%\r
+ \leftskip 12.75pc plus 0pc %\rightskip 3pc plus 20pc\r
+ \@affD\HD{0}{12}%\r
+ \end{Flushleft}%%\r
+ \fi%\r
+%%%\r
+ \ifx\@Date\undefined\else{\footnotesize%\r
+ \@Date%\r
+ \par}\vskip24pt\fi%\r
+ \HD{3}{0}%\r
+ \ifx\@ADDITIONAL\undefined%\r
+ \else%\r
+ \@ADDITIONAL \HD{0}{20}\par%\r
+ \fi%\r
+ \ifx\@PRESENTED\undefined%\r
+ \else%\r
+ \@PRESENTED\HD{0}{20}\par%\r
+ \fi%\r
+ \ifx\@HISTORY\undefined%\r
+ \else%\r
+ \@HISTORY \HD{9}{0}\par%\r
+ \fi%\r
+ \HD{0}{0}%\r
+% \tableofcontents\r
+ \noindent\leftskip 12.75pc%\rightskip 3pc%\r
+ {\unvbox\t@abstract}%\r
+% \end{Center}%\r
+ \ifx\@KEYWORD\undefined%\r
+ \else%\r
+ \noindent\leftskip 12.75pc%\rightskip 3pc%\r
+ \HD{19}{0}\NINE{\bf Keywords:}\ \@KEYWORD \HD{0}{0}\par%\r
+ \fi\r
+ \ifx\@REF\undefined%\r
+ \else%\r
+ \noindent\leftskip 12.75pc%\rightskip 3pc%\r
+ \HD{21}{0}\NINE{\bf Reference}\ \@REF \HD{0}{0}\par%\r
+ \fi%\r
+ \HD{12}{0}{\unvbox\t@bio}%\r
+%%bio\r
+ \noindent\leftskip 0pc%\rightskip 2pc\r
+ \HD{18.5}{0}\rule{42.5pc}{1.5pt}\r
+ \vskip 20pt plus 3pt minus 2pt%\r
+ \relax%\r
+}%\r
+\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-b-THEOREM\r
+\r
+\RequirePackage{theorem}\r
+\r
+\gdef\th@TH{%\r
+ \def\theorem@headerfont{\normalfont\mdseries\bf}%\r
+ \theorempreskipamount=12pt plus 1pt minus 1pt%\r
+ \theorempostskipamount=12pt plus 1pt minus 1pt%\r
+ \def\@begintheorem##1##2{\normalfont\it%\r
+ \item[\noindent\hskip\labelsep\theorem@headerfont\bf ##1\ ##2:]\enskip}%\r
+ \def\@opargbegintheorem##1##2##3{\normalfont\it%\r
+ \item[\noindent\hskip\labelsep\theorem@headerfont{\bf ##3:}]\enskip}}\r
+\r
+%This is defined to get Rule Case, definition, Example etc.\r
+\gdef\th@THrm{%\r
+ \def\theorem@headerfont{\normalfont\mdseries\bf}%\r
+ \theorempreskipamount=12pt plus 1pt minus 1pt%\r
+ \theorempostskipamount=12pt plus 1pt minus 1pt%\r
+ \labelsep 0.5em %%10pt\r
+ \def\@begintheorem##1##2{\normalfont\rm\r
+ \item[\noindent\hskip\labelsep\theorem@headerfont{\bf ##1\ ##2:}]\enskip}%\r
+ \def\@opargbegintheorem##1##2##3{\normalfont\rm\r
+ \item[\noindent\hskip\labelsep\theorem@headerfont {{\bf ##3:}}]\enskip}}\r
+\r
+\gdef\th@THhit{%\r
+ \def\theorem@headerfont{\normalfont\mdseries\scshape}%\r
+ \theorempreskipamount=12pt plus 1pt minus 1pt%\r
+ \theorempostskipamount=12pt plus 1pt minus 1pt%\r
+ \labelsep 0.5em %%10pt\r
+ \def\@begintheorem##1##2{\it\r
+ \item[\noindent\hskip\labelsep\theorem@headerfont {\bf ##1}\ {\bf ##2:}]\enskip}%\r
+ \def\@opargbegintheorem##1##2##3{\normalfont\it\r
+ \item[\noindent\hskip\labelsep\theorem@headerfont {\bf ##3:}]\enskip}}\r
+\r
+\gdef\th@THkeyall{%\r
+ \def\theorem@headerfont{\normalfont\mdseries\scshape}%\r
+ \theorempreskipamount=12pt plus 6pt minus 3pt%\r
+ \theorempostskipamount=12pt plus 6pt minus 3pt%\r
+ \labelsep 0.5em %%10pt\r
+ \def\@begintheorem##1##2{\normalfont\it\r
+ \item[\indent\hskip\labelsep \theorem@headerfont ##1.]}%\r
+ \def\@opargbegintheorem##1##2##3{\normalfont\it\r
+ \item[\indent]{\theorem@headerfont {##3}\hskip\labelsep}\ignorespaces}}\r
+\r
+\gdef\th@EX{%\r
+ \def\theorem@headerfont{\normalfont\mdseries\scshape}%\r
+ \theorempreskipamount=0pt\theorempostskipamount=0pt\r
+ \labelsep 0.5em %%10pt\r
+ \def\@begintheorem##1##2{\normalfont\upshape\r
+ \item[\indent\hskip\labelsep \theorem@headerfont ##1\ ##2.]}%\r
+ \def\@opargbegintheorem##1##2##3{\normalfont\upshape\r
+ \item[\indent\hskip\labelsep \theorem@headerfont ##1\ ##2\ {##3.}]}}\r
+\r
+\gdef\th@EXkey{%\r
+ \def\theorem@headerfont{\normalfont\mdseries\scshape}%\r
+ \theorempreskipamount=13pt\theorempostskipamount=13pt\r
+ \labelsep 0.5em %%10pt\r
+ \def\@begintheorem##1##2{\normalfont\upshape\r
+ \item[\indent\hskip\labelsep \theorem@headerfont ##1\ ##2.]}%\r
+ \def\@opargbegintheorem##1##2##3{\normalfont\upshape\r
+ \item[\indent\hskip\labelsep \theorem@headerfont {##3}]}}\r
+\r
+\gdef\th@EXkeyall{%\r
+ \def\theorem@headerfont{\normalfont\mdseries\scshape}%\r
+ \theorempreskipamount=0pt\theorempostskipamount=0pt\r
+ \labelsep 0.5em %%10pt\r
+ \def\@begintheorem##1##2{\normalfont\upshape\r
+ \item[\indent\hskip\labelsep \theorem@headerfont ##1\ ##2.]}%\r
+ \def\@opargbegintheorem##1##2##3{\normalfont\upshape\r
+ \item[\indent\hskip\labelsep]{\theorem@headerfont {##3}}}}\r
+\r
+\def\problem#1{\noindent{\bf Problem #1.\/}\enskip\rm}\r
+\def\endproblem{\hfill$\square$\vskip 10pt}\r
+\r
+\def\theo#1{\vskip 10pt \noindent{\bi Theorem #1.\/}\enskip\it}\r
+\def\endtheo{\hfill$\square$\vskip 12pt}\r
+%% Use for proper proofs that end with extra space (regardless of the use\r
+%% or non-use of \qed (=the black box)\r
+\def\THTrivlist{\parskip0pt\topsep=1.2em plus 0.3em minus 0.2em\r
+ \parsep0pt\partopsep0pt\@nmbrlistfalse\r
+ \@trivlist \labelwidth\z@ \leftmargin\z@\r
+ \itemindent\z@ \def\makelabel##1{##1}}\r
+\r
+\let\endTHTrivlist=\endlist\r
+\r
+\def\proof#1{\THTrivlist %%\addvspace{0pt}\r
+ \item[\hspace*{0pt}\hskip\labelsep{\it #1}:\enskip]\ignorespaces}\r
+\def\endproof{\hfill $\square$\endTHTrivlist}\r
+\r
+\def\endSQproof{\hfill\endTHTrivlist}\r
+% this is to remove square from end of Proof\r
+\r
+\def\thproof#1{\vskip-\lastskip\par{ #1.\/}\enskip\rm}\r
+\def\endthproof{\hfill$\square$\vskip 12pt}\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-e-THEOREM\r
+\r
+%%% BIBLIOGRAPHY\r
+\r
+\def\@biblabel#1{[#1]}\r
+ \def\@cite#1{[#1]}\r
+\r
+%%%%%%%%%%%%%%%%%BIBLIOGRAPHY %%%%%%%%%%%%BBBBBB\r
+\r
+\def\thebibliography#1{%\r
+ \par{\section*{References and Notes}}%\r
+ \list{}{\settowidth\labelwidth{#1}\r
+ \setlength{\topsep}{0pt}\r
+ \labelsep 0pt\labelwidth 0pt\r
+ \leftmargin 8pt\r
+ \itemindent-8pt\r
+ \itemsep 5pt\r
+ \def\bibitem{\item \NINE\r
+ \baselineskip10pt plus 0.3pt minus 0.25pt\relax}}\r
+ \def\newblock{\hskip .11em plus .33em minus .07em}\r
+ \sloppy\clubpenalty4000\widowpenalty4000\r
+ \sfcode`\.=1000\relax}\r
+\r
+\def\endthebibliography{\endlist}\r
+\r
+\def\notesname{Notes}% <------ JK\r
+\def\enoteheading{\section*{\notesname}%\r
+ \leavevmode\par}\r
+\r
+\def\enoteformat{\rightskip\z@ \leftskip6pt \parindent=0em\r
+ \leavevmode\llap{\hbox{$^{\@theenmark}$}}}\r
+\r
+\def\enotesize{\footnotesize}\r
+\r
+\def\NUMBIB{\def\@biblabel##1{\bf ##1}%\r
+\def\thebibliography##1{%\r
+ \par{\section*{References and Notes\HD{0}{0}}}%\r
+ \list\r
+ {\@biblabel{\arabic{enumiv}}}{\NINE\r
+ \baselineskip 10pt plus 0.3pt minus 0.25pt\relax\r
+ \settowidth\labelwidth{\@biblabel{##1}}%\r
+ \leftmargin\labelwidth\r
+ \advance\leftmargin\labelsep\r
+ \usecounter{enumiv}%\r
+ \let\p@enumiv\@empty\r
+ \labelsep 8pt\labelwidth 13.5pt\r
+ \itemsep 2pt\r
+ \parskip4pt\topsep4pt\r
+ \def\theenumiv{\arabic{enumiv}}}%\r
+ \def\newblock{\hskip .11em plus.33em minus.07em}%\r
+ \sloppy\clubpenalty4000\widowpenalty4000\r
+ \sfcode`\.=1000\relax\r
+ \parsep0pt}}\r
+\r
+\clubpenalty 10000\r
+\widowpenalty 10000\r
+\predisplaypenalty=10000\r
+\setcounter{secnumdepth}{3}\r
+\newcounter {part}\r
+\newcounter {section}\r
+\newcounter {subsection}[section]\r
+\newcounter {subsubsection}[subsection]\r
+\newcounter {paragraph}[subsubsection]\r
+\newcounter {subparagraph}[paragraph]\r
+\renewcommand \thepart {\@Roman\c@part}\r
+\renewcommand \thesection {\@arabic\c@section}\r
+\renewcommand\thesubsection {\thesection.\@arabic\c@subsection}\r
+\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection}\r
+\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}\r
+\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}\r
+\newcommand\part{\par\r
+ \addvspace{4ex}%\r
+ \@afterindentfalse\r
+ \secdef\@part\@spart}\r
+\r
+\def\@part[#1]#2{%\r
+ \ifnum \c@secnumdepth >\m@ne\r
+ \refstepcounter{part}%\r
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%\r
+ \else\r
+ \addcontentsline{toc}{part}{#1}%\r
+ \fi\r
+ {\parindent \z@ \raggedright\r
+ \interlinepenalty \@M\r
+ \normalfont\r
+ \ifnum \c@secnumdepth >\m@ne\r
+ \Large\bfseries \partname~\thepart\r
+ \par\nobreak\r
+ \fi\r
+ \huge \bfseries #2%\r
+ \markboth{}{}\par}%\r
+ \nobreak\r
+ \vskip 3ex\r
+ \@afterheading}\r
+\def\@spart#1{%\r
+ {\parindent \z@ \raggedright\r
+ \interlinepenalty \@M\r
+ \normalfont\r
+ \huge \bfseries #1\par}%\r
+ \nobreak\r
+ \vskip 3ex\r
+ \@afterheading}\r
+\r
+\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi\r
+ \par \@tempskipa #4\relax\r
+ \@afterindentfalse\r
+ \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi\r
+ \if@nobreak \everypar{}\else\r
+ \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar\r
+ {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}\r
+\r
+\def\@sect#1#2#3#4#5#6[#7]#8{%\r
+ \ifnum #2>\c@secnumdepth\r
+ \let\@svsec\@empty\r
+ \else\r
+ \refstepcounter{#1}%\r
+ \edef\@svsec{\csname the#1\endcsname\hskip 9.3pt}%\r
+ \fi\r
+ \@tempskipa #5\relax\r
+ \ifdim \@tempskipa>\z@\r
+ \begingroup #6{\relax\r
+ \parindent0pt\r
+ \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}}%\r
+ \endgroup\r
+ \csname #1mark\endcsname{#7}\addcontentsline\r
+ {toc}{#1}{\ifnum #2>8 %%%\c@secnumdepth\r
+ \else\r
+ \protect\numberline{\csname the#1\endcsname}\fi\r
+ #7}\else\r
+ \def\@svsechd{#6\hskip #3\relax %% \relax added 2 May 90\r
+ \@svsec #8.\csname #1mark\endcsname\r
+ {#7}\addcontentsline\r
+ {toc}{#1}{\ifnum #2>\c@secnumdepth \else\r
+ \protect\numberline{\csname the#1\endcsname}\fi\r
+ #7}}\fi\r
+ \@xsect{#5}}\r
+\r
+\def\@xsect#1{\@tempskipa #1\relax\r
+ \ifdim \@tempskipa>\z@\r
+ \par \nobreak\r
+ \vskip \@tempskipa\r
+ \@afterheading\r
+ \else \global\@nobreakfalse \global\@noskipsectrue\r
+ \everypar{\if@noskipsec \global\@noskipsecfalse\r
+ \clubpenalty\@M \hskip -\parindent\r
+ \begingroup \@svsechd \endgroup \unskip\r
+ \hskip -#1\relax % relax added 14 Jan 91\r
+ \else \clubpenalty \@clubpenalty\r
+ \everypar{}\fi}\fi\ignorespaces}\r
+\r
+\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax\r
+ \ifdim \@tempskipa>\z@\r
+ \begingroup #4{\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}}\endgroup\r
+ \else \def\@svsechd{#4\hskip #1\relax #5}\fi\r
+ \@xsect{#3}}\r
+\r
+\def\section{\@startsection {section}{1}{\z@}\r
+ {24pt plus 4pt minus 4pt}\r
+ {12pt}\r
+ {\reset@font\hyphenpenalty9999\ELEVEN\bfseries\hangindent1.33pc}}\r
+\r
+\def\subsection{\@startsection{subsection}{2}{\z@}\r
+ {12pt plus 4pt minus 4pt}\r
+ {10pt}\r
+ {\reset@font\hyphenpenalty9999\ELEVEN\it\raggedright\hangindent1.95pc}}\r
+\r
+\def\subsubsection{\@startsection{subsubsection}{3}{\z@}\r
+ {12pt plus 4pt minus 4pt}\r
+ {8pt}\r
+ {\reset@font\hyphenpenalty9999\ELEVEN\it\hangindent1.95pc}}\r
+\r
+\def\paragraph{\@startsection{paragraph}{4}{0pt}\r
+ {12pt plus 4pt minus 2pt}\r
+ {-8pt}\r
+ {\reset@font\hyphenpenalty9999\it\hangindent1.95pc}}\r
+\r
+\def\subparagraph{\@startsection{subparagraph}{5}{18pt}\r
+ {13pt plus 4pt minus 2pt}\r
+ {-10pt}\r
+ {\reset@font\TEN\SECRR\bf }}\r
+\if@twocolumn\r
+ \setlength\leftmargini {2em}\r
+\else\r
+ \setlength\leftmargini {2.5em}\r
+\fi\r
+\leftmargin \leftmargini\r
+\setlength\leftmarginii {2.2em}\r
+\setlength\leftmarginiii {1.87em}\r
+\setlength\leftmarginiv {1.7em}\r
+\if@twocolumn\r
+ \setlength\leftmarginv {.5em}\r
+ \setlength\leftmarginvi {.5em}\r
+\else\r
+ \setlength\leftmarginv {1em}\r
+ \setlength\leftmarginvi {1em}\r
+\fi\r
+\setlength \labelsep {.5em}\r
+\setlength \labelwidth{\leftmargini}\r
+\addtolength\labelwidth{-\labelsep}\r
+\@beginparpenalty -\@lowpenalty\r
+\@endparpenalty -\@lowpenalty\r
+\@itempenalty -\@lowpenalty\r
+\renewcommand\theenumi{\@arabic\c@enumi}\r
+\renewcommand\theenumii{\@alph\c@enumii}\r
+\renewcommand\theenumiii{\@roman\c@enumiii}\r
+\renewcommand\theenumiv{\@Alph\c@enumiv}\r
+\newcommand\labelenumi{\theenumi.}\r
+\newcommand\labelenumii{(\theenumii)}\r
+\newcommand\labelenumiii{\theenumiii.}\r
+\newcommand\labelenumiv{\theenumiv.}\r
+\renewcommand\p@enumii{\theenumi}\r
+\renewcommand\p@enumiii{\theenumi(\theenumii)}\r
+\renewcommand\p@enumiv{\p@enumiii\theenumiii}\r
+\newcommand\labelitemi{\textbullet}\r
+\newcommand\labelitemii{\normalfont\bfseries \textendash}\r
+\newcommand\labelitemiii{\textasteriskcentered}\r
+\newcommand\labelitemiv{\textperiodcentered}\r
+\newenvironment{description}\r
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin\r
+ \let\makelabel\descriptionlabel}}\r
+ {\endlist}\r
+\newcommand*\descriptionlabel[1]{\hspace\labelsep\r
+ \normalfont\bfseries #1}\r
+\newenvironment{verse}\r
+ {\let\\\@centercr\r
+ \list{}{\itemsep \z@\r
+ \itemindent -1.5em%\r
+ \listparindent\itemindent\r
+ \rightmargin \leftmargin\r
+ \advance\leftmargin 1.5em}%\r
+ \item\relax}\r
+ {\endlist}\r
+\newenvironment{quotation}\r
+ {\list{}{\listparindent 1.5em%\r
+ \itemindent \listparindent\r
+ \rightmargin \leftmargin\r
+ \parsep \z@ \@plus\p@}%\r
+ \item\relax}\r
+ {\endlist}\r
+\newenvironment{quote}\r
+ {\list{}{\NINE\rightmargin 14pt\leftmargin 14pt}%\r
+ \item\relax}\r
+ {\endlist}\r
+\if@compatibility\r
+\newenvironment{titlepage}\r
+ {%\r
+ \if@twocolumn\r
+ \@restonecoltrue\onecolumn\r
+ \else\r
+ \@restonecolfalse\newpage\r
+ \fi\r
+ \thispagestyle{empty}%\r
+ \setcounter{page}\z@\r
+ }%\r
+ {\if@restonecol\twocolumn \else \newpage \fi\r
+ }\r
+\else\r
+\newenvironment{titlepage}\r
+ {%\r
+ \if@twocolumn\r
+ \@restonecoltrue\onecolumn\r
+ \else\r
+ \@restonecolfalse\newpage\r
+ \fi\r
+ \thispagestyle{empty}%\r
+ \setcounter{page}\@ne\r
+ }%\r
+ {\if@restonecol\twocolumn \else \newpage \fi\r
+ \if@twoside\else\r
+ \setcounter{page}\@ne\r
+ \fi\r
+ }\r
+\fi\r
+\newcommand\appendix{\par\r
+ \setcounter{section}{0}%\r
+ \setcounter{subsection}{0}%\r
+ \renewcommand\thesection{\@Alph\c@section}}\r
+\setlength\arraycolsep{1\p@}\r
+\setlength\tabcolsep{6\p@}\r
+\setlength\arrayrulewidth{.4\p@}\r
+\setlength\doublerulesep{2\p@}\r
+\setlength\tabbingsep{\labelsep}\r
+\skip\@mpfootins = \skip\footins\r
+\setlength\fboxsep{3\p@}\r
+\setlength\fboxrule{.4\p@}\r
+\newdimen\mathindent\r
+\mathindent=9pt\r
+\renewcommand \theequation {\@arabic\c@equation}\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%EQUATIONS\r
+% They are indented from left 2 picas and have on the right eqno as "[23]"\r
+%\def\EQtrivlist{\parskip0pt\topsep=10pt plus 5pt minus 6pt\r
+% \parsep0pt\partopsep0pt\@nmbrlistfalse\r
+% \@trivlist \labelwidth\z@ \leftmargin\z@\listparindent\z@\r
+% \itemindent\z@ \def\makelabel##1{##1}}%\r
+%\def\endEQtrivlist{\if@newlist\@noitemerr\fi\r
+% \if@inlabel\indent\fi\r
+% \ifhmode\unskip \par\fi\r
+% \if@noparlist \else\r
+% \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip\r
+% \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip\r
+% \vskip\@tempskipa\r
+% \fi\@endparenv\fi}%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%-B-fleqn.sty-(modified)\r
+\def\[{\relax\ifmmode\@badmath\else\r
+ \begin{trivlist}%\r
+ \@beginparpenalty\predisplaypenalty\r
+ \@endparpenalty\postdisplaypenalty\r
+ \item[]\leavevmode\r
+ \hbox to\linewidth\bgroup $\m@th\displaystyle\r
+ \hskip\mathindent\bgroup\fi}\r
+\r
+\def\]{\relax\ifmmode \egroup $\hfil\displaywidth\linewidth\r
+ \egroup \end{trivlist}\else \@badmath \fi\noindent\ignorespaces}\r
+\r
+\def\equation{\@beginparpenalty\predisplaypenalty\r
+ \@endparpenalty\postdisplaypenalty\r
+ \refstepcounter{equation}\trivlist \item[]\leavevmode\r
+ \hbox to\linewidth\bgroup $\m@th\displaystyle\hskip\mathindent}\r
+\r
+\def\endequation{$\hfil\displaywidth\linewidth\@eqnnum\egroup\endtrivlist}\r
+\r
+\def\VVV{\@beginparpenalty\predisplaypenalty\r
+ \@endparpenalty\postdisplaypenalty\r
+ \EQtrivlist \item[]\leavevmode\r
+ \hbox to\linewidth\bgroup $\m@th\displaystyle\hskip\mathindent}\r
+\r
+\def\endVVV{$\hfil\displaywidth\linewidth\egroup\endEQtrivlist}\r
+\r
+\def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation\r
+ \global\@eqnswtrue\r
+ \global\@eqcnt\z@\tabskip\mathindent\let\\=\@eqncr\r
+ \abovedisplayskip 12pt plus 5pt minus 5pt\r
+ \belowdisplayskip\abovedisplayskip\r
+ \belowdisplayshortskip\abovedisplayskip\r
+ \abovedisplayshortskip\abovedisplayskip\r
+ $$\m@th\halign to\linewidth\bgroup\@eqnsel\r
+ \hskip\@centering\r
+ $\displaystyle\tabskip\z@\r
+ {##}$&\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil\r
+ &\global\@eqcnt\tw@ $\displaystyle{##}$\hfil\r
+ \tabskip\@centering&\llap{##}\tabskip\z@\cr}\r
+\r
+\def\endeqnarray{\@@eqncr\egroup\r
+ \global\advance\c@equation\m@ne$$\global\@ignoretrue}\r
+\r
+\newdimen\mathindent\r
+\mathindent=9pt %%% \leftmargini\r
+\r
+%%%%%%%%%%%%%%%%%%%%-E-fleqn.sty-(modified)\r
+\r
+\r
+\newcounter{figure}\r
+\renewcommand \thefigure {\@arabic\c@figure}\r
+\def\fps@figure{tbp}\r
+\def\ftype@figure{1}\r
+\def\ext@figure{lof}\r
+\def\fnum@figure{\bf\figurename~\thefigure}\r
+\newenvironment{figure}\r
+ {\@float{figure}}\r
+ {\end@float}\r
+\newenvironment{figure*}\r
+ {\@dblfloat{figure}}\r
+ {\end@dblfloat}\r
+\newcounter{table}\r
+\renewcommand\thetable{\@arabic\c@table}\r
+\def\fps@table{tbp}\r
+\def\ftype@table{2}\r
+\def\ext@table{lot}\r
+\def\fnum@table{\bf\tablename~\thetable}\r
+\newenvironment{table}\r
+ {\@float{table}}\r
+ {\end@float}\r
+\newenvironment{table*}\r
+ {\@dblfloat{table}}\r
+ {\end@dblfloat}\r
+\newlength\abovecaptionskip\r
+\newlength\belowcaptionskip\r
+\setlength\abovecaptionskip{10\p@}\r
+\setlength\belowcaptionskip{0\p@}\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\@makecaption!!!\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%ragu\r
+%\long\def\@makecaption#1#2{\parindent0pt\r
+%\ifx\@captype\@tabtxt\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%TABLE\r
+%\NINE\r
+%\par\noindent\hbox to\textwidth{\hfil\parbox{\tabw}{\noindent %\r
+% {\tabnamefont #1.}\quad\hangindent3.3pc #2\HD{0}{18}\endgraf}\hfil}\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\else %% if it is a figure!\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%FIGURE\r
+%\NINE\r
+%\par\noindent{\fignamefont #1\HD{7}{0}}\quad\r
+%\hangindent3.2pc\raggedright #2\vspace{6pt} \fi}\r
+\r
+\long\def\@makecaption#1#2{\parindent0pt\r
+\ifx\@captype\@tabtxt\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%TABLE\r
+\NINE\r
+\par\noindent\hbox to\textwidth{\hfil\parbox{\tabw}{\noindent %\r
+ {\tabnamefont #1.}\quad\raggedright\hangindent3.3pc #2\HD{0}{18}\endgraf}\hfil}\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+\else %% if it is a figure!\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%FIGURE\r
+\NINE\par\noindent{\fignamefont #1\HD{7}{0}}\quad\r
+\hangindent3.29pc\raggedright #2\vspace{6pt} \fi}\r
+\r
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}\r
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}\r
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}\r
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}\r
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}\r
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}\r
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}\r
+\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}\r
+\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}\r
+\newcommand\@pnumwidth{1.55em}\r
+\newcommand\@tocrmarg{2.55em}\r
+\newcommand\@dotsep{4.5}\r
+\setcounter{tocdepth}{3}\r
+\newcommand\tableofcontents{%\r
+ \section*{\contentsname\r
+ \@mkboth{%\r
+ \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%\r
+ \@starttoc{toc}%\r
+ }\r
+\newcommand*\l@part[2]{%\r
+ \ifnum \c@tocdepth >-2\relax\r
+ \addpenalty\@secpenalty\r
+ \addvspace{2.25em \@plus\p@}%\r
+ \begingroup\r
+ \parindent \z@ \rightskip \@pnumwidth\r
+ \parfillskip -\@pnumwidth\r
+ {\leavevmode\r
+ \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par\r
+ \nobreak\r
+ \if@compatibility\r
+ \global\@nobreaktrue\r
+ \everypar{\global\@nobreakfalse\everypar{}}%\r
+ \fi\r
+ \endgroup\r
+ \fi}\r
+\newcommand*\l@section[2]{%\r
+ \ifnum \c@tocdepth >\z@\r
+ \addpenalty\@secpenalty\r
+ \addvspace{1.0em \@plus\p@}%\r
+ \setlength\@tempdima{1.5em}%\r
+ \begingroup\r
+ \parindent \z@ \rightskip \@pnumwidth\r
+ \parfillskip -\@pnumwidth\r
+ \leavevmode \bfseries\r
+ \advance\leftskip\@tempdima\r
+ \hskip -\leftskip\r
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par\r
+ \endgroup\r
+ \fi}\r
+\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}\r
+\newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}\r
+\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}\r
+\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}}\r
+\newcommand\listoffigures{%\r
+ \section*{\listfigurename\r
+ \@mkboth{\MakeUppercase\listfigurename}%\r
+ {\MakeUppercase\listfigurename}}%\r
+ \@starttoc{lof}%\r
+ }\r
+\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}\r
+\newcommand\listoftables{%\r
+ \section*{\listtablename\r
+ \@mkboth{%\r
+ \MakeUppercase\listtablename}{\MakeUppercase\listtablename}}%\r
+ \@starttoc{lot}%\r
+ }\r
+\let\l@table\l@figure\r
+\r
+\newenvironment{NLh}[1]{%\r
+ \setbox\boxH=\hbox{{\rm #1}}%\r
+ \raggedright\r
+ \begin{list}{\rm{\arabic{enumii}.}}{%\r
+ \usecounter{enumii}%\r
+ \topsep=10pt plus .5pt minus .5pt%\r
+ \partopsep=0pt%\r
+ \itemsep=6pt%\r
+ \parsep=0pt%\r
+ \labelsep=14pt%\r
+ \labelwidth=\wd\boxH%\r
+ \leftmargin=\labelwidth%\r
+ \advance\leftmargin\labelsep%\r
+ \rightmargin=0pt%\r
+ \listparindent=0em%\r
+ \itemindent 0pt\ignorespaces}\mathindent=0pt}{\end{list}}%\r
+\r
+\def\LM{\leavevmode }\r
+\newenvironment{BL}{%\r
+ \begin{list}{\LM\hbox{$\bullet$}}{%\r
+\raggedright\r
+ \topsep=10pt plus 4pt minus 4pt\r
+ \partopsep=0pt\r
+ \itemsep=6pt %2pt\r
+ \parsep=0pt\r
+ \labelsep=14pt\r
+ \labelwidth=10pt\r
+ \rightmargin=0pt\r
+ \listparindent=0pt\r
+ \itemindent=0pt %=\leftmargin\r
+ \leftmargin=20pt}\mathindent=0pt}{\end{list}}%\r
+\r
+\floatsep 16pt plus 4pt minus 4pt\r
+\textfloatsep 16pt plus 4pt minus 4pt\r
+\intextsep 14pt plus 4pt minus 4pt\r
+\@fptop 0pt plus 1fil \@fpsep 8pt plus\r
+2fil \@fpbot 0pt plus 1fil\r
+\r
+\newenvironment{inFig}\r
+{\vskip 14pt\noindent\hskip -0pt}\r
+{\vskip 10pt}\r
+\r
+\newif\if@ttirotate \@ttirotatefalse\r
+\def\ttirotate{\global\@ttirotatetrue}\r
+\def\endttirotate{\global\@ttirotatefalse}\r
+\r
+%------ Figures intro\r
+\newcommand\listfigurename{List of Figures}\r
+\def\thefigure{\arabic{figure}}\r
+\def\fignamefont{\NINE}\r
+\def\tabnamefont{\NINE}\r
+\r
+%------ Tables intro\r
+\newbox\@tempboxb\r
+\newcommand\tablename{Table}\r
+\newcommand\listtablename{List of Tables}\r
+\renewcommand\thetable{\arabic{table}}\r
+\def\fps@table{tbp}\def\ftype@table{2}\def\ext@table{lot}\r
+\def\fnum@table{\tabnamefont\bf\tablename\ \thetable}\r
+\def\table{\let\@makecaption\@tablecaption\@float{table}}\r
+\let\endtable\end@float\r
+\@namedef{table*}{\let\@makecaption\@tablecaption\@dblfloat{table}}\r
+\@namedef{endtable*}{\end@dblfloat}\r
+\r
+\long\def\@tablecaption#1#2{%\r
+% Set TN followed by the caption see the length\r
+ \setbox\@tempboxa\r
+ \hbox{\NINE{\it #1}\quad #2}%\r
+% Set the caption only to examine its existence and length if any\r
+ \setbox\@tempboxb\r
+ \hbox{\NINE#2}%\r
+% If no caption, TN centers with no period after it\r
+ \ifdim\wd\@tempboxb < 3pt\r
+ \begin{Center}\NINE\r
+ \HD{8}{0}{\it #1}\HD{0}{6}\end{Center}\r
+ \else\r
+% If TN+caption shorter than the table\r
+ \ifdim\wd\@tempboxa < \tempdime\r
+ %\begin{Center}\r
+ \NINE \HD{8}{0}{\it #1}\qquad #2\HD{0}{6}%\end{Center}\r
+ \else\r
+% If TN+caption longer than the table\r
+ \noindent\NINE\HD{8}{0}{\bf #1}\quad\r
+ \raggedright\hangindent3.05pc #2\HD{0}{6}\endgraf\r
+ \fi\fi}\r
+\r
+%------TABLE\r
+\r
+\newbox\boxH\r
+\newbox\boxHrunin\r
+\newbox\temptbox\r
+\newbox\temptboxA\r
+\r
+\newdimen\tempdime\r
+\newdimen\tempdimeA\r
+\newdimen\rboxh\r
+\newdimen\rboxw\r
+\def\EGT{\footnotesize}\r
+\r
+\newcommand{\TABLE}[3]{%\r
+ \setbox\temptboxA=\hbox{{\NINE#1}}%\r
+ \setbox\temptbox=\hbox{{\EGT#2}}%\r
+ \tempdime\wd\temptbox%\r
+ \tempdimeA\wd\temptboxA%\r
+ \@TABLE{\hangindent3.1pc {#1}\vs{2}}{#2}{#3}{\tempdime}}\r
+\r
+\newcommand{\@TABLE}[4]{%\r
+\long\def\testtabnote{#3}%\r
+\long\def\itis@empty{}%\r
+\ifx\testtabnote\itis@empty\r
+ \long\def\tabnote##1{\relax}%\r
+\else\r
+ \long\def\tabnote##1{\par{\NINE \vspace*{4pt} ##1\endgraf}}%\r
+\fi\r
+\if@ttirotate\r
+ \setbox4=\hbox to #4 %%\textheight\r
+ {\vbox to \textwidth{\hsize #4 %%%\textheight\r
+ \vss\overfullrule=0pt\r
+ \begin{minipage}[c]{#4}%\r
+ \caption{#1}%\r
+ {\NINE#2}\r
+ \tabnote{\hspace*{3pc}#3}%\r
+ \end{minipage}%\r
+ \vss}}\r
+\else\r
+ \setbox4=\hbox to \hsize{\hss\r
+ % Table should be indented by 2pc\r
+ % from left margin\r
+ \begin{minipage}[t]{#4}%\r
+ \caption{#1}%\r
+ {\NINE#2}%\r
+ \tabnote{\hspace*{3pc}#3}%\r
+ \end{minipage}\hss}\r
+\fi\r
+\if@ttirotate\r
+ \setbox5=\zeroCC{\box4}%\r
+ \par\noindent\hspace*{0.5\textwidth}%\r
+ \vrule width 0pt height 0.5\textheight depth 0.499\textheight\r
+ \rotatebox{90}{\box5}%\r
+\else\r
+ \noindent\box4%\r
+\fi\r
+}\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-b-figures-and-tables\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%BBB\r
+%%% FIGURES AND TABLES\r
+\r
+\setcounter{topnumber}{3}\r
+\def\topfraction{0.99}\r
+\setcounter{bottomnumber}{2}\r
+\def\bottomfraction{.99}\r
+\setcounter{totalnumber}{5}\r
+\def\textfraction{.08}\r
+\def\floatpagefraction{.55}\r
+\setcounter{dbltopnumber}{3}\r
+\def\dbltopfraction{.9}\r
+\def\dblfloatpagefraction{.5}\r
+\r
+% FIGURE\r
+\r
+\def\fps@figure{tbp}\r
+\def\ftype@figure{1}\r
+\def\ext@figure{lof}\r
+%\def\fnum@figure{\bf Figure\ \thefigure}\r
+\def\figure{\@float{figure}}\r
+\let\endfigure\end@float\r
+\@namedef{figure*}{\@dblfloat{figure}}\r
+\@namedef{endfigure*}{\end@dblfloat}\r
+\r
+\newenvironment{theindex}\r
+ {\if@twocolumn\r
+ \@restonecolfalse\r
+ \else\r
+ \@restonecoltrue\r
+ \fi\r
+ \columnseprule \z@\r
+ \columnsep 35\p@\r
+ \twocolumn[\section*{\indexname}]%\r
+ \@mkboth{\MakeUppercase\indexname}%\r
+ {\MakeUppercase\indexname}%\r
+ \thispagestyle{plain}\parindent\z@\r
+ \parskip\z@ \@plus .3\p@\relax\r
+ \let\item\@idxitem}\r
+ {\if@restonecol\onecolumn\else\clearpage\fi}\r
+\newcommand\@idxitem{\par\hangindent 40\p@}\r
+\newcommand\subitem{\@idxitem \hspace*{20\p@}}\r
+\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}\r
+\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}\r
+\renewcommand\footnoterule{%\r
+ \kern-3\p@\r
+ \hrule\@width.4\columnwidth\r
+ \kern2.6\p@}\r
+\newcommand\@makefntext[1]{%\r
+ \parindent 1em%\r
+ \noindent\r
+ \hb@xt@1.8em{\hss\@makefnmark}#1}\r
+\r
+\renewcommand{\footnote}{\endnote}\r
+\def\enotesize{\NINE}\r
+\r
+\newcommand\contentsname{Contents}\r
+\newcommand\refname{References}\r
+\newcommand\indexname{Index}\r
+\newcommand\figurename{Figure}\r
+\newcommand\partname{Part}\r
+\newcommand\appendixname{Appendix}\r
+\def\p#1{\phantom{#1}}\r
+\def\vvp{\vadjust{\vfill\pagebreak}}\r
+\def\vvsp#1{\vadjust{\vspace{#1pt}\pagebreak}}\r
+\def\vvSP#1{\HD{0}{#1}\pagebreak}\r
+\def\tra#1{\spaceskip 0.#1em plus 0.15em minus 0.09em\relax}%\r
+\def\vs#1{\vadjust{\vspace{#1pt}}}\r
+\def\mathtight{\r
+\thickmuskip2mu \thinmuskip1mu \medmuskip=1.5mu\relax}\r
+\r
+%\font\bb=qp3tir at 10pt\r
+%\def\sst{\mbox{\bb\char"019}}\r
+%\def\aet{\mbox{\bb\char"01A}}\r
+%\def\oet{\mbox{\bb\char"01B}}\r
+%\def\oot{\mbox{\bb\char"01C}}\r
+%\def\AEt{\mbox{\bb\char"01D}}\r
+%\def\OEt{\mbox{\bb\char"01E}}\r
+%\def\OOt{\mbox{\bb\char"01F}}\r
+%\r
+%\font\bs=qp3tir at 9pt\r
+%\def\ssr{\mbox{\bs\char"019}}\r
+%\def\aer{\mbox{\bs\char"01A}}\r
+%\def\oer{\mbox{\bs\char"01B}}\r
+%\def\oor{\mbox{\bs\char"01C}}\r
+%\def\AEr{\mbox{\bs\char"01D}}\r
+%\def\OEr{\mbox{\bs\char"01E}}\r
+%\def\OOr{\mbox{\bs\char"01F}}\r
+%\r
+%\font\gs=r1-tii at 10pt\r
+%\def\UPalpha{\mbox{\gs\char"0C1}}\r
+%\def\UPbeta{\mbox{\gs\char"0C2}}\r
+%\def\UPgamma{\mbox{\gs\char"0C3}}\r
+%\def\UPdelta{\mbox{\gs\char"0C4}}\r
+%\def\UPepsilon{\mbox{\gs\char"0C5}}\r
+%\def\UPzeta{\mbox{\gs\char"0C6}}\r
+%\def\UPeta{\mbox{\gs\char"0C7}}\r
+%\def\UPtheta{\mbox{\gs\char"0C8}}\r
+%\def\UPiota{\mbox{\gs\char"0C9}}\r
+%\def\UPkappa{\mbox{\gs\char"0CA}}\r
+%\def\UPlambda{\mbox{\gs\char"0CB}}\r
+%\def\UPmu{\mbox{\gs\char"0CC}}\r
+%\def\UPnu{\mbox{\gs\char"0CD}}\r
+%\def\UPxi{\mbox{\gs\char"0CE}}\r
+%\def\UPpi{\mbox{\gs\char"0CF}}\r
+%\def\UPrho{\mbox{\gs\char"0D0}}\r
+%\def\UPsigma{\mbox{\gs\char"0D1}}\r
+%\def\UPtau{\mbox{\gs\char"0D2}}\r
+%\def\UPupsilon{\mbox{\gs\char"0D3}}\r
+%\def\UPphi{\mbox{\gs\char"0D4}}\r
+%\def\UPchi{\mbox{\gs\char"0D5}}\r
+%\def\UPpsi{\mbox{\gs\char"0D6}}\r
+%\def\UPomega{\mbox{\gs\char"0D7}}\r
+\r
+%%For Table rule\r
+\r
+\def\toprule{\noalign{\ifnum0=`}\fi \hrule \@height 2.0pt \hrule\r
+\@height 2pt \@width 0pt \futurelet\@tempa\@xhline}\r
+\r
+\def\midrule{\noalign{\ifnum0=`}\fi \hrule \@height 2pt \@width 0pt\r
+\hrule \@height 0.7pt \hrule \@height 2pt \@width 0pt\r
+\futurelet\@tempa\@xhline}\r
+\r
+\def\botrule{\noalign{\ifnum0=`}\fi \hrule\r
+\@height 2pt \@width 0pt \hrule \@height 2.0pt\r
+\futurelet\@tempa\@xhline}\r
+\r
+\def\hline{\noalign{\ifnum0=`}\fi\hrule \@height .5pt \futurelet\r
+ \reserved@a\@xhline}\r
+\def\@xhline{\ifx\reserved@a\hline\vskip\doublerulesep\r
+ \vskip-0.5pt\fi\ifnum0=`{\fi}}\r
+\r
+% Thick 1 pt table rules\r
+\def\Hline{\noalign{\ifnum0=`}\fi\hrule \@height .7pt \futurelet\r
+ \reserved@a\@xHLINE}\r
+\def\@xHline{\ifx\reserved@a\Hline\vskip0.5pt\vskip\doublerulesep\r
+ \vskip-1pt\fi\ifnum0=`{\fi}}\r
+\r
+% Thick 2 pt table rules\r
+\def\HLINE{\noalign{\ifnum0=`}\fi\hrule \@height 2.0pt \futurelet\r
+ \reserved@a\@xHLINE}\r
+\def\@xHLINE{\ifx\reserved@a\HLINE\vskip1pt\vskip\doublerulesep\r
+ \vskip-1pt\fi\ifnum0=`{\fi}}\r
+\topmargin12pt\r
+\headheight12pt\r
+\headsep 14pt\r
+\topskip=4pt %% \headsep + \topskip s/b here 27pt (17+10)\r
+\footskip 36pt\r
+\textheight=704pt %% = 46 x 12 + 10 = 47 lines of text 10/12\r
+\textwidth=42.5pc\r
+\columnsep 22pt\r
+\columnseprule 0pt\r
+\r
+\def\ps@kumaresh{\let\@mkboth\markboth\r
+ \def\@oddfoot{\setoddFOOT}%\r
+ \def\@evenfoot{\setevenFOOT}%\r
+ \def\@evenhead{{\VRHDW{\headheight}{0pt}{0pt}\CROPMARKS%\r
+ \raisebox{0pt}[\headheight][0pt]{%\r
+%\hspace*{-25pt} \marginnumbering\hspace*{18pt}\r
+ \begin{tabular}{@{}c@{}}\\[-15pt]%\r
+ \hbox to\r
+ \textwidth{\spaceskip0.41em{%\TEN\thepage\r
+ }\hfill\centerline{%\TEN\it\setLRH\r
+ }}\r
+ \end{tabular}\r
+ }}}%\r
+ \def\@oddhead{{\VRHDW{\headheight}{0pt}{0pt}\CROPMARKS%\r
+ \raisebox{0pt}[\headheight][0pt]{%\r
+%\hspace*{-25pt} \marginnumbering\hspace*{18pt}\r
+ \begin{tabular}{@{}c@{}}\\[-15pt]%\r
+ \hbox to \textwidth{\hfill{%\TEN\it\spaceskip0.41em\setRRH\r
+ }\hfill{%\TEN\thepage\r
+ }}\r
+ \end{tabular}\r
+ }}}%\r
+ \def\sectionmark##1{}%\r
+ \def\subsectionmark##1{}}\r
+\r
+\newcommand{\querypage}[1]{\def\testquerypage{#1}%\r
+\newpage\thispagestyle{kumaresh}%\r
+\begin{center}\r
+\HD{5}{0}\fontsize{14}{16}\selectfont\bf\MakeUppercase\@title\HD{3}{30}\par\r
+{\TEN \setLRH}\vskip1pc\par\r
+{\TEN Author Queries}\r
+\vskip1pc\r
+\end{center}\r
+\hangindent3.7pc\Q}\r
+\r
+\def\Q#1{\noindent \hangindent3.7pc\h{AQ#1 Au:}}\r
+\r
+\def\mgpl#1{\marginpar{{\hspace*{-1.8pc}}\EGT #1}}\r
+\def\mgpr#1{\marginpar{{\hspace*{.8pc}\EGT #1}}}\r
+\r
+\r
+%\def\mgp#1{\marginpar{\kern-6pt{\EGT #1}}}\r
+\def\x{\end{document}}\r
+\def\h{\hbox}\r
+\def\p#1{\phantom{#1}}\r
+\def\vvp{\vadjust{\vfill\pagebreak}}\r
+\def\vvsp#1{\vadjust{\vspace{#1pt}\pagebreak}}\r
+\def\vvSP#1{\HD{0}{#1}\pagebreak}\r
+\def\tra#1{\spaceskip 0.#1em plus 0.15em minus 0.09em\relax}%\r
+\def\vs#1{\vadjust{\vspace{#1pt}}}\r
+\def\mathtight{\r
+\thickmuskip2mu \thinmuskip1mu \medmuskip=1.5mu\relax}\r
+\r
+\def\today{\ifcase\month\or\r
+ January\or February\or March\or April\or May\or June\or\r
+ July\or August\or September\or October\or November\or December\fi\r
+ \space\number\day, \number\year}\r
+\setlength\columnsep{22\p@}\r
+\setlength\columnseprule{0\p@}\r
+\setlength\parindent{14\p@}\r
+\pagestyle{headings}\r
+\r
+\clubpenalty 10000 \widowpenalty 10000 \predisplaypenalty=10000\r
+\interdisplaylinepenalty=100 \displaywidowpenalty 1500\r
+\postdisplaypenalty 0 %%%500\r
+\interlinepenalty 0\r
+\brokenpenalty 500 % Plain default = 100\r
+\adjdemerits=100 % Plain default = 10000\r
+\linepenalty=10 \doublehyphendemerits=10000 \finalhyphendemerits=5000\r
+\hyphenpenalty=10 \exhyphenpenalty=50\r
+\binoppenalty=150 % 700\r
+\relpenalty=100 % 500\r
+\interfootnotelinepenalty=100\r
+%\nulldelimiterspace=1.2pt\r
+\lefthyphenmin=15\r
+\righthyphenmin=15\r
+\tolerance=9999\r
+\emergencystretch=1.6pc\r
+\frenchspacing\r
+\r
+\thinmuskip=3mu\r
+\medmuskip=4mu% plus 1mu minus 1mu\r
+\thickmuskip=5mu% plus 3mu\r
+\def\enotesize{\NINE}\r
+\r
+\pagenumbering{arabic}\r
+\if@twoside\r
+\else\r
+ \raggedbottom\r
+\fi\r
+\if@twocolumn\r
+ \twocolumn\r
+ \sloppy\r
+ \flushbottom\r
+\else\r
+ \onecolumn\r
+\fi\r
+\endinput\r
+%%\r
+%% End of file `doublecol.cls'.\r
--- /dev/null
+%%%%%%%%%%%%%%%%%%%%%%\r
+\documentclass{doublecol-new}\r
+%%%%%%%%%%%%%%%%%%%%%%\r
+\r
+\usepackage{natbib,stfloats}\r
+\usepackage{mathrsfs}\r
+\usepackage[utf8]{inputenc}\r
+\usepackage[T1]{fontenc}\r
+\usepackage{algorithm}\r
+\usepackage{algpseudocode}\r
+\usepackage{amsmath}\r
+\usepackage{amssymb}\r
+\usepackage{multirow}\r
+\usepackage{graphicx}\r
+\usepackage{url}\r
+\r
+\def\newblock{\hskip .11em plus .33em minus .07em}\r
+\r
+\theoremstyle{TH}{\r
+\newtheorem{lemma}{Lemma}\r
+\newtheorem{theorem}[lemma]{Theorem}\r
+\newtheorem{corrolary}[lemma]{Corrolary}\r
+\newtheorem{conjecture}[lemma]{Conjecture}\r
+\newtheorem{proposition}[lemma]{Proposition}\r
+\newtheorem{claim}[lemma]{Claim}\r
+\newtheorem{stheorem}[lemma]{Wrong Theorem}\r
+%\newtheorem{algorithm}{Algorithm}\r
+}\r
+\r
+\theoremstyle{THrm}{\r
+\newtheorem{definition}{Definition}[section]\r
+\newtheorem{question}{Question}[section]\r
+\newtheorem{remark}{Remark}\r
+\newtheorem{scheme}{Scheme}\r
+}\r
+\r
+\theoremstyle{THhit}{\r
+\newtheorem{case}{Case}[section]\r
+}\r
+\algnewcommand\algorithmicinput{\textbf{Input:}}\r
+\algnewcommand\Input{\item[\algorithmicinput]}\r
+\r
+\algnewcommand\algorithmicoutput{\textbf{Output:}}\r
+\algnewcommand\Output{\item[\algorithmicoutput]}\r
+\r
+\r
+\r
+\r
+\makeatletter\r
+\def\theequation{\arabic{equation}}\r
+\r
+%\JOURNALNAME{\TEN{\it Int. J. System Control and Information\r
+%Processing,\r
+%Vol. \theVOL, No. \theISSUE, \thePUBYEAR\hfill\thepage}}%\r
+%\r
+%\def\BottomCatch{%\r
+%\vskip -10pt\r
+%\thispagestyle{empty}%\r
+%\begin{table}[b]%\r
+%\NINE\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lcr@{}}%\r
+%\\[-12pt]\r
+%Copyright \copyright\ 2012 Inderscience Enterprises Ltd. & &%\r
+%\end{tabular*}%\r
+%\vskip -30pt%\r
+%%%\vskip -35pt%\r
+%\end{table}%\r
+%}\r
+\makeatother\r
+\r
+%%%%%%%%%%%%%%%%%\r
+\begin{document}%\r
+%%%%%%%%%%%%%%%%%\r
+\r
+\setcounter{page}{1}\r
+\r
+\LRH{F. Wang et~al.}\r
+\r
+\RRH{Metadata Based Management and Sharing of Distributed Biomedical\r
+Data}\r
+\r
+\VOL{x}\r
+\r
+\ISSUE{x}\r
+\r
+\PUBYEAR{xxxx}\r
+\r
+\BottomCatch\r
+\r
+\PUBYEAR{2012}\r
+\r
+\subtitle{}\r
+\r
+\title{TSIRM: A Two-Stage Iteration with least-squares Residual Minimization algorithm to solve large sparse linear and non linear systems}\r
+\r
+%\r
+\authorA{Rapha\"el Couturier}\r
+%\r
+\affA{Femto-ST Institute, University of Bourgogne Franche-Comte, France\\\r
+ E-mail: raphael.couturier@univ-fcomte.fr}\r
+%\r
+%\r
+\authorB{Lilia Ziane Khodja}\r
+\affB{LTAS-Mécanique numérique non linéaire, University of Liege, Belgium \\\r
+ E-mail: l.zianekhodja@ulg.ac.be}\r
+\r
+\authorC{Christophe Guyeux}\r
+\affC{Femto-ST Institute, University of Bourgogne Franche-Comte, France\\\r
+ E-mail: christophe.guyeux@univ-fcomte.fr}\r
+\r
+\r
+\begin{abstract}\r
+In this article, a two-stage iterative algorithm is proposed to improve the\r
+convergence of Krylov based iterative methods, typically those of GMRES\r
+variants. The principle of the proposed approach is to build an external\r
+iteration over the Krylov method, and to frequently store its current residual\r
+(at each GMRES restart for instance). After a given number of outer iterations,\r
+a least-squares minimization step is applied on the matrix composed by the saved\r
+residuals, in order to compute a better solution and to make new iterations if\r
+required. It is proven that the proposal has the same convergence properties\r
+than the inner embedded method itself. Experiments using up to 16,394 cores\r
+also show that the proposed algorithm runs around 5 or 7 times faster than\r
+GMRES.\r
+\end{abstract}\r
+\r
+\KEYWORD{Iterative Krylov methods; sparse linear and non linear systems; two stage iteration; least-squares residual minimization; PETSc.}\r
+\r
+%\REF{to this paper should be made as follows: Rodr\'{\i}guez\r
+%Bol\'{\i}var, M.P. and Sen\'{e}s Garc\'{\i}a, B. (xxxx) `The\r
+%corporate environmental disclosures on the internet: the case of\r
+%IBEX 35 Spanish companies', {\it International Journal of Metadata,\r
+%Semantics and Ontologies}, Vol. x, No. x, pp.xxx\textendash xxx.}\r
+\r
+\begin{bio}\r
+Manuel Pedro Rodr\'iguez Bol\'ivar received his PhD in Accounting at\r
+the University of Granada. He is a Lecturer at the Department of\r
+Accounting and Finance, University of Granada. His research\r
+interests include issues related to conceptual frameworks of\r
+accounting, diffusion of financial information on Internet, Balanced\r
+Scorecard applications and environmental accounting. He is author of\r
+a great deal of research studies published at national and\r
+international journals, conference proceedings as well as book\r
+chapters, one of which has been edited by Kluwer Academic\r
+Publishers.\vs{9}\r
+\r
+\noindent Bel\'en Sen\'es Garc\'ia received her PhD in Accounting at\r
+the University of Granada. She is a Lecturer at the Department of\r
+Accounting and Finance, University of Granada. Her research\r
+interests are related to cultural, institutional and historic\r
+accounting and in environmental accounting. She has published\r
+research papers at national and international journals, conference\r
+proceedings as well as chapters of books.\vs{8}\r
+\r
+\noindent Both authors have published a book about environmental\r
+accounting edited by the Institute of Accounting and Auditing,\r
+Ministry of Economic Affairs, in Spain in October 2003.\r
+\end{bio}\r
+\r
+\r
+\maketitle\r
+\r
+\r
+ \section{Introduction}\r
+\r
+Iterative methods have recently become more attractive than direct ones to solve\r
+very large sparse linear systems~\cite{Saad2003}. They are more efficient in a\r
+parallel context, supporting thousands of cores, and they require less memory\r
+and arithmetic operations than direct methods~\cite{bahicontascoutu}. This is\r
+why new iterative methods are frequently proposed or adapted by researchers, and\r
+the increasing need to solve very large sparse linear systems has triggered the\r
+development of such efficient iterative techniques suitable for parallel\r
+processing.\r
+\r
+Most of the successful iterative methods currently available are based on\r
+so-called ``Krylov subspaces''. They consist in forming a basis of successive\r
+matrix powers multiplied by an initial vector, which can be for instance the\r
+residual. These methods use vectors orthogonality of the Krylov subspace basis\r
+in order to solve linear systems. The best known iterative Krylov subspace\r
+methods are conjugate gradient and GMRES ones (Generalized Minimal RESidual).\r
+\r
+\r
+However, iterative methods suffer from scalability problems on parallel\r
+computing platforms with many processors, due to their need of reduction\r
+operations, and to collective communications to achieve matrix-vector\r
+multiplications. The communications on large clusters with thousands of cores\r
+and large sizes of messages can significantly affect the performances of these\r
+iterative methods. As a consequence, Krylov subspace iteration methods are often\r
+used with preconditioners in practice, to increase their convergence and\r
+accelerate their performances. However, most of the good preconditioners are\r
+not scalable on large clusters.\r
+\r
+In this research work, a two-stage algorithm based on two nested iterations\r
+called inner-outer iterations is proposed. This algorithm consists in solving\r
+the sparse linear system iteratively with a small number of inner iterations,\r
+and restarting the outer step with a new solution minimizing some error\r
+functions over some previous residuals. For further information on two-stage\r
+iteration methods, interested readers are invited to\r
+consult~\cite{Nichols:1973:CTS}. Two-stage algorithms are easy to parallelize on\r
+large clusters. Furthermore, the least-squares minimization technique improves\r
+its convergence and performances.\r
+\r
+The present article is organized as follows. Related works are presented in\r
+Section~\ref{sec:02}. Section~\ref{sec:03} details the two-stage algorithm using\r
+a least-squares residual minimization, while Section~\ref{sec:04} provides\r
+convergence results regarding this method. Section~\ref{sec:05} shows some\r
+experimental results obtained on large clusters using routines of PETSc\r
+toolkit. This research work ends by a conclusion section, in which the proposal\r
+is summarized while intended perspectives are provided.\r
+\r
+\r
+\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\r
+\r
+\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\section{Related works}\r
+\label{sec:02} \r
+Krylov subspace iteration methods have increasingly become key\r
+techniques for solving linear and nonlinear systems, or eigenvalue problems,\r
+especially since the increasing development of \r
+preconditioners~\cite{Saad2003,Meijerink77}. One reason for the popularity of\r
+these methods is their generality, simplicity, and efficiency to solve systems of\r
+equations arising from very large and complex problems.\r
+\r
+GMRES is one of the most widely used Krylov iterative method for solving sparse\r
+and large linear systems. It has been developed by Saad \emph{et\r
+ al.}~\cite{Saad86} as a generalized method to deal with unsymmetric and\r
+non-Hermitian problems, and indefinite symmetric problems too. In its original\r
+version called full GMRES, this algorithm minimizes the residual over the\r
+current Krylov subspace until convergence in at most $n$ iterations, where $n$\r
+is the size of the sparse matrix. Full GMRES is however too expensive in the\r
+case of large matrices, since the required orthogonalization process per\r
+iteration grows quadratically with the number of iterations. For that reason,\r
+GMRES is restarted in practice after each $m\ll n$ iterations, to avoid the\r
+storage of a large orthonormal basis. However, the convergence behavior of the\r
+restarted GMRES, called GMRES($m$), in many cases depends quite critically on\r
+the $m$ value~\cite{Huang89}. Therefore in most cases, a preconditioning\r
+technique is applied to the restarted GMRES method in order to improve its\r
+convergence.\r
+\r
+To enhance the robustness of Krylov iterative solvers, some techniques have been\r
+proposed allowing the use of different preconditioners, if necessary, within the\r
+iteration itself instead of restarting. Those techniques may lead to\r
+considerable savings in CPU time and memory requirements. Van der Vorst\r
+in~\cite{Vorst94} has for instance proposed variants of the GMRES algorithm in\r
+which a different preconditioner is applied in each iteration, leading to the\r
+so-called GMRESR family of nested methods. In fact, the GMRES method is\r
+effectively preconditioned with other iterative schemes (or GMRES itself), where\r
+the iterations of the GMRES method are called outer iterations while the\r
+iterations of the preconditioning process is referred to as inner iterations.\r
+Saad in~\cite{Saad:1993} has proposed Flexible GMRES (FGMRES) which is another\r
+variant of the GMRES algorithm using a variable preconditioner. In FGMRES the\r
+search directions are preconditioned whereas in GMRESR the residuals are\r
+preconditioned. However, in practice, good preconditioners are those based on\r
+direct methods, as ILU preconditioners, which are not easy to parallelize and\r
+suffer from the scalability problems on large clusters of thousands of cores.\r
+\r
+Recently, communication-avoiding methods have been developed to reduce the\r
+communication overheads in Krylov subspace iterative solvers. On modern computer\r
+architectures, communications between processors are much slower than\r
+floating-point arithmetic operations on a given\r
+processor. Communication-avoiding techniques reduce either communications\r
+between processors or data movements between levels of the memory hierarchy, by\r
+reformulating the communication-bound kernels (more frequently SpMV kernels) and\r
+the orthogonalization operations within the Krylov iterative solver. Different\r
+works have studied the communication-avoiding techniques for the GMRES method,\r
+so-called CA-GMRES, on multicore processors and multi-GPU\r
+machines~\cite{Mohiyuddin2009,Hoemmen2010,Yamazaki2014}.\r
+\r
+Compared to all these works and to all the other works on Krylov iterative\r
+methods, the originality of our work is to build a second iteration over a\r
+Krylov iterative method and to minimize the residuals with a least-squares\r
+method after a given number of outer iterations.\r
+\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\r
+\r
+\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\section{TSIRM: Two-stage iteration with least-squares residuals minimization algorithm}\r
+\label{sec:03}\r
+A two-stage algorithm is proposed to solve large sparse linear systems of the\r
+form $Ax=b$, where $A\in\mathbb{R}^{n\times n}$ is a sparse and square\r
+nonsingular matrix, $x\in\mathbb{R}^n$ is the solution vector, and\r
+$b\in\mathbb{R}^n$ is the right-hand side. As explained previously, the\r
+algorithm is implemented as an inner-outer iteration solver based on iterative\r
+Krylov methods. The main key-points of the proposed solver are given in\r
+Algorithm~\ref{algo:01}. It can be summarized as follows: the inner solver is a\r
+Krylov based one. In order to accelerate its convergence, the outer solver\r
+periodically applies a least-squares minimization on the residuals computed by\r
+the inner one.\r
+\r
+At each outer iteration, the sparse linear system $Ax=b$ is partially solved\r
+using only $m$ iterations of an iterative method, this latter being initialized\r
+with the last obtained approximation. The GMRES method~\cite{Saad86}, or any of\r
+its variants, can potentially be used as inner solver. The current approximation\r
+of the Krylov method is then stored inside a $n \times s$ matrix $S$, which is\r
+composed by the $s$ last solutions that have been computed during the inner\r
+iterations phase. In the remainder, the $i$-th column vector of $S$ will be\r
+denoted by $S_i$.\r
+\r
+At each $s$ iterations, another kind of minimization step is applied in order to\r
+compute a new solution $x$. For that, the previous residuals of $Ax=b$ are\r
+computed by the inner iterations with $(b-AS)$. The minimization of the\r
+residuals is obtained by\r
+\begin{equation}\r
+ \underset{\alpha\in\mathbb{R}^{s}}{min}\|b-R\alpha\|_2\r
+\label{eq:01}\r
+\end{equation}\r
+with $R=AS$. The new solution $x$ is then computed with $x=S\alpha$.\r
+\r
+\r
+In practice, $R$ is a dense rectangular matrix belonging in $\mathbb{R}^{n\times\r
+ s}$, with $s\ll n$. In order to minimize~\eqref{eq:01}, a least-squares\r
+method such as CGLS ~\cite{Hestenes52} or LSQR~\cite{Paige82} is used. Remark\r
+that these methods are more appropriate than a single direct method in a\r
+parallel context. CGLS has recently been used to improve the performance of multisplitting algorithms \cite{cz15:ij}.\r
+\r
+\r
+\r
+\begin{algorithm}[t]\r
+\caption{TSIRM}\r
+\begin{algorithmic}[1]\r
+ \Input $A$ (sparse matrix), $b$ (right-hand side)\r
+ \Output $x$ (solution vector)\vspace{0.2cm}\r
+ \State Set the initial guess $x_0$\r
+ \For {$k=1,2,3,\ldots$ until convergence ($error<\epsilon_{tsirm}$)} \label{algo:conv}\r
+ \State $[x_k,error]=Solve(A,b,x_{k-1},max\_iter_{kryl})$ \label{algo:solve}\r
+ \State $S_{k \mod s}=x_k$ \label{algo:store} \Comment{update column ($k \mod s$) of $S$}\r
+ \If {$k \mod s=0$ {\bf and} $error>\epsilon_{kryl}$}\r
+ \State $R=AS$ \Comment{compute dense matrix} \label{algo:matrix_mul}\r
+ \State $\alpha=Least\_Squares(R,b,max\_iter_{ls})$ \label{algo:}\r
+ \State $x_k=S\alpha$ \Comment{compute new solution}\r
+ \EndIf\r
+ \EndFor\r
+\end{algorithmic}\r
+\label{algo:01}\r
+\end{algorithm}\r
+\r
+Algorithm~\ref{algo:01} summarizes the principle of the proposed method. The\r
+outer iteration is inside the \emph{for} loop. Line~\ref{algo:solve}, the Krylov\r
+method is called for a maximum of $max\_iter_{kryl}$ iterations. In practice,\r
+we suggest to set this parameter equal to the restart number in the GMRES-like\r
+method. Moreover, a tolerance threshold must be specified for the solver. In\r
+practice, this threshold must be much smaller than the convergence threshold of\r
+the TSIRM algorithm (\emph{i.e.}, $\epsilon_{tsirm}$). We also consider that\r
+after the call of the $Solve$ function, we obtain the vector $x_k$ and the\r
+$error$, which is defined by $||Ax_k-b||_2$.\r
+\r
+ Line~\ref{algo:store}, $S_{k \mod s}=x_k$ consists in copying the solution\r
+ $x_k$ into the column $k \mod s$ of $S$. After the minimization, the matrix\r
+ $S$ is reused with the new values of the residuals. To solve the minimization\r
+ problem, an iterative method is used. Two parameters are required for that:\r
+ the maximum number of iterations ($max\_iter_{ls}$) and the threshold to stop\r
+ the method ($\epsilon_{ls}$).\r
+\r
+Let us summarize the most important parameters of TSIRM:\r
+\begin{itemize}\r
+\item $\epsilon_{tsirm}$: the threshold that stops the TSIRM method;\r
+\item $max\_iter_{kryl}$: the maximum number of iterations for the Krylov method;\r
+\item $s$: the number of outer iterations before applying the minimization step;\r
+\item $max\_iter_{ls}$: the maximum number of iterations for the iterative least-squares method;\r
+\item $\epsilon_{ls}$: the threshold used to stop the least-squares method.\r
+\end{itemize}\r
+\r
+\r
+The parallelization of TSIRM relies on the parallelization of all its\r
+parts. More precisely, except the least-squares step, all the other parts are\r
+obvious to achieve out in parallel. In order to develop a parallel version of\r
+our code, we have chosen to use PETSc~\cite{petsc-web-page}. In\r
+line~\ref{algo:matrix_mul}, the matrix-matrix multiplication is implemented and\r
+efficient since the matrix $A$ is sparse and the matrix $S$ contains few columns\r
+in practice. As explained previously, at least two methods seem to be\r
+interesting to solve the least-squares minimization, the CGLS and the LSQR\r
+methods.\r
+\r
+In Algorithm~\ref{algo:02} we remind the CGLS algorithm. The LSQR method follows\r
+more or less the same principle but it takes more place, so we briefly explain\r
+the parallelization of CGLS which is similar to LSQR.\r
+\r
+\begin{algorithm}[t]\r
+\caption{CGLS}\r
+\begin{algorithmic}[1]\r
+ \Input $A$ (matrix), $b$ (right-hand side)\r
+ \Output $x$ (solution vector)\vspace{0.2cm}\r
+ \State Let $x_0$ be an initial approximation\r
+ \State $r_0=b-Ax_0$\r
+ \State $p_1=A^Tr_0$\r
+ \State $s_0=p_1$\r
+ \State $\gamma=||s_0||^2_2$\r
+ \For {$k=1,2,3,\ldots$ until convergence ($\gamma<\epsilon_{ls}$)} \label{algo2:conv}\r
+ \State $q_k=Ap_k$\r
+ \State $\alpha_k=\gamma/||q_k||^2_2$\r
+ \State $x_k=x_{k-1}+\alpha_kp_k$\r
+ \State $r_k=r_{k-1}-\alpha_kq_k$\r
+ \State $s_k=A^Tr_k$\r
+ \State $\gamma_{old}=\gamma$\r
+ \State $\gamma=||s_k||^2_2$\r
+ \State $\beta_k=\gamma/\gamma_{old}$\r
+ \State $p_{k+1}=s_k+\beta_kp_k$\r
+ \EndFor\r
+\end{algorithmic}\r
+\label{algo:02}\r
+\end{algorithm}\r
+\r
+\r
+In each iteration of CGLS, there are two matrix-vector multiplications and some\r
+classical operations: dot product, norm, multiplication, and addition on\r
+vectors. All these operations are easy to implement in PETSc or similar\r
+environment. It should be noticed that LSQR follows the same principle, it is a\r
+little bit longer but it performs more or less the same operations.\r
+\r
+\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\r
+\section{Convergence results}\r
+\label{sec:04}\r
+\r
+\r
+We can now claim that,\r
+\begin{proposition}\r
+\label{prop:saad}\r
+If $A$ is either a definite positive or a positive matrix and GMRES($m$) is used as a solver, then the TSIRM algorithm is convergent. \r
+\r
+Furthermore, let $r_k$ be the\r
+$k$-th residue of TSIRM, then\r
+we have the following boundaries:\r
+\begin{itemize}\r
+\item when $A$ is positive:\r
+\begin{equation}\r
+||r_k|| \leqslant \left(1-\dfrac{\alpha}{\beta}\right)^{\frac{km}{2}} ||r_0|| ,\r
+\end{equation}\r
+where $M$ is the symmetric part of $A$, $\alpha = \lambda_{min}(M)^2$ and $\beta = \lambda_{max}(A^T A)$;\r
+\item when $A$ is positive definite:\r
+\begin{equation}\r
+\|r_k\| \leq \left( 1-\frac{\lambda_{\mathrm{min}}^2(1/2(A^T + A))}{ \lambda_{\mathrm{max}}(A^T A)} \right)^{km/2} \|r_0\|.\r
+\end{equation}\r
+\end{itemize}\r
+%In the general case, where A is not positive definite, we have\r
+%$\|r_n\| \le \inf_{p \in P_n} \|p(A)\| \le \kappa_2(V) \inf_{p \in P_n} \max_{\lambda \in \sigma(A)} |p(\lambda)| \|r_0\|, .$\r
+\end{proposition}\r
+\r
+\begin{proof}\r
+Let us first recall that the residue is under control when considering the GMRES algorithm on a positive definite matrix, and it is bounded as follows:\r
+\begin{equation*}\r
+\|r_k\| \leq \left( 1-\frac{\lambda_{\mathrm{min}}^2(1/2(A^T + A))}{ \lambda_{\mathrm{max}}(A^T A)} \right)^{k/2} \|r_0\| .\r
+\end{equation*}\r
+Additionally, when $A$ is a positive real matrix with symmetric part $M$, then the residual norm provided at the $m$-th step of GMRES satisfies:\r
+\begin{equation*}\r
+||r_m|| \leqslant \left(1-\dfrac{\alpha}{\beta}\right)^{\frac{m}{2}} ||r_0|| ,\r
+\end{equation*}\r
+where $\alpha$ and $\beta$ are defined as in Proposition~\ref{prop:saad}, which proves \r
+the convergence of GMRES($m$) for all $m$ under such assumptions regarding $A$.\r
+These well-known results can be found, \emph{e.g.}, in~\cite{Saad86}.\r
+\r
+We will now prove by a mathematical induction that, for each $k \in \mathbb{N}^\ast$, \r
+$||r_k|| \leqslant \left(1-\dfrac{\alpha}{\beta}\right)^{\frac{mk}{2}} ||r_0||$ when $A$ is positive, and $\|r_k\| \leq \left( 1-\frac{\lambda_{\mathrm{min}}^2(1/2(A^T + A))}{ \lambda_{\mathrm{max}}(A^T A)} \right)^{km/2} \|r_0\|$ when $A$ is positive definite.\r
+\r
+The base case is obvious, as for $k=1$, the TSIRM algorithm simply consists in applying GMRES($m$) once, leading to a new residual $r_1$ that follows the inductive hypothesis due to the results recalled above.\r
+\r
+Suppose now that the claim holds for all $m=1, 2, \hdots, k-1$, that is, $\forall m \in \{1,2,\hdots, k-1\}$, $||r_m|| \leqslant \left(1-\dfrac{\alpha}{\beta}\right)^{\frac{km}{2}} ||r_0||$ in the positive case, and $\|r_k\| \leq \left( 1-\frac{\lambda_{\mathrm{min}}^2(1/2(A^T + A))}{ \lambda_{\mathrm{max}}(A^T A)} \right)^{km/2} \|r_0\|$ in the definite positive one.\r
+We will show that the statement holds too for $r_k$. Two situations can occur:\r
+\begin{itemize}\r
+\item If $k \not\equiv 0 ~(\textrm{mod}\ m)$, then the TSIRM algorithm consists in executing GMRES once. In that case and by using the inductive hypothesis, we obtain either $||r_k|| \leqslant \left(1-\dfrac{\alpha}{\beta}\right)^{\frac{m}{2}} ||r_{k-1}||\leqslant \left(1-\dfrac{\alpha}{\beta}\right)^{\frac{km}{2}} ||r_0||$ if $A$ is positive, or $\|r_k\| \leqslant \left( 1-\frac{\lambda_{\mathrm{min}}^2(1/2(A^T + A))}{ \lambda_{\mathrm{max}}(A^T A)} \right)^{m/2} \|r_{k-1}\|$ $\leqslant$ $\left( 1-\frac{\lambda_{\mathrm{min}}^2(1/2(A^T + A))}{ \lambda_{\mathrm{max}}(A^T A)} \right)^{km/2} \|r_{0}\|$ in the positive definite case.\r
+\item Else, the TSIRM algorithm consists in two stages: a first GMRES($m$) execution leads to a temporary $x_k$ whose residue satisfies:\r
+\begin{itemize}\r
+\item $||r_k|| \leqslant \left(1-\dfrac{\alpha}{\beta}\right)^{\frac{m}{2}} ||r_{k-1}||\leqslant \left(1-\dfrac{\alpha}{\beta}\right)^{\frac{km}{2}} ||r_0||$ in the positive case, \r
+\item $\|r_k\| \leqslant \left( 1-\frac{\lambda_{\mathrm{min}}^2(1/2(A^T + A))}{ \lambda_{\mathrm{max}}(A^T A)} \right)^{m/2} \|r_{k-1}\|$ $\leqslant$ $\left( 1-\frac{\lambda_{\mathrm{min}}^2(1/2(A^T + A))}{ \lambda_{\mathrm{max}}(A^T A)} \right)^{km/2} \|r_{0}\|$ in the positive definite one,\r
+\end{itemize}\r
+and a least squares resolution.\r
+Let $\operatorname{span}(S) = \left \{ {\sum_{i=1}^k \lambda_i v_i \Big| k \in \mathbb{N}, v_i \in S, \lambda _i \in \mathbb{R}} \right \}$ be the linear span of a set of real vectors $S$. So,\\\r
+$\min_{\alpha \in \mathbb{R}^s} ||b-R\alpha ||_2 = \min_{\alpha \in \mathbb{R}^s} ||b-AS\alpha ||_2$\r
+\r
+$\begin{array}{ll}\r
+& = \min_{x \in span\left(S_{k-s+1}, S_{k-s+2}, \hdots, S_{k} \right)} ||b-AS\alpha ||_2\\\r
+& = \min_{x \in span\left(x_{k-s+1}, x_{k-s}+2, \hdots, x_{k} \right)} ||b-AS\alpha ||_2\\\r
+& \leqslant \min_{x \in span\left( x_{k} \right)} ||b-Ax ||_2\\\r
+& \leqslant \min_{\lambda \in \mathbb{R}} ||b-\lambda Ax_{k} ||_2\\\r
+& \leqslant ||b-Ax_{k}||_2\\\r
+& = ||r_k||_2\\\r
+& \leqslant \left(1-\dfrac{\alpha}{\beta}\right)^{\frac{km}{2}} ||r_0||, \textrm{ if $A$ is positive,}\\\r
+& \leqslant \left( 1-\frac{\lambda_{\mathrm{min}}^2(1/2(A^T + A))}{ \lambda_{\mathrm{max}}(A^T A)} \right)^{km/2} \|r_{0}\|, \textrm{ if $A$ is}\\\r
+& \textrm{positive definite,} \r
+\end{array}$\r
+\end{itemize}\r
+which concludes the induction and the proof.\r
+\end{proof}\r
+\r
+Remark that a similar proposition can be formulated at each time\r
+the given solver satisfies an inequality of the form $||r_n|| \leqslant \mu^n ||r_0||$,\r
+with $|\mu|<1$. Furthermore, it is \emph{a priori} possible in some particular cases \r
+regarding $A$, \r
+that the proposed TSIRM converges while the GMRES($m$) does not.\r
+\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\section{Experiments using PETSc}\r
+\label{sec:05}\r
+\r
+\r
+In order to see the behavior of our approach when considering only one processor,\r
+a first comparison with GMRES or FGMRES and the new algorithm detailed\r
+previously has been experimented. Matrices that have been used with their\r
+characteristics (names, fields, rows, and nonzero coefficients) are detailed in\r
+Table~\ref{tab:01}. These latter, which are real-world applications matrices,\r
+have been extracted from the Davis collection, University of\r
+Florida~\cite{Dav97}.\r
+\r
+\begin{table}[htbp]\r
+\begin{center}\r
+\begin{tabular}{|c|c|r|r|r|} \r
+\hline\r
+Matrix name & Field &\# Rows & \# Nonzeros \\\hline \hline\r
+crashbasis & Optimization & 160,000 & 1,750,416 \\\r
+parabolic\_fem & Comput. fluid dynamics & 525,825 & 2,100,225 \\\r
+epb3 & Thermal problem & 84,617 & 463,625 \\\r
+atmosmodj & Comput. fluid dynamics & 1,270,432 & 8,814,880 \\\r
+bfwa398 & Electromagnetics pb & 398 & 3,678 \\\r
+torso3 & 2D/3D problem & 259,156 & 4,429,042 \\\r
+\hline\r
+\r
+\end{tabular}\r
+\caption{Main characteristics of the sparse matrices chosen from the Davis collection}\r
+\label{tab:01}\r
+\end{center}\r
+\end{table}\r
+Chosen parameters are detailed below. \r
+We have stopped the GMRES every 30\r
+iterations (\emph{i.e.}, $max\_iter_{kryl}=30$), which is the default \r
+setting of GMRES restart parameter. The parameter $s$ has been set to 8. CGLS \r
+ minimizes the least-squares problem with parameters\r
+$\epsilon_{ls}=1e-40$ and $max\_iter_{ls}=20$. The external precision is set to\r
+$\epsilon_{tsirm}=1e-10$. These experiments have been performed on an Intel(R)\r
+Core(TM) i7-3630QM CPU @ 2.40GHz with the 3.5.1 version of PETSc.\r
+\r
+\r
+Experiments comparing \r
+a GMRES variant with TSIRM in the resolution of linear systems are given in Table~\ref{tab:02}. \r
+The second column describes whether GMRES or FGMRES has been used for linear systems solving. \r
+Different preconditioners have been used according to the matrices. With TSIRM, the same\r
+solver and the same preconditioner are used. This table shows that TSIRM can\r
+drastically reduce the number of iterations needed to reach the convergence, when the\r
+number of iterations for the normal GMRES is more or less greater than 500. In\r
+fact this also depends on two parameters: the number of iterations before stopping GMRES\r
+and the number of iterations to perform the minimization.\r
+\r
+\r
+\begin{table}[htbp]\r
+\begin{center}\r
+\begin{tabular}{|c|c|r|r|r|r|} \r
+\hline\r
+\r
+ \multirow{2}{*}{Matrix name} & Solver / & \multicolumn{2}{c|}{GMRES} & \multicolumn{2}{c|}{TSIRM CGLS} \\ \r
+\cline{3-6}\r
+ & precond & Time & \# Iter. & Time & \# Iter. \\\hline \hline\r
+\r
+crashbasis & gmres / none & 15.65 & 518 & 14.12 & 450 \\\r
+parabolic\_fem & gmres / ilu & 1009.94 & 7573 & 401.52 & 2970 \\\r
+epb3 & fgmres / sor & 8.67 & 600 & 8.21 & 540 \\\r
+atmosmodj & fgmres / sor & 104.23 & 451 & 88.97 & 366 \\\r
+bfwa398 & gmres / none & 1.42 & 9612 & 0.28 & 1650 \\\r
+torso3 & fgmres / sor & 37.70 & 565 & 34.97 & 510 \\\r
+\hline\r
+\r
+\end{tabular}\r
+\caption{Comparison between sequential standalone (F)GMRES and TSIRM with (F)GMRES (time in seconds).}\r
+\label{tab:02}\r
+\end{center}\r
+\end{table}\r
+\r
+\r
+\r
+\r
+\r
+In order to perform larger experiments, we have tested some example applications\r
+of PETSc. These applications are available in the \emph{ksp} part, which is\r
+suited for scalable linear equations solvers:\r
+\begin{itemize}\r
+\item ex15 is an example that solves in parallel an operator using a finite\r
+ difference scheme. The diagonal is equal to 4 and 4 extra-diagonals\r
+ representing the neighbors in each directions are equal to -1. This example is\r
+ used in many physical phenomena, for example, heat and fluid flow, wave\r
+ propagation, etc.\r
+\item ex54 is another example based on a 2D problem discretized with quadrilateral\r
+ finite elements. In this example, the user can define the scaling of material\r
+ coefficient in embedded circle called $\alpha$.\r
+\end{itemize}\r
+For more technical details on these applications, interested readers are invited\r
+to read the codes available in the PETSc sources. These problems have been\r
+chosen because they are scalable with many cores.\r
+\r
+In the following, larger experiments are described on two large scale\r
+architectures: Curie and Juqueen. Both these architectures are supercomputers\r
+respectively composed of 80,640 cores for Curie and 458,752 cores for\r
+Juqueen. Those machines are respectively hosted by GENCI in France and Jülich\r
+Supercomputing Center in Germany. They belong with other similar architectures\r
+to the PRACE initiative (Partnership for Advanced Computing in Europe), which\r
+aims at proposing high performance supercomputing architecture to enhance\r
+research in Europe. The Curie architecture is composed of Intel E5-2680\r
+processors at 2.7 GHz with 2Gb memory by core. The Juqueen architecture,\r
+for its part, is\r
+composed by IBM PowerPC A2 at 1.6 GHz with 1Gb memory per core. Both those\r
+architectures are equipped with a dedicated high speed network.\r
+\r
+\r
+In many situations, using preconditioners is essential in order to find the\r
+solution of a linear system. There are many preconditioners available in PETSc.\r
+However, for parallel applications, all the preconditioners based on matrix factorization\r
+are not available. In our experiments, we have tested different kinds of\r
+preconditioners, but as it is not the subject of this paper, we will not\r
+present results with many preconditioners. In practice, we have chosen to use a\r
+multigrid (mg) and successive over-relaxation (sor). For further details on the\r
+preconditioners in PETSc, readers are referred to~\cite{petsc-web-page}.\r
+\r
+\r
+\r
+\begin{table*}[htbp]\r
+\begin{center}\r
+\begin{tabular}{|r|r|r|r|r|r|r|r|r|} \r
+\hline\r
+\r
+ nb. cores & precond & \multicolumn{2}{c|}{FGMRES} & \multicolumn{2}{c|}{TSIRM CGLS} & \multicolumn{2}{c|}{TSIRM LSQR} & best gain \\ \r
+\cline{3-8}\r
+ & & Time & \# Iter. & Time & \# Iter. & Time & \# Iter. & \\\hline \hline\r
+ 2,048 & mg & 403.49 & 18,210 & 73.89 & 3,060 & 77.84 & 3,270 & 5.46 \\\r
+ 2,048 & sor & 745.37 & 57,060 & 87.31 & 6,150 & 104.21 & 7,230 & 8.53 \\\r
+ 4,096 & mg & 562.25 & 25,170 & 97.23 & 3,990 & 89.71 & 3,630 & 6.27 \\\r
+ 4,096 & sor & 912.12 & 70,194 & 145.57 & 9,750 & 168.97 & 10,980 & 6.26 \\\r
+ 8,192 & mg & 917.02 & 40,290 & 148.81 & 5,730 & 143.03 & 5,280 & 6.41 \\\r
+ 8,192 & sor & 1,404.53 & 106,530 & 212.55 & 12,990 & 180.97 & 10,470 & 7.76 \\\r
+ 16,384 & mg & 1,430.56 & 63,930 & 237.17 & 8,310 & 244.26 & 7,950 & 6.03 \\\r
+ 16,384 & sor & 2,852.14 & 216,240 & 418.46 & 21,690 & 505.26 & 23,970 & 6.82 \\\r
+\hline\r
+\r
+\end{tabular}\r
+\caption{Comparison of FGMRES and TSIRM with FGMRES for example ex15 of PETSc with two preconditioners (mg and sor) having 25,000 components per core on Juqueen ($\epsilon_{tsirm}=1e-3$, $max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$, $\epsilon_{ls}=1e-40$), time is expressed in seconds.}\r
+\label{tab:03}\r
+\end{center}\r
+\end{table*}\r
+\r
+Table~\ref{tab:03} shows the execution times and the number of iterations of\r
+example ex15 of PETSc on the Juqueen architecture. Different numbers of cores\r
+are studied ranging from 2,048 up-to 16,383 with the two preconditioners {\it\r
+ mg} and {\it sor}. For those experiments, the number of components (or\r
+unknowns of the problems) per core is fixed at 25,000, also called weak\r
+scaling. This number can seem relatively small. In fact, for some applications\r
+that need a lot of memory, the number of components per processor requires\r
+sometimes to be small. Other parameters for this application are described in\r
+the legend of this table.\r
+\r
+\r
+\r
+In Table~\ref{tab:03}, we can notice that TSIRM is always faster than\r
+FGMRES. The last column shows the ratio between FGMRES and the best version of\r
+TSIRM according to the minimization procedure: CGLS or LSQR. Even if we have\r
+computed the worst case between CGLS and LSQR, it is clear that TSIRM is always\r
+faster than FGMRES. For this example, the multigrid preconditioner is faster\r
+than SOR. The gain between TSIRM and FGMRES is more or less similar for the two\r
+preconditioners. Looking at the number of iterations to reach the convergence,\r
+it is obvious that TSIRM allows the reduction of the number of iterations. It\r
+should be noticed that for TSIRM, in those experiments, only the iterations of\r
+the Krylov solver are taken into account. Iterations of CGLS or LSQR were not\r
+recorded but they are time-consuming. In general, each $max\_iter_{kryl}*s$\r
+iterations which corresponds to 30*12, there are $max\_iter_{ls}$ iterations for\r
+the least-squares method which corresponds to 15.\r
+\r
+\begin{figure}[htbp]\r
+\centering\r
+ \includegraphics[width=0.5\textwidth]{nb_iter_sec_ex15_juqueen}\r
+\caption{Number of iterations per second with ex15 and the same parameters as in Table~\ref{tab:03} (weak scaling)}\r
+\label{fig:01}\r
+\end{figure}\r
+\r
+\r
+In Figure~\ref{fig:01}, the number of iterations per second corresponding to\r
+Table~\ref{tab:03} is displayed. It can be noticed that the number of\r
+iterations per second of FMGRES is constant whereas it decreases with TSIRM with\r
+both preconditioners. This can be explained by the fact that when the number of\r
+cores increases, the time for the least-squares minimization step also increases\r
+but, generally, when the number of cores increases, the number of iterations to\r
+reach the threshold also increases, and, in that case, TSIRM is more efficient\r
+to reduce the number of iterations. So, the overall benefit of using TSIRM is\r
+interesting.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\begin{table*}[htbp]\r
+\begin{center}\r
+\begin{tabular}{|r|r|r|r|r|r|r|r|r|} \r
+\hline\r
+\r
+ nb. cores & $\epsilon_{tsirm}$ & \multicolumn{2}{c|}{FGMRES} & \multicolumn{2}{c|}{TSIRM CGLS} & \multicolumn{2}{c|}{TSIRM LSQR} & best gain \\ \r
+\cline{3-8}\r
+ & & Time & \# Iter. & Time & \# Iter. & Time & \# Iter. & \\\hline \hline\r
+ 2,048 & 8e-5 & 108.88 & 16,560 & 23.06 & 3,630 & 22.79 & 3,630 & 4.77 \\\r
+ 2,048 & 6e-5 & 194.01 & 30,270 & 35.50 & 5,430 & 27.74 & 4,350 & 6.99 \\\r
+ 4,096 & 7e-5 & 160.59 & 22,530 & 35.15 & 5,130 & 29.21 & 4,350 & 5.49 \\\r
+ 4,096 & 6e-5 & 249.27 & 35,520 & 52.13 & 7,950 & 39.24 & 5,790 & 6.35 \\\r
+ 8,192 & 6e-5 & 149.54 & 17,280 & 28.68 & 3,810 & 29.05 & 3,990 & 5.21 \\\r
+ 8,192 & 5e-5 & 785.04 & 109,590 & 76.07 & 10,470 & 69.42 & 9,030 & 11.30 \\\r
+ 16,384 & 4e-5 & 718.61 & 86,400 & 98.98 & 10,830 & 131.86 & 14,790 & 7.26 \\\r
+\hline\r
+\r
+\end{tabular}\r
+\caption{Comparison of FGMRES and TSIRM with FGMRES algorithms for ex54 of Petsc (both with the MG preconditioner) with 25,000 components per core on Curie ($max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$, $\epsilon_{ls}=1e-40$), time is expressed in seconds.}\r
+\label{tab:04}\r
+\end{center}\r
+\end{table*}\r
+\r
+\r
+In Table~\ref{tab:04}, some experiments with example ex54 on the Curie\r
+architecture are reported. For this application, we fixed $\alpha=0.6$. As it\r
+can be seen in that table, the size of the problem has a strong influence on the\r
+number of iterations to reach the convergence. That is why we have preferred to\r
+change the threshold. If we set it to $1e-3$ as with the previous application,\r
+only one iteration is necessary to reach the convergence. So Table~\ref{tab:04}\r
+shows the results of different executions with different number of cores and\r
+different thresholds. As with the previous example, we can observe that TSIRM is\r
+faster than FGMRES. The ratio greatly depends on the number of iterations for\r
+FMGRES to reach the threshold. The greater the number of iterations to reach the\r
+convergence is, the better the ratio between our algorithm and FMGRES is. This\r
+experiment is also a weak scaling with approximately $25,000$ components per\r
+core. It can also be observed that the difference between CGLS and LSQR is not\r
+significant. Both can be good but it seems not possible to know in advance which\r
+one will be the best.\r
+\r
+Table~\ref{tab:05} shows a strong scaling experiment with example ex54 on the\r
+Curie architecture. So, in this case, the number of unknowns is fixed at\r
+$204,919,225$ and the number of cores ranges from $512$ to $8192$ with the power\r
+of two. The threshold is fixed at $5e-5$ and only the $mg$ preconditioner has\r
+been tested. Here again we can see that TSIRM is faster than FGMRES. The\r
+efficiency of each algorithm is reported. It can be noticed that the efficiency\r
+of FGMRES is better than the TSIRM one except with $8,192$ cores and that its\r
+efficiency is greater than one whereas the efficiency of TSIRM is lower than\r
+one. Nevertheless, the ratio of TSIRM with any version of the least-squares\r
+method is always faster. With $8,192$ cores when the number of iterations is\r
+far more important for FGMRES, we can see that it is only slightly more\r
+important for TSIRM.\r
+\r
+In Figure~\ref{fig:02} we report the number of iterations per second for the\r
+experiments reported in Table~\ref{tab:05}. This figure highlights that the\r
+number of iterations per second is more or less the same for FGMRES and TSIRM\r
+with a little advantage for FGMRES. It can be explained by the fact that, as we\r
+have previously explained, the iterations of the least-squares steps are not\r
+taken into account with TSIRM.\r
+\r
+\begin{table*}[htbp]\r
+\begin{center}\r
+\begin{tabular}{|r|r|r|r|r|r|r|r|r|r|r|} \r
+\hline\r
+\r
+ nb. cores & \multicolumn{2}{c|}{FGMRES} & \multicolumn{2}{c|}{TSIRM CGLS} & \multicolumn{2}{c|}{TSIRM LSQR} & best gain & \multicolumn{3}{c|}{efficiency} \\ \r
+\cline{2-7} \cline{9-11}\r
+ & Time & \# Iter. & Time & \# Iter. & Time & \# Iter. & & FGMRES & TS CGLS & TS LSQR\\\hline \hline\r
+ 512 & 3,969.69 & 33,120 & 709.57 & 5,790 & 622.76 & 5,070 & 6.37 & 1 & 1 & 1 \\\r
+ 1024 & 1,530.06 & 25,860 & 290.95 & 4,830 & 307.71 & 5,070 & 5.25 & 1.30 & 1.21 & 1.01 \\\r
+ 2048 & 919.62 & 31,470 & 237.52 & 8,040 & 194.22 & 6,510 & 4.73 & 1.08 & .75 & .80\\\r
+ 4096 & 405.60 & 28,380 & 111.67 & 7,590 & 91.72 & 6,510 & 4.42 & 1.22 & .79 & .84 \\\r
+ 8192 & 785.04 & 109,590 & 76.07 & 10,470 & 69.42 & 9,030 & 11.30 & .32 & .58 & .56 \\\r
+\r
+\hline\r
+\r
+\end{tabular}\r
+\caption{Comparison of FGMRES and TSIRM for ex54 of PETSc (both with the MG preconditioner) with 204,919,225 components on Curie with different number of cores ($\epsilon_{tsirm}=5e-5$, $max\_iter_{kryl}=30$, $s=12$, $max\_iter_{ls}=15$, $\epsilon_{ls}=1e-40$), time is expressed in seconds.}\r
+\label{tab:05}\r
+\end{center}\r
+\end{table*}\r
+\r
+\begin{figure}[htbp]\r
+\centering\r
+ \includegraphics[width=0.5\textwidth]{nb_iter_sec_ex54_curie}\r
+\caption{Number of iterations per second with ex54 and the same parameters as in Table~\ref{tab:05} (strong scaling)}\r
+\label{fig:02}\r
+\end{figure}\r
+\r
+\r
+Concerning the experiments some other remarks are interesting.\r
+\begin{itemize}\r
+\item We have tested other examples of PETSc (ex29, ex45, ex49). For all these\r
+ examples, we have also obtained similar gains between GMRES and TSIRM but\r
+ those examples are not scalable with many cores. In general, we had some\r
+ problems with more than $4,096$ cores.\r
+\item We have tested many iterative solvers available in PETSc. In fact, it is\r
+ possible to use most of them with TSIRM. From our point of view, the condition\r
+ to use a solver inside TSIRM is that the solver must have a restart\r
+ feature. More precisely, the solver must support to be stopped and restarted\r
+ without decreasing its convergence. That is why with GMRES we stop it when it\r
+ is naturally restarted (\emph{i.e.} with $m$ the restart parameter). The\r
+ Conjugate Gradient (CG) and all its variants do not have ``restarted'' version\r
+ in PETSc, so they are not efficient. They will converge with TSIRM but not\r
+ quickly because if we compare a normal CG with a CG which is stopped and\r
+ restarted every 16 iterations (for example), the normal CG will be far more\r
+ efficient. Some restarted CG or CG variant versions exist and may be\r
+ interesting to study in future works.\r
+\end{itemize}\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\r
+\r
+\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\section{Conclusion}\r
+\label{sec:06}\r
+%The conclusion goes here. this is more of the conclusion\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\r
+A new two-stage iterative algorithm TSIRM has been proposed in this article,\r
+in order to accelerate the convergence of Krylov iterative methods.\r
+Our TSIRM proposal acts as a merger between Krylov based solvers and\r
+a least-squares minimization step.\r
+The convergence of the method has been proven in some situations, while \r
+experiments up to 16,394 cores have been led to verify that TSIRM runs\r
+5 or 7 times faster than GMRES.\r
+\r
+\r
+For future work, the authors' intention is to investigate other kinds of\r
+matrices, problems, and inner solvers. In particular, the possibility \r
+to obtain a convergence of TSIRM in situations where the GMRES is divergent will be\r
+investigated. The influence of all parameters must be\r
+tested too, while other methods to minimize the residuals must be regarded. The\r
+number of outer iterations to minimize should become adaptive to improve the\r
+overall performances of the proposal. Finally, this solver will be implemented\r
+inside PETSc, which would be of interest as it would allows us to test\r
+all the non-linear examples and compare our algorithm with the other algorithm\r
+implemented in PETSc.\r
+\r
+\r
+% conference papers do not normally have an appendix\r
+\r
+\r
+\r
+% use section* for acknowledgement\r
+%%%*********************************************************\r
+%%%*********************************************************\r
+\section*{Acknowledgment}\r
+This paper is partially funded by the Labex ACTION program (contract\r
+ANR-11-LABX-01-01). We acknowledge PRACE for awarding us access to resources\r
+Curie and Juqueen respectively based in France and Germany.\r
+\r
+\r
+\r
+\r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+\r
+\bibliography{biblio}\r
+\bibliographystyle{unsrt}\r
+\bibliographystyle{alpha}\r
+\r
+\end{document}\r