EllCalcCore class

Ellipsoid Search Space.

EllCalcCore = {x | (x - xc)' mq^-1 (x - xc) \le \kappa}

Keep $Q$ symmetric but no promise of positive definite

Constructors, destructors, conversion operators

EllCalcCore(size_t ndim) explicit
EllCalcCore(EllCalcCore&& E) defaulted
EllCalcCore(const EllCalcCore& E) defaulted

Public functions

auto calc_parallel_cut(const double& beta0, const double& beta1, const double& tsq) const -> std::tuple< double, double, double > -> auto
auto calc_parallel_cut_fast(const double& beta0, const double& beta1, const double& tsq, const double& b0b1, const double& eta) const -> std::tuple< double, double, double > -> auto
auto calc_parallel_central_cut(const double& beta1, const double& tsq) const -> std::tuple< double, double, double > -> auto
auto calc_bias_cut(const double& beta, const double& tau) const -> std::tuple< double, double, double > -> auto
auto calc_bias_cut_fast(const double& beta, const double& tau, const double& eta) const -> std::tuple< double, double, double > -> auto
Fast Bias Cut.
auto calc_central_cut(const double& tau) const -> std::tuple< double, double, double > -> auto

Function documentation

EllCalcCore::EllCalcCore(size_t ndim) explicit

Parameters
ndim in Number of dimensions for EllCalcCore object.

Constructor for EllCalcCore class. Initializes member variables based on input ndim.

Example: EllCalcCore E(2);

EllCalcCore::EllCalcCore(EllCalcCore&& E) defaulted

Parameters
in An rvalue reference to the EllCalcCore object being moved.

Move constructor for EllCalcCore.

This is a move constructor that allows EllCalcCore objects to be efficiently moved instead of copied. It takes an rvalue reference to another EllCalcCore object and steals its resources.

EllCalcCore::EllCalcCore(const EllCalcCore& E) defaulted

Parameters
in The EllCalcCore object to copy.

Copy constructor for EllCalcCore.

Allows copying an existing EllCalcCore object into a new EllCalcCore object. The new object will be an exact copy of the original.

auto EllCalcCore::calc_parallel_cut(const double& beta0, const double& beta1, const double& tsq) const -> std::tuple< double, double, double >

Parameters
beta0 in The parameter beta0 represents the value of beta for the first variable.
beta1 in The parameter beta1 represents a value used in the calculation.
tsq in tsq is a constant value of type double. It represents the square of the parameter tau.
Returns The function calc_parallel_cut returns a tuple containing three values: rho, sigma, and delta.

Calculates the new ellipsoid parameters rho, sigma, and delta after applying parallel cuts defined by beta0 and beta1.

This is a public member function that computes the ellipsoid parameters after parallel cuts of the form:

g'(x - xc) + beta0 <= 0 g'(x - xc) + beta1 >= 0

It takes in the parallel cut parameters beta0, beta1, and the squared value of tau. It computes intermediate values b0b1 and eta, then calls calc_parallel_cut_fast() to calculate rho, sigma, delta which are returned as a tuple.

Example: auto [rho, sigma, delta] = E.calc_parallel_cut(beta0, beta1, tsq);

auto EllCalcCore::calc_parallel_cut_fast(const double& beta0, const double& beta1, const double& tsq, const double& b0b1, const double& eta) const -> std::tuple< double, double, double >

Parameters
beta0 in First parallel cut parameter.
beta1 in Second parallel cut parameter.
tsq in Square of tau parameter.
b0b1 in Product of beta0 and beta1.
eta in Computed intermediate value.
Returns Tuple containing computed rho, sigma and delta.

Calculates ellipsoid parameters after parallel cuts.

This public member function computes the ellipsoid parameters rho, sigma, and delta after applying parallel cuts defined by beta0 and beta1. The parameters beta0, beta1, tsq, b0b1, and eta are used in the calculation.

auto EllCalcCore::calc_parallel_central_cut(const double& beta1, const double& tsq) const -> std::tuple< double, double, double >

Parameters
beta1 in Parallel cut parameter.
tsq in Square of tau parameter.
Returns Tuple containing computed rho, sigma and delta.

Calculates ellipsoid parameters after parallel central cuts.

This is a public member function that computes the ellipsoid parameters after parallel central cuts of the form:

g'(x - xc) <= 0 g'(x - xc) + beta1 >= 0

This function computes the ellipsoid parameters rho, sigma, and delta after applying parallel central cuts defined by beta1 and tau. The parameters beta1 and tsq are used in the calculation.

auto EllCalcCore::calc_bias_cut(const double& beta, const double& tau) const -> std::tuple< double, double, double >

Parameters
beta in The parameter "beta" represents a value used in the calculation.
tau in The parameter "tau" represents a value used in the calculation. It is not specified in the code snippet provided. You would need to provide a value for "tau" in order to use the calc_bias_cut function.
Returns The function calc_bias_cut returns a tuple containing the following values:

Calculates new ellipsoid parameters after bias cut.

This function computes the new ellipsoid parameters rho, sigma, and delta after applying a bias cut of the form:

g'(x - xc) + beta <= 0

It takes the bias parameter beta and tau as inputs. Tau is the square of the original tau parameter. It returns the computed rho, sigma, delta tuple.

auto EllCalcCore::calc_bias_cut_fast(const double& beta, const double& tau, const double& eta) const -> std::tuple< double, double, double >

Fast Bias Cut.

This is a public member function that calculates the new ellipsoid parameters rho, sigma, and delta after applying a bias cut of the form:

g'(x - xc) + beta <= 0

It takes the bias parameter beta, tau, and eta as inputs and returns a tuple containing the computed rho, sigma, delta values.

auto EllCalcCore::calc_central_cut(const double& tau) const -> std::tuple< double, double, double >

Parameters
tau in The tau parameter.
Returns Tuple containing computed rho, sigma and delta.

Calculates new ellipsoid parameters after applying a central cut.

This function takes the tau parameter as input and computes the new ellipsoid parameters rho, sigma, and delta after applying a central cut defined by:

g'(x - xc) <= 0