EllCore class

Ellipsoid Search Space Core.

Without the knowledge of the type of xc

\mathcal{E} {x | (x - xc)' mq^-1 (x - xc) \le \kappa}

Constructors, destructors, conversion operators

EllCore(const Vec& val, size_t ndim)
EllCore(double alpha, size_t ndim)
Construct a new EllCore object.
EllCore(EllCore&& E) defaulted
Construct a new EllCore object.
~EllCore() defaulted
Destroy the EllCore object.
EllCore(const EllCore& E) defaulted explicit
Construct a new EllCore object.

Public functions

auto copy() const -> EllCore -> auto
explicitly copy
auto tsq() const -> double -> auto
void set_use_parallel_cut(bool value)
template<typename T>
auto update_bias_cut(Vec& grad, const T& beta) -> CutStatus -> auto
Update ellipsoid core function using the deep cut(s)
template<typename T>
auto update_central_cut(Vec& grad, const T& beta) -> CutStatus -> auto
Update ellipsoid core function using the central cut(s)
template<typename T>
auto update_q(Vec& grad, const T& beta) -> CutStatus -> auto
Update ellipsoid core function using the cut(s)
template<typename T>
auto update_stable_bias_cut(Vec& grad, const T& beta) -> CutStatus -> auto
Update ellipsoid core function using the deep cut(s)
template<typename T>
auto update_stable_central_cut(Vec& grad, const T& beta) -> CutStatus -> auto
Update ellipsoid core function using the central cut(s)
template<typename T>
auto update_stable_q(Vec& grad, const T& beta) -> CutStatus -> auto
Update ellipsoid core function using the cut(s)

Public variables

bool no_defer_trick

Function documentation

EllCore::EllCore(const Vec& val, size_t ndim)

Parameters
val in The parameter val is a reference to a Vec object, which represents a vector of values. It is used to initialize the diagonal elements of the _mq matrix in the EllCore object.
ndim in The parameter ndim represents the number of dimensions for the EllCore object.

The function constructs a new EllCore object with a given value and dimension.

EllCore::EllCore(double alpha, size_t ndim)

Construct a new EllCore object.

Parameters
alpha in The alpha parameter is a double value that represents the scaling factor for the EllCore object. It is used to adjust the size of the ellipsoid.
ndim in The parameter ndim represents the number of dimensions for the EllCore object. It specifies the size of the matrix used in the construction of the object.

The function constructs a new EllCore object with a given alpha and ndim, and initializes the matrix _mq to an identity matrix.

EllCore::EllCore(EllCore&& E) defaulted

Construct a new EllCore object.

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

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

EllCore::EllCore(const EllCore& E) explicit defaulted

Construct a new EllCore object.

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

To avoid accidentally copying, only explicit copy is allowed

auto EllCore::copy() const -> EllCore

explicitly copy

Returns EllCore

auto EllCore::tsq() const -> double

Returns double

void EllCore::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 T>
auto EllCore::update_bias_cut(Vec& grad, const T& beta) -> CutStatus

Update ellipsoid core function using the deep cut(s)

Template parameters
T
Parameters
grad in gradient
beta in
Returns CutStatus

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

template<typename T>
auto EllCore::update_central_cut(Vec& grad, const T& beta) -> CutStatus

Update ellipsoid core function using the central cut(s)

Template parameters
T
Parameters
grad in gradient
beta in
Returns CutStatus

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

template<typename T>
auto EllCore::update_q(Vec& grad, const T& beta) -> CutStatus

Update ellipsoid core function using the cut(s)

Template parameters
T
Parameters
grad in gradient
beta in
Returns CutStatus

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

template<typename T>
auto EllCore::update_stable_bias_cut(Vec& grad, const T& beta) -> CutStatus

Update ellipsoid core function using the deep cut(s)

Template parameters
T
Parameters
grad in gradient
beta in
Returns CutStatus

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

template<typename T>
auto EllCore::update_stable_central_cut(Vec& grad, const T& beta) -> CutStatus

Update ellipsoid core function using the central cut(s)

Template parameters
T
Parameters
grad in gradient
beta in
Returns CutStatus

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

template<typename T>
auto EllCore::update_stable_q(Vec& grad, const T& beta) -> CutStatus

Update ellipsoid core function using the cut(s)

Template parameters
T
Parameters
grad in gradient
beta in
Returns CutStatus

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