openjij
Framework for the Ising model and QUBO.
|
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. | |
using openjij::system::TrotterSpins = typedef std::vector<graph::Spins> |
trotterized spin (std::vector<Spins>) trotter_spins[i][j] -> jth spin in ith trotter slice.
auto openjij::system::make_classical_ising | ( | const graph::Spins & | init_spin, |
const GraphType & | init_interaction | ||
) |
helper function for ClassicalIsing constructor
GraphType |
init_spin | initial spin |
init_interaction | initial interaction |
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.
GraphType |
init_variables | const graph::Spins& or const graph::Binaries& (both are equal). The initial spin/binarie configulations. |
poly_graph | graph::Polynomial<FloatType>& (Polynomial graph class). The initial interacrtions. |
init_vartype | const cimod::Vartype. The model's variable type. SPIN or BINARY. |
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.
GraphType |
init_variables | const graph::Spins& or const graph::Binaries& (both are equal). The initial spin/binarie configulations. |
poly_graph | graph::Polynomial<FloatType>& (Polynomial graph class). The initial interacrtions. |
init_vartype | std::string. The model's variable type. SPIN or BINARY. |
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.
init_variables | const graph::Spins& or const graph::Binaries& (both are equal). The initial spin/binarie configulations. |
init_obj | nlohmann::json& |
ContinuousTimeIsing< GraphType > openjij::system::make_continuous_time_ising | ( | const graph::Spins & | init_spins, |
const GraphType & | init_interaction, | ||
double | gamma | ||
) |
helper function for ContinuousTimeIsing constructor
GraphType |
init_spins | |
interaction | |
gamma |
auto openjij::system::make_k_local_polynomial | ( | const graph::Binaries & | init_binaries, |
const GraphType & | init_interaction | ||
) |
Helper function for ClassicalIsingPolynomial constructor.
GraphType |
init_binaries | const graph::Binaries&. The initial binaries. |
init_interaction | GraphType&. The initial interactions. |
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.
FloatType |
init_binaries | const graph::Binaries&. The initial binaries. |
init_obj | nlohmann::json& |
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
GraphType |
classical_spins | |
init_interaction | |
gamma | |
num_trotter_slices |
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
GraphType |
init_trotter_spins | |
init_interaction | |
gamma |
|
staticconstexpr |
USE_EIGEN flag.