12 using typename polysolve::nonlinear::Problem::Scalar;
13 using typename polysolve::nonlinear::Problem::THessian;
14 using typename polysolve::nonlinear::Problem::TVector;
21 const std::shared_ptr<SampleEnvelope>& envelope,
22 const std::array<Vector2d, 3>& pts);
24 double value(
const TVector& x)
override;
25 void gradient(
const TVector& x, TVector& gradv)
override;
26 void hessian(
const TVector& x, THessian& hessian)
override
28 log_and_throw_error(
"Sparse functions do not exist, use dense solver");
30 void hessian(
const TVector& x, MatrixXd& hessian)
override;
32 void solution_changed(
const TVector& new_x)
override;
34 bool is_step_valid(
const TVector& x0,
const TVector& x1)
override;
37 std::shared_ptr<SampleEnvelope> m_envelope;
38 std::array<Vector2d, 3> m_pts;