|
Janus 2.0.0
High-performance C++20 dual-mode numerical framework
|
Nonlinear root finding and implicit function solvers. More...
#include "janus/core/Function.hpp"#include "janus/core/JanusConcepts.hpp"#include "janus/core/JanusError.hpp"#include <casadi/casadi.hpp>#include <algorithm>#include <atomic>#include <cmath>#include <cstdint>#include <iostream>#include <limits>#include <string>#include <vector>

Go to the source code of this file.
Classes | |
| struct | janus::RootFinderOptions |
| Options for root finding algorithms. More... | |
| struct | janus::ImplicitFunctionOptions |
| Options for building differentiable implicit solve wrappers. More... | |
| struct | janus::RootResult< Scalar > |
| Result of a root finding operation. More... | |
| struct | janus::detail::NumericState |
| struct | janus::detail::StageOutcome |
| class | janus::NewtonSolver |
| Persistent nonlinear root solver. More... | |
Namespaces | |
| namespace | janus |
| namespace | janus::detail |
| Smooth approximation of ReLU function: softplus(x) = (1/beta) * log(1 + exp(beta * x)). | |
Enumerations | |
| enum class | janus::RootSolveStrategy { janus::Auto , janus::TrustRegionNewton , janus::LineSearchNewton , janus::QuasiNewtonBroyden , janus::PseudoTransientContinuation } |
| Numeric nonlinear solver strategy selection. More... | |
| enum class | janus::RootSolveMethod { janus::None , janus::TrustRegionNewton , janus::LineSearchNewton , janus::QuasiNewtonBroyden , janus::PseudoTransientContinuation } |
| Numeric nonlinear solver method actually used. More... | |
Functions | |
| std::string | janus::detail::method_name (RootSolveMethod method) |
| RootSolveMethod | janus::detail::strategy_to_method (RootSolveStrategy strategy) |
| std::string | janus::detail::unique_name (const std::string &prefix) |
| void | janus::detail::validate_root_options (const RootFinderOptions &opts, const std::string &context) |
| void | janus::detail::validate_root_problem (const casadi::Function &f_casadi, const std::string &context) |
| casadi::Dict | janus::detail::opts_to_dict (const RootFinderOptions &opts) |
| casadi::DM | janus::detail::vector_to_dm (const Eigen::VectorXd &x) |
| Eigen::VectorXd | janus::detail::dm_to_vector (const casadi::DM &x) |
| Eigen::MatrixXd | janus::detail::dm_to_matrix (const casadi::DM &x) |
| std::string | janus::detail::implicit_function_name (const casadi::Function &g_casadi) |
| void | janus::detail::validate_implicit_problem (const casadi::Function &g_casadi, const Eigen::VectorXd &x_guess, const ImplicitFunctionOptions &implicit_opts) |
| Eigen::VectorXd | janus::detail::solve_linear_system (const Eigen::MatrixXd &A, const Eigen::VectorXd &b) |
| bool | janus::detail::all_finite (const Eigen::VectorXd &x) |
| bool | janus::detail::all_finite (const Eigen::MatrixXd &x) |
| Eigen::VectorXd | janus::detail::evaluate_residual_only (const casadi::Function &residual_fn, const Eigen::VectorXd &x) |
| NumericState | janus::detail::evaluate_state (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const Eigen::VectorXd &x, const std::string &context) |
| void | janus::detail::maybe_log (const RootFinderOptions &opts, const std::string &message) |
| bool | janus::detail::is_converged (const NumericState &state, const RootFinderOptions &opts) |
| StageOutcome | janus::detail::solve_trust_region (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const NumericState &start, const RootFinderOptions &opts, int max_iterations) |
| StageOutcome | janus::detail::solve_line_search (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const NumericState &start, const RootFinderOptions &opts, int max_iterations) |
| StageOutcome | janus::detail::solve_broyden (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const NumericState &start, const RootFinderOptions &opts, int max_iterations) |
| StageOutcome | janus::detail::solve_pseudo_transient (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const NumericState &start, const RootFinderOptions &opts, int max_iterations) |
| template<typename Scalar> | |
| RootResult< Scalar > | janus::rootfinder (const janus::Function &F, const Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &x0, const RootFinderOptions &opts={}) |
| Solve F(x) = 0 for x given an initial guess. | |
| janus::Function | janus::create_implicit_function (const janus::Function &G, const Eigen::VectorXd &x_guess, const RootFinderOptions &opts={}, const ImplicitFunctionOptions &implicit_opts={}) |
| Create a differentiable implicit solve wrapper for G(...) = 0. | |
Nonlinear root finding and implicit function solvers.