template<typename Arr>
EllStable class

Ellipsoid Search Space.

ell = {x | (x - xc)' mq^-1 (x - xc) ≤ κ}

Keep $Q$ symmetric but no promise of positive definite

Constructors, destructors, conversion operators

EllStable(const Vec& val, Arr x)
Construct a new EllStable object.
EllStable(const double& alpha, Arr x)
Construct a new EllStable object.
EllStable(EllStable&& E) defaulted noexcept
Construct a new EllStable object.
~EllStable() defaulted
Destroy the EllStable object.
EllStable(const EllStable& E) defaulted explicit
Construct a new EllStable object.

Public functions

auto copy() const -> EllStable -> auto
explicitly copy
auto xc() const -> Arr -> auto
Get the center of the ellipsoid.
auto set_xc(const Arr& xc) -> void
Set the xc object.
auto tsq() const -> double -> constexpr auto
Get the squared radius of the ellipsoid.
auto set_use_parallel_cut(bool value) -> void
template<typename T>
auto update_bias_cut(const std::pair<Arr, T>& cut) -> CutStatus -> auto
Update ellipsoid core function using the deep cut(s)
template<typename T>
auto update_central_cut(const std::pair<Arr, T>& cut) -> CutStatus -> auto
Update ellipsoid core function using the central cut(s)
template<typename T>
auto update_q(const std::pair<Arr, T>& cut) -> CutStatus -> auto
Update ellipsoid core function using the cut(s)

Function documentation

template<typename Arr _1>
EllStable<_1>::EllStable(const Vec& val, Arr x)

Construct a new EllStable object.

Parameters
val in A vector of values.
in An array. This parameter is moved.

template<typename Arr _1>
EllStable<_1>::EllStable(const double& alpha, Arr x)

Construct a new EllStable object.

Parameters
alpha in A double value for the scaling factor.
in An array. This parameter is moved.

template<typename Arr _1>
EllStable<_1>::EllStable(EllStable&& E) defaulted noexcept

Construct a new EllStable object.

Parameters
in The parameter "E" is an rvalue reference to an object of type "EllStable".

The function is a constructor for an EllStable object that takes an rvalue reference as a parameter.

template<typename Arr _1>
EllStable<_1>::EllStable(const EllStable& E) explicit defaulted

Construct a new EllStable object.

Parameters
in The parameter "E" is a reference to an object of type "EllStable".

To avoid accidentally copying, only explicit copy is allowed

template<typename Arr _1>
auto EllStable<_1>::copy() const -> EllStable

explicitly copy

Returns EllStable

template<typename Arr _1>
auto EllStable<_1>::xc() const -> Arr

Get the center of the ellipsoid.

Returns Arr The center of ellipsoid.

template<typename Arr _1>
void EllStable<_1>::set_xc(const Arr& xc)

Set the xc object.

Parameters
xc in

template<typename Arr _1>
constexpr auto EllStable<_1>::tsq() const -> double

Get the squared radius of the ellipsoid.

Returns double The squared radius.

template<typename Arr _1>
void EllStable<_1>::set_use_parallel_cut(bool value)

Parameters
value in The value parameter is a boolean value that determines whether or not to use parallel cut.

The function sets the value of the use_parallel_cut property in the _mgr object.

template<typename Arr _1> template<typename T>
auto EllStable<_1>::update_bias_cut(const std::pair<Arr, T>& cut) -> CutStatus

Update ellipsoid core function using the deep cut(s)

Template parameters
T
Parameters
cut in cutting-plane
Returns std::tuple<int, double>

The update_bias_cut function is a member function of the EllStable class. It is used to update the ellipsoid core function using a cutting plane.

template<typename Arr _1> template<typename T>
auto EllStable<_1>::update_central_cut(const std::pair<Arr, T>& cut) -> CutStatus

Update ellipsoid core function using the central cut(s)

Template parameters
T
Parameters
cut in cutting-plane
Returns std::tuple<int, double>

The update_central_cut function is a member function of the EllStable class. It is used to update the ellipsoid core function using a cutting plane.

template<typename Arr _1> template<typename T>
auto EllStable<_1>::update_q(const std::pair<Arr, T>& cut) -> CutStatus

Update ellipsoid core function using the cut(s)

Template parameters
T
Parameters
cut in cutting-plane
Returns std::tuple<int, double>

The update_q function is a member function of the EllStable class. It is used to update the ellipsoid core function using a cutting plane.