Program Listing for File identity.hpp
↰ Return to documentation for file (/tmp/ws/src/proxsuite/include/proxsuite/proxqp/sparse/preconditioner/identity.hpp
)
//
// Copyright (c) 2022 INRIA
//
#ifndef PROXSUITE_PROXQP_SPARSE_PRECOND_IDENTITY_HPP
#define PROXSUITE_PROXQP_SPARSE_PRECOND_IDENTITY_HPP
namespace proxsuite {
namespace proxqp {
namespace sparse {
namespace preconditioner {
template<typename T, typename I>
struct Identity
{
static auto scale_qp_in_place_req(proxsuite::linalg::veg::Tag<T> /*tag*/,
isize /*n*/,
isize /*n_eq*/,
isize /*n_in*/)
-> proxsuite::linalg::veg::dynstack::StackReq
{
return { 0, 1 };
}
void scale_qp_in_place(
QpViewMut<T, I> /*qp*/,
proxsuite::linalg::veg::dynstack::DynStackMut /*stack*/)
{
}
// modifies variables in place
void scale_primal_in_place(VectorViewMut<T> /*primal*/) {}
void scale_dual_in_place(VectorViewMut<T> /*dual*/) {}
void scale_dual_in_place_eq(VectorViewMut<T> /*dual*/) {}
void scale_dual_in_place_in(VectorViewMut<T> /*dual*/) {}
void unscale_primal_in_place(VectorViewMut<T> /*primal*/) {}
void unscale_dual_in_place(VectorViewMut<T> /*dual*/) {}
void unscale_dual_in_place_eq(VectorViewMut<T> /*dual*/) {}
void unscale_dual_in_place_in(VectorViewMut<T> /*dual*/) {}
// modifies residuals in place
void scale_primal_residual_in_place(VectorViewMut<T> /*primal*/) {}
void scale_primal_residual_in_place_eq(VectorViewMut<T> /*primal_eq*/) {}
void scale_primal_residual_in_place_in(VectorViewMut<T> /*primal_in*/) {}
void scale_dual_residual_in_place(VectorViewMut<T> /*dual*/) {}
void unscale_primal_residual_in_place(VectorViewMut<T> /*primal*/) {}
void unscale_primal_residual_in_place_eq(VectorViewMut<T> /*primal_eq*/) {}
void unscale_primal_residual_in_place_in(VectorViewMut<T> /*primal_in*/) {}
void unscale_dual_residual_in_place(VectorViewMut<T> /*dual*/) {}
};
} // namespace preconditioner
} // namespace sparse
} // namespace proxqp
} // namespace proxsuite
#endif /* end of include guard PROXSUITE_PROXQP_SPARSE_PRECOND_IDENTITY_HPP */