Sleipnir C++ API
Loading...
Searching...
No Matches
sqp.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 SQPMatrixCallbacks {
41 std::function<double(const Eigen::VectorXd& x)> f;
42
62 std::function<Eigen::SparseVector<double>(const Eigen::VectorXd& x)> g;
63
90 std::function<Eigen::SparseMatrix<double>(const Eigen::VectorXd& x,
91 const Eigen::VectorXd& y)>
93
113 std::function<Eigen::VectorXd(const Eigen::VectorXd& x)> c_e;
114
141 std::function<Eigen::SparseMatrix<double>(const Eigen::VectorXd& x)> A_e;
142};
143
165SLEIPNIR_DLLEXPORT ExitStatus
166sqp(const SQPMatrixCallbacks& matrix_callbacks,
167 std::span<std::function<bool(const IterationInfo& info)>>
168 iteration_callbacks,
169 const Options& options, Eigen::VectorXd& x);
170
171} // namespace slp
Definition iteration_info.hpp:13
Definition options.hpp:15
Definition sqp.hpp:21
std::function< Eigen::SparseMatrix< double >(const Eigen::VectorXd &x)> A_e
Definition sqp.hpp:141
std::function< Eigen::SparseMatrix< double >(const Eigen::VectorXd &x, const Eigen::VectorXd &y)> H
Definition sqp.hpp:92
std::function< Eigen::VectorXd(const Eigen::VectorXd &x)> c_e
Definition sqp.hpp:113
std::function< double(const Eigen::VectorXd &x)> f
Definition sqp.hpp:41
std::function< Eigen::SparseVector< double >(const Eigen::VectorXd &x)> g
Definition sqp.hpp:62