/** 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 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; }
/** * 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_serialBDP::getParameterRules(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( "lambda" , RealPos::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "mu" , RealPos::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, new RealPos(0.0) ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "psi" , RealPos::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, new RealPos(0.0) ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "rho" , Probability::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, new Probability(1.0) ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "timeSinceLastSample", RealPos::getClassTypeSpec(), ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, new RealPos(0.0) ) ); 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( "names" , ModelVector<RlString>::getClassTypeSpec(), ArgumentRule::BY_VALUE ) ); distcBirthDeathMemberRules.push_back( new ArgumentRule( "constraints", ModelVector<Clade>::getClassTypeSpec(), ArgumentRule::BY_VALUE, ArgumentRule::ANY, new ModelVector<Clade>() ) ); // add the rules from the base class const MemberRules &parentRules = TypedDistribution<TimeTree>::getParameterRules(); distcBirthDeathMemberRules.insert(distcBirthDeathMemberRules.end(), parentRules.begin(), parentRules.end()); rulesSet = true; } return distcBirthDeathMemberRules; }
/** * 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& 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 (no members) */ const MemberRules& HillClimber::getParameterRules(void) const { static MemberRules memberRules; static bool rules_set = false; if ( !rules_set ) { // add the rules from the base class const MemberRules &parentRules = MaximumLikelihoodAnalysis::getParameterRules(); memberRules.insert(memberRules.end(), parentRules.begin(), parentRules.end()); 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& RevLanguage::Move_CharacterHistory::getParameterRules(void) const { static MemberRules nodeChrsmove_member_rules; static bool rules_set = false; if ( !rules_set ) { nodeChrsmove_member_rules.push_back( new ArgumentRule( "ctmc", AbstractHomologousDiscreteCharacterData::getClassTypeSpec(), "The PhyloCTMC variable.", ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); nodeChrsmove_member_rules.push_back( new ArgumentRule( "qmap", RateMap::getClassTypeSpec() , "Some rate-map.", ArgumentRule::BY_REFERENCE, ArgumentRule::ANY ) ); nodeChrsmove_member_rules.push_back( new ArgumentRule( "tree", Tree::getClassTypeSpec() , "The tree.", ArgumentRule::BY_REFERENCE, ArgumentRule::ANY ) ); nodeChrsmove_member_rules.push_back( new ArgumentRule( "lambda", Probability::getClassTypeSpec() , "", ArgumentRule::BY_VALUE , ArgumentRule::ANY, new Probability(1.0) ) ); std::vector<std::string> optionsType; optionsType.push_back( "Biogeo" ); optionsType.push_back( "DNA" ); optionsType.push_back( "RNA" ); optionsType.push_back( "AA" ); optionsType.push_back( "Protein" ); optionsType.push_back( "Standard" ); nodeChrsmove_member_rules.push_back( new OptionRule( "type", new RlString("Standard"), optionsType, "The data type." ) ); std::vector<std::string> optionsGraph; optionsGraph.push_back( "node" ); optionsGraph.push_back( "branch" ); nodeChrsmove_member_rules.push_back( new OptionRule( "graph", new RlString("node"), optionsGraph, "" ) ); std::vector<std::string> optionsProposal; optionsProposal.push_back( "rejection" ); optionsProposal.push_back( "uniformization" ); nodeChrsmove_member_rules.push_back( new OptionRule( "proposal", new RlString("rejection"), optionsProposal, "" ) ); /* Inherit weight from Move, put it after variable */ /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); nodeChrsmove_member_rules.insert( nodeChrsmove_member_rules.end(), inheritedRules.begin(), inheritedRules.end() ); rules_set = true; } return nodeChrsmove_member_rules; }
/** * 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 time-tree. * * \return The member rules. */ const MemberRules& Move_SubtreeScale::getParameterRules(void) const { static MemberRules memberRules; static bool rulesSet = false; if ( !rulesSet ) { memberRules.push_back( new ArgumentRule( "tree", TimeTree::getClassTypeSpec(), ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); memberRules.insert( memberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = 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 an integer. * * \return The member rules. */ const MemberRules& Move_BinarySwitch::getParameterRules(void) const { static MemberRules moveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { moveMemberRules.push_back( new ArgumentRule( "x", Natural::getClassTypeSpec(), "The variable on which this move operates.", ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); moveMemberRules.insert( moveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return moveMemberRules; }
/** * 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 vector of positive reals. * (2) the weight how often the move is used. * * \return The member rules. */ const MemberRules& Move_SwitchRateJump::getParameterRules(void) const { static MemberRules moveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { moveMemberRules.push_back( new ArgumentRule( "x", ModelVector<RealPos>::getClassTypeSpec(), ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); moveMemberRules.insert( moveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return moveMemberRules; }
/** Return member rules */ const MemberRules& Move::getParameterRules(void) const { static MemberRules moveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { moveMemberRules.push_back( new ArgumentRule( "weight", RealPos::getClassTypeSpec(), ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RealPos( 1.0 ) ) ); /* Inherit variables from WorkspaceObject, put them last */ const MemberRules& inheritedRules = WorkspaceObject::getParameterRules(); moveMemberRules.insert( moveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return moveMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_VectorSingleElementSlide::getMemberRules(void) const { static MemberRules scalingMoveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { scalingMoveMemberRules.push_back( new ArgumentRule( "x", false, ModelVector<Real>::getClassTypeSpec() ) ); scalingMoveMemberRules.push_back( new ArgumentRule( "lambda", true, RealPos::getClassTypeSpec() , new Real(1.0) ) ); scalingMoveMemberRules.push_back( new ArgumentRule( "tune" , true, RlBoolean::getClassTypeSpec(), new RlBoolean( true ) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getMemberRules(); scalingMoveMemberRules.insert( scalingMoveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return scalingMoveMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_RootTimeSlide::getMemberRules(void) const { static MemberRules nniMemberRules; static bool rulesSet = false; if ( !rulesSet ) { nniMemberRules.push_back( new ArgumentRule( "tree", false, TimeTree::getClassTypeSpec() ) ); nniMemberRules.push_back( new ArgumentRule( "delta", true, RealPos::getClassTypeSpec() , new Real(1.0) ) ); nniMemberRules.push_back( new ArgumentRule( "tune" , true, RlBoolean::getClassTypeSpec(), new RlBoolean( true ) ) ); /* 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 (no members) */ const MemberRules& Move_MultivariatePhyloProcessTranslation::getMemberRules(void) const { static MemberRules nniMemberRules; static bool rulesSet = false; if ( !rulesSet ) { nniMemberRules.push_back( new ArgumentRule( "process", false, MultivariatePhyloProcess::getClassTypeSpec() ) ); nniMemberRules.push_back( new ArgumentRule( "lambda", true, RealPos::getClassTypeSpec(), new RealPos( 1.0 ) ) ); nniMemberRules.push_back( new ArgumentRule( "tune", true, RlBoolean::getClassTypeSpec(), new RlBoolean( true ) ) ); /* 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& StationarityStoppingRule::getParameterRules(void) const { static MemberRules memberRules; static bool rulesSet = false; if ( !rulesSet ) { memberRules.push_back( new ArgumentRule( "prob", Probability::getClassTypeSpec() , ArgumentRule::BY_VALUE ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = AbstractConvergenceStoppingRule::getParameterRules(); memberRules.insert( memberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return memberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the constant-rate birth-death process are: * (1) the speciation rate lambda which must be a positive real. * (2) the extinction rate mu that must be a positive real. * (3) all member rules specified by BirthDeathProcess. * * \return The member rules. */ const MemberRules& Dist_bdp::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( "mu" , true, RealPos::getClassTypeSpec(), new RealPos(0.0) ) ); // add the rules from the base class const MemberRules &parentRules = BirthDeathProcess::getMemberRules(); distcBirthDeathMemberRules.insert(distcBirthDeathMemberRules.end(), parentRules.begin(), parentRules.end()); rulesSet = true; } return distcBirthDeathMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_NNIClock::getParameterRules(void) const { static MemberRules nniMemberRules; static bool rules_set = false; if ( !rules_set ) { nniMemberRules.push_back( new ArgumentRule( "tree", TimeTree::getClassTypeSpec(), "The tree on which this move operates.", ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); nniMemberRules.insert( nniMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rules_set = true; } return nniMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_SliderUpDown::getParameterRules(void) const { static MemberRules mixingStepMemberRules; static bool rulesSet = false; if ( !rulesSet ) { mixingStepMemberRules.push_back( new ArgumentRule( "value_1", Real::getClassTypeSpec() , ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); mixingStepMemberRules.push_back( new ArgumentRule( "value_2", Real::getClassTypeSpec() , ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); mixingStepMemberRules.push_back( new ArgumentRule( "slide" , RealPos::getClassTypeSpec() , ArgumentRule::BY_VALUE, ArgumentRule::ANY, new Real(1.0) ) ); mixingStepMemberRules.push_back( new ArgumentRule( "tune" , RlBoolean::getClassTypeSpec(), ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RlBoolean( false ) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); mixingStepMemberRules.insert( mixingStepMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return mixingStepMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_DPPScaleCatValsMove::getParameterRules(void) const { static MemberRules dppMove; static bool rulesSet = false; if ( !rulesSet ) { dppMove.push_back( new ArgumentRule( "x" , ModelVector<RealPos>::getClassTypeSpec(), ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); dppMove.push_back( new ArgumentRule( "lambda", RealPos::getClassTypeSpec() , ArgumentRule::BY_VALUE , ArgumentRule::ANY , new Real(1.0) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); dppMove.insert( dppMove.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return dppMove; }
/** Return member rules */ const MemberRules& GelmanRubinStoppingRule::getParameterRules(void) const { static MemberRules memberRules; static bool rulesSet = false; if ( !rulesSet ) { memberRules.push_back( new ArgumentRule( "R", RealPos::getClassTypeSpec(), "The maximum allowed potential scale reduction factor.", ArgumentRule::BY_VALUE, ArgumentRule::ANY ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = AbstractConvergenceStoppingRule::getParameterRules(); memberRules.insert( memberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return memberRules; }
/** Return member rules (no members) */ const MemberRules& Move_SimplexSingleElementScale::getMemberRules(void) const { static MemberRules moveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { moveMemberRules.push_back( new ArgumentRule( "x" , Simplex::getClassTypeSpec() , ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); moveMemberRules.push_back( new ArgumentRule( "alpha", RealPos::getClassTypeSpec() , ArgumentRule::BY_VALUE, ArgumentRule::ANY, new Real(1.0) ) ); moveMemberRules.push_back( new ArgumentRule( "tune" , RlBoolean::getClassTypeSpec(), ArgumentRule::BY_VALUE, ArgumentRule::ANY, new RlBoolean( true ) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getMemberRules(); moveMemberRules.insert( moveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return moveMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_ElementSlide::getParameterRules(void) const { static MemberRules moveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { moveMemberRules.push_back( new ArgumentRule( "x" , ModelVector<Real>::getClassTypeSpec(), ArgumentRule::BY_REFERENCE, ArgumentRule::DETERMINISTIC ) ); moveMemberRules.push_back( new ArgumentRule( "delta", RealPos::getClassTypeSpec() , ArgumentRule::BY_VALUE , ArgumentRule::ANY, new RealPos(1.0) ) ); moveMemberRules.push_back( new ArgumentRule( "tune" , RlBoolean::getClassTypeSpec() , ArgumentRule::BY_VALUE , ArgumentRule::ANY, new RlBoolean( true ) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); moveMemberRules.insert( moveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return moveMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_WeightedNodeTimeSlide::getParameterRules(void) const { static MemberRules memberRules; static bool rulesSet = false; if ( !rulesSet ) { memberRules.push_back( new ArgumentRule( "tree" , TimeTree::getClassTypeSpec(), "The tree on which this move operates.", ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); memberRules.push_back( new ArgumentRule( "blocks", Natural::getClassTypeSpec() , "The number of bocks into which the branch will be broken.", ArgumentRule::BY_VALUE , ArgumentRule::ANY , new Natural(8) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); memberRules.insert( memberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = 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 window 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_SliceSampling::getParameterRules(void) const { static MemberRules moveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { moveMemberRules.push_back( new ArgumentRule( "x" , Real::getClassTypeSpec() , "The variable on which this move operates", ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); moveMemberRules.push_back( new ArgumentRule( "window", RealPos::getClassTypeSpec() , "The window (steps-size) of proposals.", ArgumentRule::BY_VALUE , ArgumentRule::ANY, new RealPos(1.0) ) ); moveMemberRules.push_back( new ArgumentRule( "tune" , RlBoolean::getClassTypeSpec(), "Should we tune the move during burnin?", ArgumentRule::BY_VALUE , ArgumentRule::ANY, new RlBoolean( true ) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); moveMemberRules.insert( moveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return moveMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_ScaleSingleACLNRates::getMemberRules(void) const { static MemberRules scalingMoveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { scalingMoveMemberRules.push_back( new ArgumentRule( "x" , ModelVector<RealPos>::getClassTypeSpec(), ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); scalingMoveMemberRules.push_back( new ArgumentRule( "lambda", RealPos::getClassTypeSpec() , ArgumentRule::BY_VALUE , ArgumentRule::ANY, new Real(1.0) ) ); scalingMoveMemberRules.push_back( new ArgumentRule( "tune" , RlBoolean::getClassTypeSpec() , ArgumentRule::BY_VALUE , ArgumentRule::ANY, new RlBoolean( true ) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getMemberRules(); scalingMoveMemberRules.insert( scalingMoveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return scalingMoveMemberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the constant-rate birth-death process are: * (1) the speciation rate lambda which must be a positive real. * (2) the extinction rate mu that must be a positive real. * (3) all member rules specified by BirthDeathProcess. * * \return The member rules. */ const MemberRules& Dist_bdpTopology::getParameterRules(void) const { static MemberRules memberRules; static bool rules_set = false; if ( !rules_set ) { memberRules.push_back( new ArgumentRule( "lambda", RealPos::getClassTypeSpec(), "The constant speciation rate.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY ) ); memberRules.push_back( new ArgumentRule( "mu" , RealPos::getClassTypeSpec(), "The constant extinction rate.", ArgumentRule::BY_CONSTANT_REFERENCE, ArgumentRule::ANY, new RealPos(0.0) ) ); // add the rules from the base class const MemberRules &parentRules = BirthDeathProcess::getParameterRules(); memberRules.insert( memberRules.end(), parentRules.begin(), parentRules.end()); rules_set = true; } return memberRules; }
/** * Get the member rules used to create the constructor of this object. * * The member rules of the slide move are: * (1) the variable which must be a 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_Slide::getParameterRules(void) const { static MemberRules slidingmove_member_rules; static bool rules_set = false; if ( !rules_set ) { slidingmove_member_rules.push_back( new ArgumentRule( "x" , Real::getClassTypeSpec() , "The variable on which this move operates.", ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); slidingmove_member_rules.push_back( new ArgumentRule( "delta" , RealPos::getClassTypeSpec() , "The window size parameter.", ArgumentRule::BY_VALUE , ArgumentRule::ANY , new RealPos(1.0) ) ); slidingmove_member_rules.push_back( new ArgumentRule( "tune" , RlBoolean::getClassTypeSpec(), "Should we tune the window size during burnin?", ArgumentRule::BY_VALUE , ArgumentRule::ANY , new RlBoolean( true ) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getParameterRules(); slidingmove_member_rules.insert( slidingmove_member_rules.end(), inheritedRules.begin(), inheritedRules.end() ); rules_set = true; } return slidingmove_member_rules; }
/** Return member rules (no members) */ const MemberRules& Move_RealNodeValTreeSliding::getMemberRules(void) const { static MemberRules memberRules; static bool rulesSet = false; if ( !rulesSet ) { memberRules.push_back( new ArgumentRule( "process", RealNodeValTree::getClassTypeSpec(), ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); memberRules.push_back( new ArgumentRule( "lambda" , RealPos::getClassTypeSpec() , ArgumentRule::BY_VALUE , ArgumentRule::ANY , new RealPos( 1.0 ) ) ); memberRules.push_back( new ArgumentRule( "tune" , RlBoolean::getClassTypeSpec() , ArgumentRule::BY_VALUE , ArgumentRule::ANY, new RlBoolean( true ) ) ); /* Inherit weight from Move, put it after variable */ const MemberRules& inheritedRules = Move::getMemberRules(); memberRules.insert( memberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return memberRules; }
/** Return member rules (no members) */ const MemberRules& Move_VectorSingleElementSlide::getParameterRules(void) const { static MemberRules moveMemberRules; static bool rulesSet = false; if ( !rulesSet ) { moveMemberRules.push_back( new ArgumentRule( "x" , ModelVector<Real>::getClassTypeSpec(), "The variable on which this move operates.", ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); moveMemberRules.push_back( new ArgumentRule( "lambda", RealPos::getClassTypeSpec() , "The scaling factor (strength) of the move.", ArgumentRule::BY_VALUE , ArgumentRule::ANY, new Real(1.0) ) ); moveMemberRules.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(); moveMemberRules.insert( moveMemberRules.end(), inheritedRules.begin(), inheritedRules.end() ); rulesSet = true; } return moveMemberRules; }
/** Return member rules (no members) */ const MemberRules& Move_ConjugateInverseWishartBrownian::getParameterRules(void) const { static MemberRules move_member_rules; static bool rules_set = false; if ( !rules_set ) { move_member_rules.push_back( new ArgumentRule( "x" , MatrixRealSymmetric::getClassTypeSpec(), "The variable on which this move operates.", ArgumentRule::BY_REFERENCE, ArgumentRule::STOCHASTIC ) ); move_member_rules.push_back( new ArgumentRule( "kappa" , Real::getClassTypeSpec() , "The scaling parameter of the distribution.", ArgumentRule::BY_REFERENCE, ArgumentRule::ANY ) ); move_member_rules.push_back( new ArgumentRule( "df" , Natural::getClassTypeSpec() , "The degrees of freedom of the distribution.", ArgumentRule::BY_REFERENCE, ArgumentRule::ANY ) ); /* 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; }