Scalar Example

Function names are constructed with a pattern that suggests their functionality. Thus the function

  QLA_V_eq_M_times_V(c,u,b)
carries out the product

c = ub

where c and b are pointers to staggered fermion vectors and u is a pointer to a color matrix. The elements of the function name are separated by an underscore ``_'' for readability. All function names in this interface begin with ``QLA''. The specific name continues with a precision and color label as in
   QLA_F3_V_eq_M_times_V
for single precision SU(3). Then comes a string of elements that mimics the algebraic expression. The next character ``V'' abbreviates the type for the destination operand, in this case the argument ``c''. The abbreviations are listed in Sec. 2. The next string ``eq'' specifies the assignment operator. In this case it is a straight replacement, but increments of various types are also supported, as described below. Then comes the first rhs operand type ``M'' followed by a string ``times'' specifying the operation and a character ``V'' specifying the second rhs operand type.

Supported variants of the assignment operator are tabulated below.

abbreviation meaning
eq =
peq +=
meq -=
eqm =-

Some functions allow all of these and some take only a simple replacement (=).

James Osborn 2006-06-25