22template <
typename DecisionVariables>
46template <
typename DecisionVariables>
49 const DecisionVariables& initial_guess)>
51 std::span<const DecisionVariables> initial_guesses) {
53 futures.
reserve(initial_guesses.size());
55 for (
const auto& initial_guess : initial_guesses) {
62 for (
auto& future : futures) {
66 return *std::ranges::min_element(results, [](
const auto& a,
const auto& b) {
73 return a.cost < b.cost;
Definition function_ref.hpp:13
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Definition SmallVector.h:1198
reference emplace_back(ArgTypes &&... Args)
Definition SmallVector.h:939
void reserve(size_type N)
Definition SmallVector.h:665
size_t size() const
Definition SmallVector.h:85
Definition expression_graph.hpp:11
ExitStatus
Solver exit status.
Definition exit_status.hpp:16
@ SUCCESS
Solved the problem to the desired tolerance.
SLEIPNIR_DLLEXPORT VariableMatrix solve(const VariableMatrix &A, const VariableMatrix &B)
Solves the VariableMatrix equation AX = B for X.
MultistartResult< DecisionVariables > Multistart(function_ref< MultistartResult< DecisionVariables >(const DecisionVariables &initial_guess)> solve, std::span< const DecisionVariables > initial_guesses)
Solves an optimization problem from different starting points in parallel, then returns the solution ...
Definition multistart.hpp:47
The result of a multistart solve.
Definition multistart.hpp:23
double cost
The solution's cost.
Definition multistart.hpp:27
ExitStatus status
The solver exit status.
Definition multistart.hpp:25
DecisionVariables variables
The decision variables.
Definition multistart.hpp:29