gemmK macro definitions

In order to make writing a gemmK 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 gemmK, 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.

Clint Whaley 2012-07-10