openjij
Framework for the Ising model and QUBO.
|
square lattice graph More...
#include <square.hpp>
Public Member Functions | |
Index | to_ind (std::int64_t r, std::int64_t c) const |
convert from (row x column) index to global index | |
RowColumn | to_rc (Index ind) const |
convert from global index to (row x column) index | |
Square (std::size_t num_row, std::size_t num_column, FloatType init_val=0) | |
square lattice graph constructor | |
Square (const json &j, std::size_t num_row, std::size_t num_column, FloatType init_val=0) | |
Square constructor (from nlohmann::json) | |
Square (const Square< FloatType > &)=default | |
square lattice graph copy constructor | |
Square (Square< FloatType > &&)=default | |
square lattice graph move constructor | |
std::size_t | get_num_row () const |
get number of rows | |
std::size_t | get_num_column () const |
get number of columns | |
FloatType & | J (std::size_t r, std::size_t c, Dir dir) |
access J(row, colum, direction) | |
const FloatType & | J (std::size_t r, std::size_t c, Dir dir) const |
access J(row, colum, direction) | |
FloatType & | h (std::size_t r, std::size_t c) |
access h(row, colum) (local field) | |
const FloatType & | h (std::size_t r, std::size_t c) const |
access h(row, colum) (local field) | |
Spin & | spin (Spins &spins, std::size_t r, std::size_t c) const |
derive spin value at the index (row x column) | |
const Spin & | spin (const Spins &spins, std::size_t r, std::size_t c) const |
derive spin value at the index (row x column) | |
![]() | |
Sparse (std::size_t num_spins, std::size_t num_edges) | |
Sparse constructor. | |
Sparse (std::size_t num_spins) | |
Sparse delegate constructor. | |
Sparse (const json &j, std::size_t num_edges) | |
Sparse constructor (from nlohmann::json) | |
Sparse (const json &j) | |
Sparse constructor (from nlohmann::json) | |
Sparse (const Sparse< FloatType > &)=default | |
Sparse copy constructor. | |
Sparse (Sparse< FloatType > &&)=default | |
Sparse move constructor. | |
const Nodes & | adj_nodes (Index ind) const |
list of adjacent nodes | |
std::size_t | get_num_edges () const |
get number of edges | |
FloatType | calc_energy (const Spins &spins) const |
calculate total energy | |
FloatType | calc_energy (const Eigen::Matrix< FloatType, Eigen::Dynamic, 1, Eigen::ColMajor > &spins) const |
FloatType | energy (const Spins &spins) const |
calculate total energy | |
FloatType | energy (const Eigen::Matrix< FloatType, Eigen::Dynamic, 1, Eigen::ColMajor > &spins) const |
FloatType & | J (Index i, Index j) |
access J_{ij} | |
const FloatType & | J (Index i, Index j) const |
access J_{ij} | |
FloatType & | h (Index i) |
access h_{i} (local field) | |
const FloatType & | h (Index i) const |
access h_{i} (local field) | |
![]() | |
Graph (std::size_t num_spins) | |
Graph constructor. | |
template<typename RandomNumberEngine > | |
const Spins | gen_spin (RandomNumberEngine &random_numder_engine) const |
generate spins randomly. | |
template<typename RandomNumberEngine > | |
const Binaries | gen_binary (RandomNumberEngine &random_numder_engine) const |
generate spins randomly. | |
std::size_t | get_num_spins () const noexcept |
get number of spins | |
std::size_t | size () const noexcept |
get number of spins | |
Private Member Functions | |
std::size_t | mod_r (std::int64_t a) const |
mod function (a mod num_row) | |
std::size_t | mod_c (std::int64_t a) const |
mod function (a mod num_column) | |
void | _checkpair (Index idx1, Index idx2) const |
check if the pair has a valid connection | |
Private Attributes | |
FloatType | _init_val |
initial value to be set to interactions | |
std::size_t | _num_row |
number of rows | |
std::size_t | _num_column |
number of columns | |
Additional Inherited Members | |
![]() | |
using | Interactions = std::unordered_map< std::pair< Index, Index >, FloatType, utility::PairHash > |
interaction type | |
using | value_type = FloatType |
float type | |
square lattice graph
FloatType | floating-point type (default is double) |
|
inline |
square lattice graph constructor
num_row | number of rows |
num_column | number of columns |
init_val | initial value set to interaction (default: 0) |
References openjij::graph::Square< FloatType >::_init_val, openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::J(), openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().
|
inline |
Square constructor (from nlohmann::json)
j | JSON object |
num_row | number of rows |
num_column | number of columns |
init_val | initial value set to interaction (default: 0) |
References openjij::graph::Square< FloatType >::_checkpair(), openjij::graph::Sparse< FloatType >::h(), openjij::graph::Sparse< FloatType >::J(), and openjij::graph::json_parse().
|
default |
square lattice graph copy constructor
|
default |
square lattice graph move constructor
|
inlineprivate |
check if the pair has a valid connection
idx1 | index1 |
idx2 | index2 |
References openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_rc().
Referenced by openjij::graph::Square< FloatType >::Square().
|
inline |
get number of columns
References openjij::graph::Square< FloatType >::_num_column.
|
inline |
|
inline |
access h(row, colum) (local field)
r | row index |
c | column index |
References openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::h(), openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().
Referenced by openjij::declare_Square().
|
inline |
access h(row, colum) (local field)
r | row index |
c | column index |
References openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::h(), openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().
|
inline |
access J(row, colum, direction)
r | row index |
c | column index |
dir | direction |
References openjij::graph::Square< FloatType >::_init_val, openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::J(), openjij::graph::json_parse(), openjij::graph::MINUS_C, openjij::graph::MINUS_R, openjij::graph::PLUS_C, openjij::graph::PLUS_R, and openjij::graph::Square< FloatType >::to_ind().
Referenced by openjij::declare_Square().
|
inline |
access J(row, colum, direction)
r | row index |
c | column index |
dir | direction |
References openjij::graph::Square< FloatType >::_init_val, openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::J(), openjij::graph::json_parse(), openjij::graph::MINUS_C, openjij::graph::MINUS_R, openjij::graph::PLUS_C, openjij::graph::PLUS_R, and openjij::graph::Square< FloatType >::to_ind().
|
inlineprivate |
mod function (a mod num_column)
a | parameter ([-1:num_column]) |
References openjij::graph::Square< FloatType >::_num_column.
Referenced by openjij::graph::Square< FloatType >::to_ind().
|
inlineprivate |
mod function (a mod num_row)
a | parameter ([-1:num_row]) |
References openjij::graph::Square< FloatType >::_num_row.
Referenced by openjij::graph::Square< FloatType >::to_ind().
|
inline |
derive spin value at the index (row x column)
spins | spin array |
r | row index |
c | column index |
References openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().
|
inline |
derive spin value at the index (row x column)
spins | spin array |
r | row index |
c | column index |
References openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().
|
inline |
convert from (row x column) index to global index
r | row index |
c | column index |
References openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::json_parse(), openjij::graph::Square< FloatType >::mod_c(), and openjij::graph::Square< FloatType >::mod_r().
Referenced by openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::spin(), openjij::graph::Square< FloatType >::spin(), and openjij::graph::Square< FloatType >::Square().
|
inline |
convert from global index to (row x column) index
ind | global index |
References openjij::graph::Square< FloatType >::_num_column, openjij::graph::Graph::get_num_spins(), and openjij::graph::json_parse().
Referenced by openjij::graph::Square< FloatType >::_checkpair().
|
private |
initial value to be set to interactions
Referenced by openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::J(), and openjij::graph::Square< FloatType >::Square().
|
private |
number of columns
Referenced by openjij::graph::Square< FloatType >::get_num_column(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::mod_c(), openjij::graph::Square< FloatType >::Square(), openjij::graph::Square< FloatType >::to_ind(), and openjij::graph::Square< FloatType >::to_rc().
|
private |
number of rows
Referenced by openjij::graph::Square< FloatType >::get_num_row(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::mod_r(), openjij::graph::Square< FloatType >::Square(), and openjij::graph::Square< FloatType >::to_ind().