EllCalcCore class
#include <ellalgo/ell_calc_core.hpp>
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 | |
---|---|
E 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 | |
---|---|
E 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_
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