EllAlgo 1.6.13
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
EllCore Class Reference

Ellipsoid Search Space Core. More...

#include <ell_core.hpp>

Public Member Functions

 EllCore (const Vec &val, size_t ndim)
 
 EllCore (const double alpha, const size_t ndim)
 Construct a new EllCore object.
 
 EllCore (EllCore &&E)=default
 Construct a new EllCore object.
 
EllCoreoperator= (EllCore &&)=default
 Move assignment operator.
 
 ~EllCore ()=default
 Destroy the EllCore object.
 
 EllCore (const EllCore &E)=default
 Construct a new EllCore object.
 
auto copy () const -> EllCore
 explicitly copy
 
constexpr auto tsq () const -> double
 Get the squared ellipsoid radius τ²
 
void set_use_parallel_cut (bool value)
 
template<typename T >
auto update_bias_cut (Vec &grad, const T &beta) -> CutStatus
 Update ellipsoid core function using the deep cut(s)
 
template<typename T >
auto update_central_cut (Vec &grad, const T &beta) -> CutStatus
 Update ellipsoid core function using the central cut(s)
 
template<typename T >
auto update_q (Vec &grad, const T &beta) -> CutStatus
 Update ellipsoid core function using the cut(s)
 
template<typename T >
auto update_stable_bias_cut (Vec &grad, const T &beta) -> CutStatus
 Update ellipsoid core function using the deep cut(s)
 
template<typename T >
auto update_stable_central_cut (Vec &grad, const T &beta) -> CutStatus
 Update ellipsoid core function using the central cut(s)
 
template<typename T >
auto update_stable_q (Vec &grad, const T &beta) -> CutStatus
 Update ellipsoid core function using the cut(s)
 

Public Attributes

bool no_defer_trick = false
 

Detailed Description

Ellipsoid Search Space Core.

Without the knowledge of the type of xc

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

Constructor & Destructor Documentation

◆ EllCore() [1/4]

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

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

Parameters
[in]valThe 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.
[in]ndimThe parameter ndim represents the number of dimensions for the EllCore object.

◆ EllCore() [2/4]

EllCore::EllCore ( const double  alpha,
const size_t  ndim 
)
inline

Construct a new EllCore object.

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

Parameters
[in]alphaThe 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.
[in]ndimThe 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.

◆ EllCore() [3/4]

EllCore::EllCore ( EllCore &&  E)
default

Construct a new EllCore object.

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

Parameters
[in]EThe parameter "E" is an rvalue reference to an object of type "EllCore".

◆ ~EllCore()

EllCore::~EllCore ( )
default

Destroy the EllCore object.

◆ EllCore() [4/4]

EllCore::EllCore ( const EllCore E)
explicitdefault

Construct a new EllCore object.

To avoid accidentally copying, only explicit copy is allowed

Parameters
[in]EThe parameter "E" is a reference to an object of type "EllCore".

Member Function Documentation

◆ copy()

auto EllCore::copy ( ) const -> EllCore
inline

explicitly copy

Returns
EllCore

◆ operator=()

EllCore & EllCore::operator= ( EllCore &&  )
default

Move assignment operator.

◆ set_use_parallel_cut()

void EllCore::set_use_parallel_cut ( bool  value)
inline

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

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

◆ tsq()

constexpr auto EllCore::tsq ( ) const -> double
inlineconstexpr

Get the squared ellipsoid radius τ²

Returns
double The squared radius

◆ update_bias_cut()

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

Update ellipsoid core function using the deep cut(s)

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 Parameters
T
Parameters
[in]gradgradient
[in]beta
Returns
CutStatus

◆ update_central_cut()

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

Update ellipsoid core function using the central cut(s)

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 Parameters
T
Parameters
[in]gradgradient
[in]beta
Returns
CutStatus

◆ update_q()

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

Update ellipsoid core function using the cut(s)

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 Parameters
T
Parameters
[in]gradgradient
[in]beta
Returns
CutStatus

◆ update_stable_bias_cut()

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

Update ellipsoid core function using the deep cut(s)

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 Parameters
T
Parameters
[in]gradgradient
[in]beta
Returns
CutStatus

◆ update_stable_central_cut()

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

Update ellipsoid core function using the central cut(s)

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 Parameters
T
Parameters
[in]gradgradient
[in]beta
Returns
CutStatus

◆ update_stable_q()

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

Update ellipsoid core function using the cut(s)

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.

Template Parameters
T
Parameters
[in]gradgradient
[in]beta
Returns
CutStatus

Member Data Documentation

◆ no_defer_trick

bool EllCore::no_defer_trick = false

The documentation for this class was generated from the following file: