EvolvingObjects
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 
00048 class eoEsMutationInit
00049 {
00050 public :
00051 
00057     eoEsMutationInit(eoParser& _parser,
00058                      std::string _section="ES mutation parameters" ) :
00059         parser(_parser), repSection(_section),
00060         TauLclParam(0), TauGlbParam(0), TauBetaParam(0) {}
00061 
00063     virtual ~eoEsMutationInit() {}
00064 
00066     double TauLcl(void)
00067     {
00068         if (TauLclParam == 0)
00069         {
00070             TauLclParam = &parser.getORcreateParam(1.0, TauLclName(),
00071                                                    "Local Tau (before normalization)",
00072                                                    TauLclShort(), section());
00073         }
00074         return TauLclParam->value();
00075     }
00076 
00078     double TauGlb(void)
00079     {
00080         if (TauGlbParam == 0)
00081         {
00082             TauGlbParam = &parser.getORcreateParam(1.0, TauGlbName(),
00083                                                    "Global Tau (before normalization)",
00084                                                    TauGlbShort(), section());
00085         }
00086         return TauGlbParam->value();
00087     }
00088 
00090     double TauBeta(void)
00091     {
00092         if (TauBetaParam == 0)
00093         {
00094             TauBetaParam = &parser.getORcreateParam(0.0873, TauBetaName(),
00095                                                     "Beta", TauBetaShort(), section());
00096         }
00097         return TauBetaParam->value();
00098     }
00099 
00100   protected :
00101 
00102     virtual std::string section(void)                { return repSection; }
00103 
00104     virtual std::string TauLclName(void) const       { return "TauLoc"; }
00105     virtual char   TauLclShort(void) const           { return 'l'; }
00106 
00107     virtual std::string TauGlbName(void) const       { return "TauGlob"; }
00108     virtual char   TauGlbShort(void) const           { return 'g'; }
00109 
00110     virtual std::string TauBetaName(void) const      { return "Beta"; }
00111     virtual char   TauBetaShort(void) const          { return 'b'; }
00112 
00113 private:
00114 
00115     eoParser& parser;
00116     std::string repSection;
00117     eoValueParam<double>* TauLclParam;
00118     eoValueParam<double>* TauGlbParam;
00119     eoValueParam<double>* TauBetaParam;
00120 };
00121 
00122 #endif
 All Classes Namespaces Files Functions Variables Typedefs Friends