Automatic Differentiation
 
Loading...
Searching...
No Matches
is_eigen_matrix.hpp
Go to the documentation of this file.
1#ifndef STAN_MATH_PRIM_META_IS_EIGEN_MATRIX_DYNAMIC_HPP
2#define STAN_MATH_PRIM_META_IS_EIGEN_MATRIX_DYNAMIC_HPP
3
10#include <type_traits>
11
12namespace stan {
13
14namespace internal {
15
20template <typename T, bool>
21struct is_eigen_matrix_dynamic_impl : std::false_type {};
22
23template <typename T>
24struct is_eigen_matrix_dynamic_impl<T, false> : std::false_type {};
25
26template <typename T>
28 : bool_constant<!(T::RowsAtCompileTime == 1 || T::ColsAtCompileTime == 1)> {
29};
30
31} // namespace internal
32
41template <typename T>
43 : bool_constant<internal::is_eigen_matrix_dynamic_impl<
44 std::decay_t<T>,
45 is_base_pointer_convertible<Eigen::MatrixBase, T>::value>::value> {};
46
54template <typename T>
57
60template <typename... Types>
63
66template <typename... Types>
81template <template <class...> class TypeCheck, class... Check>
84 TypeCheck, Check...>>;
87} // namespace stan
88
89#endif
require_any_t< is_eigen_matrix_dynamic< std::decay_t< Types > >... > require_any_eigen_matrix_dynamic_t
Require any of the types satisfy is_eigen_matrix_dynamic.
require_all_t< is_eigen_matrix_dynamic< std::decay_t< Types > >... > require_all_eigen_matrix_dynamic_t
Require all of the types satisfy is_eigen_matrix_dynamic.
require_t< is_eigen_matrix_dynamic< std::decay_t< T > > > require_eigen_matrix_dynamic_t
Require type satisfies is_eigen_matrix_dynamic.
require_t< container_type_check_base< is_eigen_matrix_dynamic, value_type_t, TypeCheck, Check... > > require_eigen_matrix_dynamic_vt
Require type satisfies is_eigen_matrix_dynamic.
typename value_type< T >::type value_type_t
Helper function for accessing underlying type.
std::enable_if_t< math::disjunction< Checks... >::value > require_any_t
If any condition is true, template is enabled.
bool_constant< math::conjunction< ContainerCheck< std::decay_t< Check > >..., TypeCheck< ValueCheck< Check > >... >::value > container_type_check_base
Used as the base for checking whether a type is a container with an underlying scalar type.
std::enable_if_t< Check::value > require_t
If condition is true, template is enabled.
std::enable_if_t< math::conjunction< Checks... >::value > require_all_t
If all conditions are true, template is enabled Returns a type void if all conditions are true and ot...
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...
Underlying implimenation to check if an Eigen matrix has rows or cols not equal to 1.
Checks whether type T is derived from Eigen::MatrixBase and has columns and rows not equal to 1.