openjij
Framework for the Ising model and QUBO.
|
Classes | |
class | BinaryPolynomialModel |
class | Chimera |
chimera lattice graph More... | |
class | CSRSparse |
CSRSparse graph: just store CSR Sparse Matrix (Eigen::Sparse) The Hamiltonian is like. More... | |
class | Dense |
two-body all-to-all interactions The Hamiltonian is like More... | |
class | Graph |
Abstract graph class. More... | |
class | IsingPolynomialModel |
class | Polynomial |
Polynomial graph class, which can treat many-body interactions. More... | |
class | Sparse |
Sparse graph: two-body intereactions with O(1) connectivity The Hamiltonian is like. More... | |
class | Square |
square lattice graph More... | |
Typedefs | |
using | ChimeraIndex = std::tuple< std::size_t, std::size_t, std::size_t > |
Chimera index (row, column, in-chimera) The structure of in-chimera is as follows in-chimera index. | |
using | Spin = int |
using | Spins = std::vector< Spin > |
using | Binary = int |
using | Binaries = std::vector< Binary > |
using | Index = std::size_t |
using | Nodes = std::vector< Index > |
using | json = nlohmann::json |
using | RowColumn = std::pair< std::size_t, std::size_t > |
Row x Column type. | |
Enumerations | |
enum class | ChimeraDir { PLUS_R , MINUS_R , PLUS_C , MINUS_C , IN_0or4 , IN_1or5 , IN_2or6 , IN_3or7 } |
direction in chimera graph More... | |
enum class | Dir { PLUS_R , MINUS_R , PLUS_C , MINUS_C } |
direction enum class More... | |
Functions | |
template<typename FloatType , typename CimodDataType > | |
auto | json_parse (const json &obj, bool relabel=true) |
parse json object from bqm.to_serializable | |
template<typename FloatType > | |
auto | json_parse_polynomial (const nlohmann::json &obj, const bool relabel=true) |
using openjij::graph::Binaries = typedef std::vector<Binary> |
using openjij::graph::ChimeraIndex = typedef std::tuple<std::size_t, std::size_t, std::size_t> |
Chimera index (row, column, in-chimera) The structure of in-chimera is as follows in-chimera index.
0 - 4 x 1 - 5 x 2 - 6 x 3 - 7
using openjij::graph::Index = typedef std::size_t |
using openjij::graph::json = typedef nlohmann::json |
using openjij::graph::Nodes = typedef std::vector<Index> |
using openjij::graph::RowColumn = typedef std::pair<std::size_t, std::size_t> |
Row x Column type.
using openjij::graph::Spins = typedef std::vector<Spin> |
|
strong |
direction in chimera graph
|
strong |
|
inline |
parse json object from bqm.to_serializable
FloatType | |
CimodDataType | DataType of cimod (cimod::Dense, cimod::Sparse, or cimod::Dict) |
obj | JSON object |
relabel | re-label variable_labels. Disable the option if the model has specified topology (such as square lattice or chimera model). if the option is disabled, IndexType of JSON must be an integer. |
References json_parse().
Referenced by openjij::graph::Square< FloatType >::_checkpair(), openjij::graph::Sparse< FloatType >::adj_nodes(), openjij::graph::CSRSparse< FloatType >::calc_energy(), openjij::graph::Dense< FloatType >::calc_energy(), openjij::graph::Sparse< FloatType >::calc_energy(), openjij::graph::Polynomial< FloatType >::calc_energy(), openjij::graph::IsingPolynomialModel< FloatType >::CalculateEnergy(), openjij::graph::Polynomial< FloatType >::CheckKeyValid(), openjij::graph::Chimera< FloatType >::Chimera(), openjij::system::ClassicalIsingPolynomial< graph::Polynomial< FloatType > >::ClassicalIsingPolynomial(), openjij::graph::CSRSparse< FloatType >::CSRSparse(), openjij::declare_Chimera(), openjij::declare_Dense(), openjij::declare_Polynomial(), openjij::declare_Sparse(), openjij::declare_Square(), openjij::graph::Dense< FloatType >::Dense(), openjij::graph::CSRSparse< FloatType >::energy(), openjij::graph::Dense< FloatType >::energy(), openjij::graph::Sparse< FloatType >::energy(), openjij::graph::CSRSparse< FloatType >::energy(), openjij::graph::Dense< FloatType >::energy(), openjij::graph::Sparse< FloatType >::energy(), openjij::graph::Polynomial< FloatType >::energy(), openjij::graph::Graph::gen_binary(), openjij::graph::Graph::gen_spin(), openjij::graph::CSRSparse< FloatType >::get_interactions(), openjij::graph::Dense< FloatType >::get_interactions(), openjij::graph::Polynomial< FloatType >::get_polynomial(), openjij::graph::Dense< FloatType >::h(), openjij::graph::Sparse< FloatType >::h(), openjij::graph::Dense< FloatType >::h(), openjij::graph::Sparse< FloatType >::h(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::h(), openjij::graph::Chimera< FloatType >::h(), openjij::graph::Chimera< FloatType >::h(), openjij::graph::IsingPolynomialModel< FloatType >::IsingPolynomialModel(), openjij::graph::Polynomial< FloatType >::J(), openjij::graph::Polynomial< FloatType >::J(), openjij::graph::Polynomial< FloatType >::J(), openjij::graph::Polynomial< FloatType >::J(), openjij::graph::Dense< FloatType >::J(), openjij::graph::Sparse< FloatType >::J(), openjij::graph::Dense< FloatType >::J(), openjij::graph::Sparse< FloatType >::J(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::J(), openjij::graph::Chimera< FloatType >::J(), openjij::graph::Chimera< FloatType >::J(), openjij::graph::Polynomial< FloatType >::J(), openjij::graph::Polynomial< FloatType >::J(), json_parse(), json_parse_polynomial(), openjij::system::KLocalPolynomial< graph::Polynomial< FloatType > >::KLocalPolynomial(), openjij::graph::Polynomial< FloatType >::Polynomial(), openjij::graph::Sparse< FloatType >::set_adj_node(), openjij::graph::Dense< FloatType >::set_interaction_matrix(), openjij::graph::Sparse< FloatType >::Sparse(), openjij::graph::Square< FloatType >::spin(), openjij::graph::Chimera< FloatType >::spin(), openjij::graph::Square< FloatType >::spin(), openjij::graph::Chimera< FloatType >::spin(), openjij::graph::Square< FloatType >::Square(), openjij::graph::Square< FloatType >::Square(), openjij::graph::Square< FloatType >::to_ind(), and openjij::graph::Square< FloatType >::to_rc().