ScsEigen::QuadraticCost class

QuadraticCost is a concrete implementation of Cost. It implements a cost of the form

\[ f(x) = \frac{1}{2} x ^\top Q x + b^\top x + c \]

where $x \in \mathbb{R}^n$ is the optimization variable. $Q \in S^n_+$ is a semipositive definite matrix, $b \in \mathbb{R}^n$ and the scalar $c \in \mathbb{R}$

Base classes

class Cost

Constructors, destructors, conversion operators

QuadraticCost() defaulted
Constructor.
QuadraticCost(const Eigen::Ref<const Eigen::MatrixXd>& Q, const Eigen::Ref<const Eigen::MatrixXd>& b, double c = 0)
Constructor.

Public functions

auto setQ(const Eigen::Ref<const Eigen::MatrixXd>& Q) -> bool
Set the hessian matrix Q.
auto setB(const Eigen::Ref<const Eigen::VectorXd>& b) -> bool
Set the gradient vector.
void setC(double c)
Set the scalar term.
auto getQ() const -> Eigen::Ref<const Eigen::MatrixXd>
Get the hessian $Q$ .
auto getB() const -> Eigen::Ref<const Eigen::VectorXd>
Get the vector $b$ .
auto getC() const -> double
Get the scalar $c$ .

Function documentation

ScsEigen::QuadraticCost::QuadraticCost() defaulted

Constructor.

ScsEigen::QuadraticCost::QuadraticCost(const Eigen::Ref<const Eigen::MatrixXd>& Q, const Eigen::Ref<const Eigen::MatrixXd>& b, double c = 0)

Constructor.

Parameters
Q the PSD matrix representing the hessian of the cost function.
b the gradient of the cost function.
c optional parameter. If not provided the is set to zero.

bool ScsEigen::QuadraticCost::setQ(const Eigen::Ref<const Eigen::MatrixXd>& Q)

Set the hessian matrix Q.

Parameters
Q the PSD matrix representing the hessian of the cost function.

bool ScsEigen::QuadraticCost::setB(const Eigen::Ref<const Eigen::VectorXd>& b)

Set the gradient vector.

Parameters
b the vector

void ScsEigen::QuadraticCost::setC(double c)

Set the scalar term.

Parameters
c the scalar term