Class ell_stable

Inheritance Relationships

Base Type

Class Documentation

class ell_stable : public ell

Ellipsoid Search Space.

ell_stable = {x | (x - xc)’ M^-1 (x - xc) } = {x | (x - xc)’ L D^-1 L’ (x - xc) }

Store $M$ in the form of Lg \ D^-1 \ L’ in an n x n array Q, and hence keep $M$ symmetric positive definite. More stable but slightly more computation.

Public Types

using Arr = xt::xarray<double, xt::layout_type::row_major>

Public Functions

inline ell_stable(const Arr &val, Arr x) noexcept

Construct a new ell_stable object.

Parameters
  • val[in]

  • x[in]

inline ell_stable(const double &alpha, Arr x) noexcept

Construct a new ell_stable object.

Parameters
  • alpha[in]

  • x[in]

ell_stable(ell_stable &&E) = default

Construct a new ell_stable object.

Parameters

E[in] (move)

explicit ell_stable(const ell_stable &E) = default

Construct a new ell_stable object.

To avoid accidentally copying, only explicit copy is allowed

Parameters

E

inline ~ell_stable()

Destroy the ell stable object.

inline auto copy() const -> ell_stable

explicitly copy

Returns

ell_stable

template<typename T>
auto update(const std::tuple<Arr, T> &cut) -> std::tuple<CUTStatus, double>

Update ellipsoid core function using the cut(s)

Overwrite the base class. Store Q^-1 in the form of LDLT decomposition, and hence guarantee Q is symmetric positive definite.

Template Parameters

T

Parameters

cut[in] cutting-plane

Returns

std::tuple<int, double>