\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\_blk\_var2}(A, x, y) }
\renewcommand{\routinecost}{ 2mn }

\renewcommand{\blocksize}{ n_b }

% Step 4: Redefine Initialize 

\renewcommand{\partitionings}{
  $
  A \rightarrow
  \FlaOneByTwo{A_L}{A_R}
  $
,
  $
  x \rightarrow
  \FlaTwoByOne{x_{T}}
              {x_{B}}
  $
}

\renewcommand{\partitionsizes}{
$ A_L $ has $ 0 $ columns and
$ x_{T} $ has $ 0 $ elements
}

% Step 5a: Repartition the operands 

\renewcommand{\repartitionings}{
$
  \FlaOneByTwo{A_L}{A_R}
\rightarrow  \FlaOneByThreeR{A_0}{A_1}{A_2}
$
,
$
  \FlaTwoByOne{ x_T }
              { x_B }
\rightarrow
  \FlaThreeByOneB{x_0}
                 {x_1}
                 {x_2}
$
}

\renewcommand{\blocksize}{n_b}

\renewcommand{\repartitionsizes}{
$ A_1 $ has $ \blocksize $ columns and 
$ x_1 $ has $ \blocksize $ elements}

% Step 5b: Move the double lines 

\renewcommand{\moveboundaries}{
$
  \FlaOneByTwo{A_L}{A_R}
\leftarrow  \FlaOneByThreeL{A_0}{A_1}{A_2}
$
,
$
  \FlaTwoByOne{ x_T }
              { x_B }
\leftarrow
  \FlaThreeByOneT{x_0}
                 {x_1}
                 {x_2}
$
}

% Step 8: Insert the updates required to change the 
%         state from that given in Step 6 to that given in Step 7
% Note: The below needs editing!!!

\renewcommand{\update}{
$
  \begin{array}{l}
    y \becomes y + A_1 x_1 
  \end{array}
$
}


\FlaAlgorithm

LinearAlgebraWiki: Algorithms/MatVec/BlkVar2 (last edited 2007-01-19 15:22:22 by RobertVanDeGeijn)