vSMC
vSMC: Scalable Monte Carlo
Public Member Functions | List of all members
vsmc::SingleParticle< T > Class Template Reference

A thin wrapper over a complete Particle. More...

#include <vsmc/core/single_particle.hpp>

Public Member Functions

 SingleParticle (typename Particle< T >::size_type id, Particle< T > *particle_ptr)
 

Detailed Description

template<typename T>
class vsmc::SingleParticle< T >

A thin wrapper over a complete Particle.

This is the basic SingleParticle available for any type of Particle. To extend it for type T. One can either specialize vsmc::traits::SingleParticleBaseTypeTrait<T> or define a class template named single_particle_type within T with the following minimum requirement.

template <typename S> // S: StateType, such as StateMatrix<Dim, T>
struct single_particle_type
{
typedef IntType size_type;
single_particle_type (size_type id, Particle<S> *particle_ptr);
size_type id () const;
const Particle<S> *particle_ptr () const;
};

Usually you can safely derive single_particle_type<S> from SingleParticleBase<S> and add methods specific to S.

Definition at line 116 of file single_particle.hpp.

Constructor & Destructor Documentation

template<typename T>
vsmc::SingleParticle< T >::SingleParticle ( typename Particle< T >::size_type  id,
Particle< T > *  particle_ptr 
)
inline

Definition at line 123 of file single_particle.hpp.