EfficientSymbiont Class Documentation
-
class EfficientSymbiont : public Symbiont
Public Functions
-
inline EfficientSymbiont(emp::Ptr<emp::Random> _random, emp::Ptr<EfficientWorld> _world, emp::Ptr<SymConfigEfficient> _config, double _intval = 0.0, double _points = 0.0, double _efficient = 0.1)
The constructor for efficient symbiont
-
EfficientSymbiont(const EfficientSymbiont&) = default
Input: None
Output: None
Purpose: To force a copy constructor to be generated by the compiler.
-
EfficientSymbiont(EfficientSymbiont&&) = default
Input: None
Output: None
Purpose: To force a move constructor to be generated by the compiler
-
EfficientSymbiont() = default
Input: None
Output: None
Purpose: To tell the compiler to use its default generated variants of the constructor
-
inline std::string const GetName()
Input: None
Output: Name of class as string, EfficientSymbiont
Purpose: To know which subclass the object is
-
inline void SetEfficiency(double _in)
Input: Efficiency value
Output: None
Purpose: Setting an efficient symbiont’s efficiency value.
-
inline double GetEfficiency()
Input: None
Output: A double representing the symbiont’s efficiency.
Purpose: Getting an efficient symbiont’s efficiency value.
-
inline void AddPoints(double _in)
Input: A double representing the amount to be incremented to a symbiont’s points.
Output: None
Purpose: Incrementing an efficient symbiont’s points. The points are adjusted by the efficiency of the symbiont.
-
inline void Mutate(std::string mode)
Input: String indicating mode, either “vertical” or “horizontal”
Output: None
Purpose: Mutating the efficiency of an efficient symbiont based upon the config setting for mutation size.
-
inline emp::Ptr<Organism> MakeNew()
Input: None.
Output: A new bacterium with same properties as this bacterium.
Purpose: To avoid creating an organism via constructor in other methods.
-
inline emp::Ptr<Organism> Reproduce(std::string mode)
Input: String to indicate the mode of transmission, either vertical or horizontal
Output: The pointer to the newly created organism
Purpose: To produce a new symbiont
-
inline std::optional<emp::Ptr<Organism>> VerticalTransmission(emp::Ptr<Organism> host_baby)
Input: The pointer to the organism that is the new host baby
Output: None
Purpose: To allow for vertical transmission to occur
-
inline void HorizontalTransmission(emp::WorldPosition location)
Input: The location of the organism as a WorldPosition
Output: None
Purpose: To check and allow for horizontal transmission to occur
-
inline EfficientSymbiont(emp::Ptr<emp::Random> _random, emp::Ptr<EfficientWorld> _world, emp::Ptr<SymConfigEfficient> _config, double _intval = 0.0, double _points = 0.0, double _efficient = 0.1)