25 #ifndef PAGMO_UTIL_HV_ALGORITHM_HOY_H
26 #define PAGMO_UTIL_HV_ALGORITHM_HOY_H
35 #include "../hypervolume.h"
37 namespace pagmo {
namespace util {
namespace hv_algorithm {
60 double compute(std::vector<fitness_vector> &,
const fitness_vector &)
const;
61 void verify_before_compute(
const std::vector<fitness_vector> &,
const fitness_vector &)
const;
63 std::string get_name()
const;
66 inline bool covers(
const double cub[],
const double reg_low[])
const;
67 inline bool part_covers(
const double cub[],
const double reg_up[])
const;
68 inline int contains_boundary(
const double cub[],
const double reg_low[],
const int split)
const;
69 inline double get_measure(
const double reg_low[],
const double reg_up[])
const;
70 inline int is_pile(
const double cub[],
const double reg_low[])
const;
71 inline double compute_trellis(
const double reg_low[],
const double reg_up[],
const double trellis[])
const;
72 inline double get_median(
double* bounds,
unsigned int n)
const;
73 inline void stream(
double m_region_low[],
double m_region_up[],
double** points,
const unsigned int n_points,
int split,
double cover,
unsigned int rec_level)
const;
79 mutable int m_dimension;
80 mutable int m_total_size;
81 mutable double m_sqrt_size;
82 mutable double m_volume;
83 mutable double *m_region_up;
84 mutable double *m_region_low;
86 mutable double *m_trellis;
87 mutable double *m_boundaries;
88 mutable double *m_no_boundaries;
89 mutable std::vector<double**> m_child_points;
91 friend class boost::serialization::access;
92 template <
class Archive>
93 void serialize(Archive &ar,
const unsigned int)
95 ar & boost::serialization::base_object<base>(*this);
std::vector< double > fitness_vector
Fitness vector type.
boost::shared_ptr< base > base_ptr
Base hypervolume algorithm class.