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