32 #ifndef VSMC_SMP_BACKEND_STD_HPP
33 #define VSMC_SMP_BACKEND_STD_HPP
52 explicit StateSTD (size_type N) : BaseState(N) {}
54 template <
typename IntType>
55 void copy (size_type N,
const IntType *copy_from)
67 template <
typename T,
typename Derived>
68 class InitializeSTD :
public InitializeBase<T, Derived>
75 const size_type N =
static_cast<size_type
>(particle.
size());
93 template <
typename T,
typename Derived>
101 const size_type N =
static_cast<size_type
>(particle.
size());
104 this, iter, &particle);
118 template <
typename T,
typename Derived>
127 const size_type N =
static_cast<size_type
>(particle.
size());
131 this, iter, dim, &particle, res));
142 template <
typename T,
typename Derived>
151 const size_type N =
static_cast<size_type
>(particle.
size());
155 this, iter, &particle, res));
168 #endif // VSMC_SMP_BACKEND_STD_HPP
Sampler::move_type subtype using C++11 concurrency.
Particle class representing the whole particle set.
void initialize_param(Particle< T > &particle, void *param)
#define VSMC_RUNTIME_ASSERT_SMP_BACKEND_BASE_COPY_SIZE_MISMATCH(name)
void pre_processor(Particle< T > &particle)
Monitor evalution base dispatch class.
void parallel_reduce(const Range &range, WorkType &work)
Parallel reduce using C++11 concurrency.
void post_processor(std::size_t iter, const Particle< T > &particle)
std::size_t accept() const
double path_grid(std::size_t iter, const Particle< T > &particle)
void post_processor(std::size_t iter, Particle< T > &particle)
Path::eval_type subtype using C++11 concurrency.
void pre_processor(std::size_t iter, Particle< T > &particle)
void operator()(std::size_t iter, std::size_t dim, const Particle< T > &particle, double *res)
void post_processor(std::size_t iter, const Particle< T > &particle)
Particle::value_type subtype using C++11 concurrency.
void pre_processor(std::size_t iter, const Particle< T > &particle)
traits::SizeTypeTrait< BaseState >::type size_type
void copy(size_type N, const IntType *copy_from)
std::size_t operator()(Particle< T > &particle, void *param)
Move base dispatch class.
double operator()(std::size_t iter, const Particle< T > &particle, double *res)
traits::SizeTypeTrait< T >::type size_type
internal::SizeTypeDispatch< T, value >::type type
Monitor::eval_type subtype using C++11 concurrency.
void post_processor(Particle< T > &particle)
Path evalution base dispatch class.
std::size_t operator()(std::size_t iter, Particle< T > &particle)
size_type size() const
Number of particles.
std::size_t accept() const
void pre_processor(std::size_t iter, const Particle< T > &particle)
#define VSMC_DEFINE_SMP_FORWARD(Name)
#define VSMC_DEFINE_SMP_IMPL_COPY(Impl, Name)
void parallel_for(const Range &range, WorkType &&work)
Parallel for using std::thread.