00001 // -*- C++ -*- 00002 // $Id: no_link_smearing.h,v 3.3 2008/11/04 18:43:57 edwards Exp $ 00003 /*! \file 00004 * \brief No link smearing 00005 */ 00006 00007 #ifndef __no_link_smearing_h__ 00008 #define __no_link_smearing_h__ 00009 00010 #include "meas/smear/link_smearing.h" 00011 00012 namespace Chroma 00013 { 00014 00015 //! Name and registration 00016 namespace NoLinkSmearingEnv 00017 { 00018 bool registerAll(); 00019 00020 //! Return the name 00021 std::string getName(); 00022 00023 //! Params for No link smearing 00024 /*! @ingroup smear */ 00025 struct Params 00026 { 00027 Params() {} 00028 Params(XMLReader& in, const std::string& path); 00029 void writeXML(XMLWriter& in, const std::string& path) const; 00030 }; 00031 00032 00033 //! No link smearing 00034 /*! @ingroup smear 00035 * 00036 * No link smearing object 00037 */ 00038 class LinkSmear : public LinkSmearing 00039 { 00040 public: 00041 //! Full constructor 00042 LinkSmear(const Params& p) : params(p) {} 00043 00044 //! Smear the links 00045 void operator()(multi1d<LatticeColorMatrix>& u) const; 00046 00047 private: 00048 //! Hide partial constructor 00049 LinkSmear() {} 00050 00051 private: 00052 Params params; /*!< smearing params */ 00053 }; 00054 00055 } // end namespace 00056 00057 00058 //! Reader 00059 /*! @ingroup smear */ 00060 void read(XMLReader& xml, const string& path, NoLinkSmearingEnv::Params& param); 00061 00062 //! Writer 00063 /*! @ingroup smear */ 00064 void write(XMLWriter& xml, const string& path, const NoLinkSmearingEnv::Params& param); 00065 00066 } // end namespace Chroma 00067 00068 00069 #endif
1.4.7