openjij
Framework for the Ising model and QUBO.
|
#include <cmath>
#include <cstddef>
#include <tuple>
#include <utility>
#include <vector>
#include "openjij/system/system.hpp"
Go to the source code of this file.
Classes | |
struct | openjij::utility::UpdaterParameter< system::classical_system > |
updater parameter for classical ising system More... | |
struct | openjij::utility::UpdaterParameter< system::classical_constraint_system > |
updater paramter for classical ising model with a single constraint More... | |
struct | openjij::utility::UpdaterParameter< system::transverse_field_system > |
updater paramter for transverse ising model More... | |
struct | openjij::utility::Schedule< SystemType > |
schedule struct More... | |
Namespaces | |
namespace | openjij |
namespace | openjij::utility |
Typedefs | |
using | openjij::utility::ClassicalUpdaterParameter = UpdaterParameter< system::classical_system > |
ClassicalUpdaterParameter alias. | |
using | openjij::utility::ClassicalConstraintUpdaterParameter = UpdaterParameter< system::classical_constraint_system > |
ClassicalUpdaterParameter alias. | |
using | openjij::utility::TransverseFieldUpdaterParameter = UpdaterParameter< system::transverse_field_system > |
TransverseFieldUpdaterParameter alias. | |
template<typename SystemType > | |
using | openjij::utility::ScheduleList = std::vector< Schedule< SystemType > > |
schedule list alias | |
using | openjij::utility::ClassicalScheduleList = ScheduleList< system::classical_system > |
ClassicalScheduleList alias. | |
using | openjij::utility::TransverseFieldScheduleList = ScheduleList< system::transverse_field_system > |
TransverseFieldScheduleList alias. | |
using | openjij::utility::ClassicalConstraintScheduleList = ScheduleList< system::classical_constraint_system > |
ClassicalConstraintScheduleList alias. | |
Enumerations | |
enum class | openjij::utility::TemperatureSchedule { openjij::utility::LINEAR , openjij::utility::GEOMETRIC } |
Functions | |
ClassicalScheduleList | openjij::utility::make_classical_schedule_list (double beta_min, double beta_max, std::size_t one_mc_step, std::size_t num_call_updater) |
helper function for making classical schedule list with geometric series of inverse temperatures. | |
TransverseFieldScheduleList | openjij::utility::make_transverse_field_schedule_list (double beta, std::size_t one_mc_step, std::size_t num_call_updater) |
helper function for making transverse field system schedule list with arithmetic sequence of annealing schedule (s) | |
ClassicalConstraintScheduleList | openjij::utility::make_classical_constraint_schedule_list (double lambda, double beta_min, double beta_max, std::size_t one_mc_step, std::size_t num_call_updater) |
helper function for making classical constraint schedule list with geometric series of inverse temperatures (with constraint parameter fixed). | |
template<typename SystemType > | |
ScheduleList< SystemType > | openjij::utility::make_schedule_list (const std::vector< std::pair< typename UpdaterParameter< SystemType >::Tuple, std::size_t > > &tuplelist) |
helper function for making schedulelist from list of tuples | |
template<typename FloatType > | |
std::vector< FloatType > | openjij::utility::GenerateLinearBetaSchedule (const FloatType beta_min, const FloatType beta_max, const std::int32_t num_sweeps) |
Generate linear temperature schedule. | |
template<typename FloatType > | |
std::vector< FloatType > | openjij::utility::GenerateGeometricBetaSchedule (const FloatType beta_min, const FloatType beta_max, const std::int32_t num_sweeps) |
Generate geometric temperature schedule. | |
template<typename FloatType > | |
std::vector< FloatType > | openjij::utility::GenerateBetaList (const TemperatureSchedule schedule_type, const FloatType beta_min, const FloatType beta_max, const std::int32_t num_sweeps) |
Generate temperature schedule from specific schedule. | |