EllAlgo 1.6.13
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
EllStable< Arr > Class Template Reference

Ellipsoid Search Space (stable strategy) More...

#include <ell_stable.hpp>

Inheritance diagram for EllStable< Arr >:
[legend]
Collaboration diagram for EllStable< Arr >:
[legend]

Public Types

using Vec = std::valarray< double >
 
using ArrayType = Arr
 
- Public Types inherited from EllBase< Arr, true >
using Vec = std::valarray< double >
 
using ArrayType = Arr
 

Public Member Functions

 EllStable (const Vec &val, Arr x)
 Construct from a diagonal vector and a center point (moved in).
 
 EllStable (const double alpha, Arr x)
 Construct from a scaling factor and a center point (moved in).
 
 EllStable (EllStable &&E) noexcept=default
 Move constructor.
 
auto operator= (EllStable &&) noexcept -> EllStable &=default
 Move assignment operator.
 
 ~EllStable ()=default
 Destructor.
 
 EllStable (const EllStable &E)=default
 Explicit copy constructor.
 
auto operator= (const EllStable &E) -> EllStable &=delete
 Deleted copy assignment operator (non-copyable).
 
auto copy () const -> EllStable
 Explicitly copy the EllStable object.
 
- Public Member Functions inherited from EllBase< Arr, true >
auto operator= (EllBase &&E) noexcept -> EllBase &=default
 Move assignment operator.
 
 EllBase (const Vec &val, Arr x)
 Construct a new EllBase object from a vector and an array.
 
 EllBase (const double alpha, Arr x)
 Construct a new EllBase object from an alpha value and an array.
 
 EllBase (EllBase &&E) noexcept=default
 Construct a new EllBase object (move constructor)
 
 EllBase (const EllBase &E)=default
 Construct a new EllBase object (explicit copy)
 
 ~EllBase ()=default
 Destroy the EllBase object.
 
auto xc () const -> Arr
 Get the center of the ellipsoid.
 
void set_xc (const Arr &xc)
 Set the center of the ellipsoid.
 
constexpr auto tsq () const -> double
 Get the squared radius of the ellipsoid.
 
void set_use_parallel_cut (bool value)
 Set whether to use parallel cut.
 
auto update_bias_cut (const std::pair< Arr, T > &cut) -> CutStatus
 Update ellipsoid using a deep cut.
 
auto update_central_cut (const std::pair< Arr, T > &cut) -> CutStatus
 Update ellipsoid using a central cut.
 
auto update_q (const std::pair< Arr, T > &cut) -> CutStatus
 Update ellipsoid using a cut with a specific Q matrix.
 

Static Public Member Functions

static auto from_radii (const Vec &val, Arr x) -> EllStable
 Named constructor: initial ellipsoid from per-axis radii.
 
static auto from_alpha (const double alpha, Arr x) -> EllStable
 Named constructor: initial ellipsoid from a scaling factor.
 

Additional Inherited Members

- Protected Member Functions inherited from EllBase< Arr, true >
auto operator= (const EllBase &E) -> EllBase &=delete
 Deleted copy assignment operator (non-copyable).
 
auto _update_core (const std::pair< Arr, T > &cut, Fn &&cut_strategy) -> CutStatus
 Update ellipsoid core function using the cut(s).
 
- Protected Attributes inherited from EllBase< Arr, true >
size_t _n
 
Arr _xc
 
EllCore _mgr
 

Detailed Description

template<typename Arr>
class EllStable< Arr >

Ellipsoid Search Space (stable strategy)

Concrete strategy of EllBase with the numerically-stable LDL^T update: EllCore::update_stable_* is used for cutting-plane updates.

\[ \mathcal{E} = \{x \mid (x - x_c)^T Q^{-1} (x - x_c) \le \kappa\} \]

Template Parameters
ArrArray type of the center point

Member Typedef Documentation

◆ ArrayType

◆ Vec

template<typename Arr >
using EllStable< Arr >::Vec = std::valarray<double>

Constructor & Destructor Documentation

◆ EllStable() [1/4]

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

Construct from a diagonal vector and a center point (moved in).

◆ EllStable() [2/4]

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

Construct from a scaling factor and a center point (moved in).

◆ EllStable() [3/4]

template<typename Arr >
EllStable< Arr >::EllStable ( EllStable< Arr > &&  E)
defaultnoexcept

Move constructor.

◆ ~EllStable()

template<typename Arr >
EllStable< Arr >::~EllStable ( )
default

Destructor.

◆ EllStable() [4/4]

template<typename Arr >
EllStable< Arr >::EllStable ( const EllStable< Arr > &  E)
explicitdefault

Explicit copy constructor.

Member Function Documentation

◆ copy()

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

Explicitly copy the EllStable object.

Returns
EllStable A new EllStable object that is a copy of the current object.

◆ from_alpha()

template<typename Arr >
static auto EllStable< Arr >::from_alpha ( const double  alpha,
Arr  x 
) -> EllStable
inlinestatic

Named constructor: initial ellipsoid from a scaling factor.

Parameters
[in]alphaA double value representing the scaling factor.
[in]xAn array of type Arr. This parameter is moved.
Returns
EllStable A new EllStable object.

◆ from_radii()

template<typename Arr >
static auto EllStable< Arr >::from_radii ( const Vec val,
Arr  x 
) -> EllStable
inlinestatic

Named constructor: initial ellipsoid from per-axis radii.

Parameters
[in]valA vector of per-axis radii (diagonal of the shape matrix).
[in]xAn array of type Arr. This parameter is moved.
Returns
EllStable A new EllStable object.

◆ operator=() [1/2]

template<typename Arr >
auto EllStable< Arr >::operator= ( const EllStable< Arr > &  E) -> EllStable &=delete
delete

Deleted copy assignment operator (non-copyable).

◆ operator=() [2/2]

template<typename Arr >
auto EllStable< Arr >::operator= ( EllStable< Arr > &&  ) -> EllStable &=default
defaultnoexcept

Move assignment operator.


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