EllAlgo 1.6.13
Loading...
Searching...
No Matches
ell_calc.hpp
Go to the documentation of this file.
1
6#pragma once
7
8#include <cassert>
9
10#include "ell_calc_core.hpp"
11#include "ell_config.hpp"
12
20class EllCalc {
21 public:
22 bool use_parallel_cut = true;
23
24 protected:
25 double _n_f;
27
28 public:
34 explicit EllCalc(const size_t ndim) : _n_f{static_cast<double>(ndim)}, _helper{ndim} {
35 assert(ndim >= 2U); // do not accept one-dimensional
36 }
37
43 EllCalc(EllCalc&& E) = default;
44
48 EllCalc& operator=(const EllCalc& other) = default;
49
54
59 ~EllCalc() = default;
60
68 EllCalc(const EllCalc& E) = default;
69
84 auto calc_parallel_bias_cut(double beta0, double beta1, double tsq) const -> CutResult;
85
99 auto calc_parallel_central_cut(double beta1, double tsq) const -> CutResult;
100
113 auto calc_bias_cut(double beta, double tsq) const -> CutResult;
114
126 auto calc_central_cut(double tsq) const -> CutResult;
127
143 auto calc_parallel_bias_cut_q(double beta0, double beta1, double tsq) const -> CutResult;
144
159 auto calc_bias_cut_q(double beta, double tsq) const -> CutResult;
160}; // } EllCalc
Ellipsoid Search Space.
Definition ell_calc_core.hpp:18
Ellipsoid Search Space.
Definition ell_calc.hpp:20
EllCalc(const EllCalc &E)=default
Construct a new EllCalcobject.
double _n_f
Definition ell_calc.hpp:25
~EllCalc()=default
Destroy the EllCalcobject.
bool use_parallel_cut
Definition ell_calc.hpp:22
auto calc_central_cut(double tsq) const -> CutResult
Central cut.
EllCalc & operator=(EllCalc &&other)=default
Move assignment operator.
auto calc_bias_cut_q(double beta, double tsq) const -> CutResult
Deep cut (Q-version for discrete optimization)
auto calc_parallel_central_cut(double beta1, double tsq) const -> CutResult
Parallel central cut.
EllCalc(EllCalc &&E)=default
Construct a new EllCalcobject.
EllCalcCore _helper
Definition ell_calc.hpp:26
auto calc_parallel_bias_cut(double beta0, double beta1, double tsq) const -> CutResult
Parallel deep cut.
EllCalc(const size_t ndim)
Construct a new EllCalcobject.
Definition ell_calc.hpp:34
auto calc_parallel_bias_cut_q(double beta0, double beta1, double tsq) const -> CutResult
Parallel deep cut (Q-version for discrete optimization)
auto calc_bias_cut(double beta, double tsq) const -> CutResult
Deep (bias) cut.
EllCalc & operator=(const EllCalc &other)=default
Copy assignment operator.
auto invalid_value() -> T
Return an invalid/sentinel value for type T.
Definition cutting_plane.hpp:27
Core ellipsoid calculation routines.
Configuration types and constants for the ellipsoid algorithm.
Result of a cutting-plane calculation.
Definition ell_config.hpp:75