Hydra: hydra Namespace Reference (original) (raw)
Data Structures
class
class
AnalyticalIntegral< Functor, 1 >
struct
class
Implementation describing the ARGUS background shape. More...
class
class
BaseCompositeFunctor< Composite, hydra::thrust::tuple< F1, F2, Fs... >, Signature >
class
class
class
Base class for all functors in hydra. More...
class
class
Breit-Wigner line shape for 3 body resonant decays \( A -> r c , r-> a b\) , where A is a "long-lived" particle and \( a, b\) and \(c\) are the final states. More...
class
class
The Chebyshev polynomials \( T_n \) (first kind) are polynomials with the largest possible leading coefficient, but subject to the condition that their absolute value on the interval [−1,1] is bounded by 1. More...
class
The chi-squared distribution (also chi-square or \( \chi^2 \) -distribution) with \( k \) degrees of freedom is the distribution of a sum of the squares of k independent standard normal random variables. More...
class
class
class
class
class
struct
class
class
class
class
Implementation the Crystal Ball line shape. More...
class
A simple method for a one—dimensional interpolation on a given set of data points (xi, yi). More...
class
class
Decays< hydra::tuple< Particles... >, hydra::detail::BackendPolicy< Backend > >
This class provides storage for N-particle states. More...
class
class
class
DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional >
Class representing one-dimensional dense histogram. More...
class
DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >
Class representing multidimensional dense histograms. More...
class
struct
struct
class
class
distribution https://en.wikipedia.org/wiki/Laplace_distribution More...
class
https://en.wikipedia.org/wiki/Exponential_function More...
class
class
FCN< Estimator< PDF, Iterator >, true >
class
FCN< Estimator< PDF, Iterator, Iterators... >, true >
class
FCN< hydra::thrust::tuple< FCN< ESTIMATORS >... >, false >
class
Gaussian functions are often used to represent the probability density function of a normally distributed random variable with expected value \( \mu \) and variance \( \sigma \). More...
class
class
GaussKronrodAdaptiveQuadrature
class
GaussKronrodAdaptiveQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >
struct
struct
class
class
GaussKronrodQuadrature< NRULE, NBIN, hydra::detail::BackendPolicy< BACKEND > >
struct
Rules for Gauss-Kronrod quadrature. More...
struct
struct
GaussKronrodRuleSelector< 15 >
Rules for Gauss-Kronrod quadrature. More...
struct
GaussKronrodRuleSelector< 21 >
Rules for Gauss-Kronrod quadrature. More...
struct
GaussKronrodRuleSelector< 31 >
Rules for Gauss-Kronrod quadrature. More...
struct
GaussKronrodRuleSelector< 41 >
Rules for Gauss-Kronrod quadrature. More...
struct
GaussKronrodRuleSelector< 51 >
Rules for Gauss-Kronrod quadrature. More...
struct
GaussKronrodRuleSelector< 61 >
Rules for Gauss-Kronrod quadrature. More...
struct
class
class
GenzMalikQuadrature< N, hydra::detail::BackendPolicy< BACKEND > >
Non-adaptive Genz-Malik multidimensional quadrature. More...
class
class
GenzMalikRule< DIM, hydra::detail::BackendPolicy< BACKEND > >
Class representing Genz-Malik rule. More...
class
struct
struct
class
class
IntegrationFormula< ArgusShape< ArgType >, 1 >
class
IntegrationFormula< BifurcatedGaussian< ArgType >, 1 >
class
IntegrationFormula< BreitWignerNR< ArgType >, 1 >
class
IntegrationFormula< Chebychev< Order, ArgType >, 1 >
class
IntegrationFormula< ChiSquare< ArgType >, 1 >
class
IntegrationFormula< CrystalBallShape< ArgType >, 1 >
class
IntegrationFormula< DeltaDMassBackground< ArgType >, 1 >
class
IntegrationFormula< DoubleExponential< ArgType >, 2 >
class
IntegrationFormula< Exponential< ArgType >, 1 >
class
IntegrationFormula< Gaussian< ArgType >, 1 >
class
IntegrationFormula< Ipatia< ArgType >, 1 >
class
IntegrationFormula< JohnsonSU< ArgType >, 1 >
class
IntegrationFormula< LogNormal< ArgType >, 1 >
class
IntegrationFormula< Polynomial< Order, ArgType >, 1 >
class
IntegrationFormula< TrapezoidalShape< ArgType >, 1 >
class
IntegrationFormula< TriangularShape< ArgType >, 1 >
class
IntegrationFormula< UniformShape< ArgType >, 1 >
class
version of the Ipatia distribution as described in the reference https://doi.org/10.1016/j.nima.2014.06.081. More...
class
class
class
class
class
LogLikelihoodFCN< Pdf< Functor, Integrator >, IteratorD, IteratorW... >
class
LogLikelihoodFCN< PDFSumExtendable< Pdfs... >, IteratorD, IteratorW... >
class
LogLikelihoodFCN< PDFSumNonExtendable< Pdfs... >, IteratorD, IteratorW... >
class
In probability theory, a log-normal (or lognormal) distribution is a continuous probability distribution of a random variable whose logarithm is normally distributed. More...
class
Two-body phase-space distribution for \( m_{12}\):
\[ \frac{dN}{dm_{m_12}} \propto q.p \]
. More...
class
Two-body phase-space distribution for \( m_{12}^2\):
\[ \frac{dN}{dm^2_{12}} \propto q.p/m^2_{12} \]
. More...
class
class
class
multiarray< T, N, hydra::detail::BackendPolicy< BACKEND > >
class
class
class
multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND > >
This class implements storage in SoA layouts for table where all elements have the same type. More...
struct
class
struct
, More...
class
Class representing probability density functions. More...
class
Class representing a pdf object built summing up other pdfs. More...
class
Class representing a pdf object built summing a pdf adding other pdfs. More...
class
This class implements phase-space Monte Carlo generation in hydra. More...
class
class
PhaseSpaceIntegrator< N, hydra::detail::BackendPolicy< BACKEND >, GRND >
class
class
struct
class
Plain< N, hydra::detail::BackendPolicy< BACKEND >, GRND >
This class implements the Plain MC numerical integration algorithm in Hydra. More...
struct
Simple structure to hold the results of the Plain MC numerical integration. More...
class
This functor calculates the delta angle between decay plane of the particle with four-vector d2 and d3 (same plane) and h1 (other plane) More...
class
From : https://en.wikipedia.org/wiki/Polynomial More...
class
struct
ProcessGaussKronrodAdaptiveQuadrature
class
class
class
class
class
struct
class
struct
RngFormula< BifurcatedGaussian< ArgType > >
struct
RngFormula< BreitWignerNR< ArgType > >
struct
RngFormula< ChiSquare< ArgType > >
struct
RngFormula< Exponential< ArgType > >
struct
RngFormula< Gaussian< ArgType > >
struct
RngFormula< JohnsonSU< ArgType > >
struct
RngFormula< LogNormal< ArgType > >
struct
RngFormula< TrapezoidalShape< ArgType > >
struct
RngFormula< TriangularShape< ArgType > >
struct
RngFormula< UniformShape< ArgType > >
class
class
ScopedBuffer< T, detail::BackendPolicy< BACKEND > >
class
class
Instantiations of class template sobol. The sobol_engine uses the algorithm described in [Bratley+Fox, TOMS 14, 88 (1988)] and [Antonov+Saleev, USSR Comput. Maths. Math. Phys. 19, 252 (1980)] . More...
class
class
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >
Class representing one-dimensional sparse histogram. More...
class
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >
Class representing multidimensional sparse histogram. More...
class
class
class
class
class
Implementation of {s}_{Plot} technique for statistical unfolding of sample containing events from different sources. More...
class
class
ThreeBodyMassThresholdBackground
class
In probability theory and statistics, the trapezoidal distribution is a continuous probability distribution the graph of whose probability density function resembles a trapezoid. More...
class
From: https://en.wikipedia.org/wiki/Triangular_distribution. More...
class
From: https://en.wikipedia.org/wiki/Uniform_distribution_(continuous) More...
class
Class implementing a interface to ROOT::Minuit2::MnUserParameters. More...
class
class
Vegas< N, hydra::detail::BackendPolicy< BACKEND >, GRND >
Class to perform numerical integration using Vegas algorithm. More...
class
Class to hold resources and state of hydra::Vegas integration algorithm. More...
class
VegasState< N, hydra::detail::BackendPolicy< BACKEND > >
Class to hold resources and state of hydra::Vegas integration algorithm. More...
class
Calculates the beta-term
\[ d^j_{mn}(beta) \]
in the matrix element of the finite rotation operator (Wigner's D-function), according to formula 4.3.4(eq. More...
class
Zemach's angular probability distribution for 3-body decays of spinless particle into spinless final states as a function of \(\theta\), the helicity angle: More...
Typedefs
typedef hydra::random::ars
Ars uses the crypotgraphic AES round function, but a non-cryptographc key schedule to save time and space. More...
template
using
complex = hydra::thrust::complex< T >
typedef hydra::random::squares3
An implementation-defined "default" random number engine. More...
typedef detail::SobolTable
typedef bool
Boolean (0=false, 1=true) (bool) More...
typedef unsigned char
Byte (8 bits) (unsigned char) More...
typedef char
Signed Character 1 byte (char) More...
typedef double
Double 8 bytes. More...
typedef float
Float 4 bytes (float) More...
typedef int
Signed integer 4 bytes (int) More...
typedef long long
Portable signed long integer 8 bytes. More...
typedef long
Signed long integer 4 bytes (long) More...
typedef long double
Long Double. More...
typedef double
Double 16 bytes or float 4 bytes. More...
typedef short
Signed Short integer 2 bytes (short) More...
typedef char
General string (char) More...
typedef unsigned char
Unsigned Character 1 byte (unsigned char) More...
Unsigned integer 4 bytes (unsigned int) More...
typedef unsigned long long
Portable unsigned long integer 8 bytes. More...
typedef unsigned long
typedef unsigned short
Unsigned Short integer 2 bytes (unsigned short) More...
template
using
mc_device_vector = hydra::thrust::device_vector< T >
Generic template typedef for hydra::thrust::host_vector. More...
template
using
mc_host_vector = hydra::thrust::host_vector< T, hydra::thrust::system::cuda::experimental::pinned_allocator< T > >
Generic template typedef for hydra::thrust::host_vector. More...
typedef hydra::thrust::random::minstd_rand
A random number engine with predefined parameters which implements a version of the Minimal Standard random number generation algorithm. More...
typedef hydra::thrust::random::minstd_rand0
A random number engine with predefined parameters which implements a version of the Minimal Standard random number generation algorithm. More...
template<typename T1 , typename T2 >
using
pair = hydra::thrust::pair< T1, T2 >
pair template is an alias to the hydra::thrust::pair structure. More...
typedef hydra::random::philox
The Philox family of counter-based RNGs use integer multiplication, xor and permutation of W-bit words to scramble its N-word input key. More...
typedef hydra::random::philox_long
typedef hydra::thrust::random::ranlux24
A random number engine with predefined parameters which implements the RANLUX level-3 random number generation algorithm. More...
typedef hydra::thrust::random::ranlux48
A random number engine with predefined parameters which implements the RANLUX level-4 random number generation algorithm. More...
template
using
sobol = sobol_engine< uint_least64_t, D, 64u, default_sobol_table >
typedef hydra::random::squares3
Ars uses the crypotgraphic AES round function, but a non-cryptographc key schedule to save time and space. More...
typedef hydra::random::squares4
Ars uses the crypotgraphic AES round function, but a non-cryptographc key schedule to save time and space. More...
typedef hydra::thrust::random::taus88
A random number engine with predefined parameters which implements L'Ecuyer's 1996 three-component Tausworthe random number generator. More...
typedef hydra::random::threefry
Threefry uses integer addition, bitwise rotation, xor and permutation of words to randomize its output. More...
typedef hydra::random::threefry_long
Threefry uses integer addition, bitwise rotation, xor and permutation of words to randomize its output. More...
template<typename... T>
using
tuple = hydra::thrust::tuple< T... >
tuple template is an alias to the variadic version of hydra::thrust::tuple and that can be instantiated with a indefinite number of arguments. More...
template<int N, class T >
using
tuple_element = hydra::thrust::tuple_element< N, T >
The get function returns a const reference to a tuple element of interest. More...
template
using
tuple_size = hydra::thrust::tuple_size< T >
This metafunction returns the number of elements of a tuple type of interest. More...
Enumerations
enum
{ MODE_IMPORTANCE = 1, MODE_IMPORTANCE_ONLY = 0, MODE_STRATIFIED = -1, BINS_MAX = 50 }
enum
{ INFO =0, WARNING =1, ERROR =2 }
enum
Wave {
SWave =0, PWave, DWave, FWave,
GWave, HWave
}
Orbital angular momentum tags. More...
Functions
class
__hydra_align__ (16) Vector3R
This class represents three-dimensional Euclidian vectors and implements common operation performed on it. More...
template
__hydra_host__ __hydra_device__ T
template
__hydra_host__ __hydra_device__ complex< T >
template
__hydra_host__ __hydra_device__ complex< T >
template<typename PDF1 , typename PDF2 , typename ... PDFs>
PDFSumNonExtendable< PDF1, PDF2, PDFs... >
add_pdfs (std::array< Parameter, sizeof...(PDFs)+1 >const &var_list, PDF1 const &pdf1, PDF2 const &pdf2, PDFs const &...pdfs)
Function to build up non-extendable pdfs models. More...
template<typename PDF1 , typename PDF2 , typename ... PDFs>
PDFSumExtendable< PDF1, PDF2, PDFs... >
add_pdfs (std::array< Parameter, sizeof...(PDFs)+2 >const &var_list, PDF1 const &pdf1, PDF2 const &pdf2, PDFs const &...pdfs)
Function to build up extendable pdfs models. More...
template
__hydra_host__ __hydra_device__ T
template
__hydra_host__ __hydra_device__ complex< T >
template
__hydra_host__ __hydra_device__ complex< T >
template
__hydra_host__ __hydra_device__ complex< T >
template
__hydra_host__ __hydra_device__ complex< T >
template<hydra::Wave L>
__hydra_host__ __hydra_device__ double
BarrierFactor (const double d, const double p0, const double p)
Blatt-Weisskopf B' functions. More...
template<>
__hydra_host__ __hydra_device__ double
BarrierFactor< hydra::DWave > (const double radi, const double p0, const double p)
template<>
__hydra_host__ __hydra_device__ double
BarrierFactor< hydra::FWave > (const double radi, const double p0, const double p)
template<>
__hydra_host__ __hydra_device__ double
BarrierFactor< hydra::GWave > (const double radi, const double p0, const double p)
template<>
__hydra_host__ __hydra_device__ double
BarrierFactor< hydra::HWave > (const double radi, const double p0, const double p)
template<>
__hydra_host__ __hydra_device__ double
BarrierFactor< hydra::PWave > (const double radi, const double p0, const double p)
template<>
__hydra_host__ __hydra_device__ double
BarrierFactor< hydra::SWave > (const double, const double, const double)
template
auto
begin (const C &c) -> decltype(c.begin())
template
auto
begin (C &&c) -> decltype(std::forward< C >(c).begin())
template<class T , size_t N>
T *
begin (T(&array)[N])
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
begin (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.begin(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
begin (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.begin(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto
begin (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.begin(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto
begin (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.begin(placeholders::placeholder< I >
__hydra_host__ __hydra_device__ double
bessel_i (const int n, const double x)
Modified Bessel function of first kind and order n. More...
__hydra_host__ __hydra_device__ double
Modified Bessel function of first kind and order 0. More...
__hydra_host__ __hydra_device__ double
Modified Bessel function of first kind and order 1. More...
__hydra_host__ __hydra_device__ double
bessel_j (const int n, const double x)
Bessel function of first kind and order n. More...
__hydra_host__ __hydra_device__ double
Bessel function of first kind and order 0. More...
__hydra_host__ __hydra_device__ double
Bessel function of first kind and order 1. More...
__hydra_host__ __hydra_device__ double
bessel_k (const int n, const double x)
Modified Bessel function of second kind and order n. More...
__hydra_host__ __hydra_device__ double
Modified Bessel function of second kind and order 0. More...
__hydra_host__ __hydra_device__ double
Modified Bessel function of second kind and order 1. More...
__hydra_host__ __hydra_device__ double
bessel_y (const int n, const double x)
Bessel function of second kind and order n. More...
__hydra_host__ __hydra_device__ double
Bessel function of second kind and order 0. More...
__hydra_host__ __hydra_device__ double
Bessel function of second kind and order 1. More...
template
std::enable_if< hydra::detail::is_iterable< Iterable >::value, Range< hydra::thrust::permutation_iterator< decltype(std::declval< Iterable & >).begin()), hydra::thrust::transform_iterator< detail::RndUniform< size_t, hydra::thrust::random::default_random_engine >,hydra::thrust::counting_iterator< size_t >, size_t > > > >::type
boost_strapped_range (Iterable &&iterable, size_t seed)
__hydra_host__ __hydra_device__ Vector4R
boostTo (const Vector4R &rs, const Vector4R &p4, bool inverse=false)
__hydra_host__ __hydra_device__ Vector4R
boostTo (const Vector4R &rs, const Vector3R &boost, bool inverse=false)
__hydra_host__ __hydra_device__ double
chebychev_1st_kind (unsigned n, const double x)
Implementation of Chebychev polynomials of first kind \( P_n(n) \) using the recursive relation. More...
__hydra_host__ __hydra_device__ double
chebychev_2nd_kind (unsigned n, const double x)
Implementation of Chebychev polynomials of second kind \( P_n(n) \) using the recursive relation. More...
template<typename Iterable_Index , typename Iterable_Values >
auto
collect (Iterable_Index &indexing_scheme, Iterable_Values &collected_values) -> typename std::enable_if< hydra::detail::is_iterable< Iterable_Index >::value &&hydra::detail::is_iterable< Iterable_Values >::value, Range< hydra::thrust::permutation_iterator< decltype(std::declval< Iterable_Values &>().begin()), decltype(std::declval< Iterable_Index &>().begin())> >::type
template<hydra::detail::Backend BACKEND, typename T , size_t N, unsigned int... I>
auto
columns (multiarray< T, N, detail::BackendPolicy< BACKEND >>const &other, placeholders::placeholder< I >...cls) -> Range< decltype(std::declval< multiarray< T, N, detail::BackendPolicy< BACKEND >>const &>().begin(placeholders::placeholder< I >
template<hydra::detail::Backend BACKEND, typename T , size_t N, unsigned int... I>
auto
columns (multiarray< T, N, detail::BackendPolicy< BACKEND >> &other, placeholders::placeholder< I >...cls) -> Range< decltype(std::declval< multiarray< T, N, detail::BackendPolicy< BACKEND >> &&>().begin(placeholders::placeholder< I >
template<hydra::detail::Backend BACKEND, typename ... T, unsigned int... I>
auto
columns (multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >>const &other, placeholders::placeholder< I >...cls) -> Range< decltype(std::declval< multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> const &>().begin(placeholders::placeholder< I >
template<hydra::detail::Backend BACKEND, typename ... T, unsigned int... I>
auto
columns (multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> &other, placeholders::placeholder< I >...cls) -> Range< decltype(std::declval< multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> &>().begin(placeholders::placeholder< I >
template<typename Type , hydra::detail::Backend BACKEND, typename ... T>
auto
columns (multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> &other) -> Range< decltype(std::declval< multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND >> &>().begin(placeholders::placeholder< detail::index_in_tuple< Type, hydra::thrust::tuple< T... > >::value >
template<typename T0 , typename T1 , typename ... Ts>
std::enable_if<(detail::is_hydra_functor< T0 >::value||detail::is_hydra_lambda< T0 >::value) &&(detail::is_hydra_functor< T1 >::value||detail::is_hydra_lambda< T1 >::value) &&detail::all_true<(detail::is_hydra_functor< Ts >::value||detail::is_hydra_lambda< Ts >::value)... >::value, Compose< T0, T1, Ts... > >::type
compose (T0 const &F0, T1 const &F1, Ts const &...Fs)
template
__hydra_host__ __hydra_device__ complex< T >
template<typename Value_Type >
Range< hydra::thrust::constant_iterator< Value_Type > >
constant_range (const Value_Type &value)
template<detail::Backend BACKEND, detail::FFTCalculator FFTBackend, typename Functor , typename Kernel , typename Iterable , typename T = typename detail::stripped_type<typename hydra::thrust::iterator_traits<decltype(std::declval().begin())>::value_type>::type, typename USING_CUDA_BACKEND = typename std::conditional< std::is_convertible<detail::BackendPolicy,hydra::thrust::system::cuda::tag >::value, std::integral_constant<int, 1>,std::integral_constant<int, 0>>::type, typename USING_CUFFT = typename std::conditional< FFTBackend==detail::CuFFT, std::integral_constant<int, 1>,std::integral_constant<int, 0>>::type, typename GPU_DATA = typename std::conditional< std::is_convertible<typename hydra::thrust::iterator_system< decltype(std::declval().begin())>::type, hydra::thrust::system::cuda::tag>::value , std::integral_constant<int, 1>, std::integral_constant<int, 0> >::type>
std::enable_if< std::is_floating_point< T >::value &&hydra::detail::is_iterable< Iterable >::value,void >::type
convolute (detail::BackendPolicy< BACKEND > policy, detail::FFTPolicy< T, FFTBackend > fft_policy, Functor const &functor, Kernel const &kernel, T min, T max, Iterable &&output, bool power_up=true)
template<typename Iterable_Source , typename Iterable_Target >
std::enable_if< hydra::detail::is_iterable< Iterable_Source >::value &&hydra::detail::is_iterable< Iterable_Target >::value, Range< decltype(std::declval< Iterable_Target & >).begin())> >::type
copy (Iterable_Source &&source, Iterable_Target &&destination)
template<typename InputIterator , typename OutputIterator >
OutputIterator
copy (InputIterator first, InputIterator last, OutputIterator result)
template<detail::Backend Backend, typename InputIterator , typename OutputIterator >
OutputIterator
copy (hydra::detail::BackendPolicy< Backend > const &policy, InputIterator first, InputIterator last, OutputIterator result)
template
__hydra_host__ __hydra_device__ complex< T >
template
__hydra_host__ __hydra_device__ complex< T >
__hydra_host__ __hydra_device__ Vector3R
cross (const Vector3R &p1, const Vector3R &p2)
template
__hydra_host__ __hydra_device__ auto
distance (Iterator first, Iterator last) -> decltype(hydra::thrust::distance< Iterator >(first, last))
template<typename F1 , typename F2 , typename ... Fs>
std::enable_if<(detail::is_hydra_functor< F1 >::value||detail::is_hydra_lambda< F1 >::value) &&(detail::is_hydra_functor< F2 >::value||detail::is_hydra_lambda< F2 >::value), Divide< F1, F2 > >::type
divide (F1 const &f1, F2 const &f2)
template
auto
end (const C &c) -> decltype(c.end())
template
auto
end (C &&c) -> decltype(std::forward< C >(c).end())
template<class T , size_t N>
T *
end (T(&array)[N])
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
end (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.end(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
end (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.end(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto
end (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.end(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto
end (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.end(placeholders::placeholder< I >
__hydra_host__ __hydra_device__ long double
template<hydra::detail::Backend BACKEND, typename Iterator , typename Functor >
auto
eval (hydra::detail::BackendPolicy< BACKEND >, Functor const &functor, Iterator begin, Iterator end) -> typename hydra::detail::BackendPolicy< BACKEND >::template container< typename Functor::return_type >
Evaluate a hydra functor on a range using the parallel policy. More...
template<hydra::detail::Backend BACKEND, typename Iterator , typename ... Functors>
auto
eval (hydra::detail::BackendPolicy< BACKEND >,hydra::thrust::tuple< Functors... > const &functors, Iterator begin, Iterator end) -> multivector< hydra::thrust::tuple< typename Functors::return_type ... >, hydra::detail::BackendPolicy< BACKEND >>
Evaluate a tuple of hydra functors on a range using the parallel policy. More...
template<hydra::detail::Backend BACKEND, typename Functor , typename Iterator , typename ... Iterators>
auto
eval (hydra::detail::BackendPolicy< BACKEND >, Functor const &functor, Iterator begin, Iterator end, Iterators... begins) -> typename hydra::detail::BackendPolicy< BACKEND >::template container< typename Functor::return_type >
Evaluate a functor over a list of ranges. More...
template<hydra::detail::Backend BACKEND, typename Iterator , typename ... Iterators, typename ... Functors>
auto
eval (hydra::detail::BackendPolicy< BACKEND >, hydra::thrust::tuple< Functors... > const &functors, Iterator begin, Iterator end, Iterators... begins) -> multivector< hydra::thrust::tuple< typename Functors::return_type ... >, hydra::detail::BackendPolicy< BACKEND > >
Evaluate a tuple of functors over a list of ranges. More...
template
__hydra_host__ __hydra_device__ complex< T >
template<typename Engine , hydra::detail::Backend BACKEND, typename Iterator , typename FUNCTOR >
std::enable_if< hydra::detail::has_rng_formula< FUNCTOR >::value &&std::is_convertible< decltype(std::declval< RngFormula< FUNCTOR > >).Generate(std::declval< Engine & >), std::declval< FUNCTOR const & >))), typename hydra::thrust::iterator_traits< Iterator >::value_type >::value, void >::type
fill_random (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterator begin, Iterator end, FUNCTOR const &functor, size_t seed, size_t rng_jump)
Fill a range with numbers distributed according a user defined distribution using a RNG analytical formula. More...
template<typename Engine , typename Iterator , typename FUNCTOR >
std::enable_if< hydra::detail::has_rng_formula< FUNCTOR >::value &&std::is_convertible< decltype(std::declval< RngFormula< FUNCTOR > >).Generate(std::declval< Engine & >), std::declval< FUNCTOR const & >))), typename hydra::thrust::iterator_traits< Iterator >::value_type >::value, void >::type
fill_random (Iterator begin, Iterator end, FUNCTOR const &functor, size_t seed, size_t rng_jump)
Fill a range with numbers distributed according a user defined distribution using a RNG analytical formula. More...
template<typename Engine , hydra::detail::Backend BACKEND, typename Iterable , typename FUNCTOR >
std::enable_if< detail::random::is_matching_iterable< Engine, FUNCTOR, Iterable >::value, void >::type
fill_random (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterable &&iterable, FUNCTOR const &functor, size_t seed, size_t rng_jump)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename Engine , typename Iterable , typename FUNCTOR >
std::enable_if< detail::random::is_matching_iterable< Engine, FUNCTOR, Iterable >::value, void >::type
fill_random (Iterable &&iterable, FUNCTOR const &functor, size_t seed, size_t rng_jump)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename Engine , hydra::detail::Backend BACKEND, typename Iterator , typename FUNCTOR >
std::enable_if< < FUNCTOR >::value, void >::type
fill_random (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterator begin, Iterator end, FUNCTOR const &functor, size_t seed, size_t rng_jump)
Fall back function if RngFormula is not implemented for the requested functor. More...
template<typename Engine , typename Iterator , typename FUNCTOR >
std::enable_if< < FUNCTOR >::value, void >::type
fill_random (Iterator begin, Iterator end, FUNCTOR const &functor, size_t seed, size_t rng_jump)
Fall back function if RngFormula is not implemented for the requested functor. More...
template<typename Engine , hydra::detail::Backend BACKEND, typename Iterator , typename FUNCTOR >
std::enable_if< !std::is_convertible< decltype(std::declval< RngFormula< FUNCTOR > >).Generate(std::declval< Engine & >), std::declval< FUNCTOR const & >))), typename std::iterator_traits< Iterator >::value_type >::value &&hydra::detail::has_rng_formula< FUNCTOR >::value, void >::type
fill_random (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterator begin, Iterator end, FUNCTOR const &funct, size_t seed, size_t rng_jump)
Fall back function if RngFormula::Generate() return value is not convertible to functor return value. More...
template<typename Engine , typename Iterator , typename FUNCTOR >
std::enable_if< !std::is_convertible< decltype(std::declval< RngFormula< FUNCTOR > >).Generate(std::declval< Engine & >), std::declval< FUNCTOR const & >))), typename std::iterator_traits< Iterator >::value_type >::value &&hydra::detail::has_rng_formula< FUNCTOR >::value, void >::type
fill_random (Iterator begin, Iterator end, FUNCTOR const &funct, size_t seed, size_t rng_jump)
Fall back function if RngFormula::Generate() return value is not convertible to functor return value. More...
template<typename Engine , hydra::detail::Backend BACKEND, typename Iterable , typename FUNCTOR >
std::enable_if< !(detail::random::is_matching_iterable< Engine, FUNCTOR, Iterable >::value), void >::type
fill_random (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterable &&iterable, FUNCTOR const &functor, size_t seed, size_t rng_jump)
Fall back function if the argument is not an Iterable or if it is not convertible to the Functor return value. More...
template<typename Engine , typename Iterable , typename FUNCTOR >
std::enable_if<< Engine, FUNCTOR, Iterable >::value, void >::type
fill_random (Iterable &&iterable, FUNCTOR const &functor, size_t seed, size_t rng_jump)
Fall back function if the argument is not an Iterable or if it is not convertible to the Functor return value. More...
template<typename Engine = hydra::default_random_engine, typename Iterable , typename FUNCTOR >
std::enable_if<!(detail::random::is_matching_iterable< Engine, FUNCTOR, Iterable >::value), void >::type
fill_random (Iterable &&iterable, FUNCTOR const &functor, size_t seed=0x254a0afcf7da74a2, size_t rng_jump=0)
Fall back function if the argument is not an Iterable or if itis not convertible to the Functor return value. More...
template<typename Iterable , typename Functor >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, hydra::Range< decltype(std::declval< Iterable >).begin())> >::type
filter (Iterable &&container, Functor &&filter)
template<typename Iterable , typename Functor >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, hydra::Range< decltype(std::declval< Iterable >).begin())> >::type
filter (Iterable &&container, Functor const &filter)
Apply a filter to the range [first, last] and return a pair of iterators for the filtered events. More...
template<typename Iterable , typename Functor >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable & >).begin())> >::type
for_each (Iterable &&iterable, Functor const &functor)
template<class ... T>
__hydra_host__ __hydra_device__ auto
forward_as_tuple (T &&...t) -> decltype(hydra::thrust::forward_as_tuple(std::forward< T >(t)...))
Constructs a tuple of references to the arguments in args suitable for forwarding as an argument to a function. More...
template<typename Iterable_Source , typename Iterable_Target , typename Iterable_Map >
std::enable_if< hydra::detail::is_iterable< Iterable_Source >::value &&hydra::detail::is_iterable< Iterable_Target >::value &&hydra::detail::is_iterable< Iterable_Map >::value, Range< decltype(std::declval< Iterable_Target & >).begin())> >::type
gather (Iterable_Source &&source, Iterable_Map &&map, Iterable_Target &&target)
template<int I, int N, typename T >
__hydra_host__ __hydra_device__ T
get (T(&array)[N])
template<int I, typename T >
__hydra_host__ __hydra_device__ T
get (T *array)
template<typename Type , typename ... T>
__hydra_host__ __hydra_device__ Type &
get (hydra::thrust::tuple< T... > const &t)
The get function returns a reference to a tuple element of interest. More...
template<int N, typename ... T>
__hydra_host__ __hydra_device__ const hydra::thrust::tuple_element< N, hydra::thrust::tuple< T... > >::type &
get (hydra::thrust::tuple< T... > const &t)
template<typename Type , typename ... T>
__hydra_host__ __hydra_device__ Type &
get (hydra::thrust::tuple< T... > &t)
template<int N, typename ... T>
__hydra_host__ __hydra_device__ hydra::thrust::tuple_element< N, hydra::thrust::tuple< T... > >::type &
get (hydra::thrust::tuple< T... > &t)
template<typename Type , typename ... T>
__hydra_host__ __hydra_device__ Type &&
get (hydra::thrust::tuple< T... > &&t)
template<int N, typename ... T>
__hydra_host__ __hydra_device__ hydra::thrust::tuple_element< N, hydra::thrust::tuple< T... > >::type &&
get (hydra::thrust::tuple< T... > &&t)
template<int N, typename T1 , typename T2 >
__hydra_host__ __hydra_device__ hydra::thrust::tuple_element< N, hydra::thrust::pair< T1, T2 > >::type &
get (hydra::thrust::pair< T1, T2 > &t)
template<int N, typename T1 , typename T2 >
__hydra_host__ __hydra_device__ const hydra::thrust::tuple_element< N, hydra::thrust::pair< T1, T2 > >::type &
get (hydra::thrust::pair< T1, T2 > const &t)
template<int N, typename T1 , typename T2 >
__hydra_host__ __hydra_device__ hydra::thrust::tuple_element< N, hydra::thrust::pair< T1, T2 > >::type &&
get (hydra::thrust::pair< T1, T2 > &&t)
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
get (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.column(placeholders::placeholder< I >
Return the column _I of the hydra::multiarray. More...
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
get (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.column(placeholders::placeholder< I >
Return the column _I of the hydra::multiarray. More...
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto
get (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.column(placeholders::placeholder< I >
template<typename ... T>
__hydra_host__ __hydra_device__ detail::tuple_utility::flat_tuple< T... >::type
get_flat_tuple (T const &... args)
template<typename... Args>
std::string
GetFormatedString (const char *format, Args... args)
__hydra_host__ __hydra_device__ double
hermite (unsigned n, const double x)
Implementation of Hermite polynomials \( P_n(n) \) using the recursive relation. More...
__hydra_host__ __hydra_device__ double
jacobi (double a, double b, unsigned n, const double x)
P_{n-1}^{(,)}(z) - 2 (n+ - 1) (n + -1) (2n+ + ) P_{n-2}^{(, )}(z), {align} More...
__hydra_host__ __hydra_device__ double
laguerre (unsigned n, const double x)
Implementation of Laguerre polynomials \( P_n(n) \) using the recursive relation. More...
__hydra_host__ __hydra_device__ double
legendre (unsigned n, const double x)
Implementation of Legendre polynomials \( P_n(n) \) using the recursive relation. More...
template
__hydra_host__ __hydra_device__ complex< T >
template
__hydra_host__ __hydra_device__ complex< T >
template<typename ArgType , typename Functor , typename Kernel , detail::Backend BACKEND, detail::FFTCalculator FFT, typename T = typename detail::stripped_type<typename std::common_type<typename Functor::return_type, typename Kernel::return_type>::type>::type>
std::enable_if< std::is_floating_point< T >::value, ConvolutionFunctor< Functor, Kernel, detail::BackendPolicy< BACKEND >, detail::FFTPolicy< T, FFT >, ArgType > >::type
make_convolution (detail::BackendPolicy< BACKEND > const &, detail::FFTPolicy< T, FFT > const &, Functor const &functor, Kernel const &kernel, T kmin, T kmax, unsigned nsamples=1024, bool interpolate=true, bool power_up=true)
template<typename T , typename Iterator1 , typename Iterator2 , size_t N, hydra::detail::Backend BACKEND>
DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >
make_dense_histogram (detail::BackendPolicy< BACKEND >, std::array< size_t, N > const &grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterator1 first, Iterator1 end, Iterator2 wfirst)
template<typename T , typename Iterator , size_t N, hydra::detail::Backend BACKEND>
DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >
make_dense_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N >const &grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterator first, Iterator end)
Function to make a N-dimensional dense histogram. More...
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type
make_dense_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N > const &grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterable &&data)
Function to make a N-dimensional dense histogram. More...
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, DenseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type
make_dense_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N > const &grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterable1 &&data, Iterable2 &&weight)
Function to make a N-dimensional dense histogram. More...
template<typename T , typename Iterator , hydra::detail::Backend BACKEND>
DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >
make_dense_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterator first, Iterator end)
Function to make a 1-dimensional dense histogram. More...
template<typename T , typename Iterator1 , typename Iterator2 , hydra::detail::Backend BACKEND>
DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >
make_dense_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterator1 first, Iterator1 end, Iterator2 wfirst)
Function to make a 1-dimensional dense histogram. More...
template<typename T , hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type
make_dense_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimits, double upperlimits, Iterable &&data)
Function to make a N-dimensional dense histogram. More...
template<typename T , hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, DenseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type
make_dense_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimits, double upperlimits, Iterable1 &&data, Iterable2 &&weight)
Function to make a N-dimensional dense histogram. More...
template<typename... Pdfs, typename Iterator , typename ... Iterators>
std::enable_if< detail::is_iterator< Iterator >::value &&detail::are_iterators< Iterators... >::value, LogLikelihoodFCN< PDFSumExtendable< Pdfs... >, Iterator, Iterators... > >::type
make_loglikehood_fcn (PDFSumExtendable< Pdfs... > const &functor, Iterator first, Iterator last, Iterators... weights)
Conveniency function to build up loglikehood fcns. More...
template<typename... Pdfs, typename Iterator , typename ... Iterators>
std::enable_if< hydra::detail::is_iterator< Iterator >::value &&detail::are_iterators< Iterators... >::value, LogLikelihoodFCN< PDFSumExtendable< Pdfs... >, Iterator, Iterators... > >::type
make_loglikehood_fcn (PDFSumExtendable< Pdfs... > const &functor, Iterator first, Iterator last, Iterators... weights)
Conveniency function to build up loglikehood fcns. More...
template<typename Functor , typename Integrator , typename Iterator , typename ... Iterators>
std::enable_if< detail::is_iterator< Iterator >::value &&detail::are_iterators< Iterators... >::value, LogLikelihoodFCN< Pdf< Functor, Integrator >, Iterator, Iterators... > >::type
make_loglikehood_fcn (Pdf< Functor, Integrator > const &pdf, Iterator first, Iterator last, Iterators... weights)
Conveniency function to build up loglikehood fcns. More...
template<typename... Pdfs, typename Iterator , typename ... Iterators>
std::enable_if< hydra::detail::is_iterator< Iterator >::value &&detail::are_iterators< Iterators... >::value, LogLikelihoodFCN< PDFSumNonExtendable< Pdfs... >, Iterator, Iterators... > >::type
make_loglikehood_fcn (PDFSumNonExtendable< Pdfs... >const &pdf, Iterator first, Iterator last, Iterators... weights)
Conveniency function to build up loglikehood fcns. More...
template<typename ... Pdfs, typename Iterable , typename ... Iterables>
std::enable_if<(< Iterable >::value) &&((sizeof...(Iterables)==0)||
< Iterables... >::value) &&(
< typename std::remove_reference< Iterable >::type >::value) &&(
< typename std::remove_reference< Iterable >::type >::value) &&detail::is_iterable< Iterable >::value &&detail::are_iterables< Iterables... >::value,LogLikelihoodFCN< PDFSumExtendable< Pdfs... >, decltype(std::declval< Iterable >).begin()), decltype(std::declval< Iterables >).begin())... > >::type
make_loglikehood_fcn (PDFSumExtendable< Pdfs... > const &functor, Iterable &&points, Iterables &&... weights)
Conveniency function to build up loglikehood fcns. More...
template<typename ... Pdfs, typename Iterable , typename... Iterables>
std::enable_if<(< Iterable >::value) &&((sizeof...(Iterables)==0)||
< Iterables... >::value) &&(
< typename std::remove_reference< Iterable >::type >::value) &&(
< typename std::remove_reference< Iterable >::type >::value) &&detail::is_iterable< Iterable >::value &&detail::are_iterables< Iterables... >::value, LogLikelihoodFCN< PDFSumExtendable< Pdfs... >, decltype(std::declval< Iterable >).begin()), decltype(std::declval< Iterables >).begin())... > >::type
make_loglikehood_fcn (PDFSumExtendable< Pdfs... > const &functor, Iterable &&points, Iterables &&...weights)
Conveniency function to build up loglikehood fcns. More...
template<typename Functor , typename Integrator , typename Iterable , typename ... Iterables>
std::enable_if<(< Iterable >::value) &&((sizeof...(Iterables)==0)||
< Iterables... >::value) &&(
< typename std::remove_reference< Iterable >::type >::value) &&(
< typename std::remove_reference< Iterable >::type >::value) &&detail::is_iterable< Iterable >::value &&detail::are_iterables< Iterables... >::value, LogLikelihoodFCN< Pdf< Functor, Integrator >, decltype(std::declval< Iterable >).begin()), decltype(std::declval< Iterables >).begin())... > >::type
make_loglikehood_fcn (Pdf< Functor, Integrator > const &pdf, Iterable &&points, Iterables &&... weights)
Conveniency function to build up loglikehood fcns. More...
template<typename ... Pdfs, typename Iterable , typename ... Iterables>
std::enable_if<(< Iterable >::value) &&((sizeof...(Iterables)==0)||
< Iterables... >::value) &&(
< typename std::remove_reference< Iterable >::type >::value) &&(
< typename std::remove_reference< Iterable >::type >::value) &&hydra::detail::is_iterable< Iterable >::value &&detail::are_iterables< Iterables... >::value, LogLikelihoodFCN< PDFSumNonExtendable< Pdfs... >, decltype(std::declval< Iterable >).begin()), decltype(std::declval< Iterables >).begin())... > >::type
make_loglikehood_fcn (PDFSumNonExtendable< Pdfs... > const &functor, Iterable &&points, Iterables &&... weights)
Conveniency function to build up loglikehood fcns. More...
template<typename ... Pdfs, typename Histogram >
std::enable_if< detail::is_hydra_dense_histogram< Histogram >::value||detail::is_hydra_sparse_histogram< Histogram >::value, LogLikelihoodFCN< PDFSumExtendable< Pdfs... >, decltype(std::declval< const Histogram & >).GetBinsCenters().begin()), decltype(std::declval< const Histogram & >).GetBinsContents().begin()) > >::type
make_loglikehood_fcn (PDFSumExtendable< Pdfs... > const &functor, Histogram const &points)
template<typename ... Pdfs, typename Histogram >
std::enable_if< detail::is_hydra_dense_histogram< Histogram >::value||detail::is_hydra_sparse_histogram< Histogram >::value, LogLikelihoodFCN< PDFSumNonExtendable< Pdfs... >, decltype(std::declval< const Histogram & >).GetBinsCenters().begin()), decltype(std::declval< const Histogram & >).GetBinsContents().begin()) > >::type
make_loglikehood_fcn (PDFSumNonExtendable< Pdfs... > const &functor, Histogram const &points)
Convenience function to build up loglikehood fcns for densely and sparsely binned datasets. More...
template<typename Functor , typename Integrator , typename Histogram >
std::enable_if< detail::is_hydra_dense_histogram< Histogram >::value||detail::is_hydra_sparse_histogram< Histogram >::value, LogLikelihoodFCN< Pdf< Functor, Integrator >, decltype(std::declval< const Histogram & >).GetBinsCenters().begin()), decltype(std::declval< const Histogram & >).GetBinsContents().begin())> >::type
make_loglikehood_fcn (Pdf< Functor, Integrator > const &pdf, Histogram const &points)
Convenience function to build up loglikehood fcns for densely and sparsely binned datasets. More...
template<typename Functor , typename Integrator , typename Histogram >
std::enable_if< detail::is_hydra_dense_histogram< Histogram >::value||detail::is_hydra_sparse_histogram< Histogram >::value, LogLikelihoodFCN< Pdf< Functor, Integrator >, decltype(std::declval< const Histogram >).GetBinsCenters().begin()), decltype(std::declval< const Histogram >).GetBinsContents().begin())> >::type
make_loglikehood_fcn (Pdf< Functor, Integrator > const &pdf, Histogram const &points)
Convenience function to build up loglikehood fcns for densely and sparsely binned datasets. More...
template<class T1 , class T2 >
__hydra_host__ __hydra_device__ auto
make_pair (T1 &&t1, T2 &&t2) -> decltype(hydra::thrust::make_pair(std::forward< T1 >(t1), std::forward< T2 >(t2)))
This version of make_pair creates a new pair object from a list of objects. More...
template<typename FUNCTOR , typename INTEGRATOR >
Pdf< FUNCTOR, INTEGRATOR >
make_pdf (FUNCTOR const &functor, INTEGRATOR integrator)
Build a hydra::Pdf given a shape described by a functor and a integrator (algorithm or functor). More...
template<typename Iterator , typename Functor >
hydra::thrust::detail::enable_if< detail::is_hydra_functor< Functor >::value, Range< Iterator, Functor > >::type
make_range (Iterator begin, Iterator end, Functor const &functor)
template
Range< Iterator >
make_range (Iterator begin, Iterator end)
template
std::enable_if< hydra::detail::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable >).begin())> >::type
make_range (Iterable const &container)
template<typename Iterable , typename Functor >
hydra::thrust::detail::enable_if< detail::is_iterable< Iterable >::value &&detail::is_hydra_functor< Functor >::value, Range< decltype(std::declval< Iterable >).begin()), Functor > >::type
make_range (Iterable const &iterable, Functor const &functor)
template
std::enable_if< hydra::detail::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable >).begin())> >::type
make_range (Iterable &&container)
template<typename Iterable , typename Functor >
hydra::thrust::detail::enable_if< detail::is_iterable< Iterable >::value &&detail::is_hydra_functor< Functor >::value, Range< decltype(std::declval< Iterable >).begin()), Functor > >::type
make_range (Iterable &&iterable, Functor const &functor)
template<typename Iterator , typename Functor >
hydra::thrust::detail::enable_if< detail::is_hydra_functor< Functor >::value, Range< hydra::thrust::reverse_iterator< Iterator >, Functor > >::type
make_reverse_range (Iterator begin, Iterator end, Functor const &functor)
template
Range< hydra::thrust::reverse_iterator< Iterator > >
make_reverse_range (Iterator begin, Iterator end)
template
std::enable_if< hydra::detail::is_reverse_iterable< Iterable >::value, Range< decltype(std::declval< Iterable >).rbegin())> >::type
make_reverse_range (Iterable const &container)
template
std::enable_if< hydra::detail::is_reverse_iterable< Iterable >::value, Range< decltype(std::declval< Iterable >).rbegin())> >::type
make_reverse_range (Iterable &&container)
template<typename Iterable , typename Functor >
hydra::thrust::detail::enable_if< detail::is_reverse_iterable< Iterable >::value &&detail::is_hydra_functor< Functor >::value, Range< decltype(std::declval< Iterable >).rbegin()), Functor > >::type
make_reverse_range (Iterable const &iterable, Functor const &functor)
template<typename Iterable , typename Functor >
hydra::thrust::detail::enable_if< detail::is_reverse_iterable< Iterable >::value &&detail::is_hydra_functor< Functor >::value, Range< decltype(std::declval< Iterable >).rbegin()), Functor > >::type
make_reverse_range (Iterable &&iterable, Functor const &functor)
template<typename ... ESTIMATORS>
FCN< hydra::thrust::tuple< FCN< ESTIMATORS >... >, false >
make_simultaneous_fcn (FCN< ESTIMATORS >const &... fcns)
Convenience function to build up simultaneous fcn simultaneous. More...
template<typename T , typename Iterator , size_t N, hydra::detail::Backend BACKEND>
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >
make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N > grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterator first, Iterator end)
Function to make a N-dimensional sparse histogram. More...
template<typename T , typename Iterator1 , typename Iterator2 , size_t N, hydra::detail::Backend BACKEND>
SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional >
make_sparse_histogram (detail::BackendPolicy< BACKEND >, std::array< size_t, N > grid, std::array< double, N > const &lowerlimits, std::array< double, N > const &upperlimits, Iterator1 first, Iterator1 end, Iterator2 wfirst)
Function to make a N-dimensional sparse histogram. More...
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type
make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N > grid, std::array< double, N >lowerlimits, std::array< double, N > upperlimits, Iterable &&data)
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type
make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N > grid, std::array< double, N >lowerlimits, std::array< double, N > upperlimits, Iterable1 &&data, Iterable2 &&weights)
template<typename T , typename Iterator , hydra::detail::Backend BACKEND>
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >
make_sparse_histogram (detail::BackendPolicy< BACKEND >, size_t grid, double lowerlimits, double upperlimits, Iterator first, Iterator end)
Function to make a 1-dimensional sparse histogram. More...
template<typename T , typename Iterator1 , typename Iterator2 , hydra::detail::Backend BACKEND>
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional >
make_sparse_histogram (detail::BackendPolicy< BACKEND >, size_t nbins, double lowerlimit, double upperlimit, Iterator1 first, Iterator1 end, Iterator2 wfirst)
Function to make a 1-dimensional sparse histogram. More...
template<typename T , hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type
make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterable &&data)
Function to make a 1-dimensional sparse histogram. More...
template<typename T , hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::unidimensional > >::type
make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterable1 &&data, Iterable2 &&weights)
Function to make a 1-dimensional sparse histogram. More...
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type
make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N >const &grid, std::array< double, N >const &lowerlimits, std::array< double, N >const &upperlimits, Iterable &&data)
Function to make a N-dimensional sparse histogram. More...
template<typename T , size_t N, hydra::detail::Backend BACKEND, typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, SparseHistogram< T, N, detail::BackendPolicy< BACKEND >, detail::multidimensional > >::type
make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, std::array< size_t, N >const &grid, std::array< double, N >const &lowerlimits, std::array< double, N >const &upperlimits, Iterable1 &&data, Iterable2 &&weights)
Function to make a N-dimensional sparse histogram. More...
template<typename T , typename Iterator , hydra::detail::Backend BACKEND>
SparseHistogram< T, 1, detail::BackendPolicy< BACKEND >, detail::multidimensional >
make_sparse_histogram (detail::BackendPolicy< BACKEND > backend, size_t nbins, double lowerlimit, double upperlimit, Iterator first, Iterator end)
Function to make a 1-dimensional sparse histogram. More...
template<typename ArgType , typename Iterator1 , typename Iterator2 >
SplineFunctor< Iterator1, Iterator2, ArgType >
make_spline (Iterator1 firstX, Iterator1 lastX, Iterator2 firstY)
template<typename ArgType , typename Iterable1 , typename Iterable2 >
std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value, SplineFunctor< decltype(std::declval< Iterable1 >).begin()), decltype(std::declval< Iterable2 >).begin()), ArgType > >::type
make_spline (Iterable1 &&x, Iterable2 &&y)
template<typename T , hydra::detail::Backend BACKEND>
SplineFunctor< decltype(std::declval< DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > >).GetBinsCenters().begin()), decltype(std::declval< DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > >).GetBinsContents().begin()), T >
make_spline (DenseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > const &histogram)
template<typename T , hydra::detail::Backend BACKEND>
std::enable_if< std::is_convertible< T, double >::value, Spline2DFunctor< decltype(std::declval< DenseHistogram< T, 2, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_0).begin()), decltype(std::declval< DenseHistogram< T, 2, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_1).begin()), decltype(std::declval< DenseHistogram< T, 2, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsContents().begin()), double, double > >::type
make_spline (DenseHistogram< T, 2, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &histogram)
template<typename T , hydra::detail::Backend BACKEND>
SplineFunctor< decltype(std::declval< SparseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > >).GetBinsCenters().begin()), decltype(std::declval< SparseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > >).GetBinsContents().begin()), T >
make_spline (SparseHistogram< T, 1, hydra::detail::BackendPolicy< BACKEND >, detail::unidimensional > const &histogram)
template<typename T , hydra::detail::Backend BACKEND>
std::enable_if< std::is_convertible< T, double >::value, Spline2DFunctor< decltype(std::declval< SparseHistogram< T, 2, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_0).begin()), decltype(std::declval< SparseHistogram< T, 2, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_1).begin()), decltype(std::declval< SparseHistogram< T, 2, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsContents().begin()), double, double > >::type
make_spline (SparseHistogram< T, 2, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &histogram)
template<typename T , hydra::detail::Backend BACKEND>
std::enable_if< std::is_convertible< T, double >::value, Spline3DFunctor< decltype(std::declval< DenseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_0).begin()), decltype(std::declval< DenseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_1).begin()), decltype(std::declval< DenseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_2).begin()), decltype(std::declval< DenseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsContents().begin()), double, double, double > >::type
make_spline (DenseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &histogram)
template<typename T , hydra::detail::Backend BACKEND>
std::enable_if< std::is_convertible< T, double >::value, Spline3DFunctor< decltype(std::declval< SparseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_0).begin()), decltype(std::declval< SparseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_1).begin()), decltype(std::declval< SparseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_2).begin()), decltype(std::declval< SparseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsContents().begin()), double, double, double > >::type
make_spline (SparseHistogram< T, 3, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &histogram)
template<typename T , hydra::detail::Backend BACKEND>
std::enable_if< std::is_convertible< T, double >::value, Spline4DFunctor< decltype(std::declval< DenseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_0).begin()), decltype(std::declval< DenseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_1).begin()), decltype(std::declval< DenseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_2).begin()), decltype(std::declval< DenseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_3).begin()), decltype(std::declval< DenseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsContents().begin()), double, double, double, double > >::type
make_spline (DenseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &histogram)
template<typename T , hydra::detail::Backend BACKEND>
std::enable_if< std::is_convertible< T, double >::value, Spline4DFunctor< decltype(std::declval< SparseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_0).begin()), decltype(std::declval< SparseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_1).begin()), decltype(std::declval< SparseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_2).begin()), decltype(std::declval< SparseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsCenters(placeholders::_3).begin()), decltype(std::declval< SparseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > >).GetBinsContents().begin()), double, double, double, double > >::type
make_spline (SparseHistogram< T, 4, hydra::detail::BackendPolicy< BACKEND >, detail::multidimensional > const &histogram)
template<typename ArgTypeX , typename ArgTypeY , typename IteratorX , typename IteratorY , typename IteratorZ >
Spline2DFunctor< IteratorX, IteratorY, IteratorZ, ArgTypeX, ArgTypeY >
make_spline2D (IteratorX firstX, IteratorX lastX, IteratorY firstY, IteratorY lastY, IteratorZ firstZ)
template<typename ArgTypeX , typename ArgTypeY , typename IterableX , typename IterableY , typename IterableZ >
std::enable_if< hydra::detail::is_iterable< IterableX >::value &&hydra::detail::is_iterable< IterableY >::value &&hydra::detail::is_iterable< IterableZ >::value, Spline2DFunctor< decltype(std::declval< IterableX >).begin()),decltype(std::declval< IterableY >).begin()), decltype(std::declval< IterableZ >).begin()), ArgTypeX, ArgTypeY > >::type
make_spline2D (IterableX &&x, IterableY &&y, IterableZ &&z)
template<typename ArgTypeX , typename ArgTypeY , typename ArgTypeZ , typename IteratorX , typename IteratorY , typename IteratorZ , typename IteratorM >
Spline3DFunctor< IteratorX, IteratorY, IteratorZ, IteratorM, ArgTypeX, ArgTypeY, ArgTypeZ >
make_spline3D (IteratorX firstX, IteratorX lastX, IteratorY firstY, IteratorY lastY, IteratorZ firstZ, IteratorZ lastZ, IteratorM measurements_first)
template<typename ArgTypeX , typename ArgTypeY , typename ArgTypeZ , typename IterableX , typename IterableY , typename IterableZ , typename IterableM >
std::enable_if< hydra::detail::is_iterable< IterableX >::value &&hydra::detail::is_iterable< IterableY >::value &&hydra::detail::is_iterable< IterableZ >::value &&hydra::detail::is_iterable< IterableM >::value, Spline3DFunctor< decltype(std::declval< IterableX >).begin()),decltype(std::declval< IterableY >).begin()), decltype(std::declval< IterableZ >).begin()), decltype(std::declval< IterableM >).begin()), ArgTypeX, ArgTypeY, ArgTypeZ > >::type
make_spline3D (IterableX &&x, IterableY &&y, IterableZ &&z, IterableM &&measurements)
template<typename ArgTypeX , typename ArgTypeY , typename ArgTypeW , typename ArgTypeZ , typename IteratorX , typename IteratorY , typename IteratorW , typename IteratorZ , typename IteratorM >
Spline4DFunctor< IteratorX, IteratorY, IteratorW, IteratorZ, IteratorM, ArgTypeX, ArgTypeY, ArgTypeW, ArgTypeZ >
make_spline4D (IteratorX firstX, IteratorX lastX, IteratorY firstY, IteratorY lastY, IteratorW firstW, IteratorW lastW, IteratorZ firstZ, IteratorZ lastZ, IteratorM measurements_first)
template<typename ArgTypeX , typename ArgTypeY , typename ArgTypeW , typename ArgTypeZ , typename IterableX , typename IterableY , typename IterableW , typename IterableZ , typename IterableM >
std::enable_if< hydra::detail::is_iterable< IterableX >::value &&hydra::detail::is_iterable< IterableY >::value &&hydra::detail::is_iterable< IterableW >::value &&hydra::detail::is_iterable< IterableZ >::value &&hydra::detail::is_iterable< IterableM >::value, Spline4DFunctor< decltype(std::declval< IterableX >).begin()), decltype(std::declval< IterableY >).begin()), decltype(std::declval< IterableW >).begin()), decltype(std::declval< IterableZ >).begin()), decltype(std::declval< IterableM >).begin()), ArgTypeX, ArgTypeY, ArgTypeW, ArgTypeZ > >::type
make_spline4D (IterableX &&x, IterableY &&y, IterableW &&w, IterableZ &&z, IterableM &&measurements)
template<typename Iterator , typename PDF1 , typename PDF2 , typename ... PDFs>
std::enable_if< detail::is_iterator< Iterator >::value, SPlot< Iterator, PDF1, PDF2, PDFs... > >::type
make_splot (PDFSumExtendable< PDF1, PDF2, PDFs... > const &pdf, Iterator first, Iterator last)
Convenience function for instantiating SPlot objects using type deduction. More...
template<typename Iterable , typename PDF1 , typename PDF2 , typename ... PDFs>
std::enable_if< detail::is_iterable< Iterable >::value, SPlot< decltype(std::declval< Iterable >).begin()), PDF1, PDF2, PDFs... > >::type
make_splot (PDFSumExtendable< PDF1, PDF2, PDFs... > const &pdf, Iterable &&data)
Convenience function for instantiating SPlot objects using type deduction. More...
template<class ... T>
__hydra_host__ __hydra_device__ auto
make_tuple (T &&... t) -> decltype(hydra::thrust::make_tuple(std::forward< T >(t)...))
This version of make_tuple creates a new tuple object from a list of objects. More...
template<hydra::detail::Backend BACKEND, typename ... T, typename ... U>
hydra::Range< hydra::thrust::zip_iterator< typename detail::tuple_cat_type< typename multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND > >::iterator_tuple, typename multivector< hydra::thrust::tuple< U... >, detail::BackendPolicy< BACKEND > >::iterator_tuple >::type > >
meld (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &left, multivector< hydra::thrust::tuple< U... >, detail::BackendPolicy< BACKEND >> &right)
template<typename F1 , typename F2 >
std::enable_if<(detail::is_hydra_functor< F1 >::value||detail::is_hydra_lambda< F1 >::value) &&(detail::is_hydra_functor< F2 >::value||detail::is_hydra_lambda< F2 >::value), Minus< F1, F2 > >::type
minus (F1 const &f1, F2 const &f2)
template<typename F1 , typename F2 , typename ... Fs>
std::enable_if<(detail::is_hydra_functor< F1 >::value||detail::is_hydra_lambda< F1 >::value) &&(detail::is_hydra_functor< F2 >::value||detail::is_hydra_lambda< F2 >::value) &&detail::all_true<(detail::is_hydra_functor< Fs >::value||detail::is_hydra_lambda< Fs >::value)... >::value, Multiply< F1, F2, Fs... > >::type
multiply (F1 const &f1, F2 const &f2, Fs const &... functors)
template
__hydra_host__ __hydra_device__ int
nint (const T x)
Round to nearest integer. More...
template
__hydra_host__ __hydra_device__ T
template
__hydra_host__ __hydra_device__ bool
operator!= (const complex< T > &lhs, const complex< T > &rhs)
template
__hydra_host__ __hydra_device__ bool
operator!= (const T &lhs, const complex< T > &rhs)
template
__hydra_host__ __hydra_device__ bool
operator!= (const complex< T > &lhs, const T &rhs)
template<typename T , size_t N, hydra::detail::Backend BACKEND1, hydra::detail::Backend BACKEND2>
bool
operator!= (const multiarray< T, N, hydra::detail::BackendPolicy< BACKEND1 >> &lhs, const multiarray< T, N, hydra::detail::BackendPolicy< BACKEND2 >> &rhs)
template<typename ... T, hydra::detail::Backend BACKEND1, hydra::detail::Backend BACKEND2>
bool
operator!= (const multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND1 >> &lhs, const multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND2 >> &rhs)
__hydra_host__ __hydra_device__ Vector3R
operator* (GReal_t c, const Vector3R &v2)
__hydra_host__ __hydra_device__ Vector3R
operator* (const Vector3R &v1, GReal_t c)
__hydra_host__ __hydra_device__ GReal_t
operator* (const Vector3R &v1, const Vector3R &v2)
template<typename T1 , typename T2 >
std::enable_if<(detail::is_hydra_functor< T1 >::value||detail::is_hydra_lambda< T1 >::value) &&(detail::is_hydra_functor< T2 >::value||detail::is_hydra_lambda< T2 >::value), Multiply< T1, T2 > >::type
operator* (T1 const &F1, T2 const &F2)
__hydra_host__ __hydra_device__ Vector4R
operator* (GReal_t c, const Vector4R &v2)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Multiply< Constant< U >, T > >::type
operator* (U const cte, T const &F)
__hydra_host__ __hydra_device__ Vector4R
operator* (const Vector4R &v2, GReal_t c)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Multiply< Constant< U >, T > >::type
operator* (T const &F, U cte)
__hydra_host__ __hydra_device__ GReal_t
operator* (const Vector4R &v1, const Vector4R &v2)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Multiply< Constant< hydra::complex< U > >, T > >::type
operator* (hydra::complex< U > const &cte, T const &F)
template<typename ... T>
__hydra_host__ __hydra_device__ hydra::thrust::tuple< T... >
operator* (const hydra::thrust::tuple< T... > &a, const hydra::thrust::tuple< T... > &b)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Multiply< Constant< U >, T > >::type
operator* (T const &F, hydra::complex< U > const &cte)
__hydra_host__ __hydra_device__ Parameter
operator* (Parameter par1, Parameter const &par2)
__hydra_host__ __hydra_device__ GReal_t
operator* (Parameter par1, GReal_t par2)
__hydra_host__ __hydra_device__ GReal_t
operator* (GReal_t par1, Parameter const &par2)
__hydra_host__ __hydra_device__ Vector3R
operator+ (const Vector3R &v1, const Vector3R &v2)
template<typename T1 , typename T2 >
std::enable_if<(detail::is_hydra_functor< T1 >::value||detail::is_hydra_lambda< T1 >::value) &&(detail::is_hydra_functor< T2 >::value||detail::is_hydra_lambda< T2 >::value), Sum< T1, T2 > >::type
operator+ (T1 const &F1, T2 const &F2)
operator+ for two functors. More...
template<typename ... T>
__hydra_host__ __hydra_device__ hydra::thrust::tuple< T... >
operator+ (const hydra::thrust::tuple< T... > a, const hydra::thrust::tuple< T... > &b)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Sum< Constant< U >, T > >::type
operator+ (U const cte, T const &F)
operator+ for a value and a functor. More...
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Sum< Constant< U >, T > >::type
operator+ (T const &F, U cte)
operator+ for a value and a functor. More...
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Sum< Constant< hydra::complex< U > >, T > >::type
operator+ (hydra::complex< U > const &cte, T const &F)
operator+ for a complex value and a functor. More...
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Sum< Constant< U >, T > >::type
operator+ (T const &F, hydra::complex< U > const &cte)
operator+ for a complex value and a functor. More...
__hydra_host__ __hydra_device__ Vector4R
operator+ (const Vector4R &v1, const Vector4R &v2)
__hydra_host__ __hydra_device__ Parameter
operator+ (Parameter par1, Parameter const &par2)
__hydra_host__ __hydra_device__ GReal_t
operator+ (Parameter par1, GReal_t par2)
template<typename T1 , typename T2 >
std::enable_if<(detail::is_hydra_functor< T1 >::value||detail::is_hydra_lambda< T1 >::value) &&(detail::is_hydra_functor< T2 >::value||detail::is_hydra_lambda< T2 >::value), Minus< T1, T2 > >::type
operator- (T1 const &F1, T2 const &F2)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Minus< Constant< U >, T > >::type
operator- (U const cte, T const &F)
__hydra_host__ __hydra_device__ Vector3R
operator- (const Vector3R &v1, const Vector3R &v2)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Minus< Constant< U >, T > >::type
operator- (T const &F, U cte)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Minus< Constant< hydra::complex< U > >, T > >::type
operator- (hydra::complex< U > const &cte, T const &F)
template<typename ... T>
__hydra_host__ __hydra_device__ hydra::thrust::tuple< T... >
operator- (const hydra::thrust::tuple< T... > &a, const hydra::thrust::tuple< T... > &b)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Minus< Constant< U >, T > >::type
operator- (T const &F, hydra::complex< U > const &cte)
__hydra_host__ __hydra_device__ Vector4R
operator- (const Vector4R &v1, const Vector4R &v2)
__hydra_host__ __hydra_device__ Parameter
operator- (Parameter par1, Parameter const &par2)
__hydra_host__ __hydra_device__ GReal_t
operator- (Parameter par1, GReal_t par2)
__hydra_host__ __hydra_device__ GReal_t
operator- (GReal_t par1, Parameter par2)
template<typename T1 , typename T2 >
std::enable_if<(detail::is_hydra_functor< T1 >::value||detail::is_hydra_lambda< T1 >::value) &&(detail::is_hydra_functor< T2 >::value||detail::is_hydra_lambda< T2 >::value), Divide< T1, T2 > >::type
operator/ (T1 const &F1, T2 const &F2)
__hydra_host__ __hydra_device__ Vector3R
operator/ (const Vector3R &v1, GReal_t c)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Divide< Constant< U >, T > >::type
operator/ (U const cte, T const &F)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Divide< Constant< U >, T > >::type
operator/ (T const &F, U cte)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Divide< Constant< hydra::complex< U > >, T > >::type
operator/ (hydra::complex< U > const &cte, T const &F)
template<typename T , typename U >
std::enable_if<(detail::is_hydra_functor< T >::value||detail::is_hydra_lambda< T >::value) &&(std::is_arithmetic< U >::value), Divide< Constant< hydra::complex< U > >, T > >::type
operator/ (T const &F, hydra::complex< U > const &cte)
__hydra_host__ __hydra_device__ Vector4R
operator/ (const Vector4R &v2, GReal_t c)
template<typename ... T>
__hydra_host__ __hydra_device__ hydra::thrust::tuple< T... >
operator/ (const hydra::thrust::tuple< T... > &a, const hydra::thrust::tuple< T... > &b)
__hydra_host__ __hydra_device__ Parameter
operator/ (Parameter par1, Parameter const par2)
__hydra_host__ __hydra_device__ GReal_t
operator/ (Parameter par1, GReal_t par2)
__hydra_host__ __hydra_device__ GReal_t
operator/ (GReal_t par1, Parameter par2)
template<size_t N, typename T >
std::ostream &
operator<< (std::ostream &os, std::array< T, N > const &obj)
template<typename ... T>
std::ostream &
operator<< (std::ostream &os, std::tuple< T... > const &obj)
template<typename T1 , typename T2 >
std::ostream &
operator<< (std::ostream &os, std::pair< T1, T2 > const &obj)
ostream &
operator<< (ostream &s, const Vector3R &v)
ostream &
operator<< (ostream &s, const Vector4R &v)
std::ostream &
operator<< (std::ostream &os, UserParameters const &par)
Print the ROOT::Minuit2 state to stream. More...
template<typename ValueType , class charT , class traits >
std::basic_ostream< charT, traits > &
operator<< (std::basic_ostream< charT, traits > &os, const complex< ValueType > &z)
std::ostream &
operator<< (std::ostream &os, Parameter const &var)
template
__hydra_host__ __hydra_device__ bool
operator== (const complex< T > &lhs, const complex< T > &rhs)
template
__hydra_host__ __hydra_device__ bool
operator== (const T &lhs, const complex< T > &rhs)
template
__hydra_host__ __hydra_device__ bool
operator== (const complex< T > &lhs, const T &rhs)
template<typename T , size_t N, hydra::detail::Backend BACKEND1, hydra::detail::Backend BACKEND2>
bool
operator== (const multiarray< T, N, hydra::detail::BackendPolicy< BACKEND1 >> &lhs, const multiarray< T, N, hydra::detail::BackendPolicy< BACKEND2 >> &rhs)
template<typename ... T, hydra::detail::Backend BACKEND1, hydra::detail::Backend BACKEND2>
bool
operator== (const multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND1 >> &lhs, const multivector< hydra::thrust::tuple< T... >, hydra::detail::BackendPolicy< BACKEND2 >> &rhs)
template<typename ValueType , typename charT , class traits >
std::basic_istream< charT, traits > &
operator>> (std::basic_istream< charT, traits > &is, complex< ValueType > &z)
template<typename Iterable , typename Functor >
hydra::thrust::detail::enable_if< detail::is_iterable< Iterable >::value &&(detail::is_hydra_functor< Functor >::value||detail::is_hydra_lambda< Functor >::value), Range< decltype(std::declval< const Iterable >).begin()), Functor > >::type
operator| (Iterable const &iterable, Functor const &functor)
template<typename Iterable , typename Functor >
hydra::thrust::detail::enable_if< detail::is_iterable< Iterable >::value &&(detail::is_hydra_functor< Functor >::value||detail::is_hydra_lambda< Functor >::value), Range< decltype(std::declval< Iterable >).begin()), Functor > >::type
operator| (Iterable &&iterable, Functor const &functor)
template<size_t N>
Range< hydra::thrust::transform_iterator< detail::GenerateDecay< N, hydra::thrust::random::default_random_engine >, hydra::thrust::counting_iterator< size_t >, typename hydra::detail::tuple_cat_type< hydra::thrust::tuple< double >, typename hydra::detail::tuple_type< N, Vector4R >::type >::type > >
phase_space_range (Vector4R const &mother, std::array< double, N > masses, size_t seed, size_t length=0)
__hydra_host__ __hydra_device__ double
pmf (const double mother_mass, const double daughter1_mass, const double daughter2_mass)
Momentum in mother frame of daughter particle in two-body-decay. More...
template
__hydra_host__ __hydra_device__ complex< T >
polar (const T &m, const T &theta=0)
template<typename T , unsigned int N>
__hydra_host__ __hydra_device__ T
pow (T x)
Power with integer exponent. More...
template
__hydra_host__ __hydra_device__ complex< T >
pow (const complex< T > &x, const complex< T > &y)
template
__hydra_host__ __hydra_device__ complex< T >
pow (const complex< T > &x, const T &y)
template
__hydra_host__ __hydra_device__ complex< T >
pow (const T &x, const complex< T > &y)
template<typename T , typename U >
__hydra_host__ __hydra_device__ complex< typename hydra::thrust::detail::promoted_numerical_type< T, U >::type >
pow (const complex< T > &x, const complex< U > &y)
template<typename T , typename U >
__hydra_host__ __hydra_device__ complex< typename hydra::thrust::detail::promoted_numerical_type< T, U >::type >
pow (const complex< T > &x, const U &y)
template<typename T , typename U >
__hydra_host__ __hydra_device__ complex< typename hydra::thrust::detail::promoted_numerical_type< T, U >::type >
pow (const T &x, const complex< U > &y)
template<typename... Args>
void
PrintToStream (std::ostream &ostream, const char *format, Args... args)
template
__hydra_host__ __hydra_device__ complex< T >
proj (const T &z)
template
Range< hydra::thrust::transform_iterator< detail::Sampler< Functor, Engine >, hydra::thrust::counting_iterator< size_t >, typename detail::Sampler< Functor, Engine >::value_type > >
random_range (Functor const &functor, size_t seed=0x8ec74d321e6b5a27, size_t length=0, size_t rng_jump=0)
Range< hydra::thrust::counting_iterator< long int > >
range (long int first, long int last)
template
std::enable_if< std::is_floating_point< T >::value, Range< hydra::thrust::counting_iterator< unsigned >, detail::range::Shift< T > > >::type
range (T min, T max, unsigned nbins)
Range< iterator_type > (other.begin(cls...), other.end(cls...))
Range< iterator_type > (other.begin(placeholders::placeholder< I >{}), other.end(placeholders::placeholder< I >{}))
template
auto
rbegin (C &&c) -> decltype(std::forward< C >(c).rbegin())
template
auto
rbegin (const C &c) -> decltype(c.rbegin())
template<class T , size_t N>
T *
rbegin (T(&array)[N])
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
rbegin (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.rbegin(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
rbegin (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.rbegin(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto
rbegin (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.rbegin(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto
rbegin (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.rbegin(placeholders::placeholder< I >
template
std::enable_if< hydra::detail::is_iterable< Iterable >::value, typename hydra::thrust::iterator_traits< decltype(std::declval< Iterable >).begin())>::value_type >::type
reduce (Iterable &&iterable)
template<typename Iterable , typename Functor , typename T = typename hydra::thrust::iterator_traits< decltype(std::declval().begin())>::value_type>
std::enable_if< hydra::detail::is_iterable< Iterable >::value, T >::type
reduce (Iterable &&iterable, T const &init, Functor const &binary_functor)
template
auto
rend (C &&c) -> decltype(std::forward< C >(c).rend())
template
auto
rend (const C &c) -> decltype(c.rend())
template<class T , size_t N>
T *
rend (T(&array)[N])
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
rend (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.rend(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename T , size_t N>
auto
rend (placeholders::placeholder< I >, multiarray< T, N, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.rend(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto
rend (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> const &other) -> decltype(other.rend(placeholders::placeholder< I >
template<unsigned int I, hydra::detail::Backend BACKEND, typename ... T>
auto
rend (multivector< hydra::thrust::tuple< T... >, detail::BackendPolicy< BACKEND >> &other) -> decltype(other.rend(placeholders::placeholder< I >
template
hydra::thrust::detail::enable_if< detail::is_iterable< Iterable >::value, Range< hydra::thrust::reverse_iterator< decltype(std::declval< Iterable >).begin()) > > >::type
reverse (Iterable &&iterable)
template
__hydra_host__ __hydra_device__ double
rint (T x)
__hydra_host__ __hydra_device__ Vector4R
rotateEuler (const Vector4R &rs, GReal_t alpha, GReal_t beta, GReal_t gamma)
__hydra_host__ __hydra_device__ Vector3R
rotateEuler (const Vector3R &v, GReal_t phi, GReal_t theta, GReal_t ksi)
template<typename RNG , typename DerivedPolicy , typename Functor , typename Iterator >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator > >::type
sample (hydra::thrust::detail::execution_policy_base< DerivedPolicy > const &policy, Iterator begin, Iterator end, double min, double max, Functor const &functor, size_t seed=0xb56c4feeef1b, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG , typename Functor , typename Iterator , hydra::detail::Backend BACKEND>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator > >::type
sample (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterator begin, Iterator end, double min, double max, Functor const &functor, size_t seed=0xb56c4feeef1b, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG , typename Functor , typename Iterator >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator > >::type
sample (Iterator begin, Iterator end, double min, double max, Functor const &functor, size_t seed=0xb56c4feeef1b, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG , typename Functor , typename Iterable >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterable< Iterable >::value,Range< decltype(std::declval< Iterable >).begin())> >::type
sample (Iterable &&output, double min, double max, Functor const &functor, size_t seed=0xb56c4feeef1b, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG , typename DerivedPolicy , typename Functor , typename Iterator , size_t N>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator >>::type
sample (hydra::thrust::detail::execution_policy_base< DerivedPolicy > const &policy, Iterator begin, Iterator end, std::array< double, N > const &min, std::array< double, N > const &max, Functor const &functor, size_t seed, size_t rng_jump)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG , typename Functor , typename Iterator , hydra::detail::Backend BACKEND, size_t N>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator > >::type
sample (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterator begin, Iterator end, std::array< double, N >const &min, std::array< double, N >const &max, Functor const &functor, size_t seed=0xb56c4feeef1b, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG , typename Functor , typename Iterator , size_t N>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator >>::type
sample (Iterator begin, Iterator end, std::array< double, N >const &min, std::array< double, N >const &max, Functor const &functor, size_t seed, size_t rng_jump)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG , typename Functor , typename Iterator >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value &&detail::is_tuple_type< decltype(*std::declval< Iterator >))>::value, Range< Iterator > >::type
sample (Iterator begin, Iterator end, typename Functor::argument_type const &min, typename Functor::argument_type const &max, Functor const &functor, size_t seed, size_t rng_jump)
template<typename RNG , typename Functor , typename Iterable , size_t N>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable >).begin())>>::type
sample (Iterable &&output, std::array< double, N >const &min, std::array< double, N >const &max, Functor const &functor, size_t seed, size_t rng_jump)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG , typename Functor , typename Iterable >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterable< Iterable >::value &&detail::is_tuple_type< decltype(*std::declval< Iterable >).begin())>::value,Range< decltype(std::declval< Iterable >).begin())> >::type
sample (Iterable &&output, typename Functor::argument_type const &min, typename Functor::argument_type const &max, Functor const &functor, size_t seed, size_t rng_jump)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG = default_random_engine, typename Functor , typename Iterator , size_t N>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator > >::type
sample (Iterator begin, Iterator end, std::array< double, N >const &min, std::array< double, N >const &max, Functor const &functor, size_t seed=0xb56c4feeef1b, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG = default_random_engine, typename DerivedPolicy , typename Functor , typename Iterator , size_t N>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator > >::type
sample (hydra::thrust::detail::execution_policy_base< DerivedPolicy > const &policy, Iterator begin, Iterator end, std::array< double, N >const &min, std::array< double, N >const &max, Functor const &functor, size_t seed=0xb56c4feeef1b, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename RNG = default_random_engine, typename Functor , typename Iterable , size_t N>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterable< Iterable >::value,Range< decltype(std::declval< Iterable >).begin())> >::type
sample (Iterable &&output, std::array< double, N >const &min, std::array< double, N >const &max, Functor const &functor, size_t seed=0xb56c4feeef1b, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution. More...
template<typename Iterable_Source , typename Iterable_Target , typename Iterable_Map >
std::enable_if< hydra::detail::is_iterable< Iterable_Source >::value &&hydra::detail::is_iterable< Iterable_Target >::value &&hydra::detail::is_iterable< Iterable_Map >::value, Range< decltype(std::declval< Iterable_Target & >).begin())> >::type
scatter (Iterable_Source &&source, Iterable_Map &&map, Iterable_Target &&target)
template<typename Iterable , typename Functor >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, std::pair< hydra::Range< decltype(std::declval< Iterable >).begin())>, hydra::Range< decltype(std::declval< Iterable >).begin())> > >::type
segregate (Iterable &&container, Functor &&filter)
template<typename Iterable , typename Functor >
std::enable_if< hydra::detail::is_iterable< Iterable >::value, std::pair< hydra::Range< decltype(std::declval< Iterable >).begin())>, hydra::Range< decltype(std::declval< Iterable >).begin())> > >::type
segregate (Iterable &&container, Functor const &filter)
template
__hydra_host__ __hydra_device__ complex< T >
template
__hydra_host__ __hydra_device__ complex< T >
template<typename Iterable , typename Iterator = decltype(std::declval().begin())>
std::enable_if< hydra::detail::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable & >).begin())> >::type
sort (Iterable &iterable)
template<typename Iterable , typename Functor , typename Iterator = decltype(std::declval().begin())>
std::enable_if< hydra::detail::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable & >).begin())> >::type
sort (Iterable &iterable, Functor const &comparator)
template<typename Iterable , typename Iterable_Key , typename Iterator = decltype(std::declval().begin()), typename Iterator_Key = decltype(std::declval<Iterable_Key>().begin()), typename Value_Key = decltype(*std::declval<Iterator_Key>().begin())>
std::enable_if< hydra::detail::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable & >).begin())> >::type
sort_by_key (Iterable &iterable, Iterable_Key &keys)
template<typename Iterable , typename Iterator_Key , typename Functor , typename Iterator = decltype(std::declval().begin()), typename Value_Key = decltype(*std::declval<Range<Iterator_Key,Functor>>().begin())>
std::enable_if< hydra::detail::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable & >).begin())> >::type
sort_by_key (Iterable &iterable, Range< Iterator_Key, Functor > keys)
template<typename IterableX , typename IterableY , typename IterableM , typename TypeX , typename TypeY >
__hydra_host__ __hydra_device__ std::enable_if< hydra::detail::is_iterable< IterableX >::value &&hydra::detail::is_iterable< IterableY >::value &&hydra::detail::is_iterable< IterableM >::value &&std::is_convertible< typename IterableX::value_type, double >::value &&std::is_convertible< typename IterableY::value_type, double >::value &&std::is_convertible< typename IterableM::value_type, double >::value &&std::is_convertible< TypeX, double >::value &&std::is_convertible< TypeY, double >::value, double >::type
spline (IterableX &&abcissa_x, IterableY &&abcissa_y, IterableM measurements, TypeX x, TypeX y)
template<typename Iterator1 , typename Iterator2 , typename Type >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< typename hydra::thrust::iterator_traits< Iterator1 >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< Iterator2 >::value_type, double >::value &&std::is_convertible< Type, double >::value, Type >::type
spline (Iterator1 first, Iterator1 last, Iterator2 measurements, Type value)
Cubic monotone spline interpolation. More...
template<typename Iterable1 , typename Iterable2 , typename Type >
__hydra_host__ __hydra_device__ std::enable_if< hydra::detail::is_iterable< Iterable1 >::value &&hydra::detail::is_iterable< Iterable2 >::value &&std::is_convertible< typename Iterable1::value_type, double >::value &&std::is_convertible< typename Iterable2::value_type, double >::value &&std::is_convertible< Type, double >::value, Type >::type
spline (Iterable1 &&abscissae, Iterable2 &&ordinate, Type value)
template<typename IteratorX , typename IteratorY , typename IteratorM , typename TypeX , typename TypeY >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< typename hydra::thrust::iterator_traits< IteratorX >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorY >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorM >::value_type, double >::value &&std::is_convertible< TypeX, double >::value &&std::is_convertible< TypeY, double >::value, double >::type
spline2D (IteratorX firstx, IteratorX lastx, IteratorY firsty, IteratorY lasty, IteratorM measurements, TypeX x, TypeY y)
template<typename IterableX , typename IterableY , typename IterableM , typename TypeX , typename TypeY >
__hydra_host__ __hydra_device__ std::enable_if< hydra::detail::is_iterable< IterableX >::value &&hydra::detail::is_iterable< IterableY >::value &&hydra::detail::is_iterable< IterableM >::value &&std::is_convertible< typename IterableX::value_type, double >::value &&std::is_convertible< typename IterableY::value_type, double >::value &&std::is_convertible< typename IterableM::value_type, double >::value &&std::is_convertible< TypeX, double >::value &&std::is_convertible< TypeY, double >::value, double >::type
spline2D (IterableX &&abscissa_x, IterableY &&abscissa_y, IterableM measurements, TypeX x, TypeX y)
template<typename IteratorX , typename IteratorY , typename IteratorZ , typename IteratorM , typename TypeX , typename TypeY , typename TypeZ >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< typename hydra::thrust::iterator_traits< IteratorX >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorY >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorZ >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorM >::value_type, double >::value &&std::is_convertible< TypeX, double >::value &&std::is_convertible< TypeY, double >::value &&std::is_convertible< TypeZ, double >::value, double >::type
spline3D (IteratorX firstx, IteratorX lastx, IteratorY firsty, IteratorY lasty, IteratorZ firstz, IteratorZ lastz, IteratorM measurements, TypeX x, TypeY y, TypeZ z)
template<typename IterableX , typename IterableY , typename IterableZ , typename IterableM , typename TypeX , typename TypeY , typename TypeZ >
__hydra_host__ __hydra_device__ std::enable_if< hydra::detail::is_iterable< IterableX >::value &&hydra::detail::is_iterable< IterableY >::value &&hydra::detail::is_iterable< IterableZ >::value &&hydra::detail::is_iterable< IterableM >::value &&std::is_convertible< typename IterableX::value_type, double >::value &&std::is_convertible< typename IterableY::value_type, double >::value &&std::is_convertible< typename IterableZ::value_type, double >::value &&std::is_convertible< typename IterableM::value_type, double >::value &&std::is_convertible< TypeX, double >::value &&std::is_convertible< TypeY, double >::value &&std::is_convertible< TypeZ, double >::value, double >::type
spline3D (IterableX &&abscissa_x, IterableY &&abscissa_y, IterableZ &&abscissa_z, IterableM measurements, TypeX x, TypeX y, TypeZ z)
template<typename IteratorX , typename IteratorY , typename IteratorZ , typename IteratorM , typename TypeX , typename TypeY , typename TypeZ >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< typename hydra::thrust::iterator_traits< IteratorX >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorY >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorZ >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorM >::value_type, double >::value &&std::is_convertible< TypeX, double >::value &&std::is_convertible< TypeY, double >::value &&std::is_convertible< TypeZ, double >::value, double >::type
spline3D (IteratorX firstx, IteratorX lastx, IteratorY firsty, IteratorY lasty, IteratorY firstz, IteratorY lastz, IteratorM measurements, TypeX x, TypeY y, TypeZ z)
template<typename IterableX , typename IterableY , typename IterableW , typename IterableZ , typename IterableM , typename TypeX , typename TypeY , typename TypeW , typename TypeZ >
__hydra_host__ __hydra_device__ std::enable_if< hydra::detail::is_iterable< IterableX >::value &&hydra::detail::is_iterable< IterableY >::value &&hydra::detail::is_iterable< IterableW >::value &&hydra::detail::is_iterable< IterableZ >::value &&hydra::detail::is_iterable< IterableM >::value &&std::is_convertible< typename IterableX::value_type, double >::value &&std::is_convertible< typename IterableY::value_type, double >::value &&std::is_convertible< typename IterableW::value_type, double >::value &&std::is_convertible< typename IterableZ::value_type, double >::value &&std::is_convertible< typename IterableM::value_type, double >::value &&std::is_convertible< TypeX, double >::value &&std::is_convertible< TypeY, double >::value &&std::is_convertible< TypeW, double >::value &&std::is_convertible< TypeZ, double >::value, double >::type
spline3D (IterableX &&abscissa_x, IterableY &&abscissa_y, IterableW &&abscissa_w, IterableZ &&abscissa_z, IterableM measurements, TypeX x, TypeX y, TypeW w, TypeZ z)
template<typename IteratorX , typename IteratorY , typename IteratorW , typename IteratorZ , typename IteratorM , typename TypeX , typename TypeY , typename TypeW , typename TypeZ >
__hydra_host__ __hydra_device__ std::enable_if< std::is_convertible< typename hydra::thrust::iterator_traits< IteratorX >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorY >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorW >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorZ >::value_type, double >::value &&std::is_convertible< typename hydra::thrust::iterator_traits< IteratorM >::value_type, double >::value &&std::is_convertible< TypeX, double >::value &&std::is_convertible< TypeY, double >::value &&std::is_convertible< TypeW, double >::value &&std::is_convertible< TypeZ, double >::value, double >::type
spline4D (IteratorX firstx, IteratorX lastx, IteratorY firsty, IteratorY lasty, IteratorW firstw, IteratorW lastw, IteratorZ firstz, IteratorZ lastz, IteratorM measurements, TypeX x, TypeY y, TypeW w, TypeZ z)
template
__hydra_host__ __hydra_device__ complex< T >
template<size_t N, typename T , size_t I>
std::enable_if<(I==N), void >::type
stream_array_helper (std::ostream &, std::array< T, N > const &)
array streamer helper More...
template<size_t N, typename T , size_t I = 0>
std::enable_if<(I< N), void >::type
stream_array_helper (std::ostream &os, std::array< T, N > const &obj)
template<size_t I, typename ... T>
std::enable_if<(I==sizeof ...(T)), void >::type
stream_tuple_helper (std::ostream &, std::tuple< T... > const &)
tuple streamer helper More...
template<size_t I = 0, typename ... T>
std::enable_if<(I< sizeof ...(T)), void >::type
stream_tuple_helper (std::ostream &os, std::tuple< T... > const &obj)
template<typename F1 , typename F2 , typename ... Fs>
std::enable_if<(detail::is_hydra_functor< F1 >::value||detail::is_hydra_lambda< F1 >::value) &&(detail::is_hydra_functor< F2 >::value||detail::is_hydra_lambda< F2 >::value) &&detail::all_true<(detail::is_hydra_functor< Fs >::value||detail::is_hydra_lambda< Fs >::value)... >::value, Sum< F1, F2, Fs... > >::type
sum (F1 const &f1, F2 const &f2, Fs const &... functors)
__hydra_host__ __hydra_device__ void
swap (Vector3R &v1, Vector3R &v2)
__hydra_host__ __hydra_device__ void
swap (Vector4R &v1, Vector4R &v2)
template
__hydra_host__ __hydra_device__ complex< T >
template
__hydra_host__ __hydra_device__ complex< T >
template<class ... T>
__hydra_host__ __hydra_device__ auto
tie (T &...t) -> decltype(hydra::thrust::tie(t...))
This version of tie creates a new tuple whose elements are references which refers to this function's arguments. More...
template<typename Iterable_Input , typename Iterable_Output , typename Functor , typename Iterator = decltype(std::declval<Iterable_Output>().begin())>
std::enable_if< hydra::detail::is_iterable< Iterable_Output >::value, Range< decltype(std::declval< Iterable_Output & >).begin())> >::type
transform (Iterable_Input &&iterable_input, Iterable_Output &&iterable_output, Functor const &unary_functor)
template<typename RNG , typename DerivedPolicy , typename IteratorData , typename IteratorWeight >
std::enable_if< detail::random::is_iterator< IteratorData >::value &&detail::random::is_iterator< IteratorWeight >::value, Range< IteratorData >>::type
unweight (hydra::thrust::detail::execution_policy_base< DerivedPolicy > const &policy, IteratorData data_begin, IteratorData data_end, IteratorWeight weights_begin, double max_pdf, size_t rng_seed, size_t rng_jump)
This functions reorder a dataset to produce a unweighted sample according to the weights [wbegin, wend]. More...
template<typename RNG , typename IteratorData , typename IteratorWeight , hydra::detail::Backend BACKEND>
std::enable_if< detail::random::is_iterator< IteratorData >::value &&detail::random::is_iterator< IteratorWeight >::value, Range< IteratorData >>::type
unweight (detail::BackendPolicy< BACKEND > const &policy, IteratorData data_begin, IteratorData data_end, IteratorWeight weights_begin, double max_pdf, size_t rng_seed, size_t rng_jump)
This functions reorder a dataset to produce a unweighted sample according to the weights [wbegin, wend]. More...
template<typename RNG , typename IteratorData , typename IteratorWeight >
std::enable_if< detail::random::is_iterator< IteratorData >::value &&detail::random::is_iterator< IteratorWeight >::value, Range< IteratorData > >::type
unweight (IteratorData data_begin, IteratorData data_end, IteratorWeight weights_begin, double max_pdf, size_t rng_seed, size_t rng_jump)
template<typename RNG , typename IterableData , typename IterableWeight , hydra::detail::Backend BACKEND>
std::enable_if< detail::random::is_iterable< IterableData >::value &&detail::random::is_iterable< IterableWeight >::value, Range< decltype(std::declval< IterableData >).begin())> >::type
unweight (hydra::detail::BackendPolicy< BACKEND > const &policy, IterableData &&data, IterableWeight &&weights, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce a unweighted sample according to a weights. More...
template<typename RNG , typename IterableData , typename IterableWeight >
std::enable_if< detail::random::is_iterable< IterableData >::value &&detail::random::is_iterable< IterableWeight >::value, Range< decltype(std::declval< IterableData >).begin())> >::type
unweight (IterableData &&data, IterableWeight &&weights, double max_pdf, size_t rng_seed, size_t rng_jump)
template<typename RNG = default_random_engine, typename DerivedPolicy , typename IteratorData , typename IteratorWeight >
std::enable_if< detail::random::is_iterator< IteratorData >::value &&detail::random::is_iterator< IteratorWeight >::value, Range< IteratorData > >::type
unweight (hydra::thrust::detail::execution_policy_base< DerivedPolicy > const &policy, IteratorData data_begin, IteratorData data_end, IteratorWeight weights_begin, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce a unweighted sample according to the weights [wbegin, wend]. More...
template<typename RNG , typename Functor , typename Iterator , typename DerivedPolicy >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator >>::type
unweight (hydra::thrust::detail::execution_policy_base< DerivedPolicy > const &policy, Iterator begin, Iterator end, Functor const &functor, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce an unweighted sample according to. More...
template<typename RNG = default_random_engine, typename IteratorData , typename IteratorWeight , hydra::detail::Backend BACKEND>
std::enable_if< detail::random::is_iterator< IteratorData >::value &&detail::random::is_iterator< IteratorWeight >::value, Range< IteratorData > >::type
unweight (detail::BackendPolicy< BACKEND > const &policy, IteratorData data_begin, IteratorData data_end, IteratorWeight weights_begin, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce a unweighted sample according to the weights [wbegin, wend]. More...
template<typename RNG , typename Functor , typename Iterator , hydra::detail::Backend BACKEND>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator >>::type
unweight (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterator begin, Iterator end, Functor const &functor, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce an unweighted sample according to. More...
template<typename RNG = default_random_engine, typename IteratorData , typename IteratorWeight >
std::enable_if< detail::random::is_iterator< IteratorData >::value &&detail::random::is_iterator< IteratorWeight >::value, Range< IteratorData >>::type
unweight (IteratorData data_begin, IteratorData data_end, IteratorData weights_begin, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce a unweighted sample according to the weights [wbegin, wend]. More...
template<typename RNG , typename Functor , typename Iterator >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value, Range< Iterator >>::type
unweight (Iterator begin, Iterator end, Functor const &functor, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce an unweighted sample according to. More...
template<typename RNG , typename Functor , typename Iterable , hydra::detail::Backend BACKEND>
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable >).begin())>>::type
unweight (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterable &&iterable, Functor const &functor, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce an unweighted sample according to. More...
template<typename RNG , typename Functor , typename Iterable >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterable< Iterable >::value, Range< decltype(std::declval< Iterable >).begin())>>::type
unweight (Iterable &&iterable, Functor const &functor, double max_pdf, size_t rng_seed, size_t rng_jump)
This functions reorder a dataset to produce an unweighted sample according to. More...
template<typename RNG = default_random_engine, typename IterableData , typename IterableWeight >
std::enable_if< detail::random::is_iterable< IterableData >::value &&detail::random::is_iterable< IterableWeight >::value, Range< decltype(std::declval< IterableData >).begin())>>::type
unweight (IterableData data, IterableWeight weights, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce an unweighted sample according to a weights. More...
template<typename RNG = default_random_engine, typename Functor , typename Iterable >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterable< Iterable >::value,Range< decltype(std::declval< Iterable >).begin())> >::type
unweight (Iterable &&iterable, Functor const &functor, double max_pdf=-1.0, size_t rng_seed=0x8ec74d321e6b5a27, size_t rng_jump=0)
This functions reorder a dataset to produce an unweighted sample according to. More...
template
__hydra_host__ __hydra_device__ T
wigner_d_matrix (double j, double m, double n, const T theta)
__hydra_host__ __hydra_device__ double
wigner_d_matrix (unsigned j, unsigned m, unsigned n, const double theta)
template
hydra::Lambda< LambdaType, 0 >
wrap_lambda (LambdaType const &lambda)
template<typename LambdaType , typename ... T>
std::enable_if< detail::all_true< std::is_same< T, hydra::Parameter >::value... >::value, hydra::Lambda< LambdaType, sizeof...(T)> >::type
wrap_lambda (LambdaType const &lambda, T const &...parameters)
template<typename ... Iterables>
std::enable_if< detail::all_true< detail::is_iterable< Iterables >::value... >::value, Range< hydra::thrust::zip_iterator< decltype(hydra::thrust::make_tuple(std::declval< Iterables & >).begin()...))> > >::type
zip (Iterables &&... iterables)
Variables
template<typename Engine = hydra::default_random_engine, hydra::detail::Backend BACKEND, typename Iterator , typename FUNCTOR >
std::enable_if< hydra::detail::has_rng_formula< FUNCTOR >::value &&std::is_convertible< decltype(std::declval< RngFormula< FUNCTOR > >).Generate(std::declval< Engine & >), std::declval< FUNCTOR const & >))), typename hydra::thrust::iterator_traits< Iterator >::value_type >::value, void >::type
fill_random (hydra::detail::BackendPolicy< BACKEND > const &policy, Iterator begin, Iterator end, FUNCTOR const &functor, size_t seed=0x254a0afcf7da74a2, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution using a RNG analytical formula. More...
decltype(other.begin(placeholders::placeholder< I >{})) typedef
const GBool_t
kFalse = false
const GBool_t
kTrue = true
template<typename ... Pdfs, typename Histogram >
std::enable_if< detail::is_hydra_dense_histogram< Histogram >::value||detail::is_hydra_sparse_histogram< Histogram >::value, LogLikelihoodFCN< PDFSumExtendable< Pdfs... >, decltype(std::declval< const Histogram & >).GetBinsCenters().begin()), decltype(std::declval< const Histogram & >).GetBinsContents().begin()) > >::type
make_loglikehood_fcn (PDFSumExtendable< Pdfs... > const &pdf, Histogram const &data)
Convenience function to build up loglikehood fcns for densely and sparsely binned datasets. More...
template<typename RNG = default_random_engine, typename Functor , typename Iterator >
std::enable_if< detail::random::is_callable< Functor >::value &&detail::random::is_iterator< Iterator >::value &&detail::is_tuple_type< decltype(*std::declval< Iterator >))>::value, Range< Iterator > >::type
sample (Iterator begin, Iterator end, typename Functor::argument_type const &min, typename Functor::argument_type const &max, Functor const &functor, size_t seed=0xb56c4feeef1b, size_t rng_jump=0)
Fill a range with numbers distributed according a user defined distribution. More...