Automatic Differentiation
 
Loading...
Searching...
No Matches
base_type.hpp
Go to the documentation of this file.
1#ifndef STAN_MATH_PRIM_META_BASE_TYPE_HPP
2#define STAN_MATH_PRIM_META_BASE_TYPE_HPP
3
10#include <type_traits>
11#include <vector>
12
13namespace stan {
14
25template <typename T, typename = void>
26struct base_type {
27 using type = std::decay_t<T>;
28};
29
30template <typename T>
32
40template <typename T>
41struct base_type<T, std::enable_if_t<is_std_vector<T>::value>> {
43};
44
52template <typename T>
53struct base_type<T, std::enable_if_t<is_eigen<T>::value>> {
55};
56
66template <typename... Types>
80template <typename... Types>
85} // namespace stan
86#endif
require_all_t< std::is_arithmetic< base_type_t< std::decay_t< Types > > >... > require_all_bt_arithmetic
Require all of the base types satisfy std::is_arithmetic.
Definition base_type.hpp:82
require_any_t< is_var< base_type_t< std::decay_t< Types > > >... > require_any_bt_var
Require any of the base types satisfy is_var.
Definition base_type.hpp:68
std::enable_if_t< math::disjunction< Checks... >::value > require_any_t
If any condition is true, template is enabled.
typename base_type< T >::type base_type_t
Definition base_type.hpp:31
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 ...
STL namespace.
base_type_t< typename std::decay_t< T >::Scalar > type
Definition base_type.hpp:54
base_type_t< typename std::decay_t< T >::value_type > type
Definition base_type.hpp:42
std::decay_t< T > type
Definition base_type.hpp:27
Metaprogram structure to determine the base base type of a template argument.
Definition base_type.hpp:26