/** Return member rules (no members) */ const MemberRules& Mntr_Model::getParameterRules(void) const { static MemberRules memberRules; static bool rules_set = false; if ( !rules_set ) { memberRules.push_back( new ArgumentRule("filename" , RlString::getClassTypeSpec() , "The name of the file where to store the values.", ArgumentRule::BY_VALUE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule("printgen" , Natural::getClassTypeSpec() , "The frequency how often to sample values.", ArgumentRule::BY_VALUE, ArgumentRule::ANY, new Natural(1) ) ); memberRules.push_back( new ArgumentRule("separator" , RlString::getClassTypeSpec() , "The separator between different variables.", ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RlString("\t") ) ); memberRules.push_back( new ArgumentRule("posterior" , RlBoolean::getClassTypeSpec(), "Should we print the joint posterior probability?", ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RlBoolean(true) ) ); memberRules.push_back( new ArgumentRule("likelihood" , RlBoolean::getClassTypeSpec(), "Should we print the likelihood?", ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RlBoolean(true) ) ); memberRules.push_back( new ArgumentRule("prior" , RlBoolean::getClassTypeSpec(), "Should we print the joint prior probability?", ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RlBoolean(true) ) ); memberRules.push_back( new ArgumentRule("append" , RlBoolean::getClassTypeSpec(), "Should we append to an existing file?", ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RlBoolean(false) ) ); memberRules.push_back( new ArgumentRule("stochasticOnly", RlBoolean::getClassTypeSpec(), "Should we monitor stochastic variables only?", ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RlBoolean(false) ) ); memberRules.push_back( new ArgumentRule("version", RlBoolean::getClassTypeSpec(), "Should we record the software version?", ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RlBoolean(false) ) ); rules_set = true; } return memberRules; }
/** Return member rules (no members) */ const MemberRules& ParallelMcmcmc::getMemberRules(void) const { static MemberRules memberRules; static bool rulesSet = false; if ( !rulesSet ) { memberRules.push_back( new ArgumentRule("model", true, Model::getClassTypeSpec() ) ); memberRules.push_back( new ArgumentRule("monitors", true, WorkspaceVector<Monitor>::getClassTypeSpec() ) ); memberRules.push_back( new ArgumentRule("moves", true, WorkspaceVector<Move>::getClassTypeSpec() ) ); memberRules.push_back( new ArgumentRule("numChains", true, Natural::getClassTypeSpec(), new Natural(4) ) ); memberRules.push_back( new ArgumentRule("numProcessors", true, Natural::getClassTypeSpec(), new Natural(4) ) ); memberRules.push_back( new ArgumentRule("swapInterval", true, Natural::getClassTypeSpec(), new Natural(100)) ); memberRules.push_back( new ArgumentRule("deltaHeat", true, Real::getClassTypeSpec(), new Real(0.2) ) ); memberRules.push_back( new ArgumentRule("sigmaHeat", true, Real::getClassTypeSpec(), new Real(1.0) ) ); memberRules.push_back( new ArgumentRule("startHeat", true, Real::getClassTypeSpec(), new Real(1.0)) ); std::vector<RlString> options; options.push_back( RlString("sequential") ); options.push_back( RlString("random") ); options.push_back( RlString("single") ); memberRules.push_back( new OptionRule( "moveschedule", new RlString( "random" ), options ) ); rulesSet = true; } return memberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the diversity-dependent pure-birth process are: * (1) the initial speciation rate lambda which must be a positive real. * (2) the carrying capacity that must be a natural number. * (3) all member rules specified by BirthDeathProcess. * * \return The member rules. */ const MemberRules& Dist_divDepYuleProcess::getMemberRules(void) const { static MemberRules distcBirthDeathMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distcBirthDeathMemberRules.push_back( new ArgumentRule( "lambda" , true, RealPos::getClassTypeSpec() ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "capacity", true, Natural::getClassTypeSpec() ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "origin", true, RealPos::getClassTypeSpec() ) ); std::vector<RlString> optionsCondition; optionsCondition.push_back( RlString("time") ); optionsCondition.push_back( RlString("survival") ); optionsCondition.push_back( RlString("nTaxa") ); distcBirthDeathMemberRules.push_back( new OptionRule( "condition", new RlString("survival"), optionsCondition ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "nTaxa" , true, Natural::getClassTypeSpec() ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "names" , true, ModelVector<RlString>::getClassTypeSpec() ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "constraints" , true, ModelVector<Clade>::getClassTypeSpec(), new ModelVector<Clade>() ) ); // add the rules from the base class const MemberRules &parentRules = TypedDistribution<TimeTree>::getMemberRules(); distcBirthDeathMemberRules.insert(distcBirthDeathMemberRules.end(), parentRules.begin(), parentRules.end()); rulesSet = true; } return distcBirthDeathMemberRules; }
/** Return member rules (no members) */ const MemberRules& Dist_offsetExponential::getMemberRules(void) const { static MemberRules distExpMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distExpMemberRules.push_back( new ArgumentRule( "lambda", true, RealPos::getClassTypeSpec() , new RealPos(1.0) ) ); distExpMemberRules.push_back( new ArgumentRule( "offset", true, Real::getClassTypeSpec() ) ); rulesSet = true; } return distExpMemberRules; }
/* Return member rules */ const MemberRules& Dist_CharacterDependentCladoBirthDeathProcess::getParameterRules(void) const { static MemberRules memberRules; static bool rules_set = false; if ( !rules_set ) { memberRules.push_back( new ArgumentRule( "rootAge", RealPos::getClassTypeSpec(), "The age of the root.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "cladoEventMap", MatrixReal::getClassTypeSpec(), "The map of speciation rates to cladogenetic event types.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "extinctionRates", ModelVector<Real>::getClassTypeSpec(), "The vector of extinction rates for the observed states.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "Q", RateGenerator::getClassTypeSpec(), "The rate matrix of jumping between rate categories.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "delta", RealPos::getClassTypeSpec(), "The rate-factor of jumping between rate categories.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "pi", Simplex::getClassTypeSpec(), "State frequencies at the root.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "rho", Probability::getClassTypeSpec(), "The taxon sampling probability.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, new RealPos(1.0) ) ); std::vector<std::string> optionsCondition; optionsCondition.push_back( "time" ); //optionsCondition.push_back( "survival" ); memberRules.push_back( new OptionRule( "condition", new RlString("time"), optionsCondition, "The condition of the birth-death process." ) ); memberRules.push_back( new ArgumentRule( "taxa", ModelVector<Taxon>::getClassTypeSpec(), "The taxa used for simulation.", ArgumentRule::BY_VALUE , ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "nTimeSlices", RealPos::getClassTypeSpec(), "The number of time slices for the numeric ODE.", ArgumentRule::BY_VALUE , ArgumentRule::ANY, new RealPos(500.0) ) ); rules_set = true; } return memberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the scale move are: * (1) the variable which must be a positive real. * (2) the tuning parameter lambda that defines the size of the proposal (positive real) * (3) a flag whether auto-tuning should be used. * * \return The member rules. */ const MemberRules& Move_NodeCharacterHistoryRejectionSample::getMemberRules(void) const { static MemberRules nodeChrsMoveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { nodeChrsMoveMemberRules.push_back( new ArgumentRule( "ctmc", false, AbstractDiscreteCharacterData::getClassTypeSpec() ) ); nodeChrsMoveMemberRules.push_back( new ArgumentRule( "qmap", false, RateMap::getClassTypeSpec() ) ); nodeChrsMoveMemberRules.push_back( new ArgumentRule( "tree", false, TimeTree::getClassTypeSpec() ) ); nodeChrsMoveMemberRules.push_back( new ArgumentRule( "lambda", true, Probability::getClassTypeSpec() , new Probability(1.0) ) ); // nodeChrsMoveMemberRules.push_back( new ArgumentRule( "type", true, RlString::getClassTypeSpec(), new RlString("std") ) ); std::vector<RlString> options; options.push_back( RlString("std") ); options.push_back( RlString("biogeo") ); nodeChrsMoveMemberRules.push_back( new OptionRule( "type", new RlString("std"), options ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getMemberRules(); nodeChrsMoveMemberRules.insert( nodeChrsMoveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return nodeChrsMoveMemberRules; }
/** Return member rules (no members) */ const MemberRules& Clade::getParameterRules(void) const { static MemberRules modelMemberRules; static bool rulesSet = false; if ( !rulesSet ) { modelMemberRules.push_back( new ArgumentRule("taxonName", RlString::getClassTypeSpec(), ArgumentRule::BY_VALUE ) ); modelMemberRules.push_back( new Ellipsis(RlString::getClassTypeSpec() ) ); rulesSet = true; } return modelMemberRules; }
/** Return member rules (no members) */ const MemberRules& Dist_bernoulli::getParameterRules(void) const { static MemberRules distBernMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distBernMemberRules.push_back( new ArgumentRule( "p", Probability::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE ) ); rulesSet = true; } return distBernMemberRules; }
/** Return member rules (no members) */ const MemberRules& Dist_mvtnorm::getMemberRules(void) const { static MemberRules distExpMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distExpMemberRules.push_back( new ArgumentRule( "mean", true, ModelVector<Real>::getClassTypeSpec() ) ); distExpMemberRules.push_back( new ArgumentRule( "precision", true, RealSymmetricMatrix::getClassTypeSpec() ) ); rulesSet = true; } return distExpMemberRules; }
/** Return member rules (no members) */ const MemberRules& Dist_exponentialOffset::getParameterRules(void) const { static MemberRules distExpMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distExpMemberRules.push_back( new ArgumentRule( "lambda", RealPos::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); distExpMemberRules.push_back( new ArgumentRule( "offset", Real::getClassTypeSpec() , ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); rulesSet = true; } return distExpMemberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the homogeneous birth-death process are: * (1) time of the process since the origin. * (2) time of the process since the rootAge. * (3) the sampling probability. * (4) the sampling strategy. * (5) the condition. * (6) the number of taxa. * (7) the taxon names. * (8) the clade constraints. * * \return The member rules. */ const MemberRules& BirthDeathProcess::getMemberRules(void) const { static MemberRules distcBirthDeathMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distcBirthDeathMemberRules.push_back( new ArgumentRule( "origin" , RealPos::getClassTypeSpec() , ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, NULL ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "rootAge", RealPos::getClassTypeSpec() , ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, NULL ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "rho" , Probability::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, new Probability(1.0) ) ); std::vector<std::string> optionsStrategy; optionsStrategy.push_back( "uniform" ); optionsStrategy.push_back( "diversified" ); distcBirthDeathMemberRules.push_back( new OptionRule( "samplingStrategy", new RlString("uniform"), optionsStrategy ) ); std::vector<std::string> optionsCondition; optionsCondition.push_back( "time" ); optionsCondition.push_back( "survival" ); optionsCondition.push_back( "nTaxa" ); distcBirthDeathMemberRules.push_back( new OptionRule( "condition", new RlString("survival"), optionsCondition ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "nTaxa" , Natural::getClassTypeSpec(), ArgumentRule::BY_VALUE ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "names" , ModelVector<RlString>::getClassTypeSpec(), ArgumentRule::BY_VALUE ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "constraints", ModelVector<Clade>::getClassTypeSpec(), ArgumentRule::BY_VALUE, ArgumentRule::ANY, new ModelVector<Clade>() ) ); rulesSet = true; } return distcBirthDeathMemberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the geometric distribution are: * (1) the rate lambda which must be a positive real between 0 and 1 (= a probability). * * \return The member rules. */ const MemberRules& Dist_geom::getParameterRules(void) const { static MemberRules dist_member_rules; static bool rules_set = false; if ( !rules_set ) { dist_member_rules.push_back( new ArgumentRule( "p", Probability::getClassTypeSpec(), "The probability of success.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); rules_set = true; } return dist_member_rules; }
/** Return member rules (no members) */ const MemberRules& Taxon::getMemberRules(void) const { static MemberRules modelMemberRules; static bool rulesSet = false; if ( !rulesSet ) { modelMemberRules.push_back( new ArgumentRule("taxonName", true, RlString::getClassTypeSpec() ) ); modelMemberRules.push_back( new ArgumentRule("speciesName", true, RlString::getClassTypeSpec() ) ); // modelMemberRules.push_back( new ArgumentRule("date", true, RlDate::getClassTypeSpec() ) ); rulesSet = true; } return modelMemberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the Poisson distribution are: * (1) the rate lambda which must be a positive real between 0 and 1 (= a probability). * * \return The member rules. */ const MemberRules& Dist_poisson::getParameterRules(void) const { static MemberRules distPoisMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distPoisMemberRules.push_back( new ArgumentRule( "lambda", RealPos::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE ) ); rulesSet = true; } return distPoisMemberRules; }
/** Return member rules (no members) */ const MemberRules& Dist_dirichlet::getParameterRules(void) const { static MemberRules memberRules; static bool rulesSet = false; if ( !rulesSet ) { memberRules.push_back( new ArgumentRule( "alpha", ModelVector<RealPos>::getClassTypeSpec(), "The concentration parameter.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); rulesSet = true; } return memberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the geometric distribution are: * (1) the rate lambda which must be a positive real between 0 and 1 (= a probability). * * \return The member rules. */ const MemberRules& Dist_geom::getMemberRules(void) const { static MemberRules distGeomMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distGeomMemberRules.push_back( new ArgumentRule( "p", true, Probability::getClassTypeSpec() ) ); rulesSet = true; } return distGeomMemberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the Multispecies Coalescent process are: * (1) Species tree rooted triplet distribution. * (2) Whether we use species names or taxons. * * \return The member rules. */ const MemberRules& Dist_MPEST::getMemberRules(void) const { static MemberRules MPESTMemberRules; static bool rulesSet = false; if ( !rulesSet ) { MPESTMemberRules.push_back( new ArgumentRule( "speciesTree", RootedTripletDistribution::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE ) ); //MPESTMemberRules.push_back( new ArgumentRule( "geneTrees", RootedTripletDistribution::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE ) ); MPESTMemberRules.push_back( new ArgumentRule( "useSpecies", RlBoolean::getClassTypeSpec(), ArgumentRule::BY_VALUE ) ); rulesSet = true; } return MPESTMemberRules; }
/** Return member rules (no members) */ const MemberRules& Dist_offsetLnorm::getMemberRules(void) const { static MemberRules distLnormMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distLnormMemberRules.push_back( new ArgumentRule( "mean", true, Real::getClassTypeSpec(), new Real(0.0) ) ); distLnormMemberRules.push_back( new ArgumentRule( "sd" , true, RealPos::getClassTypeSpec(), new RealPos(1.0) ) ); distLnormMemberRules.push_back( new ArgumentRule( "offset", true, Real::getClassTypeSpec() ) ); rulesSet = true; } return distLnormMemberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the uniform topology distribution are: * (1) the number of taxa. * (2) the names of the taxa. * * \return The member rules. */ const MemberRules& Dist_uniformTopology::getMemberRules(void) const { static MemberRules distUniformTopologyMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distUniformTopologyMemberRules.push_back( new ArgumentRule( "nTaxa" , true, Natural::getClassTypeSpec() ) ); distUniformTopologyMemberRules.push_back( new ArgumentRule( "names" , true, ModelVector<RlString>::getClassTypeSpec() ) ); rulesSet = true; } return distUniformTopologyMemberRules; }
/** Return member rules (no members) */ const MemberRules& Dist_lnorm::getParameterRules(void) const { static MemberRules distLnormMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distLnormMemberRules.push_back( new ArgumentRule( "mean", Real::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); distLnormMemberRules.push_back( new ArgumentRule( "sd" , RealPos::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); rulesSet = true; } return distLnormMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_SubtreeScale::getMemberRules(void) const { static MemberRules nniMemberRules; static bool rulesSet = false; if ( !rulesSet ) { nniMemberRules.push_back( new ArgumentRule( "tree", false, TimeTree::getClassTypeSpec() ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getMemberRules(); nniMemberRules.insert( nniMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return nniMemberRules; }
/** Return member rules */ const MemberRules& Dist_UniformNatural::getParameterRules(void) const { static MemberRules distUnifMemberRules; static bool rules_set = false; if ( !rules_set ) { distUnifMemberRules.push_back( new ArgumentRule( "lower", Natural::getClassTypeSpec(), "The lower bound.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); distUnifMemberRules.push_back( new ArgumentRule( "upper", Natural::getClassTypeSpec(), "The upper bound.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); rules_set = true; } return distUnifMemberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the Poisson distribution are: * (1) the rate lambda which must be a positive real between 0 and 1 (= a probability). * * \return The member rules. */ const MemberRules& Dist_cppNormal::getParameterRules(void) const { static MemberRules distPoisMemberRules; static bool rulesSet = false; if ( !rulesSet ) { distPoisMemberRules.push_back( new ArgumentRule( "lambda", RealPos::getClassTypeSpec(), "The rate of the Poisson distribution.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); distPoisMemberRules.push_back( new ArgumentRule( "mu", Real::getClassTypeSpec(), "The mean of the normal distribution", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); distPoisMemberRules.push_back( new ArgumentRule( "sigma", RealPos::getClassTypeSpec(), "The standard deviation of the normal distribution", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); rulesSet = true; } return distPoisMemberRules; }
/** Return member rules (no members) */ const MemberRules& Dist_lnorm::getParameterRules(void) const { static MemberRules memberRules; static bool rulesSet = false; if ( !rulesSet ) { memberRules.push_back( new ArgumentRule( "mean", Real::getClassTypeSpec() , "The mean in log-space (observed mean is exp(m))." , ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "sd" , RealPos::getClassTypeSpec(), "The standard deviation in log-space." , ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); rulesSet = true; } return memberRules; }
/* Return member rules */ const MemberRules& Dist_uniformTimeTree::getParameterRules(void) const { static MemberRules dist_member_rules; static bool rules_set = false; if ( !rules_set ) { dist_member_rules.push_back( new ArgumentRule( "rootAge" , RealPos::getClassTypeSpec() , "The age of the root.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); dist_member_rules.push_back( new ArgumentRule( "taxa" , ModelVector<Taxon>::getClassTypeSpec() , "The taxa used for simulation.", ArgumentRule::BY_VALUE, ArgumentRule::ANY ) ); rules_set = true; } return dist_member_rules; }
/** Return member rules (no members) */ const MemberRules& Dist_ornsteinUhlenbeck::getMemberRules(void) const { static MemberRules dist; static bool rulesSet = false; if ( !rulesSet ) { dist.push_back( new ArgumentRule( "tree" , TimeTree::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE ) ); dist.push_back( new ArgumentRule( "sigma", RealPos::getClassTypeSpec() , ArgumentRule::BY_CONSTANT_REFERENCE ) ); dist.push_back( new ArgumentRule( "mean" , Real::getClassTypeSpec() , ArgumentRule::BY_CONSTANT_REFERENCE ) ); dist.push_back( new ArgumentRule( "phi" , RealPos::getClassTypeSpec() , ArgumentRule::BY_CONSTANT_REFERENCE ) ); rulesSet = true; } return dist; }
/** Return member rules (no members) */ const MemberRules& Model::getParameterRules(void) const { static MemberRules modelMemberRules; static bool rulesSet = false; if ( !rulesSet ) { modelMemberRules.push_back( new ArgumentRule("x", RevObject::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE ) ); modelMemberRules.push_back( new Ellipsis( RevObject::getClassTypeSpec() ) ); rulesSet = true; } return modelMemberRules; }
/** Return member rules (no members) */ const MemberRules& SteppingStoneSampler::getMemberRules(void) const { static MemberRules samplerMemberRules; static bool rulesSet = false; if ( !rulesSet ) { samplerMemberRules.push_back( new ArgumentRule("filename", true, RlString::getClassTypeSpec() ) ); samplerMemberRules.push_back( new ArgumentRule("powerColumnName", true, RlString::getClassTypeSpec() ) ); samplerMemberRules.push_back( new ArgumentRule("likelihoodColumnName", true, RlString::getClassTypeSpec() ) ); samplerMemberRules.push_back( new ArgumentRule("delimiter", true, RlString::getClassTypeSpec(), new RlString( "\t" ) ) ); rulesSet = true; } return samplerMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_SynchronizedVectorFixedSingleElementSlide::getParameterRules(void) const { static MemberRules move_member_rules; static bool rules_set = false; if ( !rules_set ) { move_member_rules.push_back( new ArgumentRule( "x" , ModelVector<ModelVector<Real> >::getClassTypeSpec(), "The variable (a deterministic variable holding the vector of stochastic variable) on which this move operates.", ArgumentRule::BY_REFERENCE, ArgumentRule::DETERMINISTIC ) ); std::vector<TypeSpec> index_types; index_types.push_back( Natural::getClassTypeSpec() ); index_types.push_back( ModelVector<Natural>::getClassTypeSpec() ); move_member_rules.push_back( new ArgumentRule( "element", index_types, "The index or indices of the element to scale.", ArgumentRule::BY_VALUE, ArgumentRule::ANY ) ); move_member_rules.push_back( new ArgumentRule( "lambda" , RealPos::getClassTypeSpec() , "The scaling factor (strength) of this move.", ArgumentRule::BY_VALUE , ArgumentRule::ANY, new Real(1.0) ) ); move_member_rules.push_back( new ArgumentRule( "tune" , RlBoolean::getClassTypeSpec() , "Should we tune the scaling factor during burnin?", ArgumentRule::BY_VALUE , ArgumentRule::ANY, new RlBoolean( true ) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); move_member_rules.insert( move_member_rules.end(), inheritedRules.begin(), inheritedRules.end() ); rules_set = true; } return move_member_rules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the homogeneous birth-death process are: * (1) time of the process since the origin. * (2) time of the process since the rootAge. * (3) the sampling probability. * (4) the sampling strategy. * (5) the condition. * (6) the number of taxa. * (7) the taxon names. * (8) the clade constraints. * * \return The member rules. */ const MemberRules& BirthDeathProcess::getParameterRules(void) const { static MemberRules memberRules; static bool rulesSet = false; if ( !rulesSet ) { memberRules.push_back( new ArgumentRule( "rootAge", RealPos::getClassTypeSpec() , "The time of the process starting at the root, if applicable.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "rho" , Probability::getClassTypeSpec(), "The taxon sampling probability.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, new Probability(1.0) ) ); std::vector<std::string> optionsStrategy; optionsStrategy.push_back( "uniform" ); optionsStrategy.push_back( "diversified" ); memberRules.push_back( new OptionRule( "samplingStrategy", new RlString("uniform"), optionsStrategy, "The sampling strategy of including taxa at the present." ) ); std::vector<std::string> optionsCondition; optionsCondition.push_back( "time" ); optionsCondition.push_back( "survival" ); optionsCondition.push_back( "nTaxa" ); memberRules.push_back( new OptionRule( "condition", new RlString("survival"), optionsCondition, "The condition of the process." ) ); memberRules.push_back( new ArgumentRule( "taxa" , ModelVector<Taxon>::getClassTypeSpec(), "The taxa used for initialization.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "incompleteClades" , ModelVector<Clade>::getClassTypeSpec(), "Vector of incompletely sampled clades with number of missing species.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, NULL ) ); rulesSet = true; } return memberRules; }