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 -lmAs 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