39template <base::concepts::real_scalar Value,
typename TernaryVector>
78 [[nodiscard]]
auto empty() const ->
bool {
return rects_.empty(); }
88 auto rect = std::move(
rects_.top());
103 const auto& rect =
rects_.top();
104 return !rect.vertex().is_full();
128 return left.ave_value() > right.ave_value();
134 std::vector<rectangle_type>, greater>;
Definition of adc_rectangle class.
Definition of assertion macros.
#define NUM_COLLECT_DEBUG_ASSERT(CONDITION)
Macro to check whether a condition is satisfied in debug build only.
auto dist() const -> const value_type &
auto is_dividable() const -> bool
Check whether the hyper-rectangle in this group can be divided.
adc_rectangle< value_type, ternary_vector_type > rectangle_type
auto pop() -> rectangle_type
Pick out the hyper-rectangle with the smallest average of function values at diagonal vertices.
auto min_rect() const -> const rectangle_type &
Access the hyper-rectangle with the smallest average of function values at diagonal vertices.
adc_group(value_type dist)
Constructor.
auto empty() const -> bool
Check whether this group is empty.
void push(rectangle_type rect)
Add a hyper-rectangle to this group.
std::priority_queue< rectangle_type, std::vector< rectangle_type >, greater > queue_type
Class of rectangles as proposed in sergeyev2000 for num_collect::opt::adaptive_diagonal_curves.
Namespace of internal implementations.
Definition of real_scalar concept.
Class to compare rectangles.
auto operator()(const rectangle_type &left, const rectangle_type &right) const -> bool
Compare rectangles.