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

Symbolic function wrapper around CasADi with Eigen-native IO. More...

#include "JanusError.hpp"
#include "JanusTypes.hpp"
#include <Eigen/Dense>
#include <casadi/casadi.hpp>
#include <string>
#include <vector>
#include <atomic>
#include <tuple>
#include <utility>
Include dependency graph for Function.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  janus::Function
 Wrapper around casadi::Function providing Eigen-native IO. More...
struct  janus::detail::is_tuple< T >
 Helper to detect if a type is a std::tuple. More...
struct  janus::detail::is_tuple< std::tuple< Ts... > >

Namespaces

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

Enumerations

enum class  janus::MapParallelization { janus::Parallel , janus::Serial , janus::Unroll }
 Batch mapping backend for janus::Function::map(). More...

Functions

std::string janus::detail::to_casadi_parallelization (MapParallelization parallelization)
template<typename Tuple, std::size_t... Is>
std::vector< SymbolicArgjanus::detail::tuple_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< SymbolicArgjanus::detail::tuple_to_outputs (const std::tuple< Ts... > &t)
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.
template<int NInputs, typename Func>
auto janus::detail::invoke_with_symbols (Func &&fn, const std::vector< SymbolicScalar > &syms)
template<int NInputs, int NOutputs, typename Func>
Function janus::make_function (const std::string &name, Func &&fn)
 Create a Function from a lambda expression.
template<int NInputs, typename Func>
Function janus::make_function (const std::string &name, const std::vector< std::string > &input_names, Func &&fn)
 Create a Function from a lambda with named inputs.

Variables

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

Detailed Description

Symbolic function wrapper around CasADi with Eigen-native IO.