34int main(
int argc,
const char *argv[]) {
42 if (argv[1] ==
"-h"sv || argv[1] ==
"--help"sv || argv[1] ==
"?"sv)
44 if (argv[1] ==
"-v"sv || argv[1] ==
"--version"sv)
46 if (argv[1] ==
"--complete"sv) {
53 std::span args{argv,
static_cast<size_t>(argc)};
57 std::ofstream out_fstream;
71 auto solver = solver_builder(direction, opts);
74 os <<
"Loading " << prob_path <<
" ..." << std::endl;
77 bool show_funcs =
false;
83 auto used = opts.
used();
84 auto unused_opt = std::ranges::find(used, 0);
85 auto unused_idx =
static_cast<size_t>(unused_opt - used.begin());
86 if (unused_opt != used.end())
87 throw std::invalid_argument(
"Unused option: " +
88 std::string(opts.
options()[unused_idx]));
91 auto solver_results = solver->run(problem, os);
94 real_t f = problem.problem.eval_objective(solver_results.solution);
96 problem.problem, solver_results.solution, solver_results.multipliers);
99 .solver_results = solver_results,
100 .objective = f + solver_results.h,
101 .smooth_objective = f,
111 if (!sol_output_dir.empty())
int main(int argc, const char *argv[])
ALPAQA_DRIVERS_EXPORT std::string store_solution(const fs::path &sol_output_dir, std::ostream &os, BenchmarkResults &results, const SolverWrapper &solver, const alpaqa::Options &opts, std::span< const char *const > argv)