Sleipnir C++ API
Loading...
Searching...
No Matches
newton.hpp
1// Copyright (c) Sleipnir contributors
2
3#pragma once
4
5#include <functional>
6#include <span>
7
8#include <Eigen/Core>
9#include <Eigen/SparseCore>
10
11#include "sleipnir/optimization/solver/exit_status.hpp"
12#include "sleipnir/optimization/solver/iteration_info.hpp"
13#include "sleipnir/optimization/solver/options.hpp"
14#include "sleipnir/util/symbol_exports.hpp"
15
16namespace slp {
17
21struct SLEIPNIR_DLLEXPORT NewtonMatrixCallbacks {
41 std::function<double(const Eigen::VectorXd& x)> f;
42
62 std::function<Eigen::SparseVector<double>(const Eigen::VectorXd& x)> g;
63
85 std::function<Eigen::SparseMatrix<double>(const Eigen::VectorXd& x)> H;
86};
87
107SLEIPNIR_DLLEXPORT ExitStatus
108newton(const NewtonMatrixCallbacks& matrix_callbacks,
109 std::span<std::function<bool(const IterationInfo& info)>>
110 iteration_callbacks,
111 const Options& options, Eigen::VectorXd& x);
112
113} // namespace slp
Definition iteration_info.hpp:13
Definition newton.hpp:21
std::function< Eigen::SparseMatrix< double >(const Eigen::VectorXd &x)> H
Definition newton.hpp:85
std::function< Eigen::SparseVector< double >(const Eigen::VectorXd &x)> g
Definition newton.hpp:62
std::function< double(const Eigen::VectorXd &x)> f
Definition newton.hpp:41
Definition options.hpp:15