openjij
Framework for the Ising model and QUBO.
Loading...
Searching...
No Matches
openjij::system Namespace Reference

Classes

struct  classical_constraint_system
 classical monte carlo system with a constraint (using beta (inverse temperature) for annealing parameter) More...
 
struct  classical_system
 classical monte carlo system (using beta (inverse temperature) for annealing parameter) More...
 
struct  ClassicalIsing
 ClassicalIsing structure (system for classical Ising model) More...
 
struct  ClassicalIsing< graph::CSRSparse< FloatType > >
 ClassicalIsing structure for CSR Sparse graph (Eigen-based) More...
 
struct  ClassicalIsing< graph::Dense< FloatType > >
 ClassicalIsing structure for Dense graph (Eigen-based) More...
 
struct  ClassicalIsing< graph::Sparse< FloatType > >
 ClassicalIsing structure for Sparse graph (Eigen-based) More...
 
class  ClassicalIsingPolynomial
 ClassicalIsingPolynomial class, which is a system to solve higher order unconstrained binary optimization (HUBO) problems with vartype being "SPIN" or "BINARY". More...
 
class  ClassicalIsingPolynomial< graph::Polynomial< FloatType > >
 ClassicalIsingPolynomial class. More...
 
struct  ContinuousTimeIsing
 Continuous Time Quantum Ising system. More...
 
struct  ContinuousTimeIsing< graph::CSRSparse< FloatType > >
 Continuous Time Quantum Ising system (for CSR Sparse graph) More...
 
struct  ContinuousTimeIsing< graph::Sparse< FloatType > >
 Continuous Time Quantum Ising system (for Sparse graph) More...
 
struct  get_base_system_type
 meta function to check whether system type is derived from mc_system, single_command_system, or real_time_dynamics_system. More...
 
struct  get_classical_or_quantum_system_type
 meta function to check whether system type is derived from classical_system or quantum_system. More...
 
struct  get_system_type
 meta function for getting system type More...
 
struct  inhomogeneous_transverse_field_system
 inhomogeneous transverse field system More...
 
class  KLocalPolynomial
 KLocalPolynomial class, which is a system to solve higher order unconstrained binary optimization (HUBO) problems with vartype being "BINARY". More...
 
class  KLocalPolynomial< graph::Polynomial< FloatType > >
 KLocalPolynomial class. More...
 
struct  mc_system
 monte carlo system tag More...
 
struct  nonstoquastic_system
 nonstoquastic quantum system More...
 
struct  quantum_system
 quantum monte carlo system More...
 
struct  realtime_dynamics_system
 system tag for solving real time schrodinger dynamics More...
 
class  SASystem
 
class  SASystem< graph::BinaryPolynomialModel< FloatType >, RandType >
 
class  SASystem< graph::IsingPolynomialModel< FloatType >, RandType >
 
struct  single_command_system
 system tag with single command execution (e.g. More...
 
struct  transverse_field_system
 ordinary homogeneous transverse field system (using beta and annealing schedule (s) for annealing parameter) More...
 
struct  TransverseIsing
 TransverseIsing structure with discrete-time trotter spins. More...
 
struct  TransverseIsing< graph::CSRSparse< FloatType > >
 CSR Sparse TransverseIsing structure with discrete-time trotter spins (with Eigen implementation) The original Hamiltonian is like. More...
 
struct  TransverseIsing< graph::Dense< FloatType > >
 naive Dense TransverseIsing structure with discrete-time trotter spins (with Eigen implementation) The original Hamiltonian is like More...
 
struct  TransverseIsing< graph::Sparse< FloatType > >
 naive Sparse TransverseIsing structure with discrete-time trotter spins (with Eigen implementation) The original Hamiltonian is like More...
 

Typedefs

using TrotterSpins = std::vector< graph::Spins >
 trotterized spin (std::vector<Spins>) trotter_spins[i][j] -> jth spin in ith trotter slice.
 

Functions

template<typename GraphType >
auto make_classical_ising (const graph::Spins &init_spin, const GraphType &init_interaction)
 helper function for ClassicalIsing constructor
 
template<typename GraphType >
auto make_classical_ising_polynomial (const graph::Spins &init_variables, const GraphType &poly_graph, const cimod::Vartype init_vartype)
 Helper function for ClassicalIsingPolynomial constructor.
 
template<typename GraphType >
auto make_classical_ising_polynomial (const graph::Spins &init_variables, const GraphType &poly_graph, const std::string init_vartype)
 Helper function for ClassicalIsingPolynomial constructor.
 
auto make_classical_ising_polynomial (const graph::Spins &init_variables, const nlohmann::json &init_obj)
 Helper function for ClassicalIsingPolynomial constructor by using nlohmann::json object.
 
template<typename GraphType >
ContinuousTimeIsing< GraphType > make_continuous_time_ising (const graph::Spins &init_spins, const GraphType &init_interaction, double gamma)
 helper function for ContinuousTimeIsing constructor
 
template<typename GraphType >
auto make_k_local_polynomial (const graph::Binaries &init_binaries, const GraphType &init_interaction)
 Helper function for ClassicalIsingPolynomial constructor.
 
auto make_k_local_polynomial (const graph::Binaries &init_binaries, const nlohmann::json &init_obj)
 Helper function for ClassicalIsingPolynomial constructor by using nlohmann::json object.
 
template<typename GraphType >
auto make_transverse_ising (const TrotterSpins &init_trotter_spins, const GraphType &init_interaction, const typename GraphType::value_type gamma)
 helper function for TransverseIsing constructor
 
template<typename GraphType >
auto make_transverse_ising (const graph::Spins &classical_spins, const GraphType &init_interaction, const typename GraphType::value_type gamma, const std::size_t num_trotter_slices)
 helper function for TransverseIsing constructor
 

Variables

static constexpr bool USE_EIGEN = true
 USE_EIGEN flag.
 

Typedef Documentation

◆ TrotterSpins

using openjij::system::TrotterSpins = typedef std::vector<graph::Spins>

trotterized spin (std::vector<Spins>) trotter_spins[i][j] -> jth spin in ith trotter slice.

Function Documentation

◆ make_classical_ising()

template<typename GraphType >
auto openjij::system::make_classical_ising ( const graph::Spins init_spin,
const GraphType &  init_interaction 
)

helper function for ClassicalIsing constructor

Template Parameters
GraphType
Parameters
init_spininitial spin
init_interactioninitial interaction
Returns
generated object

◆ make_classical_ising_polynomial() [1/3]

template<typename GraphType >
auto openjij::system::make_classical_ising_polynomial ( const graph::Spins init_variables,
const GraphType &  poly_graph,
const cimod::Vartype  init_vartype 
)

Helper function for ClassicalIsingPolynomial constructor.

Template Parameters
GraphType
Parameters
init_variablesconst graph::Spins& or const graph::Binaries& (both are equal). The initial spin/binarie configulations.
poly_graphgraph::Polynomial<FloatType>& (Polynomial graph class). The initial interacrtions.
init_vartypeconst cimod::Vartype. The model's variable type. SPIN or BINARY.

◆ make_classical_ising_polynomial() [2/3]

template<typename GraphType >
auto openjij::system::make_classical_ising_polynomial ( const graph::Spins init_variables,
const GraphType &  poly_graph,
const std::string  init_vartype 
)

Helper function for ClassicalIsingPolynomial constructor.

Template Parameters
GraphType
Parameters
init_variablesconst graph::Spins& or const graph::Binaries& (both are equal). The initial spin/binarie configulations.
poly_graphgraph::Polynomial<FloatType>& (Polynomial graph class). The initial interacrtions.
init_vartypestd::string. The model's variable type. SPIN or BINARY.

◆ make_classical_ising_polynomial() [3/3]

auto openjij::system::make_classical_ising_polynomial ( const graph::Spins init_variables,
const nlohmann::json &  init_obj 
)

Helper function for ClassicalIsingPolynomial constructor by using nlohmann::json object.

Parameters
init_variablesconst graph::Spins& or const graph::Binaries& (both are equal). The initial spin/binarie configulations.
init_objnlohmann::json&

◆ make_continuous_time_ising()

template<typename GraphType >
ContinuousTimeIsing< GraphType > openjij::system::make_continuous_time_ising ( const graph::Spins init_spins,
const GraphType &  init_interaction,
double  gamma 
)

helper function for ContinuousTimeIsing constructor

Template Parameters
GraphType
Parameters
init_spins
interaction
gamma
Returns
generated object

◆ make_k_local_polynomial() [1/2]

template<typename GraphType >
auto openjij::system::make_k_local_polynomial ( const graph::Binaries init_binaries,
const GraphType &  init_interaction 
)

Helper function for ClassicalIsingPolynomial constructor.

Template Parameters
GraphType
Parameters
init_binariesconst graph::Binaries&. The initial binaries.
init_interactionGraphType&. The initial interactions.

◆ make_k_local_polynomial() [2/2]

auto openjij::system::make_k_local_polynomial ( const graph::Binaries init_binaries,
const nlohmann::json &  init_obj 
)

Helper function for ClassicalIsingPolynomial constructor by using nlohmann::json object.

Template Parameters
FloatType
Parameters
init_binariesconst graph::Binaries&. The initial binaries.
init_objnlohmann::json&

◆ make_transverse_ising() [1/2]

template<typename GraphType >
auto openjij::system::make_transverse_ising ( const graph::Spins classical_spins,
const GraphType &  init_interaction,
const typename GraphType::value_type  gamma,
const std::size_t  num_trotter_slices 
)

helper function for TransverseIsing constructor

Template Parameters
GraphType
Parameters
classical_spins
init_interaction
gamma
num_trotter_slices
Returns
generated object

◆ make_transverse_ising() [2/2]

template<typename GraphType >
auto openjij::system::make_transverse_ising ( const TrotterSpins init_trotter_spins,
const GraphType &  init_interaction,
const typename GraphType::value_type  gamma 
)

helper function for TransverseIsing constructor

Template Parameters
GraphType
Parameters
init_trotter_spins
init_interaction
gamma
Returns
generated object

Variable Documentation

◆ USE_EIGEN

constexpr bool openjij::system::USE_EIGEN = true
staticconstexpr

USE_EIGEN flag.