next up previous contents
Next: L1 matmul API Up: The L1 matmul Previous: The L1 matmul   Contents

L1 matmul macro definitions

In order to make writing an L1 matmul easier, ATLAS defines several cpp macros for programmer use. Examples in subsequent sections should illustrate the use of these macros, so we merely define them here.

First, ATLAS defines the macro ATL_USERMM to the appropriate ATLAS internal kernel name. Second, it defines one of SREAL, DREAL, SCPLX, DCPLX, according to the data type being compiled (single precision real, double precision real, single precision complex, double precision complex, respectively).

Similarly, ATLAS defines a macro indicating the $\beta$ case being compiled, BETA1 ($\beta$ should be assumed to be 1.0), BETA0 ($\beta$ should be assumed to be 0.0), and BETAX ($\beta$ neither zero or one, and should be handled as an input parameter).

Finally, the fixed blocking factors for each dimension are defined MB, NB, KB. Note that for our L1 matmul, MB = NB = KB = $N_B$; they are separated out for support of the cleanup codes, where they can be different. ATLAS also defines the macros MB2, NB2, KB2, which are simply two times the appropriate blocking factor.


next up previous contents
Next: L1 matmul API Up: The L1 matmul Previous: The L1 matmul   Contents
R. Clint Whaley 2001-08-04