|
Janus 2.0.0
High-performance C++20 dual-mode numerical framework
|
Alias elimination, BLT decomposition, and structural analysis passes. More...
#include "Function.hpp"#include "JanusError.hpp"#include "JanusTypes.hpp"#include "Sparsity.hpp"#include <algorithm>#include <casadi/casadi.hpp>#include <limits>#include <numeric>#include <string>#include <utility>#include <vector>

Go to the source code of this file.
Classes | |
| struct | janus::StructuralTransformOptions |
| Options for structural simplification and analysis passes. More... | |
| struct | janus::AliasSubstitution |
| A single eliminated alias or trivial affine variable relation. More... | |
| struct | janus::AliasEliminationResult |
| Result of alias elimination on a selected residual block. More... | |
| struct | janus::StructuralBlock |
| One diagonal block in a block-triangular decomposition. More... | |
| struct | janus::BLTDecomposition |
| Block-triangular decomposition and tearing metadata for a selected block. More... | |
| struct | janus::StructuralAnalysis |
| Combined alias-elimination and BLT analysis pass. More... | |
| struct | janus::detail::AliasCandidate |
| struct | janus::detail::TarjanState |
Namespaces | |
| namespace | janus |
| namespace | janus::detail |
| Smooth approximation of ReLU function: softplus(x) = (1/beta) * log(1 + exp(beta * x)). | |
Functions | |
| void | janus::detail::validate_options (const StructuralTransformOptions &opts, const std::string &context) |
| void | janus::detail::validate_selected_block (const Function &fn, const StructuralTransformOptions &opts, const std::string &context) |
| std::vector< int > | janus::detail::make_index_vector (int n) |
| std::vector< casadi::MX > | janus::detail::mx_elements (const casadi::MX &v) |
| casadi::MX | janus::detail::vertcat_subset (const std::vector< casadi::MX > &elems, const std::vector< int > &indices) |
| std::vector< int > | janus::detail::find_row_nonzeros (const casadi::MX &A, int row) |
| bool | janus::detail::has_no_free_symbols (const casadi::MX &expr) |
| bool | janus::detail::coefficients_are_constant (const casadi::MX &A, int row, const std::vector< int > &nz_cols) |
| bool | janus::detail::try_make_alias_candidate (const casadi::MX &expr, const casadi::MX &state_symbol, const std::vector< int > &active_var_indices, const StructuralTransformOptions &opts, AliasCandidate &candidate) |
| std::vector< int > | janus::detail::erase_value (const std::vector< int > &values, int erased_index) |
| std::vector< int > | janus::detail::casadi_to_int (const std::vector< casadi_int > &values) |
| void | janus::detail::tarjan_visit (int node, TarjanState &state) |
| std::vector< std::vector< int > > | janus::detail::strongly_connected_components (const std::vector< std::vector< int > > &adjacency, const std::vector< bool > &removed) |
| std::vector< int > | janus::detail::tearing_recommendation (const casadi::Sparsity &incidence, const std::vector< int > &row_indices, const std::vector< int > &col_indices) |
| AliasEliminationResult | janus::alias_eliminate (const Function &fn, const StructuralTransformOptions &opts={}) |
| Eliminate trivial affine alias rows from a selected residual block. | |
| BLTDecomposition | janus::block_triangularize (const Function &fn, const StructuralTransformOptions &opts={}) |
| Compute a block-triangular decomposition of a selected residual block. | |
| StructuralAnalysis | janus::structural_analyze (const Function &fn, const StructuralTransformOptions &opts={}) |
| Run alias elimination followed by BLT decomposition. | |
Alias elimination, BLT decomposition, and structural analysis passes.