#ifndef INCLUDE_INCLUDED #define INCLUDE_INCLUDED /**************************************************************** Transverse lattice Global definitions ******************************************************************/ /* Form of matrix elements to use in calculations 1 use internally constructed DLCQ matrix elements. 3 use internally constructed improved matrix elements. (historically 0 and 2, were for loading elements from a file) */ #ifndef IMPROVED #define IMPROVED 1 #endif #ifndef HINDEX #define HINDEX 2 /* Number of transverse dimensions */ #endif #define NPMAX 9 /* maximum number of particles. This is used for some temporary storage in small arrays. It is checked in the routines that create the basis states. */ #define QUARK_PERIODIC 0 /* Periodic boundary conditions for quarks? Only antiperiodic is implemented now. */ #define GLUE_PERIODIC 1 /* Periodic boundary conditions for mesons? Antiperiodic is for checking against older code; one cannot have quarks. */ #if GLUE_PERIODIC #define ADJACENT 0 /* Specify maximum number of adjacent zero modes. A value of zero means no zero modes. */ #endif /* Element is the floating point default for matrix elements of the hamiltonian. Complex is the associated generalization to complex numbers. */ typedef double element; typedef struct {element re; element im;} complex_element; /* sizemem is an unsigned integer large enough to express the number of bytes used to store the Hamiltonian matrix in one working group. It is possibly larger than size_t for parallel calculations. See the definition of MPI_SIZE_T */ typedef unsigned long int size_mem; #define SIZE_T_PRINT "%i" /* Print format for size_t, either i or li */ #define SIZE_MEM_PRINT "%li" /* Print format for size_mem, either i or li */ #include /* definition of DBL_EPSILON here */ #define ELEMENT_EPSILON DBL_EPSILON #endif