riccaticpp
Loading...
Searching...
No Matches
utils.hpp File Reference
#include <Eigen/Dense>
#include <type_traits>

Go to the source code of this file.

Classes

struct  riccati::internal::is_complex_impl< T >
 
struct  riccati::internal::is_complex_impl< std::complex< T > >
 
struct  riccati::is_complex< T >
 

Namespaces

namespace  riccati
 
namespace  riccati::internal
 

Typedefs

template<typename Scalar >
using riccati::matrix_t = Eigen::Matrix<Scalar, -1, -1>
 
template<typename Scalar >
using riccati::vector_t = Eigen::Matrix<Scalar, -1, 1>
 
template<typename Scalar >
using riccati::row_vector_t = Eigen::Matrix<Scalar, 1, -1>
 
template<typename Scalar >
using riccati::array2d_t = Eigen::Matrix<Scalar, -1, -1>
 
template<typename Scalar >
using riccati::array1d_t = Eigen::Matrix<Scalar, -1, 1>
 
template<typename Scalar >
using riccati::row_array1d_t = Eigen::Matrix<Scalar, 1, -1>
 
template<typename T >
using riccati::require_not_floating_point = std::enable_if_t<!std::is_floating_point<std::decay_t<T>>::value>
 
template<typename T >
using riccati::require_floating_point = std::enable_if_t<std::is_floating_point<std::decay_t<T>>::value>
 
template<typename T >
using riccati::require_floating_point_or_complex
 
template<typename T >
using riccati::require_not_floating_point_or_complex
 

Functions

template<typename Scalar , typename Vector >
auto riccati::scale (Vector &&x, Scalar x0, Scalar h)
 Scales and shifts a vector of Chebyshev nodes.
 
template<typename T >
constexpr T riccati::pi ()
 
double riccati::eval (double x)
 
template<typename T >
std::complex< T > & riccati::eval (std::complex< T > &x)
 
template<typename T >
std::complex< T > riccati::eval (std::complex< T > &&x)
 
template<typename T >
auto riccati::eval (T &&x)
 
template<typename T , Eigen::Index R, Eigen::Index C>
Eigen::Matrix< T, R, C > riccati::eval (Eigen::Matrix< T, R, C > &&x)
 
template<typename T , Eigen::Index R, Eigen::Index C>
auto & riccati::eval (Eigen::Matrix< T, R, C > &x)
 
template<typename T , Eigen::Index R, Eigen::Index C>
const auto & riccati::eval (const Eigen::Matrix< T, R, C > &x)
 
template<typename T , Eigen::Index R, Eigen::Index C>
Eigen::Array< T, R, C > riccati::eval (Eigen::Array< T, R, C > &&x)
 
template<typename T , Eigen::Index R, Eigen::Index C>
auto & riccati::eval (Eigen::Array< T, R, C > &x)
 
template<typename T , Eigen::Index R, Eigen::Index C>
const auto & riccati::eval (const Eigen::Array< T, R, C > &x)
 
template<typename T , typename Scalar >
auto riccati::get_slice (T &&x_eval, Scalar start, Scalar end)
 
template<typename T , require_floating_point_or_complex< T > * = nullptr>
auto riccati::sin (T x)
 
template<typename T , require_not_floating_point< T > * = nullptr>
auto riccati::sin (T &&x)
 
template<typename T , require_floating_point_or_complex< T > * = nullptr>
auto riccati::cos (T x)
 
template<typename T , require_not_floating_point< T > * = nullptr>
auto riccati::cos (T &&x)
 
template<typename T , require_floating_point_or_complex< T > * = nullptr>
auto riccati::sqrt (T x)
 
template<typename T , require_not_floating_point< T > * = nullptr>
auto riccati::sqrt (T &&x)
 
template<typename T , require_floating_point_or_complex< T > * = nullptr>
auto riccati::square (T x)
 
template<typename T , require_not_floating_point< T > * = nullptr>
auto riccati::square (T &&x)
 
template<typename T , require_floating_point_or_complex< T > * = nullptr>
auto riccati::array (T x)
 
template<typename T , require_not_floating_point< T > * = nullptr>
auto riccati::array (T &&x)
 
template<typename T , require_floating_point_or_complex< T > * = nullptr>
auto riccati::matrix (T x)
 
template<typename T , require_not_floating_point< T > * = nullptr>
auto riccati::matrix (T &&x)
 
template<typename T , require_floating_point_or_complex< T > * = nullptr>
constexpr T riccati::zero_like (T x)
 
template<typename T , require_not_floating_point< T > * = nullptr>
auto riccati::zero_like (const T &x)
 
template<typename T1 , typename T2 , require_floating_point< T1 > * = nullptr>
auto riccati::pow (T1 x, T2 y)
 
template<typename T1 , typename T2 , require_not_floating_point< T1 > * = nullptr>
auto riccati::pow (T1 &&x, T2 y)
 
template<typename T , int R, int C>
void riccati::print (const char *name, const Eigen::Matrix< T, R, C > &x)
 
template<typename T , int R, int C>
void riccati::print (const char *name, const Eigen::Array< T, R, C > &x)
 
template<typename T , std::enable_if_t< std::is_floating_point< std::decay_t< T > >::value||std::is_integral< std::decay_t< T > >::value > * = nullptr>
void riccati::print (const char *name, T &&x)
 
template<typename T , std::enable_if_t< std::is_floating_point< std::decay_t< T > >::value||std::is_integral< std::decay_t< T > >::value > * = nullptr>
void riccati::print (const char *name, const std::complex< T > &x)
 

Variables

template<typename T >
constexpr Eigen::Index riccati::compile_size_v = std::decay_t<T>::RowsAtCompileTime * std::decay_t<T>::ColsAtCompileTime