Automatic Differentiation
 
Loading...
Searching...
No Matches
is_complex.hpp File Reference
#include <stan/math/prim/meta/scalar_type.hpp>
#include <stan/math/prim/meta/value_type.hpp>
#include <stan/math/prim/meta/require_helpers.hpp>
#include <complex>
#include <type_traits>

Go to the source code of this file.

Classes

struct  stan::internal::is_complex_impl< T >
 Provides a member constant value which is equal to true if T is an instance of std::complex and false otherwise. More...
 
struct  stan::internal::is_complex_impl< std::complex< Ts... > >
 
struct  stan::is_complex< T, typename >
 If T is an arithmetic type (that is, an instance of std::complex) or a cv-qualified version thereof, provides the member constant value equal true; for any other type the value is false. More...
 
struct  stan::is_complex< T, std::enable_if_t< internal::is_complex_impl< std::decay_t< T > >::value > >
 
struct  stan::scalar_type< T, std::enable_if_t< is_complex< T >::value > >
 Template metaprogram defining the scalar type for values stored in a complex number. More...
 
struct  stan::is_vt_complex< T >
 If the value_type of the type T is of type std::complex or a cv-qualified version thereof, provides the member constant value equal true; for any other type the value is false. More...
 
struct  stan::is_vt_not_complex< T >
 If the value_type of the type T is not of type std::complex or a cv-qualified version thereof, provides the member constant value equal true; for any other type the value is false. More...
 

Namespaces

namespace  stan
 The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation from C or the boost::math::lgamma implementation.
 
namespace  stan::internal
 

Typedefs

template<typename T >
using stan::require_complex_t = require_t< is_complex< std::decay_t< T > > >
 Require type satisfies is_complex.
 
template<typename T >
using stan::require_not_complex_t = require_not_t< is_complex< std::decay_t< T > > >
 Require type does not satisfy is_complex.
 
template<typename... Types>
using stan::require_all_complex_t = require_all_t< is_complex< std::decay_t< Types > >... >
 Require all of the types satisfy is_complex.
 
template<typename... Types>
using stan::require_any_complex_t = require_any_t< is_complex< std::decay_t< Types > >... >
 Require any of the types satisfy is_complex.
 
template<typename... Types>
using stan::require_all_not_complex_t = require_all_not_t< is_complex< std::decay_t< Types > >... >
 Require none of the types satisfy is_complex.
 
template<typename T >
using stan::require_vt_complex = require_t< is_complex< value_type_t< std::decay_t< T > > > >
 Require value type satisfies is_complex.
 
template<typename T >
using stan::require_not_vt_complex = require_not_t< is_complex< value_type_t< std::decay_t< T > > > >
 Require value type does not satisfy is_complex.
 
template<typename T >
using stan::require_not_st_complex = require_not_t< is_complex< scalar_type_t< std::decay_t< T > > > >
 Require scalar type does not satisfy is_complex.