alpaqa no-casadi-dep
Nonconvex constrained optimization
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Private Types | Private Attributes | List of all members
CasADiProblem< Conf > Class Template Reference

#include <alpaqa/casadi/CasADiProblem.hpp>

Detailed Description

template<Config Conf = EigenConfigd>
class builtin::CasADiProblem< Conf >

Problem definition for a CasADi problem, loaded from a DLL.

Definition at line 40 of file CasADiProblem.hpp.

+ Inheritance diagram for CasADiProblem< Conf >:
+ Collaboration diagram for CasADiProblem< Conf >:

Public Types

using Sparsity = alpaqa::Sparsity< config_t >
 

Public Member Functions

 CasADiProblem (const std::string &filename)
 Load a problem generated by CasADi (with parameters).
 
 CasADiProblem (const SerializedCasADiFunctions &functions)
 Create a problem from a collection of serialized CasADi functions.
 
 CasADiProblem (const CasADiFunctions &functions)
 Create a problem from a collection of CasADi functions.
 
 ~CasADiProblem ()
 
 CasADiProblem (const CasADiProblem &)
 
CasADiProblemoperator= (const CasADiProblem &)
 
 CasADiProblem (CasADiProblem &&) noexcept
 
CasADiProblemoperator= (CasADiProblem &&) noexcept
 
void load_numerical_data (const std::filesystem::path &filepath, char sep=',')
 Load the numerical problem data (bounds and parameters) from a CSV file.
 
real_t eval_f (crvec x) const
 
void eval_grad_f (crvec x, rvec grad_fx) const
 
real_t eval_f_grad_f (crvec x, rvec grad_fx) const
 
void eval_g (crvec x, rvec g) const
 
void eval_grad_g_prod (crvec x, crvec y, rvec grad_gxy) const
 
void eval_grad_ψ (crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const
 
real_t eval_ψ_grad_ψ (crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const
 
void eval_grad_L (crvec x, crvec y, rvec grad_L, rvec work_n) const
 
real_t eval_ψ (crvec x, crvec y, crvec Σ, rvec ŷ) const
 
void eval_grad_gi (crvec x, index_t i, rvec grad_i) const
 
Sparsity get_jac_g_sparsity () const
 
void eval_jac_g (crvec x, rvec J_values) const
 
void eval_hess_L_prod (crvec x, crvec y, real_t scale, crvec v, rvec Hv) const
 
Sparsity get_hess_L_sparsity () const
 
void eval_hess_L (crvec x, crvec y, real_t scale, rvec H_values) const
 
void eval_hess_ψ_prod (crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) const
 
Sparsity get_hess_ψ_sparsity () const
 
void eval_hess_ψ (crvec x, crvec y, crvec Σ, real_t scale, rvec H_values) const
 
bool provides_eval_grad_L () const
 
bool provides_eval_ψ () const
 
bool provides_eval_grad_ψ () const
 
bool provides_eval_ψ_grad_ψ () const
 
bool provides_eval_grad_gi () const
 
bool provides_eval_jac_g () const
 
bool provides_eval_hess_L_prod () const
 
bool provides_eval_hess_L () const
 
bool provides_eval_hess_ψ_prod () const
 
bool provides_eval_hess_ψ () const
 
std::string get_name () const
 

Public Attributes

vec param
 
std::string name = "CasADiProblem"
 

Private Types

using Functions = casadi_loader::CasADiFunctionsWithParam< Conf >
 

Private Attributes

util::copyable_unique_ptr< Functionsimpl
 

Member Typedef Documentation

◆ Sparsity

template<Config Conf = EigenConfigd>
using Sparsity = alpaqa::Sparsity<config_t>

Definition at line 43 of file CasADiProblem.hpp.

◆ Functions

template<Config Conf = EigenConfigd>
using Functions = casadi_loader::CasADiFunctionsWithParam<Conf>
private

Definition at line 134 of file CasADiProblem.hpp.

Constructor & Destructor Documentation

◆ CasADiProblem() [1/5]

template<Config Conf>
CasADiProblem ( const std::string &  filename)

Load a problem generated by CasADi (with parameters).

Parameters
filenameFilename of the shared library to load the functions from.

The file should contain functions with the names f, grad_f, g and grad_g. These functions evaluate the objective function, its gradient, the constraints, and the constraint gradient times a vector respectively. For second order solvers, additional functions hess_L, hess_ψ, hess_L_prod and hess_ψ_prod can be provided to evaluate the Hessian of the (augmented) Lagrangian and Hessian-vector products.

Exceptions
std::invalid_argumentThe dimensions of the loaded functions do not match.

Definition at line 138 of file CasADiProblem.tpp.

◆ CasADiProblem() [2/5]

template<Config Conf>
CasADiProblem ( const SerializedCasADiFunctions functions)

Create a problem from a collection of serialized CasADi functions.

Definition at line 164 of file CasADiProblem.tpp.

◆ CasADiProblem() [3/5]

template<Config Conf>
CasADiProblem ( const CasADiFunctions functions)

Create a problem from a collection of CasADi functions.

Definition at line 191 of file CasADiProblem.tpp.

◆ ~CasADiProblem()

template<Config Conf>
~CasADiProblem ( )
default

◆ CasADiProblem() [4/5]

template<Config Conf>
CasADiProblem ( const CasADiProblem< Conf > &  )
default

◆ CasADiProblem() [5/5]

template<Config Conf>
CasADiProblem ( CasADiProblem< Conf > &&  )
defaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

template<Config Conf>
CasADiProblem< Conf > & operator= ( const CasADiProblem< Conf > &  )
default

◆ operator=() [2/2]

template<Config Conf>
CasADiProblem< Conf > & operator= ( CasADiProblem< Conf > &&  )
defaultnoexcept

◆ load_numerical_data()

template<Config Conf>
void load_numerical_data ( const std::filesystem::path &  filepath,
char  sep = ',' 
)

Load the numerical problem data (bounds and parameters) from a CSV file.

The file should contain 7 rows, with the following contents:

  1. C lower bound [n]
  2. C upper bound [n]
  3. D lower bound [m]
  4. D upper bound [m]
  5. param [p]
  6. l1_reg [0, 1 or n]
  7. penalty_alm_split [1]

Line endings are encoded using a single line feed (\n), and the column separator can be specified using the sep argument.

Definition at line 213 of file CasADiProblem.tpp.

◆ eval_f()

template<Config Conf>
auto eval_f ( crvec  x) const

Definition at line 278 of file CasADiProblem.tpp.

◆ eval_grad_f()

template<Config Conf>
void eval_grad_f ( crvec  x,
rvec  grad_fx 
) const

Definition at line 285 of file CasADiProblem.tpp.

◆ eval_f_grad_f()

template<Config Conf>
auto eval_f_grad_f ( crvec  x,
rvec  grad_fx 
) const

Definition at line 291 of file CasADiProblem.tpp.

◆ eval_g()

template<Config Conf>
void eval_g ( crvec  x,
rvec  g 
) const

Definition at line 298 of file CasADiProblem.tpp.

◆ eval_grad_g_prod()

template<Config Conf>
void eval_grad_g_prod ( crvec  x,
crvec  y,
rvec  grad_gxy 
) const

Definition at line 308 of file CasADiProblem.tpp.

◆ eval_grad_ψ()

template<Config Conf>
void eval_grad_ψ ( crvec  x,
crvec  y,
crvec  Σ,
rvec  grad_ψ,
rvec  work_n,
rvec  work_m 
) const

Definition at line 320 of file CasADiProblem.tpp.

◆ eval_ψ_grad_ψ()

template<Config Conf>
CasADiProblem< Conf >::real_t eval_ψ_grad_ψ ( crvec  x,
crvec  y,
crvec  Σ,
rvec  grad_ψ,
rvec  work_n,
rvec  work_m 
) const

Definition at line 335 of file CasADiProblem.tpp.

◆ eval_grad_L()

template<Config Conf>
void eval_grad_L ( crvec  x,
crvec  y,
rvec  grad_L,
rvec  work_n 
) const

Definition at line 347 of file CasADiProblem.tpp.

◆ eval_ψ()

template<Config Conf>
CasADiProblem< Conf >::real_t eval_ψ ( crvec  x,
crvec  y,
crvec  Σ,
rvec  ŷ 
) const

Definition at line 356 of file CasADiProblem.tpp.

◆ eval_grad_gi()

template<Config Conf>
void eval_grad_gi ( crvec  x,
index_t  i,
rvec  grad_i 
) const

Definition at line 367 of file CasADiProblem.tpp.

◆ get_jac_g_sparsity()

template<Config Conf>
auto get_jac_g_sparsity ( ) const

Definition at line 387 of file CasADiProblem.tpp.

◆ eval_jac_g()

template<Config Conf>
void eval_jac_g ( crvec  x,
rvec  J_values 
) const

Definition at line 402 of file CasADiProblem.tpp.

◆ eval_hess_L_prod()

template<Config Conf>
void eval_hess_L_prod ( crvec  x,
crvec  y,
real_t  scale,
crvec  v,
rvec  Hv 
) const

Definition at line 409 of file CasADiProblem.tpp.

◆ get_hess_L_sparsity()

template<Config Conf>
auto get_hess_L_sparsity ( ) const

Definition at line 418 of file CasADiProblem.tpp.

◆ eval_hess_L()

template<Config Conf>
void eval_hess_L ( crvec  x,
crvec  y,
real_t  scale,
rvec  H_values 
) const

Definition at line 432 of file CasADiProblem.tpp.

◆ eval_hess_ψ_prod()

template<Config Conf>
void eval_hess_ψ_prod ( crvec  x,
crvec  y,
crvec  Σ,
real_t  scale,
crvec  v,
rvec  Hv 
) const

Definition at line 441 of file CasADiProblem.tpp.

◆ get_hess_ψ_sparsity()

template<Config Conf>
auto get_hess_ψ_sparsity ( ) const

Definition at line 453 of file CasADiProblem.tpp.

◆ eval_hess_ψ()

template<Config Conf>
void eval_hess_ψ ( crvec  x,
crvec  y,
crvec  Σ,
real_t  scale,
rvec  H_values 
) const

Definition at line 467 of file CasADiProblem.tpp.

◆ provides_eval_grad_L()

template<Config Conf>
bool provides_eval_grad_L ( ) const
See also
TypeErasedProblem::provides_eval_grad_L

Definition at line 493 of file CasADiProblem.tpp.

◆ provides_eval_ψ()

template<Config Conf>
bool provides_eval_ψ ( ) const
See also
TypeErasedProblem::provides_eval_ψ

Definition at line 481 of file CasADiProblem.tpp.

◆ provides_eval_grad_ψ()

template<Config Conf>
bool provides_eval_grad_ψ ( ) const
See also
TypeErasedProblem::provides_eval_grad_ψ

Definition at line 485 of file CasADiProblem.tpp.

◆ provides_eval_ψ_grad_ψ()

template<Config Conf>
bool provides_eval_ψ_grad_ψ ( ) const
See also
TypeErasedProblem::provides_eval_ψ_grad_ψ

Definition at line 489 of file CasADiProblem.tpp.

◆ provides_eval_grad_gi()

template<Config Conf>
bool provides_eval_grad_gi ( ) const
See also
TypeErasedProblem::provides_eval_grad_gi

Definition at line 477 of file CasADiProblem.tpp.

◆ provides_eval_jac_g()

template<Config Conf>
bool provides_eval_jac_g ( ) const
See also
TypeErasedProblem::provides_eval_jac_g

Definition at line 497 of file CasADiProblem.tpp.

◆ provides_eval_hess_L_prod()

template<Config Conf>
bool provides_eval_hess_L_prod ( ) const
See also
TypeErasedProblem::provides_eval_hess_L_prod

Definition at line 501 of file CasADiProblem.tpp.

◆ provides_eval_hess_L()

template<Config Conf>
bool provides_eval_hess_L ( ) const
See also
TypeErasedProblem::provides_eval_hess_L

Definition at line 505 of file CasADiProblem.tpp.

◆ provides_eval_hess_ψ_prod()

template<Config Conf>
bool provides_eval_hess_ψ_prod ( ) const
See also
TypeErasedProblem::provides_eval_hess_ψ_prod

Definition at line 509 of file CasADiProblem.tpp.

◆ provides_eval_hess_ψ()

template<Config Conf>
bool provides_eval_hess_ψ ( ) const
See also
TypeErasedProblem::provides_eval_hess_ψ

Definition at line 513 of file CasADiProblem.tpp.

◆ get_name()

template<Config Conf>
std::string get_name ( ) const
See also
TypeErasedProblem::get_name

Definition at line 518 of file CasADiProblem.tpp.

Member Data Documentation

◆ param

template<Config Conf = EigenConfigd>
vec param

Definition at line 44 of file CasADiProblem.hpp.

◆ name

template<Config Conf = EigenConfigd>
std::string name = "CasADiProblem"

Definition at line 45 of file CasADiProblem.hpp.

◆ impl

template<Config Conf = EigenConfigd>
util::copyable_unique_ptr<Functions> impl
private

Definition at line 135 of file CasADiProblem.hpp.


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