11template <Config Conf = DefaultConfig>
35 void eval_hess_ψ_prod(
crvec x,
crvec y,
crvec Σ,
real_t scale,
crvec v,
rvec Hv)
const {
ScopedMallocAllower ma;
hess_ψ_prod(x, y, Σ, scale, v, Hv); }
39 if (J_values.size() > 0)
40 jac_g(x, J_values.reshaped(this->m, this->n));
44 if (H_values.size() > 0)
45 hess_L(x, y, scale, H_values.reshaped(this->n, this->n));
48 rvec H_values)
const {
50 if (H_values.size() > 0)
51 hess_ψ(x, y, Σ, scale, H_values.reshaped(this->n, this->n));
Problem class that allows specifying the basic functions as C++ std::functions.
bool provides_eval_hess_L() const
std::function< void(crvec, crvec, real_t, rmat)> hess_L
std::function< real_t(crvec)> f
bool provides_eval_hess_ψ_prod() const
std::function< void(crvec, crvec, real_t, crvec, rvec)> hess_L_prod
std::function< void(crvec, index_t, rvec)> grad_gi
std::function< void(crvec, crvec, crvec, real_t, crvec, rvec)> hess_ψ_prod
bool provides_eval_jac_g() const
std::function< void(crvec, crvec, crvec, real_t, rmat)> hess_ψ
std::function< void(crvec, crvec, rvec)> grad_g_prod
void eval_hess_ψ(crvec x, crvec y, crvec Σ, real_t scale, rindexvec, rindexvec, rvec H_values) const
std::function< void(crvec, rvec)> g
FunctionalProblem & operator=(const FunctionalProblem &)=default
std::function< void(crvec, rmat)> jac_g
bool provides_eval_hess_L_prod() const
void eval_jac_g(crvec x, rindexvec, rindexvec, rvec J_values) const
void eval_hess_L(crvec x, crvec y, real_t scale, rindexvec, rindexvec, rvec H_values) const
std::function< void(crvec, rvec)> grad_f
FunctionalProblem(const FunctionalProblem &)=default
void eval_grad_g_prod(crvec x, crvec y, rvec grad_gxy) const
void eval_hess_L_prod(crvec x, crvec y, real_t scale, crvec v, rvec Hv) const
bool provides_eval_grad_gi() const
void eval_grad_f(crvec x, rvec grad_fx) const
FunctionalProblem(FunctionalProblem &&) noexcept=default
void eval_g(crvec x, rvec gx) const
bool provides_eval_hess_ψ() const
real_t eval_f(crvec x) const
void eval_grad_gi(crvec x, index_t i, rvec grad_gix) const
void eval_hess_ψ_prod(crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) const
#define USING_ALPAQA_CONFIG(Conf)
typename Conf::real_t real_t
typename Conf::rindexvec rindexvec
typename Conf::index_t index_t
typename Conf::crvec crvec