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

Solution wrapper for optimization results. More...

#include <OptiSol.hpp>

Public Member Functions

 OptiSol (casadi::OptiSol cas_sol)
 Construct from CasADi solution.
double value (const SymbolicScalar &var) const
 Extract scalar value at optimum.
NumericVector value (const SymbolicVector &var) const
 Extract vector value at optimum.
NumericMatrix value (const SymbolicMatrix &var) const
 Extract matrix value at optimum.
casadi::Dict stats () const
 Get solver statistics.
std::optional< int > num_function_evals () const
 Get number of function evaluations.
std::optional< int > num_iterations () const
 Get number of iterations.
const casadi::OptiSol & casadi_sol () const
 Access underlying CasADi solution.
void save (const std::string &filename, const std::map< std::string, SymbolicScalar > &named_vars) const
 Save solution to JSON file.
void save (const std::string &filename, const std::map< std::string, SymbolicVector > &named_vars) const
 Save solution map of vectors to JSON file.

Static Public Member Functions

static std::map< std::string, std::vector< double > > load (const std::string &filename)
 Load solution data from JSON file.

Detailed Description

Solution wrapper for optimization results.

Provides type-safe extraction of optimized values from a solved optimization problem.

Example: auto sol = opti.solve(); double x_opt = sol.value(x); NumericVector trajectory = sol.value(position);

See also
Opti::solve for obtaining an OptiSol
SweepResult for parametric sweep solutions

Constructor & Destructor Documentation

◆ OptiSol()

janus::OptiSol::OptiSol ( casadi::OptiSol cas_sol)
inlineexplicit

Construct from CasADi solution.

Parameters
cas_solCasADi OptiSol object

Member Function Documentation

◆ casadi_sol()

const casadi::OptiSol & janus::OptiSol::casadi_sol ( ) const
inline

Access underlying CasADi solution.

Returns
reference to the CasADi OptiSol object

◆ load()

std::map< std::string, std::vector< double > > janus::OptiSol::load ( const std::string & filename)
inlinestatic

Load solution data from JSON file.

Parameters
filenameJSON file path
Returns
Map of variable names to value vectors
Exceptions
RuntimeErrorif file cannot be read or parsed

◆ num_function_evals()

std::optional< int > janus::OptiSol::num_function_evals ( ) const
inline

Get number of function evaluations.

Returns
Number of function evaluations, or nullopt if not available

◆ num_iterations()

std::optional< int > janus::OptiSol::num_iterations ( ) const
inline

Get number of iterations.

Returns
Number of iterations, or nullopt if not available

◆ save() [1/2]

void janus::OptiSol::save ( const std::string & filename,
const std::map< std::string, SymbolicScalar > & named_vars ) const
inline

Save solution to JSON file.

Parameters
filenameOutput filename (e.g. "sol.json")
named_varsMap of variable names to symbolic variables to save

◆ save() [2/2]

void janus::OptiSol::save ( const std::string & filename,
const std::map< std::string, SymbolicVector > & named_vars ) const
inline

Save solution map of vectors to JSON file.

Parameters
filenameoutput filename (e.g. "sol.json")
named_varsmap of variable names to symbolic vectors to save

◆ stats()

casadi::Dict janus::OptiSol::stats ( ) const
inline

Get solver statistics.

Returns
Dictionary of solver stats (iterations, timing, etc.)

◆ value() [1/3]

NumericMatrix janus::OptiSol::value ( const SymbolicMatrix & var) const
inline

Extract matrix value at optimum.

Parameters
varSymbolic matrix from opti operations
Returns
Optimized numeric matrix

◆ value() [2/3]

double janus::OptiSol::value ( const SymbolicScalar & var) const
inline

Extract scalar value at optimum.

Parameters
varSymbolic scalar from opti.variable()
Returns
Optimized numeric value

◆ value() [3/3]

NumericVector janus::OptiSol::value ( const SymbolicVector & var) const
inline

Extract vector value at optimum.

Parameters
varSymbolic vector from opti.variable(n)
Returns
Optimized numeric vector

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