32 #ifndef VSMC_CORE_SINGLE_PARTICLE_HPP
33 #define VSMC_CORE_SINGLE_PARTICLE_HPP
48 id_(id), particle_ptr_(particle_ptr) {}
57 {
return particle_ptr_->rng(id_);}
80 id_(id), particle_ptr_(particle_ptr) {}
115 template <
typename T>
124 Particle<T> *particle_ptr) : base(id, particle_ptr) {}
129 template <
typename T>
138 const Particle<T> *particle_ptr) : base(id, particle_ptr) {}
143 #endif // VSMC_CORE_SINGLE_PARTICLE_HPP
const Particle< T > * particle_ptr() const
SingleParticle base class trait.
Particle class representing the whole particle set.
Particle< T > * mutable_particle_ptr() const
SingleParticle(typename Particle< T >::size_type id, Particle< T > *particle_ptr)
Particle< T >::size_type id() const
SingleParticleBase(typename Particle< T >::size_type id, Particle< T > *particle_ptr)
Particle< T > & mutable_particle() const
ConstSingleParticle base class trait.
rng_set_type::rng_type rng_type
internal::SingleParticleBaseTypeDispatch< T, value >::type type
A const variant to SingleParticle.
internal::ConstSingleParticleBaseTypeDispatch< T, value >::type type
ConstSingleParticle(typename Particle< T >::size_type id, const Particle< T > *particle_ptr)
Particle< T >::size_type id() const
A thin wrapper over a complete Particle.
traits::SizeTypeTrait< T >::type size_type
const Particle< T > & particle() const
const Particle< T > * particle_ptr() const
A thin wrapper over a complete Particle.
ConstSingleParticleBase(typename Particle< T >::size_type id, const Particle< T > *particle_ptr)
Particle< T >::rng_type & rng() const
const Particle< T > & particle() const
A const variant to SingleParticle.