\resetsteps      % Reset all the commands to create a blank worksheet  

% Define the operation to be computed

\renewcommand{\operation}{  y := A x + y }
\renewcommand{\routinename}{ y \becomes \mbox{\sc matvec\_var1}(A, x, y) }

% Step 3: Loop-guard 

\renewcommand{\guard}{
  m( y_T ) < m( y )
}

% Step 4: Redefine Initialize 

\renewcommand{\partitionings}{
  $
  A \rightarrow
  \FlaTwoByOne{A_{T}}
              {A_{B}}
  $
,
  $
  y \rightarrow
  \FlaTwoByOne{y_{T}}
              {y_{B}}
  $
}

\renewcommand{\partitionsizes}{
$ A_{T} $ has $ 0 $ rows and
$ y_{T} $ has $ 0 $ elements
}

% Step 5a: Repartition the operands 

\renewcommand{\repartitionings}{
$
  \FlaTwoByOne{ A_T }
              { A_B }
\rightarrow
  \FlaThreeByOneB{A_0}
                 {\tr{a}_1}
                 {A_2}
$
,
$
  \FlaTwoByOne{ y_T }
              { y_B }
\rightarrow
  \FlaThreeByOneB{y_0}
                 {\psi_1}
                 {y_2}
$
}

\renewcommand{\repartitionsizes}{
$ \tr{a}_1 $ is a row and
$ \psi_1 $ is a scalar}

% Step 5b: Move the double lines 

\renewcommand{\moveboundaries}{
$
  \FlaTwoByOne{ A_T }
              { A_B }
\leftarrow
  \FlaThreeByOneT{A_0}
                 {\tr{a}_1}
                 {A_2}
$
,
$
  \FlaTwoByOne{ y_T }
              { y_B }
\leftarrow
  \FlaThreeByOneT{y_0}
                 {\psi_1}
                 {y_2}
$
}

\renewcommand{\update}{
$
  \begin{array}{l}
    \psi_1 = \tr{a}_1 x + \psi_1
  \end{array}
$
}

\FlaAlgorithm

LinearAlgebraWiki: Algorithms/MatVec/UnbVar1 (last edited 2007-01-05 17:38:15 by RobertVanDeGeijn)