15 #include <thrust/device_vector.h> 16 #include <thrust/iterator/constant_iterator.h> 22 return static_cast<typename std::underlying_type<E>::type
>(e);
32 const unsigned int &constants,
94 , _ymixing(_ymixing) {}
115 , _SqWStoRSrate(_SqWStoRSrate) {}
121 template <
typename Iterator>
126 struct stride_functor :
public thrust::unary_function<difference_type, difference_type> {
132 __host__ __device__ difference_type
operator()(
const difference_type &i)
const {
return stride * i; }
135 typedef typename thrust::transform_iterator<stride_functor, CountingIterator>
TransformIterator;
148 return PermutationIterator(first, TransformIterator(CountingIterator(0),
stride_functor(stride)));
151 iterator
end()
const {
return begin() + ((last - first) + (stride - 1)) / stride; }
std::vector< ResonancePdf * > resonances
__device__ void get4Vecs(fptype *Vecs, const unsigned int &constants, const fptype &m12, const fptype &m34, const fptype &cos12, const fptype &cos34, const fptype &phi)
PermutationIterator iterator
strided_range(Iterator first, Iterator last, difference_type stride)
thrust::transform_iterator< stride_functor, CountingIterator > TransformIterator
stride_functor(difference_type stride)
thrust::complex< fptype > fpcomplex
DecayInfo4t(Variable _tau, Variable _xmixing, Variable _ymixing, Variable _SqWStoRSrate)
__device__ fptype getmass(const unsigned int &pair, fptype &d1, fptype &d2, const fptype *vecs, const fptype &m1, const fptype &m2, const fptype &m3, const fptype &m4)
__host__ __device__ bool inDalitz(const fptype &m12, const fptype &m13, const fptype &bigM, const fptype &dm1, const fptype &dm2, const fptype &dm3)
thrust::iterator_difference< Iterator >::type difference_type
__device__ fpcomplex getResonanceAmplitude(fptype m12, fptype m13, fptype m23, unsigned int functionIdx, unsigned int pIndex)
thrust::counting_iterator< difference_type > CountingIterator
std::vector< fptype > particle_masses
__host__ __device__ difference_type operator()(const difference_type &i) const
constexpr std::underlying_type< E >::type enum_to_underlying(E e)
DecayInfo3t(Variable _tau, Variable _xmixing, Variable _ymixing)
std::vector< Amplitude * > amplitudes_B
std::vector< Amplitude * > amplitudes
thrust::permutation_iterator< Iterator, TransformIterator > PermutationIterator