47 std::vector<unsigned int> & ref_coord) {
53 unsigned int n_bins(
static_cast<unsigned int>(
54 std::log(
m_points.size()/
static_cast<double>(bin_content))
56 std::vector<unsigned int> splitting_axis(ref_coord);
57 unsigned int axis_counter(0);
73 log<< MSG::WARNING <<
"Class ConstantContentBinMaker, method binDataPoints: Too few data points for binning!"<<
endmsg;
81 if (ref_coord.empty()) {
82 splitting_axis = std::vector<unsigned int>(
84 for (
unsigned int k=0; k<splitting_axis.size(); k++) {
85 splitting_axis[k] = k;
98 unsigned int nb_bins_so_far(
m_bins.size());
99 for (
unsigned int k=0; k<nb_bins_so_far; k++) {
102 splitting_axis[axis_counter]));
104 if (axis_counter==splitting_axis.size()) {
std::vector< DataPoint > m_points
std::vector< DataBin * > m_bins
const std::vector< DataBin * > & getBins() const
get the bins determined by the method "binDataPoints"
ConstantContentBinMaker(const std::vector< DataPoint > &points, const double epsilon)
Constructor.
bool binDataPoints(const unsigned int &bin_content, std::vector< unsigned int > &ref_coord)
group the data points into bins of equal content "bin_content"; returns true in case of success,...