Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

mdp.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 // ///////////////////////////////////////////////////////////////////////////
00014 // include the usual libraries (works on gcc and VC)
00015 // ///////////////////////////////////////////////////////////////////////////
00016 
00017 #include <iostream>
00018 #include <fstream>
00019 #include <cstdio>
00020 #include <cstdlib>
00021 #include <cmath>
00022 #include <cstring>
00023 #include <ctime>
00024 #include <cassert>
00025 #include <typeinfo>
00026 #include <malloc.h>
00027 #include <string>
00028 #include <vector>
00029 #include <map>
00030 #include <climits>
00031 #ifndef NO_POSIX
00032 #include <unistd.h>
00033 #include <sys/time.h>
00034 #include <sys/file.h>
00035 #include <sys/types.h>
00036 #include <sys/stat.h>
00037 #include <sys/socket.h>
00038 #include <fcntl.h>
00039 #endif
00040 using namespace std;
00041 #define endl "\n"
00042 
00043 // ///////////////////////////////////////////////////////////////////////////
00044 // this file includes the version number
00045 // ///////////////////////////////////////////////////////////////////////////
00046 #include "mdp_version.h"
00047 
00048 // ///////////////////////////////////////////////////////////////////////////
00049 // all gobal macros used by MDP
00050 // ///////////////////////////////////////////////////////////////////////////
00051 #include "mdp_macros.h"
00052 
00053 // ///////////////////////////////////////////////////////////////////////////
00054 // all global varibales except mdp,mpi and mdp_random
00055 // ///////////////////////////////////////////////////////////////////////////
00056 #include "mdp_global_vars.h"
00057 
00058 // ///////////////////////////////////////////////////////////////////////////
00059 // faster dynamic allocation (no excpections)
00060 // ///////////////////////////////////////////////////////////////////////////
00061 #include "mdp_dynalloc.h"
00062 
00063 // ///////////////////////////////////////////////////////////////////////////
00064 // function to convert endianess
00065 // ///////////////////////////////////////////////////////////////////////////
00066 #include "mdp_endianess_converter.h"
00067 
00068 // ///////////////////////////////////////////////////////////////////////////
00069 // this is the official mdp_timer (replaces JIM_timer since not portable
00070 // ///////////////////////////////////////////////////////////////////////////
00071 #include "mdp_timer.h"
00072 
00073 // ///////////////////////////////////////////////////////////////////////////
00074 // mdp implementation of complex numbres (portable ansi)
00075 // ///////////////////////////////////////////////////////////////////////////
00076 #include "mdp_complex.h"
00077 
00078 // ///////////////////////////////////////////////////////////////////////////
00079 // integer delta function
00080 // ///////////////////////////////////////////////////////////////////////////
00081 #include "mdp_delta.h"
00082 
00083 // ///////////////////////////////////////////////////////////////////////////
00084 // implementation of multidimentional array, better than STL
00085 // (class mdp_array used to be class DynamicArray)
00086 // ///////////////////////////////////////////////////////////////////////////
00087 #include "mdp_array.h"
00088 
00089 // ///////////////////////////////////////////////////////////////////////////
00090 // this file includes stuff for sse2 optimization 
00091 // ///////////////////////////////////////////////////////////////////////////
00092 #if defined(SSE2)
00093 #include "fermiqcd_sse.h"
00094 #endif
00095 
00096 // ///////////////////////////////////////////////////////////////////////////
00097 // implementation of the mdp_matrix object
00098 // (class mdp_matrix is a more general implementation of class mdp_matrix)
00099 // ///////////////////////////////////////////////////////////////////////////
00100 #include "mdp_matrix.h"
00101 
00102 // ///////////////////////////////////////////////////////////////////////////
00103 // class for logging (not very developed!)
00104 // ///////////////////////////////////////////////////////////////////////////
00105 #include "mdp_log.h"
00106 
00107 // ///////////////////////////////////////////////////////////////////////////
00108 // parallel simulator
00109 // handy for debugging, multithreading and mosix systems
00110 // ///////////////////////////////////////////////////////////////////////////
00111 #ifndef NO_POSIX
00112 #include "mdp_psim.h"
00113 #endif
00114 
00115 // ///////////////////////////////////////////////////////////////////////////
00116 // this is a wrapper to Message Passing Interface (is one uses it)
00117 // replace this funcitons to change communication protocol
00118 // ///////////////////////////////////////////////////////////////////////////
00119 #include "mdp_communicator.h"
00120 
00121 // ///////////////////////////////////////////////////////////////////////////
00122 // this defined the class mdp_prng and the obj mdp_random
00123 // (attantion that ::SU<T>(int n) only works with gcc,
00124 //  VC does not support templates, therefore ::SU(int n) only for float)
00125 // ///////////////////////////////////////////////////////////////////////////
00126 #include "mdp_prng.h"
00127 
00128 // ///////////////////////////////////////////////////////////////////////////
00129 // mdp_jackboot is a class for statictical analysis
00130 // ///////////////////////////////////////////////////////////////////////////
00131 #include "mdp_jackboot.h"
00132 
00133 // ///////////////////////////////////////////////////////////////////////////
00134 // this is a collection of possible lattice topologies
00135 // ///////////////////////////////////////////////////////////////////////////
00136 #include "mdp_topologies.h"
00137 
00138 // ///////////////////////////////////////////////////////////////////////////
00139 // a collection of possible lattice partitionings
00140 // ///////////////////////////////////////////////////////////////////////////
00141 #include "mdp_partitionings.h"
00142 
00143 
00144 // ///////////////////////////////////////////////////////////////////////////
00145 // implementation of the class mdp_lattice
00146 // (used to ge generic_lattice)
00147 // ///////////////////////////////////////////////////////////////////////////
00148 #include "mdp_lattice.h"
00149 
00150 // ///////////////////////////////////////////////////////////////////////////
00151 // implementation of a vector on a lattice (used internally for conversions)
00152 // ///////////////////////////////////////////////////////////////////////////
00153 #include "mdp_vector.h"
00154 
00155 // ///////////////////////////////////////////////////////////////////////////
00156 // class mdp_site (used to be site) a point on a lattice
00157 // ///////////////////////////////////////////////////////////////////////////
00158 #include "mdp_site.h"
00159 
00160 // ///////////////////////////////////////////////////////////////////////////
00161 // implementation of the class mdp_field<>
00162 // (used to be generic_field<>)
00163 // ///////////////////////////////////////////////////////////////////////////
00164 #include "mdp_field.h"
00165 
00166 // ///////////////////////////////////////////////////////////////////////////
00167 // implementation of the communicaton function mdp_field::update()
00168 // ///////////////////////////////////////////////////////////////////////////
00169 #include "mdp_field_update.h"
00170 
00171 // ///////////////////////////////////////////////////////////////////////////
00172 // implementation of the I/O function mdp_field::load()
00173 // ///////////////////////////////////////////////////////////////////////////
00174 #include "mdp_field_load.h"
00175 
00176 // ///////////////////////////////////////////////////////////////////////////
00177 // implementation of the I/O function mdp_field::save()
00178 // ///////////////////////////////////////////////////////////////////////////
00179 #include "mdp_field_save.h"
00180 
00181 #ifdef INCLUDE_DEPRECATED_IO
00182 #include "mdp_deprecatedIO.h"
00183 #endif
00184 
00185 // ///////////////////////////////////////////////////////////////////////////
00186 // an auxiliary function that returns (-1)^n
00187 // ///////////////////////////////////////////////////////////////////////////
00188 #include "mdp_mod2sign.h"
00189 
00190 // ///////////////////////////////////////////////////////////////////////////
00191 // very clever function to compute permutations of lists
00192 // ///////////////////////////////////////////////////////////////////////////
00193 #include "mdp_permutations.h"
00194 
00195 // ///////////////////////////////////////////////////////////////////////////
00196 // implementation of the class mdp_complex_field
00197 // ///////////////////////////////////////////////////////////////////////////
00198 #include "mdp_complex_field.h"
00199 
00200 // ///////////////////////////////////////////////////////////////////////////
00201 // an mdp_field of matrices
00202 // (more general than mdp_matrix_field)
00203 // ///////////////////////////////////////////////////////////////////////////
00204 #include "mdp_matrix_field.h"
00205 
00206 // ///////////////////////////////////////////////////////////////////////////
00207 // an mdp_field of a vector matrices
00208 // (more general than Nmdp_matrix_field)
00209 // ///////////////////////////////////////////////////////////////////////////
00210 #include "mdp_vector_field.h"
00211 
00212 // ///////////////////////////////////////////////////////////////////////////
00213 // an mdp_field of vector (1xN matrix) 
00214 // (more general than Vector_field)
00215 // ///////////////////////////////////////////////////////////////////////////
00216 #include "mdp_nmatrix_field.h"
00217 
00218 // ///////////////////////////////////////////////////////////////////////////
00219 // compatibility functions map MDP 1.3 into MDP 2.0 or higher
00220 // (only the syntax of mdp_random::SU(int n) is not portable
00221 //  everything else is portable if according to specs)
00222 // ///////////////////////////////////////////////////////////////////////////
00223 #include "mdp_compatibility_macros.h"
00224 
00225 // ///////////////////////////////////////////////////////////////////////////
00226 // functions to prompt the user for input values
00227 // ///////////////////////////////////////////////////////////////////////////
00228 #include "mdp_prompt.h"
00229 
00230 // ///////////////////////////////////////////////////////////////////////////
00231 // a container class for experimental results
00232 // ///////////////////////////////////////////////////////////////////////////
00233 #include "mdp_measure.h"
00234 
00235 // ///////////////////////////////////////////////////////////////////////////
00236 // test almost all up to here
00237 // ///////////////////////////////////////////////////////////////////////////
00238 #include "mdp_matrix_test.h"
00239 #include "mdp_field_test.h"
00240 
00241 // ///////////////////////////////////////////////////////////////////////////
00242 // various other utilities
00243 // ///////////////////////////////////////////////////////////////////////////
00244 #include "mdp_utils.h"
00245 #include "mdp_postscript.h"
00246 

Generated on Sun Feb 27 15:12:20 2005 by  doxygen 1.4.1