Generic Names

There are two levels of generic naming: fully generic in which both color and precision may be controlled globally through two macros and color-generic in which precision is explicit but not color. Generic naming applies to datatypes, module names, and accessor macros and follows similar rules.

Names for fully generic datatypes are listed in the table below.

name abbreviation description
QLA_Real R real
QLA_Complex C complex
QLA_Int I integer
QLA_ColorMatrix M Nc x Nc complex matrix
QLA_HalfFermion H two-spin, Nc color spinor
QLA_DiracFermion D four-spin, Nc color spinor
QLA_ColorVector V one-spin, Nc color spinor
QLA_DiracPropagator P 4Nc x 4Nc complex matrix
QLA_RandomState S implementation dependent
Names for color-generic datatypes are obtained by inserting an _F for single precision, _D for double precision, or _Q for extended precision after QLA where appropriate. Thus QLA_D_ColorMatrix specifies a double precision color matrix with color to be set through a global macro.

An extended precision type with abbreviation Q is also defined, but it is currently intended only for extending precision in the global reduction of double precision data, and then only where the architecture and compiler supports it. Only a handful of functions use it, namely, reduction, type conversion and some copying and incrementing.

James Osborn 2006-06-25