QDP++ User Guide:   Front Page   Introduction   Data Types   Functions   Simple IO   Record IO  Compilation   Spin Conventions   Implementation

Compilation with QDP

Compilation with QDP

  1. Generic header and macros
  2. How to configure QDP++
  3. Nonuniform color and precision

Generic header and macros

The compilation parameters:

are defined in qdp_params.h . There are macros QDP_ND, QDP_NC and QDP_NS that are used to set the above parameters via

const int Nd = QDP_ND;
const int Nc = QDP_NC;
const int Ns = QDP_NS;

They are set in the build directories file qdp_config.h during configuration.

How to configure QDP++

QDP++ uses the GNU autoconf and automake systems for builds. Help on configuration parameters can be found with

% configure --help

The most important flag is the --enable-parallel-arch[=some_arch] with the architectural choices scalar, parscalar, scalarvec, parscalarvec.

Nonuniform color and precision

must use specific type names whenever these types and names differ from the prevailing precision and color. Type declarations can be found in qdp_scalarsite_defs.h etc. A convenient definition of a QDP::LatticeColorMatrix and QDP::LatticeDiracFermion is as follows:

typedef OLattice<PScalar<ColorMatrix<Complex<float>, Nc> > > LatticeColorMatrix
typedef OLattice<SpinVector<ColorVector<Complex<float>, Nc>, Ns> > LatticeFermion

However, for the user to choose a specific number of colors:

const int NN = 17  // work in SU(17)
typedef OLattice<PScalar<ColorMatrix<Complex<float>, NN> > > LatticeColorMatrix17