openjij
Framework for the Ising model and QUBO.
Loading...
Searching...
No Matches
openjij::updater::ContinuousTimeSwendsenWang< system::ContinuousTimeIsing< graph::CSRSparse< FloatType > > > Struct Template Reference

Continuous Time Swendsen Wang updater for CTQIsystem on CSR Sparse graph. More...

#include <continuous_time_swendsen_wang.hpp>

Public Types

using CTIsing = system::ContinuousTimeIsing< graph::CSRSparse< FloatType > >
 
using GraphType = typename graph::CSRSparse< FloatType >
 
using CutPoint = typename system::ContinuousTimeIsing< GraphType >::CutPoint
 
using TimeType = typename system::ContinuousTimeIsing< GraphType >::TimeType
 

Static Public Member Functions

template<typename RandomNumberEngine >
static void update (system::ContinuousTimeIsing< GraphType > &system, RandomNumberEngine &random_number_engine, const utility::TransverseFieldUpdaterParameter &parameter)
 continuous time Swendsen-Wang updater for transverse ising model
 
static std::vector< CutPointcreate_timeline (const std::vector< CutPoint > &old_timeline, const std::vector< TimeType > &cuts)
 create new timeline; place kinks by ignoring old cuts and place new cuts
 
static std::vector< CutPointcreate_timeline_easy (const std::vector< CutPoint > &old_timeline, const std::vector< TimeType > &cuts)
 easy but inefficient version of create_timeline()
 
template<typename RandomNumberEngine >
static std::vector< TimeTypegenerate_poisson_points (const TimeType lambda, const TimeType beta, RandomNumberEngine &random_number_engine)
 generates Poisson points with density lambda in the range of [0:beta)
 

Detailed Description

template<typename FloatType>
struct openjij::updater::ContinuousTimeSwendsenWang< system::ContinuousTimeIsing< graph::CSRSparse< FloatType > > >

Continuous Time Swendsen Wang updater for CTQIsystem on CSR Sparse graph.

Template Parameters
FloatType

Member Typedef Documentation

◆ CTIsing

◆ CutPoint

◆ GraphType

◆ TimeType

Member Function Documentation

◆ create_timeline()

template<typename FloatType >
static std::vector< CutPoint > openjij::updater::ContinuousTimeSwendsenWang< system::ContinuousTimeIsing< graph::CSRSparse< FloatType > > >::create_timeline ( const std::vector< CutPoint > &  old_timeline,
const std::vector< TimeType > &  cuts 
)
inlinestatic

create new timeline; place kinks by ignoring old cuts and place new cuts

◆ create_timeline_easy()

template<typename FloatType >
static std::vector< CutPoint > openjij::updater::ContinuousTimeSwendsenWang< system::ContinuousTimeIsing< graph::CSRSparse< FloatType > > >::create_timeline_easy ( const std::vector< CutPoint > &  old_timeline,
const std::vector< TimeType > &  cuts 
)
inlinestatic

easy but inefficient version of create_timeline()

◆ generate_poisson_points()

template<typename FloatType >
template<typename RandomNumberEngine >
static std::vector< TimeType > openjij::updater::ContinuousTimeSwendsenWang< system::ContinuousTimeIsing< graph::CSRSparse< FloatType > > >::generate_poisson_points ( const TimeType  lambda,
const TimeType  beta,
RandomNumberEngine &  random_number_engine 
)
inlinestatic

generates Poisson points with density lambda in the range of [0:beta)

Note
might be better to move this function to utility

◆ update()

template<typename FloatType >
template<typename RandomNumberEngine >
static void openjij::updater::ContinuousTimeSwendsenWang< system::ContinuousTimeIsing< graph::CSRSparse< FloatType > > >::update ( system::ContinuousTimeIsing< GraphType > &  system,
RandomNumberEngine &  random_number_engine,
const utility::TransverseFieldUpdaterParameter parameter 
)
inlinestatic

The documentation for this struct was generated from the following file: