9#include <Eigen/SparseCore>
11#include "sleipnir/optimization/solver/util/sparse_inf_norms.hpp"
20template <
typename Scalar>
60 constexpr Scalar
g_max(100);
79 constexpr Scalar
g_max(100);
82 c_e = (
g_max / sparse_inf_norms(A_e).array()).min(Scalar(1)).
matrix();
102 constexpr Scalar
g_max(100);
105 c_e = (
g_max / sparse_inf_norms(A_e).array()).min(Scalar(1)).
matrix();
106 c_i = (
g_max / sparse_inf_norms(A_i).array()).min(Scalar(1)).
matrix();
113 return f == Scalar(1) &&
c_e.size() == 0 &&
c_i.size() == 0;
Definition intrusive_shared_ptr.hpp:27
Definition problem_scaling.hpp:21
ProblemScaling(const DenseVector &g, const SparseMatrix &A_e, const SparseMatrix &A_i)
Definition problem_scaling.hpp:100
ProblemScaling()=default
Constructs identity problem scaling.
Scalar f
Cost scaling factor d_f.
Definition problem_scaling.hpp:30
bool is_identity() const
Definition problem_scaling.hpp:112
DenseVector c_i
Inequality constraint scaling factors d_cᵢ.
Definition problem_scaling.hpp:36
DenseVector c_e
Equality constraint scaling factors d_cₑ.
Definition problem_scaling.hpp:33
Eigen::Vector< Scalar, Eigen::Dynamic > DenseVector
Type alias for dense vector.
Definition problem_scaling.hpp:23
ProblemScaling(Scalar f, DenseVector c_e, DenseVector c_i)
Definition problem_scaling.hpp:46
ProblemScaling(const DenseVector &g, const SparseMatrix &A_e)
Definition problem_scaling.hpp:78
Eigen::SparseMatrix< Scalar > SparseMatrix
Type alias for sparse matrix.
Definition problem_scaling.hpp:25
ProblemScaling(const DenseVector &g)
Definition problem_scaling.hpp:59
Eigen::SparseVector< Scalar > SparseVector
Type alias for sparse vector.
Definition problem_scaling.hpp:27