Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
janus::SweepResult Struct Reference

Result of a parametric sweep. More...

#include <OptiSweep.hpp>

Public Member Functions

size_t size () const
 Number of sweep points.
double objective (size_t i, const SymbolicScalar &objective_expr) const
 Get objective value at sweep index.
NumericVector values (const SymbolicScalar &var) const
 Extract scalar variable values across converged sweep points.
NumericMatrix values (const SymbolicVector &var) const
 Extract vector variable values across converged sweep points.

Public Attributes

std::vector< double > param_values
 Parameter values that were swept.
std::vector< std::optional< OptiSol > > solutions
 Solutions at each parameter value (nullopt for failed solves).
std::vector< int > iterations
 Number of iterations for each solve.
bool all_converged = true
 Whether all solves converged successfully.
std::vector< bool > converged
 Per-point convergence status (true = converged).
std::vector< std::string > errors
 Error messages for failed points (empty string if converged).

Detailed Description

Result of a parametric sweep.

Stores solutions obtained by solving an optimization problem across a range of parameter values. Each entry in solutions corresponds 1:1 with param_values; failed solves are represented as std::nullopt.

auto result = opti.solve_sweep(param, {0.1, 0.2, 0.3, 0.4, 0.5});
for (int i = 0; i < result.size(); ++i) {
if (result.converged[i]) {
std::cout << "param=" << result.param_values[i]
<< " obj=" << result.objective(i, obj_expr) << "\n";
}
}
See also
Opti::solve_sweep for creating a SweepResult
OptiSol for individual solution access

Member Function Documentation

◆ objective()

double janus::SweepResult::objective ( size_t i,
const SymbolicScalar & objective_expr ) const
inline

Get objective value at sweep index.

Parameters
isweep index
objective_exprobjective expression passed to minimize/maximize
Returns
optimized objective value at sweep point i
Exceptions
InvalidArgumentif index is out of range or point did not converge

◆ size()

size_t janus::SweepResult::size ( ) const
inline

Number of sweep points.

Returns
number of parameter values in the sweep

◆ values() [1/2]

NumericVector janus::SweepResult::values ( const SymbolicScalar & var) const
inline

Extract scalar variable values across converged sweep points.

Parameters
varsymbolic scalar to evaluate
Returns
vector of values, one per converged sweep point

◆ values() [2/2]

NumericMatrix janus::SweepResult::values ( const SymbolicVector & var) const
inline

Extract vector variable values across converged sweep points.

Parameters
varsymbolic vector to evaluate
Returns
matrix with columns corresponding to converged sweep points

Member Data Documentation

◆ all_converged

bool janus::SweepResult::all_converged = true

Whether all solves converged successfully.

◆ converged

std::vector<bool> janus::SweepResult::converged

Per-point convergence status (true = converged).

◆ errors

std::vector<std::string> janus::SweepResult::errors

Error messages for failed points (empty string if converged).

◆ iterations

std::vector<int> janus::SweepResult::iterations

Number of iterations for each solve.

◆ param_values

std::vector<double> janus::SweepResult::param_values

Parameter values that were swept.

◆ solutions

std::vector<std::optional<OptiSol> > janus::SweepResult::solutions

Solutions at each parameter value (nullopt for failed solves).


The documentation for this struct was generated from the following file: