+ static PropertySet<double> Instantiate(
+ const PropertySet<math::Distribution> &p,
+ math::GaloisLFSR &rand
+ ) noexcept {
+ return {
+ p.age.FakeNormal(rand.SNorm()),
+ p.mass.FakeNormal(rand.SNorm()),
+ p.fertility.FakeNormal(rand.SNorm())
+ };
+ }
+
+ static Properties<double> Instantiate(
+ const Properties<math::Distribution> &p,
+ math::GaloisLFSR &rand
+ ) noexcept {
+ return {
+ Instantiate(p.props[0], rand),
+ Instantiate(p.props[1], rand),
+ Instantiate(p.props[2], rand),
+ Instantiate(p.props[3], rand),
+ Instantiate(p.props[4], rand),
+ Instantiate(p.props[5], rand)
+ };
+ }
+