eoEsMutationInit.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; fill-column: 80 -*-
00002 
00003 //-----------------------------------------------------------------------------
00004 // eoEsMutationInit.h
00005 // (c) GeNeura Team, 1998 - EEAAX 1999 - Maarten Keijzer 2000
00006 /*
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU Lesser General Public
00009     License as published by the Free Software Foundation; either
00010     version 2 of the License, or (at your option) any later version.
00011 
00012     This library is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015     Lesser General Public License for more details.
00016 
00017     You should have received a copy of the GNU Lesser General Public
00018     License along with this library; if not, write to the Free Software
00019     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00020 
00021     Contact: todos@geneura.ugr.es, http://geneura.ugr.es
00022              Marc.Schoenauer@polytechnique.fr
00023              mak@dhi.dk
00024  */
00025 //-----------------------------------------------------------------------------
00026 
00027 #ifndef _eoEsMutationInit_h
00028 #define _eoEsMutationInit_h
00029 
00030 #include <utils/eoParser.h>
00031 
00047 class eoEsMutationInit
00048 {
00049 public :
00050 
00056     eoEsMutationInit(eoParser& _parser,
00057                      std::string _section="ES mutation parameters" ) :
00058         parser(_parser), repSection(_section),
00059         TauLclParam(0), TauGlbParam(0), TauBetaParam(0) {}
00060 
00062     virtual ~eoEsMutationInit() {}
00063 
00065     double TauLcl(void)
00066     {
00067         if (TauLclParam == 0)
00068         {
00069             TauLclParam = &parser.getORcreateParam(1.0, TauLclName(),
00070                                                    "Local Tau (before normalization)",
00071                                                    TauLclShort(), section());
00072         }
00073         return TauLclParam->value();
00074     }
00075 
00077     double TauGlb(void)
00078     {
00079         if (TauGlbParam == 0)
00080         {
00081             TauGlbParam = &parser.getORcreateParam(1.0, TauGlbName(),
00082                                                    "Global Tau (before normalization)",
00083                                                    TauGlbShort(), section());
00084         }
00085         return TauGlbParam->value();
00086     }
00087 
00089     double TauBeta(void)
00090     {
00091         if (TauBetaParam == 0)
00092         {
00093             TauBetaParam = &parser.getORcreateParam(0.0873, TauBetaName(),
00094                                                     "Beta", TauBetaShort(), section());
00095         }
00096         return TauBetaParam->value();
00097     }
00098 
00099   protected :
00100 
00101     virtual std::string section(void)                { return repSection; }
00102 
00103     virtual std::string TauLclName(void) const       { return "TauLoc"; }
00104     virtual char   TauLclShort(void) const           { return 'l'; }
00105 
00106     virtual std::string TauGlbName(void) const       { return "TauGlob"; }
00107     virtual char   TauGlbShort(void) const           { return 'g'; }
00108 
00109     virtual std::string TauBetaName(void) const      { return "Beta"; }
00110     virtual char   TauBetaShort(void) const          { return 'b'; }
00111 
00112 private:
00113 
00114     eoParser& parser;
00115     std::string repSection;
00116     eoValueParam<double>* TauLclParam;
00117     eoValueParam<double>* TauGlbParam;
00118     eoValueParam<double>* TauBetaParam;
00119 };
00120 
00121 #endif

Generated on Thu Apr 19 11:02:27 2007 for EO by  doxygen 1.4.7