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

Smooth approximation of ReLU function: softplus(x) = (1/beta) * log(1 + exp(beta * x)). More...

Classes

struct  BipartiteComponent
struct  is_tuple
 Helper to detect if a type is a std::tuple. More...
struct  is_tuple< std::tuple< Ts... > >
struct  SparseJacobianArtifacts
struct  SparseHessianArtifacts
struct  AliasCandidate
struct  TarjanState
struct  InterpnGridData
class  FunctionalPreconditioner
struct  EmbeddedQuadratureRule
struct  NumericState
struct  StageOutcome

Functions

std::vector< int > sort_unique (std::vector< int > values)
std::vector< casadi_int > to_casadi_int (const std::vector< int > &values)
std::string join_labels (const std::vector< std::string > &labels)
std::string property_name (StructuralProperty property)
std::string property_subject_plural (StructuralProperty property)
std::string property_subject_singular (StructuralProperty property)
std::string property_fix_hint (StructuralProperty property)
std::string input_label (const std::string &input_name, int local_index)
std::string output_label (const std::string &output_name, int rows, int cols, int flat_index)
std::vector< int > canonical_output_indices (const casadi::Function &cfn, const std::vector< int > &requested, const std::string &context)
void validate_input_block (const casadi::Function &cfn, int input_idx, const std::string &context)
void validate_output_blocks (const casadi::Function &cfn, const std::vector< int > &output_indices, const std::string &context)
casadi::MX flatten_output (const casadi::MX &output)
std::vector< DiagnosticInputRefmake_input_refs (const casadi::Function &cfn, int input_idx)
std::vector< DiagnosticOutputRefmake_output_refs (const casadi::Function &cfn, const std::vector< int > &output_indices)
casadi::MX collect_selected_outputs (const std::vector< casadi::MX > &outputs, const std::vector< int > &output_indices)
std::vector< BipartiteComponentconnected_components (const casadi::Sparsity &sp)
int structural_rank (const casadi::Sparsity &sp)
int structural_rank_of_component (const casadi::Sparsity &sp, const BipartiteComponent &component)
std::vector< int > zero_sensitivity_columns (const casadi::Sparsity &sp)
std::vector< std::string > labels_for_inputs (const std::vector< DiagnosticInputRef > &inputs, const std::vector< int > &indices)
std::vector< std::string > labels_for_outputs (const std::vector< DiagnosticOutputRef > &outputs, const std::vector< int > &rows)
std::vector< StructuralDiagnosticIssuebuild_issues (StructuralProperty property, const std::vector< DiagnosticInputRef > &inputs, const std::vector< DiagnosticOutputRef > &outputs, const std::vector< int > &zero_sensitivity_local_indices, const std::vector< StructuralDeficiencyGroup > &deficiency_groups)
StructuralSensitivityReport analyze_property (const Function &fn, int input_idx, StructuralProperty property, const StructuralSensitivityOptions &opts)
std::string to_casadi_parallelization (MapParallelization parallelization)
template<typename Tuple, std::size_t... Is>
std::vector< SymbolicArgtuple_to_outputs_impl (const Tuple &t, std::index_sequence< Is... >)
 Convert a tuple of symbolic scalars to a vector of SymbolicArg.
template<typename... Ts>
std::vector< SymbolicArgtuple_to_outputs (const std::tuple< Ts... > &t)
template<typename Func, std::size_t... Is>
auto invoke_with_symbols_impl (Func &&fn, const std::vector< SymbolicScalar > &syms, std::index_sequence< Is... >)
 Invoke lambda with unpacked symbolic arguments.
template<int NInputs, typename Func>
auto invoke_with_symbols (Func &&fn, const std::vector< SymbolicScalar > &syms)
std::string escape_dot_label (const std::string &s)
 Escape special characters for DOT format.
std::string get_op_name (const SymbolicScalar &mx)
 Get a short description of an MX operation type.
std::string escape_for_js (const std::string &content)
 Escape a string for embedding in a JavaScript string literal.
std::string escape_for_json (const std::string &s)
 Escape a string for embedding in JSON.
void write_graph_html (std::ostream &out, const std::string &title, const std::string &escaped_dot, const std::string &node_data_json, const std::string &edges_json, const std::string &extra_header_js="")
 Write a complete interactive graph HTML page.
std::string get_sx_operation (const casadi::SXElem &elem)
 Map CasADi SX operation codes to readable labels.
void get_sx_node_style (const casadi::SXElem &elem, std::string &color, std::string &shape)
 Get node styling based on SX element type.
std::vector< SymbolicScalarto_mx_vector (const std::vector< SymbolicArg > &args)
std::vector< SymbolicArgto_symbolic_args (const std::vector< SymbolicScalar > &args)
SymbolicScalar stack_nonzeros (const SymbolicScalar &expr)
void validate_function_indices (const Function &fn, int output_idx, int input_idx, const char *where)
std::vector< SymbolicScalarsymbolic_inputs_like (const Function &fn, const std::string &prefix)
GraphColoring make_forward_coloring (const casadi::Sparsity &jac_sparsity)
GraphColoring make_reverse_coloring (const casadi::Sparsity &jac_sparsity)
SparseJacobianArtifacts make_sparse_jacobian_artifacts (const std::vector< SymbolicArg > &expressions, const std::vector< SymbolicArg > &variables, const std::string &name)
SparseJacobianArtifacts make_sparse_jacobian_artifacts (const Function &fn, int output_idx, int input_idx, const std::string &name)
SparseHessianArtifacts make_sparse_hessian_artifacts (const SymbolicArg &expression, const std::vector< SymbolicArg > &variables, const std::string &name)
SparseHessianArtifacts make_sparse_hessian_artifacts (const Function &fn, int output_idx, int input_idx, const std::string &name)
SparsityPattern function_jacobian_sparsity (const Function &fn, int output_idx, int input_idx)
void validate_options (const StructuralTransformOptions &opts, const std::string &context)
void validate_selected_block (const Function &fn, const StructuralTransformOptions &opts, const std::string &context)
std::vector< int > make_index_vector (int n)
std::vector< casadi::MX > mx_elements (const casadi::MX &v)
casadi::MX vertcat_subset (const std::vector< casadi::MX > &elems, const std::vector< int > &indices)
std::vector< int > find_row_nonzeros (const casadi::MX &A, int row)
bool has_no_free_symbols (const casadi::MX &expr)
bool coefficients_are_constant (const casadi::MX &A, int row, const std::vector< int > &nz_cols)
bool 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 > erase_value (const std::vector< int > &values, int erased_index)
std::vector< int > casadi_to_int (const std::vector< casadi_int > &values)
void tarjan_visit (int node, TarjanState &state)
std::vector< std::vector< int > > strongly_connected_components (const std::vector< std::vector< int > > &adjacency, const std::vector< bool > &removed)
std::vector< int > tearing_recommendation (const casadi::Sparsity &incidence, const std::vector< int > &row_indices, const std::vector< int > &col_indices)
int input_numel (const Function &fn, int input_idx)
int output_numel (const Function &fn, int output_idx)
void validate_scalar_output (const Function &fn, int output_idx, const std::string &context)
void validate_same_shape (const casadi::MX &lhs, const casadi::MX &rhs, const std::string &context, const std::string &rhs_name)
std::vector< casadi::MX > symbolic_inputs_like (const Function &fn)
casadi::MX make_zero_seed (int rows, int cols, int directions)
casadi::MX make_basis_seed (int rows, int cols)
casadi::MX stacked_blocks_to_columns (const casadi::MX &stacked, int block_rows, int block_cols, int n_blocks)
std::string sensitivity_function_name (const Function &fn, const std::string &suffix, int output_idx, int input_idx)
std::string lagrangian_function_name (const Function &fn, const std::string &suffix, int objective_output_idx, int constraint_output_idx, int input_idx)
void validate_scalar_expression (const casadi::MX &expr, const std::string &context, const std::string &name)
casadi::MX lagrangian_scalar (const SymbolicArg &objective, const SymbolicArg &constraints, const SymbolicArg &multipliers, const std::string &context)
casadi::MX forward_block_jacobian (const Function &fn, int output_idx, int input_idx)
casadi::MX reverse_block_jacobian (const Function &fn, int output_idx, int input_idx)
NumericVector to_numeric_vector (std::initializer_list< double > init)
const char * method_name (SecondOrderIntegratorMethod method)
const char * method_name (MassMatrixIntegratorMethod method)
void validate_eval_count (const std::string &context, int n_eval)
void validate_second_order_options (const SecondOrderIvpOptions &opts, const std::string &context)
void validate_mass_matrix_options (const MassMatrixIvpOptions &opts, const std::string &context)
void validate_second_order_initial_state (const NumericVector &q0, const NumericVector &v0)
double inf_norm (const NumericVector &x)
bool is_constant_zero (const SymbolicScalar &expr)
template<typename VectorFunc>
NumericMatrix finite_difference_jacobian (VectorFunc &&func, const NumericVector &x, double epsilon)
template<typename MassFunc>
NumericMatrix evaluate_mass_matrix (MassFunc &&mass_matrix, double t, const NumericVector &y, const std::string &context)
template<typename RhsFunc, typename MassFunc>
NumericVector rosenbrock_euler_step (RhsFunc &&rhs, MassFunc &&mass_matrix, const NumericVector &y, double t, double dt, const MassMatrixIvpOptions &opts)
template<typename RhsFunc, typename MassFunc>
NumericVector bdf1_step (RhsFunc &&rhs, MassFunc &&mass_matrix, const NumericVector &y, double t, double dt, const MassMatrixIvpOptions &opts)
template<typename DerivedX>
auto compute_dx (const Eigen::MatrixBase< DerivedX > &x)
template<typename Derived>
auto slice (const Eigen::MatrixBase< Derived > &m, Eigen::Index start, Eigen::Index end)
template<typename DerivedA, typename DerivedB>
auto concatenate (const Eigen::MatrixBase< DerivedA > &a, const Eigen::MatrixBase< DerivedB > &b)
template<typename DerivedF, typename DerivedX>
auto integrate_forward_simpson (const Eigen::MatrixBase< DerivedF > &f, const Eigen::MatrixBase< DerivedX > &x)
template<typename DerivedF, typename DerivedX>
auto integrate_backward_simpson (const Eigen::MatrixBase< DerivedF > &f, const Eigen::MatrixBase< DerivedX > &x)
template<typename DerivedF, typename DerivedX>
auto integrate_cubic (const Eigen::MatrixBase< DerivedF > &f, const Eigen::MatrixBase< DerivedX > &x)
std::string method_to_casadi_string (InterpolationMethod method)
 Convert InterpolationMethod enum to CasADi string.
const char * hermite_symbolic_error_message ()
template<typename Derived>
JanusVector< typename Derived::Scalar > flatten_fortran_order (const Eigen::MatrixBase< Derived > &values)
 Flatten N-D values array in Fortran order for CasADi.
std::string symbolic_values_method_error_message (InterpolationMethod method)
InterpnGridData build_interpn_grid (const std::vector< NumericVector > &points, const char *context)
void validate_bspline_grid (const std::vector< std::vector< double > > &grid, const char *context)
template<JanusScalar Scalar>
JanusMatrix< Scalar > normalize_query_matrix (const JanusMatrix< Scalar > &xi, int n_dims, const char *context)
template<JanusScalar Scalar>
SymbolicScalar clamp_query_point (const JanusVector< Scalar > &point, const std::vector< std::vector< double > > &grid)
template<JanusScalar Scalar>
bool point_out_of_bounds_numeric (const JanusVector< Scalar > &point, const std::vector< std::vector< double > > &grid)
SymbolicScalar point_out_of_bounds_symbolic (const SymbolicVector &point, const std::vector< std::vector< double > > &grid)
casadi::Function make_parametric_interpolant (const std::vector< std::vector< double > > &grid, InterpolationMethod method)
double catmull_rom_slope (const std::vector< double > &x, const std::vector< double > &y, size_t i)
 Compute Catmull-Rom slope at a point using neighboring values.
double hermite_interp_1d_numeric (const std::vector< double > &x, const std::vector< double > &y, double query)
 Evaluate 1D Catmull-Rom cubic Hermite spline (numeric only).
std::vector< int > flat_to_multi_index (int flat_idx, const std::vector< int > &dims)
 Compute multi-dimensional index from flat index (Fortran order).
int multi_to_flat_index (const std::vector< int > &multi, const std::vector< int > &dims)
 Compute flat index from multi-dimensional index (Fortran order).
double hermite_interpn_numeric (const std::vector< std::vector< double > > &grid, const std::vector< double > &values, const std::vector< double > &query)
 N-dimensional Catmull-Rom interpolation via tensor product (numeric only).
void validate_linear_solve_dims (Eigen::Index a_rows, Eigen::Index a_cols, Eigen::Index b_rows, const std::string &context)
void validate_square_required (Eigen::Index rows, Eigen::Index cols, const std::string &context, const std::string &solver_name)
void validate_iterative_policy (const LinearSolvePolicy &policy, const std::string &context)
std::function< NumericVector(const NumericVector &)> make_preconditioner (const SparseMatrix &A, const LinearSolvePolicy &policy)
template<typename MatrixLike>
SparseMatrix dense_to_sparse (const MatrixLike &A)
template<typename DerivedB>
auto solve_sparse_direct_numeric (const SparseMatrix &A, const Eigen::MatrixBase< DerivedB > &b, const LinearSolvePolicy &policy)
template<typename Solver, typename DerivedB>
auto solve_iterative_with_solver (Solver &solver, const Eigen::MatrixBase< DerivedB > &b)
template<typename DerivedB>
auto solve_iterative_numeric (const SparseMatrix &A, const Eigen::MatrixBase< DerivedB > &b, const LinearSolvePolicy &policy)
template<typename DerivedA, typename DerivedB>
auto solve_dense_numeric (const Eigen::MatrixBase< DerivedA > &A, const Eigen::MatrixBase< DerivedB > &b, const LinearSolvePolicy &policy)
template<typename Scalar>
JanusVector< Scalar > normalize_vector (const JanusVector< Scalar > &v)
template<typename Scalar>
JanusVector< Scalar > best_eigenvector_candidate (const std::array< JanusVector< Scalar >, 3 > &cands)
template<typename Scalar>
JanusVector< Scalar > symmetric_eigenvector_2x2 (const JanusMatrix< Scalar > &A, const Scalar &lambda)
template<typename Scalar>
JanusVector< Scalar > symmetric_eigenvector_3x3 (const JanusMatrix< Scalar > &A, const Scalar &lambda)
template<typename Scalar>
Scalar determinant_3x3 (const JanusMatrix< Scalar > &A)
template<typename Scalar>
void sort_eigenpairs (JanusVector< Scalar > &eigenvalues, JanusMatrix< Scalar > &eigenvectors)
template<typename Scalar>
EigenDecomposition< Scalar > eig_symmetric_symbolic (const JanusMatrix< Scalar > &A)
template<typename Cond, typename DerivedTrue, typename DerivedFalse>
auto select (const Cond &cond, const Eigen::MatrixBase< DerivedTrue > &if_true, const Eigen::MatrixBase< DerivedFalse > &if_false)
bool is_symbolic_predicate (const SymbolicScalar &expr)
SymbolicScalar as_symbolic_predicate (const SymbolicScalar &expr)
template<typename Derived>
SymbolicScalar count_symbolic_truthy (const Eigen::MatrixBase< Derived > &a)
std::pair< NumericVector, NumericVectorgauss_legendre_rule (int n)
void validate_degree (int degree, const std::string &context)
void validate_dimension (const PolynomialChaosDimension &dimension, const std::string &context)
template<JanusScalar Scalar>
Scalar raw_hermite_polynomial (int degree, const Scalar &x)
template<JanusScalar Scalar>
Scalar raw_legendre_polynomial (int degree, const Scalar &x)
template<JanusScalar Scalar>
Scalar raw_jacobi_polynomial (int degree, const Scalar &x, double alpha, double beta)
template<JanusScalar Scalar>
Scalar raw_laguerre_polynomial (int degree, const Scalar &x, double alpha)
double squared_norm_raw (const PolynomialChaosDimension &dimension, int degree)
double squared_norm_probability (const PolynomialChaosDimension &dimension, int degree)
bool multi_index_less (const std::vector< int > &lhs, const std::vector< int > &rhs)
void total_order_recursive (int dim, int order, int axis, std::vector< int > &current, std::vector< std::vector< int > > &indices)
void tensor_product_recursive (int dim, int order, int axis, std::vector< int > &current, std::vector< std::vector< int > > &indices)
std::vector< std::vector< int > > generate_multi_indices (int dim, int order, PolynomialChaosTruncation truncation)
template<JanusScalar Scalar>
JanusVector< Scalar > apply_operator (const NumericMatrix &op, const JanusVector< Scalar > &values, const std::string &context)
template<JanusScalar Scalar>
JanusMatrix< Scalar > apply_operator (const NumericMatrix &op, const JanusMatrix< Scalar > &values, const std::string &context)
void validate_samples (const NumericMatrix &samples, int dimension, const std::string &context)
NumericMatrix regression_operator (const NumericMatrix &design_matrix, double ridge, const std::string &context)
const EmbeddedQuadratureRulegauss_kronrod_15_rule ()
void validate_order (int order, const std::string &context)
void validate_level (int level, const std::string &context)
double binomial (int n, int k)
int clenshaw_curtis_order_from_level (int level)
int gauss_order_from_level (int level)
bool is_bounded_support (const PolynomialChaosDimension &dimension)
double standard_normal_moment (int degree)
double shifted_beta_moment (int degree, double alpha, double beta)
double probability_moment (const PolynomialChaosDimension &dimension, int degree)
NumericVector clenshaw_curtis_probability_weights (const PolynomialChaosDimension &dimension, const NumericVector &nodes)
UnivariateQuadratureRule make_gauss_from_jacobi_matrix (const NumericVector &diag, const NumericVector &offdiag, int level)
UnivariateQuadratureRule gauss_rule (const PolynomialChaosDimension &dimension, int order, int level)
UnivariateQuadratureRule gauss_kronrod_rule (const PolynomialChaosDimension &dimension, int order, int level)
UnivariateQuadratureRule clenshaw_curtis_rule (const PolynomialChaosDimension &dimension, int order, int level)
std::vector< std::vector< int > > positive_compositions (int dim, int sum)
std::string sample_key (const NumericVector &point, double tolerance)
std::string method_name (RootSolveMethod method)
RootSolveMethod strategy_to_method (RootSolveStrategy strategy)
std::string unique_name (const std::string &prefix)
void validate_root_options (const RootFinderOptions &opts, const std::string &context)
void validate_root_problem (const casadi::Function &f_casadi, const std::string &context)
casadi::Dict opts_to_dict (const RootFinderOptions &opts)
casadi::DM vector_to_dm (const Eigen::VectorXd &x)
Eigen::VectorXd dm_to_vector (const casadi::DM &x)
Eigen::MatrixXd dm_to_matrix (const casadi::DM &x)
std::string implicit_function_name (const casadi::Function &g_casadi)
void validate_implicit_problem (const casadi::Function &g_casadi, const Eigen::VectorXd &x_guess, const ImplicitFunctionOptions &implicit_opts)
Eigen::VectorXd solve_linear_system (const Eigen::MatrixXd &A, const Eigen::VectorXd &b)
bool all_finite (const Eigen::VectorXd &x)
bool all_finite (const Eigen::MatrixXd &x)
Eigen::VectorXd evaluate_residual_only (const casadi::Function &residual_fn, const Eigen::VectorXd &x)
NumericState evaluate_state (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const Eigen::VectorXd &x, const std::string &context)
void maybe_log (const RootFinderOptions &opts, const std::string &message)
bool is_converged (const NumericState &state, const RootFinderOptions &opts)
StageOutcome solve_trust_region (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const NumericState &start, const RootFinderOptions &opts, int max_iterations)
StageOutcome solve_line_search (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const NumericState &start, const RootFinderOptions &opts, int max_iterations)
StageOutcome solve_broyden (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const NumericState &start, const RootFinderOptions &opts, int max_iterations)
StageOutcome solve_pseudo_transient (const casadi::Function &residual_fn, const casadi::Function &jacobian_fn, const NumericState &start, const RootFinderOptions &opts, int max_iterations)
double rbf_phi (double r, RBFKernel kernel, double epsilon=1.0)
 Evaluate RBF kernel φ(r) for a given distance.
double euclidean_distance (const double *p1, const double *p2, int dims)
 Compute Euclidean distance between two points.
void validate_hardness (double hardness, const char *function_name)
void validate_rho (double rho)
template<std::floating_point T>
auto softplus_scalar (const T &x, double beta)
auto softplus_scalar (const SymbolicScalar &x, double beta)
double validate_positive_scale (double scale, const std::string &context)
double max_finite_abs (std::optional< double > lower_bound, std::optional< double > upper_bound)
double suggest_scalar_scale (double init_guess, std::optional< double > lower_bound, std::optional< double > upper_bound)
double suggest_vector_scale (const NumericVector &init_guess, std::optional< double > lower_bound, std::optional< double > upper_bound)
std::vector< double > dm_to_std_vector (const casadi::DM &value)
double dm_to_scalar (const casadi::DM &value)
std::vector< casadi::MX > current_assignments (const casadi::Opti &opti)
double normalized_magnitude (double magnitude, double scale)
bool nearly_equal (double a, double b)
double constraint_violation (double value, double lower_bound, bool has_lower_bound, double upper_bound, bool has_upper_bound)
double constraint_magnitude (double value, double lower_bound, bool has_lower_bound, double upper_bound, bool has_upper_bound)
ScalingIssueLevel issue_level (double normalized, const ScalingAnalysisOptions &opts)

Variables

template<typename T>
constexpr bool is_tuple_v = is_tuple<T>::value
constexpr double rms_fusion_epsilon = 1e-100
 Small epsilon to prevent division by zero in RMS fusion.
constexpr double polynomial_root_tolerance = 1e-15
 Tolerance for zero-length integration intervals in Birkhoff matrix.
constexpr double rbf_regularization = 1e-10
 Regularization term for RBF interpolation matrix to prevent singularity.
constexpr double rbf_zero_threshold = 1e-15
 Threshold below which thin-plate spline uses linear fallback to avoid log(0).

Detailed Description

Smooth approximation of ReLU function: softplus(x) = (1/beta) * log(1 + exp(beta * x)).

Parameters
xInput value
betaSharpness parameter (default 1.0). Higher = closer to ReLU.
thresholdRetained for backwards compatibility. Unused by the smooth implementation.
Returns
Softplus value

Function Documentation

◆ all_finite() [1/2]

bool janus::detail::all_finite ( const Eigen::MatrixXd & x)
inline

◆ all_finite() [2/2]

bool janus::detail::all_finite ( const Eigen::VectorXd & x)
inline

◆ analyze_property()

StructuralSensitivityReport janus::detail::analyze_property ( const Function & fn,
int input_idx,
StructuralProperty property,
const StructuralSensitivityOptions & opts )
inline

◆ apply_operator() [1/2]

template<JanusScalar Scalar>
JanusMatrix< Scalar > janus::detail::apply_operator ( const NumericMatrix & op,
const JanusMatrix< Scalar > & values,
const std::string & context )

◆ apply_operator() [2/2]

template<JanusScalar Scalar>
JanusVector< Scalar > janus::detail::apply_operator ( const NumericMatrix & op,
const JanusVector< Scalar > & values,
const std::string & context )

◆ as_symbolic_predicate()

SymbolicScalar janus::detail::as_symbolic_predicate ( const SymbolicScalar & expr)
inline

◆ bdf1_step()

template<typename RhsFunc, typename MassFunc>
NumericVector janus::detail::bdf1_step ( RhsFunc && rhs,
MassFunc && mass_matrix,
const NumericVector & y,
double t,
double dt,
const MassMatrixIvpOptions & opts )

◆ best_eigenvector_candidate()

template<typename Scalar>
JanusVector< Scalar > janus::detail::best_eigenvector_candidate ( const std::array< JanusVector< Scalar >, 3 > & cands)

◆ binomial()

double janus::detail::binomial ( int n,
int k )
inline

◆ build_interpn_grid()

InterpnGridData janus::detail::build_interpn_grid ( const std::vector< NumericVector > & points,
const char * context )
inline

◆ build_issues()

std::vector< StructuralDiagnosticIssue > janus::detail::build_issues ( StructuralProperty property,
const std::vector< DiagnosticInputRef > & inputs,
const std::vector< DiagnosticOutputRef > & outputs,
const std::vector< int > & zero_sensitivity_local_indices,
const std::vector< StructuralDeficiencyGroup > & deficiency_groups )
inline

◆ canonical_output_indices()

std::vector< int > janus::detail::canonical_output_indices ( const casadi::Function & cfn,
const std::vector< int > & requested,
const std::string & context )
inline

◆ casadi_to_int()

std::vector< int > janus::detail::casadi_to_int ( const std::vector< casadi_int > & values)
inline

◆ catmull_rom_slope()

double janus::detail::catmull_rom_slope ( const std::vector< double > & x,
const std::vector< double > & y,
size_t i )
inline

Compute Catmull-Rom slope at a point using neighboring values.

For interior points: m = (y[i+1] - y[i-1]) / (x[i+1] - x[i-1]) For endpoints: use one-sided differences

Parameters
xGrid x-coordinates
yGrid y-values
iIndex of point
Returns
Slope at point i
Examples
/home/runner/work/janus/janus/include/janus/math/Interpolate.hpp.

◆ clamp_query_point()

template<JanusScalar Scalar>
SymbolicScalar janus::detail::clamp_query_point ( const JanusVector< Scalar > & point,
const std::vector< std::vector< double > > & grid )
inline

◆ clenshaw_curtis_order_from_level()

int janus::detail::clenshaw_curtis_order_from_level ( int level)
inline

◆ clenshaw_curtis_probability_weights()

NumericVector janus::detail::clenshaw_curtis_probability_weights ( const PolynomialChaosDimension & dimension,
const NumericVector & nodes )
inline

◆ clenshaw_curtis_rule()

UnivariateQuadratureRule janus::detail::clenshaw_curtis_rule ( const PolynomialChaosDimension & dimension,
int order,
int level )
inline

◆ coefficients_are_constant()

bool janus::detail::coefficients_are_constant ( const casadi::MX & A,
int row,
const std::vector< int > & nz_cols )
inline

◆ collect_selected_outputs()

casadi::MX janus::detail::collect_selected_outputs ( const std::vector< casadi::MX > & outputs,
const std::vector< int > & output_indices )
inline

◆ compute_dx()

template<typename DerivedX>
auto janus::detail::compute_dx ( const Eigen::MatrixBase< DerivedX > & x)

◆ concatenate()

template<typename DerivedA, typename DerivedB>
auto janus::detail::concatenate ( const Eigen::MatrixBase< DerivedA > & a,
const Eigen::MatrixBase< DerivedB > & b )

◆ connected_components()

std::vector< BipartiteComponent > janus::detail::connected_components ( const casadi::Sparsity & sp)
inline

◆ constraint_magnitude()

double janus::detail::constraint_magnitude ( double value,
double lower_bound,
bool has_lower_bound,
double upper_bound,
bool has_upper_bound )
inline

◆ constraint_violation()

double janus::detail::constraint_violation ( double value,
double lower_bound,
bool has_lower_bound,
double upper_bound,
bool has_upper_bound )
inline

◆ count_symbolic_truthy()

template<typename Derived>
SymbolicScalar janus::detail::count_symbolic_truthy ( const Eigen::MatrixBase< Derived > & a)

◆ current_assignments()

std::vector< casadi::MX > janus::detail::current_assignments ( const casadi::Opti & opti)
inline

◆ dense_to_sparse()

template<typename MatrixLike>
SparseMatrix janus::detail::dense_to_sparse ( const MatrixLike & A)

◆ determinant_3x3()

template<typename Scalar>
Scalar janus::detail::determinant_3x3 ( const JanusMatrix< Scalar > & A)

◆ dm_to_matrix()

Eigen::MatrixXd janus::detail::dm_to_matrix ( const casadi::DM & x)
inline

◆ dm_to_scalar()

double janus::detail::dm_to_scalar ( const casadi::DM & value)
inline

◆ dm_to_std_vector()

std::vector< double > janus::detail::dm_to_std_vector ( const casadi::DM & value)
inline

◆ dm_to_vector()

Eigen::VectorXd janus::detail::dm_to_vector ( const casadi::DM & x)
inline

◆ eig_symmetric_symbolic()

template<typename Scalar>
EigenDecomposition< Scalar > janus::detail::eig_symmetric_symbolic ( const JanusMatrix< Scalar > & A)

◆ erase_value()

std::vector< int > janus::detail::erase_value ( const std::vector< int > & values,
int erased_index )
inline

◆ escape_dot_label()

std::string janus::detail::escape_dot_label ( const std::string & s)
inline

Escape special characters for DOT format.

◆ escape_for_js()

std::string janus::detail::escape_for_js ( const std::string & content)
inline

Escape a string for embedding in a JavaScript string literal.

Parameters
contentRaw string
Returns
Escaped string safe for use inside a <script> tag

◆ escape_for_json()

std::string janus::detail::escape_for_json ( const std::string & s)
inline

Escape a string for embedding in JSON.

Parameters
sRaw string
Returns
Escaped string safe for use inside a <script> tag

◆ euclidean_distance()

double janus::detail::euclidean_distance ( const double * p1,
const double * p2,
int dims )
inline

Compute Euclidean distance between two points.

◆ evaluate_mass_matrix()

template<typename MassFunc>
NumericMatrix janus::detail::evaluate_mass_matrix ( MassFunc && mass_matrix,
double t,
const NumericVector & y,
const std::string & context )

◆ evaluate_residual_only()

Eigen::VectorXd janus::detail::evaluate_residual_only ( const casadi::Function & residual_fn,
const Eigen::VectorXd & x )
inline

◆ evaluate_state()

NumericState janus::detail::evaluate_state ( const casadi::Function & residual_fn,
const casadi::Function & jacobian_fn,
const Eigen::VectorXd & x,
const std::string & context )
inline

◆ find_row_nonzeros()

std::vector< int > janus::detail::find_row_nonzeros ( const casadi::MX & A,
int row )
inline

◆ finite_difference_jacobian()

template<typename VectorFunc>
NumericMatrix janus::detail::finite_difference_jacobian ( VectorFunc && func,
const NumericVector & x,
double epsilon )

◆ flat_to_multi_index()

std::vector< int > janus::detail::flat_to_multi_index ( int flat_idx,
const std::vector< int > & dims )
inline

Compute multi-dimensional index from flat index (Fortran order).

Examples
/home/runner/work/janus/janus/include/janus/math/Interpolate.hpp.

◆ flatten_fortran_order()

template<typename Derived>
JanusVector< typename Derived::Scalar > janus::detail::flatten_fortran_order ( const Eigen::MatrixBase< Derived > & values)
inline

Flatten N-D values array in Fortran order for CasADi.

CasADi expects values flattened in column-major (Fortran) order. For a 2D array with shape (m, n), this means iterating over the first dimension fastest.

Examples
/home/runner/work/janus/janus/include/janus/math/Interpolate.hpp.

◆ flatten_output()

casadi::MX janus::detail::flatten_output ( const casadi::MX & output)
inline

◆ forward_block_jacobian()

casadi::MX janus::detail::forward_block_jacobian ( const Function & fn,
int output_idx,
int input_idx )
inline

◆ function_jacobian_sparsity()

SparsityPattern janus::detail::function_jacobian_sparsity ( const Function & fn,
int output_idx,
int input_idx )
inline

◆ gauss_kronrod_15_rule()

const EmbeddedQuadratureRule & janus::detail::gauss_kronrod_15_rule ( )
inline

◆ gauss_kronrod_rule()

UnivariateQuadratureRule janus::detail::gauss_kronrod_rule ( const PolynomialChaosDimension & dimension,
int order,
int level )
inline

◆ gauss_legendre_rule()

std::pair< NumericVector, NumericVector > janus::detail::gauss_legendre_rule ( int n)
inline

◆ gauss_order_from_level()

int janus::detail::gauss_order_from_level ( int level)
inline

◆ gauss_rule()

UnivariateQuadratureRule janus::detail::gauss_rule ( const PolynomialChaosDimension & dimension,
int order,
int level )
inline

◆ generate_multi_indices()

std::vector< std::vector< int > > janus::detail::generate_multi_indices ( int dim,
int order,
PolynomialChaosTruncation truncation )
inline

◆ get_op_name()

std::string janus::detail::get_op_name ( const SymbolicScalar & mx)
inline

Get a short description of an MX operation type.

◆ get_sx_node_style()

void janus::detail::get_sx_node_style ( const casadi::SXElem & elem,
std::string & color,
std::string & shape )
inline

Get node styling based on SX element type.

◆ get_sx_operation()

std::string janus::detail::get_sx_operation ( const casadi::SXElem & elem)
inline

Map CasADi SX operation codes to readable labels.

Uses casadi_math.hpp operation codes. Returns a short human-readable string for each operation type.

◆ has_no_free_symbols()

bool janus::detail::has_no_free_symbols ( const casadi::MX & expr)
inline

◆ hermite_interp_1d_numeric()

double janus::detail::hermite_interp_1d_numeric ( const std::vector< double > & x,
const std::vector< double > & y,
double query )
inline

Evaluate 1D Catmull-Rom cubic Hermite spline (numeric only).

Uses cubic Hermite basis functions: h00(t) = 2t³ - 3t² + 1 h10(t) = t³ - 2t² + t h01(t) = -2t³ + 3t² h11(t) = t³ - t²

p(t) = h00(t)*p0 + h10(t)*m0*h + h01(t)*p1 + h11(t)*m1*h where h = x1 - x0, t = (x - x0) / h

Parameters
xGrid x-coordinates (sorted)
yGrid y-values
queryQuery point (must be numeric)
Returns
Interpolated value
Examples
/home/runner/work/janus/janus/include/janus/math/Interpolate.hpp.

◆ hermite_interpn_numeric()

double janus::detail::hermite_interpn_numeric ( const std::vector< std::vector< double > > & grid,
const std::vector< double > & values,
const std::vector< double > & query )
inline

N-dimensional Catmull-Rom interpolation via tensor product (numeric only).

Interpolates in each dimension sequentially using 1D Hermite splines. This function is numeric-only because interval finding requires comparisons.

Examples
/home/runner/work/janus/janus/include/janus/math/Interpolate.hpp.

◆ hermite_symbolic_error_message()

const char * janus::detail::hermite_symbolic_error_message ( )
inline

◆ implicit_function_name()

std::string janus::detail::implicit_function_name ( const casadi::Function & g_casadi)
inline

◆ inf_norm()

double janus::detail::inf_norm ( const NumericVector & x)
inline

◆ input_label()

std::string janus::detail::input_label ( const std::string & input_name,
int local_index )
inline

◆ input_numel()

int janus::detail::input_numel ( const Function & fn,
int input_idx )
inline

◆ integrate_backward_simpson()

template<typename DerivedF, typename DerivedX>
auto janus::detail::integrate_backward_simpson ( const Eigen::MatrixBase< DerivedF > & f,
const Eigen::MatrixBase< DerivedX > & x )

◆ integrate_cubic()

template<typename DerivedF, typename DerivedX>
auto janus::detail::integrate_cubic ( const Eigen::MatrixBase< DerivedF > & f,
const Eigen::MatrixBase< DerivedX > & x )

◆ integrate_forward_simpson()

template<typename DerivedF, typename DerivedX>
auto janus::detail::integrate_forward_simpson ( const Eigen::MatrixBase< DerivedF > & f,
const Eigen::MatrixBase< DerivedX > & x )

◆ invoke_with_symbols()

template<int NInputs, typename Func>
auto janus::detail::invoke_with_symbols ( Func && fn,
const std::vector< SymbolicScalar > & syms )

◆ invoke_with_symbols_impl()

template<typename Func, std::size_t... Is>
auto janus::detail::invoke_with_symbols_impl ( Func && fn,
const std::vector< SymbolicScalar > & syms,
std::index_sequence< Is... >  )

Invoke lambda with unpacked symbolic arguments.

◆ is_bounded_support()

bool janus::detail::is_bounded_support ( const PolynomialChaosDimension & dimension)
inline

◆ is_constant_zero()

bool janus::detail::is_constant_zero ( const SymbolicScalar & expr)
inline

◆ is_converged()

bool janus::detail::is_converged ( const NumericState & state,
const RootFinderOptions & opts )
inline

◆ is_symbolic_predicate()

bool janus::detail::is_symbolic_predicate ( const SymbolicScalar & expr)
inline

◆ issue_level()

ScalingIssueLevel janus::detail::issue_level ( double normalized,
const ScalingAnalysisOptions & opts )
inline

◆ join_labels()

std::string janus::detail::join_labels ( const std::vector< std::string > & labels)
inline

◆ labels_for_inputs()

std::vector< std::string > janus::detail::labels_for_inputs ( const std::vector< DiagnosticInputRef > & inputs,
const std::vector< int > & indices )
inline

◆ labels_for_outputs()

std::vector< std::string > janus::detail::labels_for_outputs ( const std::vector< DiagnosticOutputRef > & outputs,
const std::vector< int > & rows )
inline

◆ lagrangian_function_name()

std::string janus::detail::lagrangian_function_name ( const Function & fn,
const std::string & suffix,
int objective_output_idx,
int constraint_output_idx,
int input_idx )
inline

◆ lagrangian_scalar()

casadi::MX janus::detail::lagrangian_scalar ( const SymbolicArg & objective,
const SymbolicArg & constraints,
const SymbolicArg & multipliers,
const std::string & context )
inline

◆ make_basis_seed()

casadi::MX janus::detail::make_basis_seed ( int rows,
int cols )
inline

◆ make_forward_coloring()

GraphColoring janus::detail::make_forward_coloring ( const casadi::Sparsity & jac_sparsity)
inline

◆ make_gauss_from_jacobi_matrix()

UnivariateQuadratureRule janus::detail::make_gauss_from_jacobi_matrix ( const NumericVector & diag,
const NumericVector & offdiag,
int level )
inline

◆ make_index_vector()

std::vector< int > janus::detail::make_index_vector ( int n)
inline

◆ make_input_refs()

std::vector< DiagnosticInputRef > janus::detail::make_input_refs ( const casadi::Function & cfn,
int input_idx )
inline

◆ make_output_refs()

std::vector< DiagnosticOutputRef > janus::detail::make_output_refs ( const casadi::Function & cfn,
const std::vector< int > & output_indices )
inline

◆ make_parametric_interpolant()

casadi::Function janus::detail::make_parametric_interpolant ( const std::vector< std::vector< double > > & grid,
InterpolationMethod method )
inline

◆ make_preconditioner()

std::function< NumericVector(const NumericVector &)> janus::detail::make_preconditioner ( const SparseMatrix & A,
const LinearSolvePolicy & policy )
inline

◆ make_reverse_coloring()

GraphColoring janus::detail::make_reverse_coloring ( const casadi::Sparsity & jac_sparsity)
inline

◆ make_sparse_hessian_artifacts() [1/2]

SparseHessianArtifacts janus::detail::make_sparse_hessian_artifacts ( const Function & fn,
int output_idx,
int input_idx,
const std::string & name )
inline

◆ make_sparse_hessian_artifacts() [2/2]

SparseHessianArtifacts janus::detail::make_sparse_hessian_artifacts ( const SymbolicArg & expression,
const std::vector< SymbolicArg > & variables,
const std::string & name )
inline

◆ make_sparse_jacobian_artifacts() [1/2]

SparseJacobianArtifacts janus::detail::make_sparse_jacobian_artifacts ( const Function & fn,
int output_idx,
int input_idx,
const std::string & name )
inline

◆ make_sparse_jacobian_artifacts() [2/2]

SparseJacobianArtifacts janus::detail::make_sparse_jacobian_artifacts ( const std::vector< SymbolicArg > & expressions,
const std::vector< SymbolicArg > & variables,
const std::string & name )
inline

◆ make_zero_seed()

casadi::MX janus::detail::make_zero_seed ( int rows,
int cols,
int directions )
inline

◆ max_finite_abs()

double janus::detail::max_finite_abs ( std::optional< double > lower_bound,
std::optional< double > upper_bound )
inline

◆ maybe_log()

void janus::detail::maybe_log ( const RootFinderOptions & opts,
const std::string & message )
inline

◆ method_name() [1/3]

const char * janus::detail::method_name ( MassMatrixIntegratorMethod method)
inline

◆ method_name() [2/3]

std::string janus::detail::method_name ( RootSolveMethod method)
inline

◆ method_name() [3/3]

const char * janus::detail::method_name ( SecondOrderIntegratorMethod method)
inline

◆ method_to_casadi_string()

std::string janus::detail::method_to_casadi_string ( InterpolationMethod method)
inline

◆ multi_index_less()

bool janus::detail::multi_index_less ( const std::vector< int > & lhs,
const std::vector< int > & rhs )
inline

◆ multi_to_flat_index()

int janus::detail::multi_to_flat_index ( const std::vector< int > & multi,
const std::vector< int > & dims )
inline

Compute flat index from multi-dimensional index (Fortran order).

Examples
/home/runner/work/janus/janus/include/janus/math/Interpolate.hpp.

◆ mx_elements()

std::vector< casadi::MX > janus::detail::mx_elements ( const casadi::MX & v)
inline

◆ nearly_equal()

bool janus::detail::nearly_equal ( double a,
double b )
inline

◆ normalize_query_matrix()

template<JanusScalar Scalar>
JanusMatrix< Scalar > janus::detail::normalize_query_matrix ( const JanusMatrix< Scalar > & xi,
int n_dims,
const char * context )
inline

◆ normalize_vector()

template<typename Scalar>
JanusVector< Scalar > janus::detail::normalize_vector ( const JanusVector< Scalar > & v)

◆ normalized_magnitude()

double janus::detail::normalized_magnitude ( double magnitude,
double scale )
inline

◆ opts_to_dict()

casadi::Dict janus::detail::opts_to_dict ( const RootFinderOptions & opts)
inline

◆ output_label()

std::string janus::detail::output_label ( const std::string & output_name,
int rows,
int cols,
int flat_index )
inline

◆ output_numel()

int janus::detail::output_numel ( const Function & fn,
int output_idx )
inline

◆ point_out_of_bounds_numeric()

template<JanusScalar Scalar>
bool janus::detail::point_out_of_bounds_numeric ( const JanusVector< Scalar > & point,
const std::vector< std::vector< double > > & grid )
inline

◆ point_out_of_bounds_symbolic()

SymbolicScalar janus::detail::point_out_of_bounds_symbolic ( const SymbolicVector & point,
const std::vector< std::vector< double > > & grid )
inline

◆ positive_compositions()

std::vector< std::vector< int > > janus::detail::positive_compositions ( int dim,
int sum )
inline

◆ probability_moment()

double janus::detail::probability_moment ( const PolynomialChaosDimension & dimension,
int degree )
inline

◆ property_fix_hint()

std::string janus::detail::property_fix_hint ( StructuralProperty property)
inline

◆ property_name()

std::string janus::detail::property_name ( StructuralProperty property)
inline

◆ property_subject_plural()

std::string janus::detail::property_subject_plural ( StructuralProperty property)
inline

◆ property_subject_singular()

std::string janus::detail::property_subject_singular ( StructuralProperty property)
inline

◆ raw_hermite_polynomial()

template<JanusScalar Scalar>
Scalar janus::detail::raw_hermite_polynomial ( int degree,
const Scalar & x )

◆ raw_jacobi_polynomial()

template<JanusScalar Scalar>
Scalar janus::detail::raw_jacobi_polynomial ( int degree,
const Scalar & x,
double alpha,
double beta )

◆ raw_laguerre_polynomial()

template<JanusScalar Scalar>
Scalar janus::detail::raw_laguerre_polynomial ( int degree,
const Scalar & x,
double alpha )

◆ raw_legendre_polynomial()

template<JanusScalar Scalar>
Scalar janus::detail::raw_legendre_polynomial ( int degree,
const Scalar & x )

◆ rbf_phi()

double janus::detail::rbf_phi ( double r,
RBFKernel kernel,
double epsilon = 1.0 )
inline

Evaluate RBF kernel φ(r) for a given distance.

Parameters
rDistance between points (non-negative)
kernelKernel type
epsilonShape parameter (for Multiquadric/Gaussian)
Returns
Kernel value φ(r)

◆ regression_operator()

NumericMatrix janus::detail::regression_operator ( const NumericMatrix & design_matrix,
double ridge,
const std::string & context )
inline

◆ reverse_block_jacobian()

casadi::MX janus::detail::reverse_block_jacobian ( const Function & fn,
int output_idx,
int input_idx )
inline

◆ rosenbrock_euler_step()

template<typename RhsFunc, typename MassFunc>
NumericVector janus::detail::rosenbrock_euler_step ( RhsFunc && rhs,
MassFunc && mass_matrix,
const NumericVector & y,
double t,
double dt,
const MassMatrixIvpOptions & opts )

◆ sample_key()

std::string janus::detail::sample_key ( const NumericVector & point,
double tolerance )
inline

◆ select()

template<typename Cond, typename DerivedTrue, typename DerivedFalse>
auto janus::detail::select ( const Cond & cond,
const Eigen::MatrixBase< DerivedTrue > & if_true,
const Eigen::MatrixBase< DerivedFalse > & if_false )

◆ sensitivity_function_name()

std::string janus::detail::sensitivity_function_name ( const Function & fn,
const std::string & suffix,
int output_idx,
int input_idx )
inline

◆ shifted_beta_moment()

double janus::detail::shifted_beta_moment ( int degree,
double alpha,
double beta )
inline

◆ slice()

template<typename Derived>
auto janus::detail::slice ( const Eigen::MatrixBase< Derived > & m,
Eigen::Index start,
Eigen::Index end )

◆ softplus_scalar() [1/2]

auto janus::detail::softplus_scalar ( const SymbolicScalar & x,
double beta )
inline

◆ softplus_scalar() [2/2]

template<std::floating_point T>
auto janus::detail::softplus_scalar ( const T & x,
double beta )

◆ solve_broyden()

StageOutcome janus::detail::solve_broyden ( const casadi::Function & residual_fn,
const casadi::Function & jacobian_fn,
const NumericState & start,
const RootFinderOptions & opts,
int max_iterations )
inline

◆ solve_dense_numeric()

template<typename DerivedA, typename DerivedB>
auto janus::detail::solve_dense_numeric ( const Eigen::MatrixBase< DerivedA > & A,
const Eigen::MatrixBase< DerivedB > & b,
const LinearSolvePolicy & policy )

◆ solve_iterative_numeric()

template<typename DerivedB>
auto janus::detail::solve_iterative_numeric ( const SparseMatrix & A,
const Eigen::MatrixBase< DerivedB > & b,
const LinearSolvePolicy & policy )

◆ solve_iterative_with_solver()

template<typename Solver, typename DerivedB>
auto janus::detail::solve_iterative_with_solver ( Solver & solver,
const Eigen::MatrixBase< DerivedB > & b )

◆ solve_line_search()

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 )
inline

◆ solve_linear_system()

Eigen::VectorXd janus::detail::solve_linear_system ( const Eigen::MatrixXd & A,
const Eigen::VectorXd & b )
inline

◆ solve_pseudo_transient()

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 )
inline

◆ solve_sparse_direct_numeric()

template<typename DerivedB>
auto janus::detail::solve_sparse_direct_numeric ( const SparseMatrix & A,
const Eigen::MatrixBase< DerivedB > & b,
const LinearSolvePolicy & policy )

◆ solve_trust_region()

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 )
inline

◆ sort_eigenpairs()

template<typename Scalar>
void janus::detail::sort_eigenpairs ( JanusVector< Scalar > & eigenvalues,
JanusMatrix< Scalar > & eigenvectors )

◆ sort_unique()

std::vector< int > janus::detail::sort_unique ( std::vector< int > values)
inline

◆ squared_norm_probability()

double janus::detail::squared_norm_probability ( const PolynomialChaosDimension & dimension,
int degree )
inline

◆ squared_norm_raw()

double janus::detail::squared_norm_raw ( const PolynomialChaosDimension & dimension,
int degree )
inline

◆ stack_nonzeros()

SymbolicScalar janus::detail::stack_nonzeros ( const SymbolicScalar & expr)
inline

◆ stacked_blocks_to_columns()

casadi::MX janus::detail::stacked_blocks_to_columns ( const casadi::MX & stacked,
int block_rows,
int block_cols,
int n_blocks )
inline

◆ standard_normal_moment()

double janus::detail::standard_normal_moment ( int degree)
inline

◆ strategy_to_method()

RootSolveMethod janus::detail::strategy_to_method ( RootSolveStrategy strategy)
inline

◆ strongly_connected_components()

std::vector< std::vector< int > > janus::detail::strongly_connected_components ( const std::vector< std::vector< int > > & adjacency,
const std::vector< bool > & removed )
inline

◆ structural_rank()

int janus::detail::structural_rank ( const casadi::Sparsity & sp)
inline

◆ structural_rank_of_component()

int janus::detail::structural_rank_of_component ( const casadi::Sparsity & sp,
const BipartiteComponent & component )
inline

◆ suggest_scalar_scale()

double janus::detail::suggest_scalar_scale ( double init_guess,
std::optional< double > lower_bound,
std::optional< double > upper_bound )
inline

◆ suggest_vector_scale()

double janus::detail::suggest_vector_scale ( const NumericVector & init_guess,
std::optional< double > lower_bound,
std::optional< double > upper_bound )
inline

◆ symbolic_inputs_like() [1/2]

std::vector< casadi::MX > janus::detail::symbolic_inputs_like ( const Function & fn)
inline

◆ symbolic_inputs_like() [2/2]

std::vector< SymbolicScalar > janus::detail::symbolic_inputs_like ( const Function & fn,
const std::string & prefix )
inline

◆ symbolic_values_method_error_message()

std::string janus::detail::symbolic_values_method_error_message ( InterpolationMethod method)
inline

◆ symmetric_eigenvector_2x2()

template<typename Scalar>
JanusVector< Scalar > janus::detail::symmetric_eigenvector_2x2 ( const JanusMatrix< Scalar > & A,
const Scalar & lambda )

◆ symmetric_eigenvector_3x3()

template<typename Scalar>
JanusVector< Scalar > janus::detail::symmetric_eigenvector_3x3 ( const JanusMatrix< Scalar > & A,
const Scalar & lambda )

◆ tarjan_visit()

void janus::detail::tarjan_visit ( int node,
TarjanState & state )
inline

◆ tearing_recommendation()

std::vector< int > janus::detail::tearing_recommendation ( const casadi::Sparsity & incidence,
const std::vector< int > & row_indices,
const std::vector< int > & col_indices )
inline

◆ tensor_product_recursive()

void janus::detail::tensor_product_recursive ( int dim,
int order,
int axis,
std::vector< int > & current,
std::vector< std::vector< int > > & indices )
inline

◆ to_casadi_int()

std::vector< casadi_int > janus::detail::to_casadi_int ( const std::vector< int > & values)
inline

◆ to_casadi_parallelization()

std::string janus::detail::to_casadi_parallelization ( MapParallelization parallelization)
inline

◆ to_mx_vector()

std::vector< SymbolicScalar > janus::detail::to_mx_vector ( const std::vector< SymbolicArg > & args)
inline

◆ to_numeric_vector()

NumericVector janus::detail::to_numeric_vector ( std::initializer_list< double > init)
inline

◆ to_symbolic_args()

std::vector< SymbolicArg > janus::detail::to_symbolic_args ( const std::vector< SymbolicScalar > & args)
inline

◆ total_order_recursive()

void janus::detail::total_order_recursive ( int dim,
int order,
int axis,
std::vector< int > & current,
std::vector< std::vector< int > > & indices )
inline

◆ try_make_alias_candidate()

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 )
inline

◆ tuple_to_outputs()

template<typename... Ts>
std::vector< SymbolicArg > janus::detail::tuple_to_outputs ( const std::tuple< Ts... > & t)

◆ tuple_to_outputs_impl()

template<typename Tuple, std::size_t... Is>
std::vector< SymbolicArg > janus::detail::tuple_to_outputs_impl ( const Tuple & t,
std::index_sequence< Is... >  )

Convert a tuple of symbolic scalars to a vector of SymbolicArg.

◆ unique_name()

std::string janus::detail::unique_name ( const std::string & prefix)
inline

◆ validate_bspline_grid()

void janus::detail::validate_bspline_grid ( const std::vector< std::vector< double > > & grid,
const char * context )
inline

◆ validate_degree()

void janus::detail::validate_degree ( int degree,
const std::string & context )
inline

◆ validate_dimension()

void janus::detail::validate_dimension ( const PolynomialChaosDimension & dimension,
const std::string & context )
inline

◆ validate_eval_count()

void janus::detail::validate_eval_count ( const std::string & context,
int n_eval )
inline

◆ validate_function_indices()

void janus::detail::validate_function_indices ( const Function & fn,
int output_idx,
int input_idx,
const char * where )
inline

◆ validate_hardness()

void janus::detail::validate_hardness ( double hardness,
const char * function_name )
inline

◆ validate_implicit_problem()

void janus::detail::validate_implicit_problem ( const casadi::Function & g_casadi,
const Eigen::VectorXd & x_guess,
const ImplicitFunctionOptions & implicit_opts )
inline

◆ validate_input_block()

void janus::detail::validate_input_block ( const casadi::Function & cfn,
int input_idx,
const std::string & context )
inline

◆ validate_iterative_policy()

void janus::detail::validate_iterative_policy ( const LinearSolvePolicy & policy,
const std::string & context )
inline

◆ validate_level()

void janus::detail::validate_level ( int level,
const std::string & context )
inline

◆ validate_linear_solve_dims()

void janus::detail::validate_linear_solve_dims ( Eigen::Index a_rows,
Eigen::Index a_cols,
Eigen::Index b_rows,
const std::string & context )
inline

◆ validate_mass_matrix_options()

void janus::detail::validate_mass_matrix_options ( const MassMatrixIvpOptions & opts,
const std::string & context )
inline

◆ validate_options()

void janus::detail::validate_options ( const StructuralTransformOptions & opts,
const std::string & context )
inline

◆ validate_order()

void janus::detail::validate_order ( int order,
const std::string & context )
inline

◆ validate_output_blocks()

void janus::detail::validate_output_blocks ( const casadi::Function & cfn,
const std::vector< int > & output_indices,
const std::string & context )
inline

◆ validate_positive_scale()

double janus::detail::validate_positive_scale ( double scale,
const std::string & context )
inline

◆ validate_rho()

void janus::detail::validate_rho ( double rho)
inline

◆ validate_root_options()

void janus::detail::validate_root_options ( const RootFinderOptions & opts,
const std::string & context )
inline

◆ validate_root_problem()

void janus::detail::validate_root_problem ( const casadi::Function & f_casadi,
const std::string & context )
inline

◆ validate_same_shape()

void janus::detail::validate_same_shape ( const casadi::MX & lhs,
const casadi::MX & rhs,
const std::string & context,
const std::string & rhs_name )
inline

◆ validate_samples()

void janus::detail::validate_samples ( const NumericMatrix & samples,
int dimension,
const std::string & context )
inline

◆ validate_scalar_expression()

void janus::detail::validate_scalar_expression ( const casadi::MX & expr,
const std::string & context,
const std::string & name )
inline

◆ validate_scalar_output()

void janus::detail::validate_scalar_output ( const Function & fn,
int output_idx,
const std::string & context )
inline

◆ validate_second_order_initial_state()

void janus::detail::validate_second_order_initial_state ( const NumericVector & q0,
const NumericVector & v0 )
inline

◆ validate_second_order_options()

void janus::detail::validate_second_order_options ( const SecondOrderIvpOptions & opts,
const std::string & context )
inline

◆ validate_selected_block()

void janus::detail::validate_selected_block ( const Function & fn,
const StructuralTransformOptions & opts,
const std::string & context )
inline

◆ validate_square_required()

void janus::detail::validate_square_required ( Eigen::Index rows,
Eigen::Index cols,
const std::string & context,
const std::string & solver_name )
inline

◆ vector_to_dm()

casadi::DM janus::detail::vector_to_dm ( const Eigen::VectorXd & x)
inline

◆ vertcat_subset()

casadi::MX janus::detail::vertcat_subset ( const std::vector< casadi::MX > & elems,
const std::vector< int > & indices )
inline

◆ write_graph_html()

void janus::detail::write_graph_html ( std::ostream & out,
const std::string & title,
const std::string & escaped_dot,
const std::string & node_data_json,
const std::string & edges_json,
const std::string & extra_header_js = "" )
inline

Write a complete interactive graph HTML page.

Parameters
outOutput stream
titlePage title
escaped_dotDOT source (JS-escaped)
node_data_jsonNode metadata as JSON
edges_jsonEdge list as JSON
extra_header_jsOptional JS inserted after data declarations

◆ zero_sensitivity_columns()

std::vector< int > janus::detail::zero_sensitivity_columns ( const casadi::Sparsity & sp)
inline

Variable Documentation

◆ is_tuple_v

template<typename T>
bool janus::detail::is_tuple_v = is_tuple<T>::value
inlineconstexpr

◆ polynomial_root_tolerance

double janus::detail::polynomial_root_tolerance = 1e-15
constexpr

Tolerance for zero-length integration intervals in Birkhoff matrix.

◆ rbf_regularization

double janus::detail::rbf_regularization = 1e-10
constexpr

Regularization term for RBF interpolation matrix to prevent singularity.

◆ rbf_zero_threshold

double janus::detail::rbf_zero_threshold = 1e-15
constexpr

Threshold below which thin-plate spline uses linear fallback to avoid log(0).

◆ rms_fusion_epsilon

double janus::detail::rms_fusion_epsilon = 1e-100
constexpr

Small epsilon to prevent division by zero in RMS fusion.