Nonuniform color and precision

Users wishing to vary color and precision within a single calculation must use specific type names and function names whenever these types and names differ from the prevailing precision and color. For example, if an SU(3) calculation is done primarly in single precision, but has double precision components, the following preamble is appropriate:

#define QLA_Precision 'F'
#define QLA_Colors 3
#include <qla.h>
#include <qla_d.h>
#include <qla_d3.h>
and the following linkage to get the corresponding libraries:
  -lqla_int -lqla_f -lqla_f3 -lqla_d -lqla_df 
      -lqla_d3 -lqla_df3 -lqla_cmath -lqla_random -lm
As in the previous example, the single precision and type conversion components for SU(3) are automatically included through qla.h. Then we need the corresponding double precision components. And we also need the DF libraries to do conversions between single and double precision. They, too have colored and noncolored members.

The following table lists all the QLA headers.

name purpose
qla.h Master header
qla_cmath.h double precision cexp, clog, csqrt, cexpi
qla_random.h random number seed and generation
qla_int.h integers, boolean
qla_f.h real, complex, single precision
qla_d.h real, complex, double precision
qla_q.h real, complex, extended precision
qla_df.h real, complex, precision conversion
qla_dq.h real, complex, precision conversion
qla_f3.h SU(3), single precision
qla_d3.h SU(3), double precision
qla_q3.h SU(3), extended precision
qla_df3.h SU(3), precision conversion
qla_dq3.h SU(3), precision conversion
qla_f2.h SU(2), single precision
qla_d2.h SU(2), double precision
qla_q2.h SU(2), extended precision
qla_df2.h SU(2), precision conversion
qla_dq2.h SU(2), precision conversion
qla_fn.h SU(N), single precision
qla_dn.h SU(N), double precision
qla_qn.h SU(N), extended precision
qla_dfn.h SU(N), precision conversion
qla_dqn.h SU(N), precision conversion

James Osborn 2006-06-25