Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
JanusTypes.hpp File Reference

Core type aliases for numeric and symbolic Eigen/CasADi interop. More...

#include <Eigen/Dense>
#include <Eigen/Sparse>
#include <casadi/casadi.hpp>
#include <limits>
Include dependency graph for JanusTypes.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Eigen::NumTraits< casadi::MX >
 NumTraits specialization for casadi::MX Required for Eigen's operator<< and other scalar-dependent operations. More...
class  janus::SymbolicArg
 Universal symbolic argument wrapper for Function inputs/outputs. More...

Namespaces

namespace  Eigen
namespace  janus

Typedefs

template<typename Scalar>
using janus::JanusMatrix = Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic>
 Dynamic-size matrix for both numeric and symbolic backends.
template<typename Scalar>
using janus::JanusVector = Eigen::Matrix<Scalar, Eigen::Dynamic, 1>
 Dynamic-size column vector for both numeric and symbolic backends.
template<typename Scalar>
using janus::Vec2 = Eigen::Matrix<Scalar, 2, 1>
 Fixed-size vectors and matrices for performance-critical code.
template<typename Scalar>
using janus::Vec3 = Eigen::Matrix<Scalar, 3, 1>
template<typename Scalar>
using janus::Vec4 = Eigen::Matrix<Scalar, 4, 1>
template<typename Scalar>
using janus::Mat2 = Eigen::Matrix<Scalar, 2, 2>
template<typename Scalar>
using janus::Mat3 = Eigen::Matrix<Scalar, 3, 3>
template<typename Scalar>
using janus::Mat4 = Eigen::Matrix<Scalar, 4, 4>
using janus::NumericScalar = double
 Numeric scalar type.
using janus::NumericMatrix = JanusMatrix<NumericScalar>
 Eigen::MatrixXd equivalent.
using janus::NumericVector = JanusVector<NumericScalar>
 Eigen::VectorXd equivalent.
using janus::SymbolicScalar = casadi::MX
 CasADi MX symbolic scalar.
using janus::SymbolicMatrix = JanusMatrix<SymbolicScalar>
 Eigen matrix of MX elements.
using janus::SymbolicVector = JanusVector<SymbolicScalar>
 Eigen vector of MX elements.
using janus::SparseMatrix = Eigen::SparseMatrix<double>
 Sparse matrix types for efficient storage of large, sparse numeric data.
using janus::SparseTriplet = Eigen::Triplet<double>
 (row, col, value) triplet

Functions

SymbolicScalar janus::sym (const std::string &name)
 Create a named symbolic scalar variable.
SymbolicScalar janus::sym (const std::string &name, int rows, int cols=1)
 Create a named symbolic matrix variable.
SymbolicVector janus::sym_vector (const std::string &name, int size)
 Create a named symbolic vector (returns SymbolicVector).
SymbolicVector janus::sym_vec (const std::string &name, int size)
 Create a symbolic vector preserving the CasADi primitive connection.
std::pair< SymbolicVector, SymbolicScalarjanus::sym_vec_pair (const std::string &name, int size)
 Create symbolic vector and return both SymbolicVector and underlying MX.
SymbolicScalar janus::as_mx (const SymbolicVector &v)
 Get the underlying MX representation of a SymbolicVector.
template<typename Derived>
casadi::MX janus::to_mx (const Eigen::MatrixBase< Derived > &e)
 Convert Eigen matrix of MX (or numeric) to CasADi MX.
Eigen::Matrix< casadi::MX, Eigen::Dynamic, Eigen::Dynamic > janus::to_eigen (const casadi::MX &m)
 Convert CasADi MX to Eigen matrix of MX.
SymbolicVector janus::as_vector (const casadi::MX &m)
 Convert CasADi MX vector to SymbolicVector (Eigen container of MX).
SymbolicVector janus::to_eigen_vec (const casadi::MX &m)
 Backwards compatibility alias for as_vector.

Detailed Description

Core type aliases for numeric and symbolic Eigen/CasADi interop.