This directory contains the code for the PRISM matrix multiply routine
called BiMMeR.  The code has been converted to MPI.  See the README
file one directory up for information on the standard way to compile
this code.

All files have the following notice:
----------------------------------------------------------------------
   COPYRIGHT U.S. GOVERNMENT 
   
   This software is distributed without charge and comes with
   no warranty.

   Please feel free to send questions, comments, and problem reports
   to prism@super.org. 
----------------------------------------------------------------------

The following files are included in this directory:

Makefile: Input for make.

README: This file.

prism_v_bca_rb.c: Computes C=_alpha*A*B+beta*C, for msh_rows >= msh_cols.

prism_v_bca_rc.c: Computes C=_alpha*A^t*B+beta*C, for msh_rows >= msh_cols.

prism_v_bcb_rc.c: Computes C=_alpha*A*B^t+beta*C, for msh_rows < msh_cols.

prism_v_bimmer.c: Main routine for doing BiMMeR algorithm.  It is a
variant of Broadcast-Multiply-Roll.

prism_v_dlacpy.f: LAPACK routine which copies all or part of a two-dimensional 
matrix A to another matrix B.

prism_v_ra_bcb.c: Computes C=_alpha*A*B+beta*C, for msh_rows < msh_cols.

prism_v_ra_bcc.c: Computes C=_alpha*A^t*B+beta*C, for msh_rows < msh_cols.

prism_v_rb_bcc.c: Computes C=_alpha*A*B^t+beta*C, for msh_rows >= msh_cols.

prism_v_scl_mtrx.c: Scales a matrix.


The routines have a large number of cpp options.  Whenever you change
options you should do a "make cleanobjs; make" to make sure that the new
cpp option(s) are compiled for all routines.  THIS IS NOT AUTOMATIC.
The general CPP options are listed in the directory above.  The CPP
options specific to this directory are:

-DPRISM_TIME: Causes the prism_v_bimmer routine to start and stop
timers to keep track of how long the 3 main parts of the routine
take.  This is used by the test code for more specific output.
You don't want to use this if you are interested in maximum
performance.



