QUBO++ Library with QUBO Solver APIs
Author: Koji Nakano, License: Non-commercial research and evaluation purposes without any guarantees.
Namespaces | Classes | Typedefs | Functions | Variables
qbpp Namespace Reference

Generates a QUBO Expression for the Graph Coloring Problem using QUBO++ library. More...

Namespaces

 easy_solver
 
 exhaustive_solver
 
 factorization
 Namespace for factorization using QUBO++ library.
 
 graph_color
 Namespace for the Graph Node Coloring using QUBO++.
 
 impl
 
 misc
 
 nqueen
 Namespace for the N-Queens problem.
 
 tsp
 Namespace for the Traveling Salesman Problem (TSP) using QUBO++.
 

Classes

class  Vector
 
class  Inf
 
class  Var
 
class  Term
 
class  Expr
 
class  VarIntCore
 
class  VarInt
 
class  Model
 
class  QuadModel
 
class  Sol
 
class  SolHolder
 

Typedefs

using Vars = boost::container::small_vector< Var, 2 >
 
using Terms = std::vector< Term >
 
using int128_t = boost::multiprecision::int128_t
 
using uint128_t = boost::multiprecision::uint128_t
 
using int256_t = boost::multiprecision::int256_t
 
using uint256_t = boost::multiprecision::uint256_t
 
using int512_t = boost::multiprecision::int512_t
 
using uint512_t = boost::multiprecision::uint512_t
 
using int1024_t = boost::multiprecision::int1024_t
 
using uint1024_t = boost::multiprecision::uint1024_t
 
using cpp_int = boost::multiprecision::cpp_int
 
using vindex_t = uint32_t
 
using var_val_t = int8_t
 
using coeff_t = COEFF_TYPE
 
using energy_t = ENERGY_TYPE
 
using MapList = std::list< std::pair< std::variant< Var, VarInt >, Expr > >
 
using MapDict = std::unordered_map< Var, Expr, impl::var_hash >
 
using VarValMap = std::unordered_map< Var, var_val_t, impl::var_hash >
 
using VarIndexMap = std::unordered_map< Var, vindex_t, impl::var_hash >
 
using VarExprMap = std::unordered_map< Var, Expr, impl::var_hash >
 
using VarsCoeffMap = std::unordered_map< Vars, coeff_t, impl::vars_hash >
 

Functions

template<typename... Args>
std::string file_line (const char *file, int line, Args... args)
 
Var var (const std::string &var_str)
 
Var var ()
 
std::string str (Var var)
 
std::string str (const char *param)
 
std::string str (const Vars &vars)
 
std::string str (const Term &term)
 
std::string str (const Expr &expr, const std::string &prefix)
 
std::string str (const Model &model)
 
std::string str (const QuadModel &quad_model)
 
std::string str (const Sol &sol)
 
std::string str (const MapList &map_list)
 
std::string str_short (const Expr &expr)
 
std::ostream & operator<< (std::ostream &os, Var var)
 
std::ostream & operator<< (std::ostream &os, const Term &term)
 
std::ostream & operator<< (std::ostream &os, const Expr &expr)
 
std::ostream & operator<< (std::ostream &os, const Model &model)
 
std::ostream & operator<< (std::ostream &os, const QuadModel &quad_model)
 
std::ostream & operator<< (std::ostream &os, const Sol &sol)
 
void sort_vars_in_place (Vars &vars)
 
Vars sort_vars (const Vars &vars)
 
Vars sort_vars_as_binary (const Vars &vars)
 
Vars sort_vars_as_spin (const Vars &vars)
 
Expr simplify (const Expr &expr, Vars(*sort_vars_func)(const Vars &))
 
Expr simplify_as_binary (const Expr &expr)
 
Expr simplify_as_spin (const Expr &expr)
 
bool is_simplified (const Expr &expr)
 
bool is_binary (const Expr &expr)
 
template<typename T >
Vector< Exprsqr (const Vector< T > &arg)
 
template<typename T >
auto sqr (const Vector< Vector< T >> &arg) -> Vector< decltype(sqr(arg[0]))>
 
energy_t eval (const Expr &expr, const Sol &sol)
 
energy_t eval (const Expr &expr, const MapList &map_list)
 
Expr reduce (const Expr &expr)
 
Expr binary_to_spin (const Expr &expr)
 
Expr spin_to_binary (const Expr &expr)
 
template<typename T >
Vector< Exprbinary_to_spin (const Vector< T > &arg)
 
template<typename T >
auto binary_to_spin (const Vector< Vector< T >> &arg) -> Vector< decltype(binary_to_spin(arg[0]))>
 
template<typename T >
Vector< Exprspin_to_binary (const Vector< T > &arg)
 
template<typename T >
auto spin_to_binary (const Vector< Vector< T >> &arg) -> Vector< decltype(spin_to_binary(arg[0]))>
 
Vector< Exprget_row (const Vector< Vector< Expr >> &vec, vindex_t index)
 
Vector< Exprget_col (const Vector< Vector< Expr >> &vec, size_t index)
 
double get_time ()
 
vindex_t all_var_count ()
 
template<typename T >
Expr sum (const Vector< T > &items)
 
template<typename T >
Vector< Vector< Expr > > transpose (const Vector< Vector< T >> &vec)
 
Expr operator- (const Expr &expr)
 
Expr operator- (Expr &&expr)
 
energy_t toInt (const Expr &expr)
 
VarValMap list_to_var_val (const MapList &map_list)
 
std::string str (int8_t val)
 
template<typename T >
auto str (const T &val) -> decltype(std::to_string(val))
 
template<typename T >
auto str (T val) -> decltype(val.str())
 
template<typename T >
abs (T val)
 
energy_t gcd (energy_t a, energy_t b)
 
std::string str_impl (const Vars &vars, std::function< std::string(Var)> str)
 
std::string str_impl (const Term &term, std::function< std::string(Var)> str)
 
std::string str_impl (const Expr &expr, std::function< std::string(Var)> str)
 
std::string str (const impl::BitVector &bit_vector)
 
std::string str (const Expr &expr)
 
std::string str (const Expr &expr, const std::string &prefix, const std::string &separator[[maybe_unused]]=",")
 
template<typename T >
std::string str (const Vector< T > &vec, const std::string &prefix="", const std::string &separator=",")
 
std::ostream & operator<< (std::ostream &os, const VarInt &var_int)
 
std::ostream & operator<< (std::ostream &os, const MapList &map_list)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const Vector< T > &vec)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const std::pair< std::string, Vector< T >> &vec)
 
MapDict list_to_dict (const MapList &map_list)
 
Expr replace (const Term &term, const MapDict &map_dict)
 
energy_t eval (const Term &term, const VarValMap &var_val_map)
 
energy_t eval (const Term &term, const Sol &sol)
 
Expr replace (const Expr &expr, const MapList &map_list)
 
energy_t eval_var_val_map (const Expr &expr, const VarValMap &var_val_map)
 
template<typename T , typename... Args, typename = typename std::enable_if<std::is_integral<T>::value>::type>
auto var (const std::string &var_str, T size, Args... args)
 
template<typename T , typename... Args, typename = typename std::enable_if<std::is_integral<T>::value>::type>
auto var (T size, Args... args)
 
VarIntCore var_int (const std::string &var_str)
 
VarIntCore var_int ()
 
template<typename T , typename... Args>
auto var_int (const std::string &var_str, T size, Args... args)
 
std::vector< coeff_tcomp_coeffs (energy_t min_val, energy_t max_val, energy_t base_coeff=1)
 
VarInt new_var_int (const std::string &var_str, energy_t min_val, energy_t max_val, energy_t base_coeff=1)
 
VarInt new_var_int (const VarIntCore &var_int_core, energy_t min_val, energy_t max_val, energy_t base_coeff=1)
 
auto operator<= (energy_t lhs, VarIntCore &&rhs)
 
template<typename T >
auto operator<= (energy_t lhs, Vector< T > &&rhs)
 
template<typename T >
auto operator<= (const std::pair< energy_t, T > lhs, energy_t rhs)
 
std::pair< energy_t, Vector< VarIntCore > > operator<= (energy_t lhs, const Vector< VarIntCore > &rhs)
 
auto operator<= (const std::pair< energy_t, Vector< VarIntCore >> lhs, energy_t rhs)
 
void operator<= (energy_t, Var)=delete
 
void operator<= (Var, energy_t)=delete
 
Expr expr ()
 
Vector< Exprexpr (vindex_t size)
 
template<typename T , typename... Args>
auto expr (T size, Args... args)
 
template<typename T >
Expr toExpr (const T &arg)
 
Expr toExpr (const Expr &arg)
 
Vector< ExprtoExpr (const Vector< Expr > &arg)
 
template<typename T >
auto toExpr (const Vector< T > &arg)
 
template<typename T >
auto toExpr (const std::vector< T > &arg)
 
Vector< ExprtoExpr (const std::initializer_list< Expr > &list)
 
template<typename T >
auto toExpr (const std::initializer_list< T > &list)
 
Vector< Vector< Expr > > toExpr (const std::initializer_list< std::initializer_list< Expr >> &list)
 
Vector< Vector< Vector< Expr > > > toExpr (const std::initializer_list< std::initializer_list< std::initializer_list< Expr >>> &list)
 
Vector< Vector< Vector< Vector< Expr > > > > toExpr (const std::initializer_list< std::initializer_list< std::initializer_list< std::initializer_list< Expr >>>> &list)
 
Expr && operator* (Expr &&lhs, Expr &&rhs)
 
Expr && operator* (Expr &&lhs, const Expr &rhs)
 
Expr && operator* (const Expr &lhs, Expr &&rhs)
 
Expr operator* (const Expr &lhs, const Expr &rhs)
 
Expr && operator+ (Expr &&lhs, Expr &&rhs)
 
Expr && operator+ (Expr &&lhs, const Expr &rhs)
 
Expr && operator+ (const Expr &lhs, Expr &&rhs)
 
Expr operator+ (const Expr &lhs, const Expr &rhs)
 
Expr && operator- (Expr &&lhs, Expr &&rhs)
 
Expr && operator- (Expr &&lhs, const Expr &rhs)
 
Expr && operator- (const Expr &lhs, Expr &&rhs)
 
Expr operator- (const Expr &lhs, const Expr &rhs)
 
Expr && operator/ (Expr &&expr, energy_t val)
 
Expr operator/ (const Expr &expr, energy_t val)
 
Expr operator+ (Expr &&expr)
 
const Exproperator+ (const Expr &expr)
 
Expr sqr (const Expr &expr)
 
energy_t gcd (const Expr &expr)
 
Expr operator== (const Expr &expr, energy_t val)
 
Expr comparison (const Expr &expr, energy_t minimum, energy_t maximum)
 
std::pair< energy_t, Exproperator<= (energy_t min_val, const Expr &expr)
 
Expr operator<= (const std::pair< energy_t, Expr > &pair, energy_t max_val)
 
Expr operator<= (const std::pair< energy_t, Expr > &pair, Inf val)
 
std::pair< energy_t, Exproperator<= (Inf val, const Expr &expr)
 
Expr simplify_seq (const Expr &expr, Vars(*sort_vars_func)(const Vars &)=sort_vars)
 
template<typename T >
Vector< T > simplify (const Vector< T > &vec, Vars(*sort_vars_func)(const Vars &)=sort_vars)
 
template<typename T >
auto simplify_as_binary (const Vector< T > &arg)
 
template<typename T >
auto simplify_as_spin (const Vector< T > &arg)
 
Expr reduce_sum (const Term &term)
 
Expr reduce_cascade (const Term &term)
 
template<typename T , typename U >
Vector< Exproperator+ (const Vector< T > &lhs, const Vector< U > &rhs)
 
template<typename T , typename U >
auto operator+ (const Vector< Vector< T >> &lhs, const Vector< Vector< U >> &rhs)
 
template<typename T >
Vector< Exproperator+ (const Vector< T > &lhs, const Expr &rhs)
 
template<typename T >
Vector< Exproperator+ (Vector< T > &&lhs, const Expr &rhs)
 
template<typename T >
auto operator+ (const Vector< Vector< T >> &lhs, const Expr &rhs)
 
template<typename T >
auto operator+ (Vector< Vector< T >> &&lhs, const Expr &rhs)
 
template<typename T >
auto operator+ (const Expr &lhs, const Vector< T > &rhs)
 
template<typename T >
auto operator+ (const Expr &lhs, Vector< T > &&rhs)
 
template<typename T , typename U >
Vector< Exproperator* (const Vector< T > &lhs, const Vector< U > &rhs)
 
template<typename T , typename U >
auto operator* (const Vector< Vector< T >> &lhs, const Vector< Vector< U >> &rhs)
 
template<typename T >
Vector< Exproperator* (const Vector< T > &lhs, const Expr &rhs)
 
template<typename T >
Vector< Exproperator* (Vector< T > &&lhs, const Expr &rhs)
 
template<typename T >
auto operator* (const Vector< Vector< T >> &lhs, const Expr &rhs)
 
template<typename T >
auto operator* (Vector< Vector< T >> &&lhs, const Expr &rhs)
 
template<typename T >
auto operator* (const Expr &lhs, const Vector< T > &rhs)
 
template<typename T >
auto operator* (const Expr &lhs, Vector< T > &&rhs)
 
template<typename T , typename U >
Vector< Exproperator- (const Vector< T > &lhs, const Vector< U > &rhs)
 
template<typename T , typename U >
auto operator- (const Vector< Vector< T >> &lhs, const Vector< Vector< U >> &rhs)
 
template<typename T >
Vector< Exproperator- (const Vector< T > &lhs, const Expr &rhs)
 
template<typename T >
Vector< Exproperator- (Vector< T > &&lhs, const Expr &rhs)
 
template<typename T >
auto operator- (const Vector< Vector< T >> &lhs, const Expr &rhs)
 
template<typename T >
auto operator- (Vector< Vector< T >> &&lhs, const Expr &rhs)
 
template<typename T >
auto operator- (const Expr &lhs, const Vector< T > &rhs)
 
template<typename T >
auto operator/ (const Vector< T > &lhs, energy_t rhs)
 
template<typename T >
auto operator+ (const Vector< T > &lhs)
 
template<typename T >
auto operator- (const Vector< T > &lhs)
 
template<typename T >
auto operator== (const Vector< T > &lhs, energy_t rhs)
 
template<typename T >
auto operator<= (energy_t lhs, const Vector< T > &rhs)
 
template<typename T >
auto operator<= (Inf lhs, const Vector< T > &rhs)
 
template<typename T >
auto operator<= (const std::pair< energy_t, Vector< T >> &lhs, energy_t rhs)
 
template<typename T >
auto operator<= (const std::pair< energy_t, Vector< T >> &lhs, Inf rhs)
 
template<typename T >
auto operator<= (const std::pair< Inf, Vector< T >> &lhs, energy_t rhs)
 
template<typename T >
auto operator<= (energy_t lhs, const Vector< Vector< T >> &rhs)
 
template<typename T >
auto operator<= (const std::pair< energy_t, Vector< Vector< T >>> &lhs, energy_t rhs)
 
template<typename T >
auto operator<= (const std::pair< energy_t, Vector< Vector< T >>> &lhs, Inf rhs)
 
template<typename T >
auto operator<= (const std::pair< Inf, Vector< Vector< T >>> &lhs, energy_t rhs)
 
template<typename T >
Expr sum (const T &arg[[maybe_unused]])
 
template<typename T >
Expr sum (const Vector< Vector< T >> &arg[[maybe_unused]])
 
template<typename T >
Expr total_sum_impl (const T &item)
 
template<typename T >
Expr total_sum_impl (const Vector< T > &items)
 
template<typename T >
qbpp::Expr total_sum (const T &arg[[maybe_unused]])
 
template<typename T >
qbpp::Expr total_sum (const Vector< T > &arg[[maybe_unused]])
 
template<typename T >
Expr total_sum (const Vector< Vector< T >> &items)
 
template<typename T >
Expr vector_sum (const T &items[[maybe_unused]])
 
template<typename T >
Expr vector_sum (const Vector< T > &items[[maybe_unused]])
 
template<typename T >
auto vector_sum_impl (const T &items)
 
template<typename T >
auto vector_sum_impl (const Vector< T > &items)
 
template<typename T >
auto vector_sum_impl (const Vector< Vector< T >> &items)
 
template<typename T >
auto vector_sum (const Vector< Vector< T >> &items)
 
template<typename T >
Expr product (const T &arg[[maybe_unused]])
 
template<typename T >
Expr product (const Vector< Vector< T >> &arg[[maybe_unused]])
 
template<typename T >
Expr product (const Vector< T > &items)
 
template<typename T >
Expr total_product_impl (const T &item)
 
template<typename T >
Expr total_product_impl (const Vector< T > &items)
 
template<typename T >
Expr total_product (const Vector< Vector< T >> &items)
 
template<typename T >
Expr total_product (const T &arg[[maybe_unused]])
 
template<typename T >
Expr total_product (const Vector< T > &arg[[maybe_unused]])
 
template<typename T >
Expr vector_product (const T &items[[maybe_unused]])
 
template<typename T >
Expr vector_product (const Vector< T > &items[[maybe_unused]])
 
template<typename T >
auto vector_product_impl (const T &items)
 
template<typename T >
auto vector_product_impl (const Vector< T > &items)
 
template<typename T >
auto vector_product_impl (const Vector< Vector< T >> &items)
 
template<typename T >
auto vector_product (const Vector< Vector< T >> &items)
 
template<typename T >
auto toInt (const Vector< T > &arg)
 
template<typename T >
Vector< energy_teval_var_val_map (const Vector< T > &arg, const VarValMap &var_val_map)
 
template<typename T >
Vector< energy_teval (const Vector< T > &arg, const MapList &map_list)
 
template<typename T >
auto eval_var_val_map (const Vector< Vector< T >> &arg, const VarValMap &var_val_map)
 
template<typename T >
auto eval (const Vector< Vector< T >> &arg, const MapList &map_list)
 
template<typename T >
Vector< Exprreplace (const Vector< T > &arg, const MapList &map_list)
 
template<typename T >
auto replace (const Vector< Vector< T >> &arg, const MapList &map_list)
 
template<typename T , typename F >
auto element_wise (const Vector< T > &arg, F func)
 
template<typename T >
Vector< Exprreduce (const Vector< T > &arg)
 
template<typename T >
auto reduce (const Vector< Vector< T >> &arg)
 
template<typename T >
energy_t gcd (const Vector< T > &vec)
 
int32_t onehot_to_int (const Vector< var_val_t > &vec)
 
template<typename T >
auto onehot_to_int (const Vector< Vector< T >> &vec)
 
std::tuple< bool, size_t, size_t, coeff_t, coeff_tcheck_if_simplified_as_binary (const Expr &expr)
 

Variables

const vindex_t vindex_limit = std::numeric_limits<vindex_t>::max()
 
const Inf inf
 

Detailed Description

Generates a QUBO Expression for the Graph Coloring Problem using QUBO++ library.

Author
Koji Nakano
Version
2025-01-04

Typedef Documentation

◆ Vars

using qbpp::Vars = typedef boost::container::small_vector<Var, 2>

Definition at line 96 of file qbpp.hpp.

◆ Terms

using qbpp::Terms = typedef std::vector<Term>

Definition at line 102 of file qbpp.hpp.

◆ int128_t

using qbpp::int128_t = typedef boost::multiprecision::int128_t

Definition at line 104 of file qbpp.hpp.

◆ uint128_t

using qbpp::uint128_t = typedef boost::multiprecision::uint128_t

Definition at line 105 of file qbpp.hpp.

◆ int256_t

using qbpp::int256_t = typedef boost::multiprecision::int256_t

Definition at line 106 of file qbpp.hpp.

◆ uint256_t

using qbpp::uint256_t = typedef boost::multiprecision::uint256_t

Definition at line 107 of file qbpp.hpp.

◆ int512_t

using qbpp::int512_t = typedef boost::multiprecision::int512_t

Definition at line 108 of file qbpp.hpp.

◆ uint512_t

using qbpp::uint512_t = typedef boost::multiprecision::uint512_t

Definition at line 109 of file qbpp.hpp.

◆ int1024_t

using qbpp::int1024_t = typedef boost::multiprecision::int1024_t

Definition at line 110 of file qbpp.hpp.

◆ uint1024_t

using qbpp::uint1024_t = typedef boost::multiprecision::uint1024_t

Definition at line 111 of file qbpp.hpp.

◆ cpp_int

using qbpp::cpp_int = typedef boost::multiprecision::cpp_int

Definition at line 112 of file qbpp.hpp.

◆ vindex_t

using qbpp::vindex_t = typedef uint32_t

Definition at line 122 of file qbpp.hpp.

◆ var_val_t

using qbpp::var_val_t = typedef int8_t

Definition at line 126 of file qbpp.hpp.

◆ coeff_t

using qbpp::coeff_t = typedef COEFF_TYPE

Definition at line 128 of file qbpp.hpp.

◆ energy_t

using qbpp::energy_t = typedef ENERGY_TYPE

Definition at line 130 of file qbpp.hpp.

◆ MapList

using qbpp::MapList = typedef std::list<std::pair<std::variant<Var, VarInt>, Expr> >

Definition at line 134 of file qbpp.hpp.

◆ MapDict

using qbpp::MapDict = typedef std::unordered_map<Var, Expr, impl::var_hash>

Definition at line 136 of file qbpp.hpp.

◆ VarValMap

using qbpp::VarValMap = typedef std::unordered_map<Var, var_val_t, impl::var_hash>

Definition at line 138 of file qbpp.hpp.

◆ VarIndexMap

using qbpp::VarIndexMap = typedef std::unordered_map<Var, vindex_t, impl::var_hash>

Definition at line 140 of file qbpp.hpp.

◆ VarExprMap

using qbpp::VarExprMap = typedef std::unordered_map<Var, Expr, impl::var_hash>

Definition at line 142 of file qbpp.hpp.

◆ VarsCoeffMap

using qbpp::VarsCoeffMap = typedef std::unordered_map<Vars, coeff_t, impl::vars_hash>

Definition at line 144 of file qbpp.hpp.

Function Documentation

◆ file_line()

template<typename... Args>
std::string qbpp::file_line ( const char *  file,
int  line,
Args...  args 
)

Definition at line 79 of file qbpp.hpp.

◆ var() [1/4]

Var qbpp::var ( const std::string &  var_str)
inline

Definition at line 2172 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ var() [2/4]

Var qbpp::var ( )
inline

Definition at line 2177 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [1/16]

std::string qbpp::str ( Var  var)
inline

Definition at line 1715 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ str() [2/16]

std::string qbpp::str ( const char *  param)
inline

Definition at line 1730 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [3/16]

std::string qbpp::str ( const Vars vars)
inline

Definition at line 1717 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [4/16]

std::string qbpp::str ( const Term term)
inline

Definition at line 1754 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [5/16]

std::string qbpp::str ( const Expr expr,
const std::string &  prefix 
)

◆ str() [6/16]

std::string qbpp::str ( const Model model)
inline

Definition at line 1772 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [7/16]

std::string qbpp::str ( const QuadModel quad_model)
inline

Definition at line 1779 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [8/16]

std::string qbpp::str ( const Sol sol)
inline

Definition at line 1834 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [9/16]

std::string qbpp::str ( const MapList map_list)
inline

Definition at line 1804 of file qbpp.hpp.

Here is the call graph for this function:

◆ str_short()

std::string qbpp::str_short ( const Expr expr)
inline

Definition at line 1894 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<<() [1/10]

std::ostream & qbpp::operator<< ( std::ostream &  os,
Var  var 
)
inline

Definition at line 1849 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<<() [2/10]

std::ostream & qbpp::operator<< ( std::ostream &  os,
const Term term 
)
inline

Definition at line 1857 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<<() [3/10]

std::ostream & qbpp::operator<< ( std::ostream &  os,
const Expr expr 
)
inline

Definition at line 1861 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<<() [4/10]

std::ostream & qbpp::operator<< ( std::ostream &  os,
const Model model 
)
inline

Definition at line 1865 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<<() [5/10]

std::ostream & qbpp::operator<< ( std::ostream &  os,
const QuadModel quad_model 
)
inline

Definition at line 1869 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<<() [6/10]

std::ostream & qbpp::operator<< ( std::ostream &  os,
const Sol sol 
)
inline

Definition at line 1877 of file qbpp.hpp.

Here is the call graph for this function:

◆ sort_vars_in_place()

void qbpp::sort_vars_in_place ( Vars vars)
inline

Definition at line 2598 of file qbpp.hpp.

Here is the caller graph for this function:

◆ sort_vars()

Vars qbpp::sort_vars ( const Vars vars)
inline

Definition at line 2605 of file qbpp.hpp.

Here is the call graph for this function:

◆ sort_vars_as_binary()

Vars qbpp::sort_vars_as_binary ( const Vars vars)
inline

Definition at line 2611 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_vars_as_spin()

Vars qbpp::sort_vars_as_spin ( const Vars vars)
inline

Definition at line 2619 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ simplify() [1/2]

Expr qbpp::simplify ( const Expr expr,
Vars(*)(const Vars &)  sort_vars_func = sort_vars 
)
inline

Definition at line 2657 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ simplify_as_binary() [1/2]

Expr qbpp::simplify_as_binary ( const Expr expr)
inline

Definition at line 2759 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ simplify_as_spin() [1/2]

Expr qbpp::simplify_as_spin ( const Expr expr)
inline

Definition at line 2768 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_simplified()

bool qbpp::is_simplified ( const Expr expr)
inline

Definition at line 2777 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_binary()

bool qbpp::is_binary ( const Expr expr)
inline

Definition at line 2795 of file qbpp.hpp.

Here is the call graph for this function:

◆ sqr() [1/3]

template<typename T >
Vector< Expr > qbpp::sqr ( const Vector< T > &  arg)

Definition at line 3547 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sqr() [2/3]

template<typename T >
auto qbpp::sqr ( const Vector< Vector< T >> &  arg) -> Vector<decltype(sqr(arg[0]))>

Definition at line 3552 of file qbpp.hpp.

Here is the call graph for this function:

◆ eval() [1/6]

energy_t qbpp::eval ( const Expr expr,
const Sol sol 
)
inline

Definition at line 2109 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ eval() [2/6]

energy_t qbpp::eval ( const Expr expr,
const MapList map_list 
)
inline

Definition at line 2104 of file qbpp.hpp.

Here is the call graph for this function:

◆ reduce() [1/3]

Expr qbpp::reduce ( const Expr expr)
inline

Definition at line 2878 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ binary_to_spin() [1/3]

Expr qbpp::binary_to_spin ( const Expr expr)
inline

Definition at line 2892 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ spin_to_binary() [1/3]

Expr qbpp::spin_to_binary ( const Expr expr)
inline

Definition at line 2911 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ binary_to_spin() [2/3]

template<typename T >
Vector< Expr > qbpp::binary_to_spin ( const Vector< T > &  arg)

Definition at line 3567 of file qbpp.hpp.

Here is the call graph for this function:

◆ binary_to_spin() [3/3]

template<typename T >
auto qbpp::binary_to_spin ( const Vector< Vector< T >> &  arg) -> Vector<decltype(binary_to_spin(arg[0]))>

Definition at line 3572 of file qbpp.hpp.

Here is the call graph for this function:

◆ spin_to_binary() [2/3]

template<typename T >
Vector< Expr > qbpp::spin_to_binary ( const Vector< T > &  arg)

Definition at line 3579 of file qbpp.hpp.

Here is the call graph for this function:

◆ spin_to_binary() [3/3]

template<typename T >
auto qbpp::spin_to_binary ( const Vector< Vector< T >> &  arg) -> Vector<decltype(spin_to_binary(arg[0]))>

Definition at line 3584 of file qbpp.hpp.

Here is the call graph for this function:

◆ get_row()

Vector< Expr > qbpp::get_row ( const Vector< Vector< Expr >> &  vec,
vindex_t  index 
)
inline

Definition at line 3590 of file qbpp.hpp.

◆ get_col()

Vector< Expr > qbpp::get_col ( const Vector< Vector< Expr >> &  vec,
size_t  index 
)
inline

Definition at line 3595 of file qbpp.hpp.

Here is the caller graph for this function:

◆ get_time()

double qbpp::get_time ( )
inline

Definition at line 3815 of file qbpp.hpp.

Here is the caller graph for this function:

◆ all_var_count()

vindex_t qbpp::all_var_count ( )
inline

Definition at line 2209 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sum() [1/3]

template<typename T >
Expr qbpp::sum ( const Vector< T > &  items)

Definition at line 3209 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ transpose()

template<typename T >
Vector< Vector< Expr > > qbpp::transpose ( const Vector< Vector< T >> &  vec)

Definition at line 3618 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator-() [1/14]

Expr qbpp::operator- ( const Expr expr)
inline

Definition at line 2509 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator-() [2/14]

Expr qbpp::operator- ( Expr &&  expr)
inline

Definition at line 2501 of file qbpp.hpp.

Here is the call graph for this function:

◆ toInt() [1/2]

energy_t qbpp::toInt ( const Expr expr)
inline

Definition at line 3437 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ list_to_var_val()

VarValMap qbpp::list_to_var_val ( const MapList map_list)
inline

Definition at line 1983 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ str() [10/16]

std::string qbpp::str ( int8_t  val)
inline

Definition at line 235 of file qbpp.hpp.

◆ str() [11/16]

template<typename T >
auto qbpp::str ( const T &  val) -> decltype(std::to_string(val))

Definition at line 240 of file qbpp.hpp.

◆ str() [12/16]

template<typename T >
auto qbpp::str ( val) -> decltype(val.str())

Definition at line 245 of file qbpp.hpp.

◆ abs()

template<typename T >
T qbpp::abs ( val)

Definition at line 250 of file qbpp.hpp.

Here is the caller graph for this function:

◆ gcd() [1/3]

energy_t qbpp::gcd ( energy_t  a,
energy_t  b 
)
inline

Definition at line 254 of file qbpp.hpp.

Here is the call graph for this function:

◆ str_impl() [1/3]

std::string qbpp::str_impl ( const Vars vars,
std::function< std::string(Var)>  str 
)
inline

Definition at line 1666 of file qbpp.hpp.

Here is the call graph for this function:

◆ str_impl() [2/3]

std::string qbpp::str_impl ( const Term term,
std::function< std::string(Var)>  str 
)
inline

Definition at line 1678 of file qbpp.hpp.

Here is the call graph for this function:

◆ str_impl() [3/3]

std::string qbpp::str_impl ( const Expr expr,
std::function< std::string(Var)>  str 
)
inline

Definition at line 1690 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ str() [13/16]

std::string qbpp::str ( const impl::BitVector bit_vector)
inline

Definition at line 1721 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [14/16]

std::string qbpp::str ( const Expr expr)
inline

Definition at line 1758 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [15/16]

std::string qbpp::str ( const Expr expr,
const std::string &  prefix,
const std::string &separator]  [[maybe_unused] = "," 
)
inline

Definition at line 1762 of file qbpp.hpp.

Here is the call graph for this function:

◆ str() [16/16]

template<typename T >
std::string qbpp::str ( const Vector< T > &  vec,
const std::string &  prefix = "",
const std::string &  separator = "," 
)

Definition at line 1839 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator<<() [7/10]

std::ostream& qbpp::operator<< ( std::ostream &  os,
const VarInt var_int 
)
inline

Definition at line 1853 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<<() [8/10]

std::ostream& qbpp::operator<< ( std::ostream &  os,
const MapList map_list 
)
inline

Definition at line 1873 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<<() [9/10]

template<typename T >
std::ostream& qbpp::operator<< ( std::ostream &  os,
const Vector< T > &  vec 
)

Definition at line 1882 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<<() [10/10]

template<typename T >
std::ostream& qbpp::operator<< ( std::ostream &  os,
const std::pair< std::string, Vector< T >> &  vec 
)

Definition at line 1888 of file qbpp.hpp.

Here is the call graph for this function:

◆ list_to_dict()

MapDict qbpp::list_to_dict ( const MapList map_list)
inline

Definition at line 2007 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ replace() [1/4]

Expr qbpp::replace ( const Term term,
const MapDict map_dict 
)
inline

Definition at line 2032 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ eval() [3/6]

energy_t qbpp::eval ( const Term term,
const VarValMap var_val_map 
)
inline

Definition at line 2059 of file qbpp.hpp.

Here is the call graph for this function:

◆ eval() [4/6]

energy_t qbpp::eval ( const Term term,
const Sol sol 
)
inline

Definition at line 2072 of file qbpp.hpp.

Here is the call graph for this function:

◆ replace() [2/4]

Expr qbpp::replace ( const Expr expr,
const MapList map_list 
)
inline

Definition at line 2081 of file qbpp.hpp.

Here is the call graph for this function:

◆ eval_var_val_map() [1/3]

energy_t qbpp::eval_var_val_map ( const Expr expr,
const VarValMap var_val_map 
)
inline

Definition at line 2086 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ var() [3/4]

template<typename T , typename... Args, typename = typename std::enable_if<std::is_integral<T>::value>::type>
auto qbpp::var ( const std::string &  var_str,
size,
Args...  args 
)

Definition at line 2181 of file qbpp.hpp.

Here is the call graph for this function:

◆ var() [4/4]

template<typename T , typename... Args, typename = typename std::enable_if<std::is_integral<T>::value>::type>
auto qbpp::var ( size,
Args...  args 
)

Definition at line 2205 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ var_int() [1/3]

VarIntCore qbpp::var_int ( const std::string &  var_str)
inline

Definition at line 2217 of file qbpp.hpp.

Here is the caller graph for this function:

◆ var_int() [2/3]

VarIntCore qbpp::var_int ( )
inline

Definition at line 2221 of file qbpp.hpp.

Here is the call graph for this function:

◆ var_int() [3/3]

template<typename T , typename... Args>
auto qbpp::var_int ( const std::string &  var_str,
size,
Args...  args 
)

Definition at line 2227 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comp_coeffs()

std::vector<coeff_t> qbpp::comp_coeffs ( energy_t  min_val,
energy_t  max_val,
energy_t  base_coeff = 1 
)
inline

Definition at line 2249 of file qbpp.hpp.

Here is the caller graph for this function:

◆ new_var_int() [1/2]

VarInt qbpp::new_var_int ( const std::string &  var_str,
energy_t  min_val,
energy_t  max_val,
energy_t  base_coeff = 1 
)
inline

Definition at line 2270 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ new_var_int() [2/2]

VarInt qbpp::new_var_int ( const VarIntCore var_int_core,
energy_t  min_val,
energy_t  max_val,
energy_t  base_coeff = 1 
)
inline

Definition at line 2278 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [1/20]

auto qbpp::operator<= ( energy_t  lhs,
VarIntCore &&  rhs 
)
inline

Definition at line 2283 of file qbpp.hpp.

◆ operator<=() [2/20]

template<typename T >
auto qbpp::operator<= ( energy_t  lhs,
Vector< T > &&  rhs 
)

Definition at line 2288 of file qbpp.hpp.

◆ operator<=() [3/20]

template<typename T >
auto qbpp::operator<= ( const std::pair< energy_t, T >  lhs,
energy_t  rhs 
)

Definition at line 2293 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [4/20]

std::pair<energy_t, Vector<VarIntCore> > qbpp::operator<= ( energy_t  lhs,
const Vector< VarIntCore > &  rhs 
)
inline

Definition at line 2293 of file qbpp.hpp.

◆ operator<=() [5/20]

auto qbpp::operator<= ( const std::pair< energy_t, Vector< VarIntCore >>  lhs,
energy_t  rhs 
)
inline

Definition at line 2302 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [6/20]

void qbpp::operator<= ( energy_t  ,
Var   
)
delete

◆ operator<=() [7/20]

void qbpp::operator<= ( Var  ,
energy_t   
)
delete

◆ expr() [1/3]

Expr qbpp::expr ( )
inline

Definition at line 2318 of file qbpp.hpp.

Here is the caller graph for this function:

◆ expr() [2/3]

Vector<Expr> qbpp::expr ( vindex_t  size)
inline

Definition at line 2320 of file qbpp.hpp.

◆ expr() [3/3]

template<typename T , typename... Args>
auto qbpp::expr ( size,
Args...  args 
)

Definition at line 2323 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toExpr() [1/10]

template<typename T >
Expr qbpp::toExpr ( const T &  arg)

Definition at line 2335 of file qbpp.hpp.

Here is the caller graph for this function:

◆ toExpr() [2/10]

Expr qbpp::toExpr ( const Expr arg)
inline

Definition at line 2339 of file qbpp.hpp.

◆ toExpr() [3/10]

Vector<Expr> qbpp::toExpr ( const Vector< Expr > &  arg)
inline

Definition at line 2341 of file qbpp.hpp.

◆ toExpr() [4/10]

template<typename T >
auto qbpp::toExpr ( const Vector< T > &  arg)

Definition at line 2344 of file qbpp.hpp.

Here is the call graph for this function:

◆ toExpr() [5/10]

template<typename T >
auto qbpp::toExpr ( const std::vector< T > &  arg)

Definition at line 2354 of file qbpp.hpp.

Here is the call graph for this function:

◆ toExpr() [6/10]

Vector<Expr> qbpp::toExpr ( const std::initializer_list< Expr > &  list)
inline

Definition at line 2370 of file qbpp.hpp.

◆ toExpr() [7/10]

template<typename T >
auto qbpp::toExpr ( const std::initializer_list< T > &  list)

Definition at line 2375 of file qbpp.hpp.

Here is the call graph for this function:

◆ toExpr() [8/10]

Vector<Vector<Expr> > qbpp::toExpr ( const std::initializer_list< std::initializer_list< Expr >> &  list)
inline

Definition at line 2384 of file qbpp.hpp.

Here is the call graph for this function:

◆ toExpr() [9/10]

Vector<Vector<Vector<Expr> > > qbpp::toExpr ( const std::initializer_list< std::initializer_list< std::initializer_list< Expr >>> &  list)
inline

Definition at line 2394 of file qbpp.hpp.

Here is the call graph for this function:

◆ toExpr() [10/10]

Vector<Vector<Vector<Vector<Expr> > > > qbpp::toExpr ( const std::initializer_list< std::initializer_list< std::initializer_list< std::initializer_list< Expr >>>> &  list)
inline

Definition at line 2405 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator*() [1/12]

Expr&& qbpp::operator* ( Expr &&  lhs,
Expr &&  rhs 
)
inline

Definition at line 2419 of file qbpp.hpp.

◆ operator*() [2/12]

Expr&& qbpp::operator* ( Expr &&  lhs,
const Expr rhs 
)
inline

Definition at line 2429 of file qbpp.hpp.

◆ operator*() [3/12]

Expr&& qbpp::operator* ( const Expr lhs,
Expr &&  rhs 
)
inline

Definition at line 2434 of file qbpp.hpp.

◆ operator*() [4/12]

Expr qbpp::operator* ( const Expr lhs,
const Expr rhs 
)
inline

Definition at line 2439 of file qbpp.hpp.

◆ operator+() [1/15]

Expr&& qbpp::operator+ ( Expr &&  lhs,
Expr &&  rhs 
)
inline

Definition at line 2445 of file qbpp.hpp.

◆ operator+() [2/15]

Expr&& qbpp::operator+ ( Expr &&  lhs,
const Expr rhs 
)
inline

Definition at line 2450 of file qbpp.hpp.

◆ operator+() [3/15]

Expr&& qbpp::operator+ ( const Expr lhs,
Expr &&  rhs 
)
inline

Definition at line 2455 of file qbpp.hpp.

◆ operator+() [4/15]

Expr qbpp::operator+ ( const Expr lhs,
const Expr rhs 
)
inline

Definition at line 2460 of file qbpp.hpp.

◆ operator-() [3/14]

Expr&& qbpp::operator- ( Expr &&  lhs,
Expr &&  rhs 
)
inline

Definition at line 2465 of file qbpp.hpp.

◆ operator-() [4/14]

Expr&& qbpp::operator- ( Expr &&  lhs,
const Expr rhs 
)
inline

Definition at line 2470 of file qbpp.hpp.

◆ operator-() [5/14]

Expr&& qbpp::operator- ( const Expr lhs,
Expr &&  rhs 
)
inline

Definition at line 2475 of file qbpp.hpp.

◆ operator-() [6/14]

Expr qbpp::operator- ( const Expr lhs,
const Expr rhs 
)
inline

Definition at line 2481 of file qbpp.hpp.

◆ operator/() [1/3]

Expr&& qbpp::operator/ ( Expr &&  expr,
energy_t  val 
)
inline

Definition at line 2486 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator/() [2/3]

Expr qbpp::operator/ ( const Expr expr,
energy_t  val 
)
inline

Definition at line 2491 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator+() [5/15]

Expr qbpp::operator+ ( Expr &&  expr)
inline

Definition at line 2497 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator+() [6/15]

const Expr& qbpp::operator+ ( const Expr expr)
inline

Definition at line 2499 of file qbpp.hpp.

Here is the call graph for this function:

◆ sqr() [3/3]

Expr qbpp::sqr ( const Expr expr)
inline

Definition at line 2520 of file qbpp.hpp.

Here is the call graph for this function:

◆ gcd() [2/3]

energy_t qbpp::gcd ( const Expr expr)
inline

Definition at line 2522 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator==() [1/2]

Expr qbpp::operator== ( const Expr expr,
energy_t  val 
)
inline

Definition at line 2543 of file qbpp.hpp.

Here is the call graph for this function:

◆ comparison()

Expr qbpp::comparison ( const Expr expr,
energy_t  minimum,
energy_t  maximum 
)
inline

Definition at line 2547 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator<=() [8/20]

std::pair<energy_t, Expr> qbpp::operator<= ( energy_t  min_val,
const Expr expr 
)
inline

Definition at line 2547 of file qbpp.hpp.

◆ operator<=() [9/20]

Expr qbpp::operator<= ( const std::pair< energy_t, Expr > &  pair,
energy_t  max_val 
)
inline

Definition at line 2571 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [10/20]

Expr qbpp::operator<= ( const std::pair< energy_t, Expr > &  pair,
Inf  val 
)
inline

Definition at line 2578 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [11/20]

std::pair<energy_t, Expr> qbpp::operator<= ( Inf  val,
const Expr expr 
)
inline

Definition at line 2578 of file qbpp.hpp.

◆ simplify_seq()

Expr qbpp::simplify_seq ( const Expr expr,
Vars(*)(const Vars &)  sort_vars_func = sort_vars 
)
inline

Definition at line 2636 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ simplify() [2/2]

template<typename T >
Vector<T> qbpp::simplify ( const Vector< T > &  vec,
Vars(*)(const Vars &)  sort_vars_func = sort_vars 
)

Definition at line 2750 of file qbpp.hpp.

Here is the call graph for this function:

◆ simplify_as_binary() [2/2]

template<typename T >
auto qbpp::simplify_as_binary ( const Vector< T > &  arg)

Definition at line 2764 of file qbpp.hpp.

Here is the call graph for this function:

◆ simplify_as_spin() [2/2]

template<typename T >
auto qbpp::simplify_as_spin ( const Vector< T > &  arg)

Definition at line 2773 of file qbpp.hpp.

Here is the call graph for this function:

◆ reduce_sum()

Expr qbpp::reduce_sum ( const Term term)
inline

Definition at line 2843 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduce_cascade()

Expr qbpp::reduce_cascade ( const Term term)
inline

Definition at line 2860 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator+() [7/15]

template<typename T , typename U >
Vector<Expr> qbpp::operator+ ( const Vector< T > &  lhs,
const Vector< U > &  rhs 
)

Definition at line 2935 of file qbpp.hpp.

◆ operator+() [8/15]

template<typename T , typename U >
auto qbpp::operator+ ( const Vector< Vector< T >> &  lhs,
const Vector< Vector< U >> &  rhs 
)

Definition at line 2942 of file qbpp.hpp.

◆ operator+() [9/15]

template<typename T >
Vector<Expr> qbpp::operator+ ( const Vector< T > &  lhs,
const Expr rhs 
)

Definition at line 2949 of file qbpp.hpp.

◆ operator+() [10/15]

template<typename T >
Vector<Expr> qbpp::operator+ ( Vector< T > &&  lhs,
const Expr rhs 
)

Definition at line 2956 of file qbpp.hpp.

◆ operator+() [11/15]

template<typename T >
auto qbpp::operator+ ( const Vector< Vector< T >> &  lhs,
const Expr rhs 
)

Definition at line 2962 of file qbpp.hpp.

◆ operator+() [12/15]

template<typename T >
auto qbpp::operator+ ( Vector< Vector< T >> &&  lhs,
const Expr rhs 
)

Definition at line 2969 of file qbpp.hpp.

◆ operator+() [13/15]

template<typename T >
auto qbpp::operator+ ( const Expr lhs,
const Vector< T > &  rhs 
)

Definition at line 2975 of file qbpp.hpp.

◆ operator+() [14/15]

template<typename T >
auto qbpp::operator+ ( const Expr lhs,
Vector< T > &&  rhs 
)

Definition at line 2980 of file qbpp.hpp.

◆ operator*() [5/12]

template<typename T , typename U >
Vector<Expr> qbpp::operator* ( const Vector< T > &  lhs,
const Vector< U > &  rhs 
)

Definition at line 2988 of file qbpp.hpp.

◆ operator*() [6/12]

template<typename T , typename U >
auto qbpp::operator* ( const Vector< Vector< T >> &  lhs,
const Vector< Vector< U >> &  rhs 
)

Definition at line 2995 of file qbpp.hpp.

◆ operator*() [7/12]

template<typename T >
Vector<Expr> qbpp::operator* ( const Vector< T > &  lhs,
const Expr rhs 
)

Definition at line 3002 of file qbpp.hpp.

◆ operator*() [8/12]

template<typename T >
Vector<Expr> qbpp::operator* ( Vector< T > &&  lhs,
const Expr rhs 
)

Definition at line 3009 of file qbpp.hpp.

◆ operator*() [9/12]

template<typename T >
auto qbpp::operator* ( const Vector< Vector< T >> &  lhs,
const Expr rhs 
)

Definition at line 3015 of file qbpp.hpp.

◆ operator*() [10/12]

template<typename T >
auto qbpp::operator* ( Vector< Vector< T >> &&  lhs,
const Expr rhs 
)

Definition at line 3022 of file qbpp.hpp.

◆ operator*() [11/12]

template<typename T >
auto qbpp::operator* ( const Expr lhs,
const Vector< T > &  rhs 
)

Definition at line 3028 of file qbpp.hpp.

◆ operator*() [12/12]

template<typename T >
auto qbpp::operator* ( const Expr lhs,
Vector< T > &&  rhs 
)

Definition at line 3033 of file qbpp.hpp.

◆ operator-() [7/14]

template<typename T , typename U >
Vector<Expr> qbpp::operator- ( const Vector< T > &  lhs,
const Vector< U > &  rhs 
)

Definition at line 3040 of file qbpp.hpp.

◆ operator-() [8/14]

template<typename T , typename U >
auto qbpp::operator- ( const Vector< Vector< T >> &  lhs,
const Vector< Vector< U >> &  rhs 
)

Definition at line 3047 of file qbpp.hpp.

◆ operator-() [9/14]

template<typename T >
Vector<Expr> qbpp::operator- ( const Vector< T > &  lhs,
const Expr rhs 
)

Definition at line 3054 of file qbpp.hpp.

◆ operator-() [10/14]

template<typename T >
Vector<Expr> qbpp::operator- ( Vector< T > &&  lhs,
const Expr rhs 
)

Definition at line 3061 of file qbpp.hpp.

◆ operator-() [11/14]

template<typename T >
auto qbpp::operator- ( const Vector< Vector< T >> &  lhs,
const Expr rhs 
)

Definition at line 3067 of file qbpp.hpp.

◆ operator-() [12/14]

template<typename T >
auto qbpp::operator- ( Vector< Vector< T >> &&  lhs,
const Expr rhs 
)

Definition at line 3074 of file qbpp.hpp.

◆ operator-() [13/14]

template<typename T >
auto qbpp::operator- ( const Expr lhs,
const Vector< T > &  rhs 
)

Definition at line 3080 of file qbpp.hpp.

◆ operator/() [3/3]

template<typename T >
auto qbpp::operator/ ( const Vector< T > &  lhs,
energy_t  rhs 
)

Definition at line 3087 of file qbpp.hpp.

◆ operator+() [15/15]

template<typename T >
auto qbpp::operator+ ( const Vector< T > &  lhs)

Definition at line 3096 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator-() [14/14]

template<typename T >
auto qbpp::operator- ( const Vector< T > &  lhs)

Definition at line 3101 of file qbpp.hpp.

◆ operator==() [2/2]

template<typename T >
auto qbpp::operator== ( const Vector< T > &  lhs,
energy_t  rhs 
)

Definition at line 3108 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator<=() [12/20]

template<typename T >
auto qbpp::operator<= ( energy_t  lhs,
const Vector< T > &  rhs 
)

Definition at line 3114 of file qbpp.hpp.

◆ operator<=() [13/20]

template<typename T >
auto qbpp::operator<= ( Inf  lhs,
const Vector< T > &  rhs 
)

Definition at line 3119 of file qbpp.hpp.

◆ operator<=() [14/20]

template<typename T >
auto qbpp::operator<= ( const std::pair< energy_t, Vector< T >> &  lhs,
energy_t  rhs 
)

Definition at line 3124 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [15/20]

template<typename T >
auto qbpp::operator<= ( const std::pair< energy_t, Vector< T >> &  lhs,
Inf  rhs 
)

Definition at line 3134 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [16/20]

template<typename T >
auto qbpp::operator<= ( const std::pair< Inf, Vector< T >> &  lhs,
energy_t  rhs 
)

Definition at line 3144 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [17/20]

template<typename T >
auto qbpp::operator<= ( energy_t  lhs,
const Vector< Vector< T >> &  rhs 
)

Definition at line 3154 of file qbpp.hpp.

◆ operator<=() [18/20]

template<typename T >
auto qbpp::operator<= ( const std::pair< energy_t, Vector< Vector< T >>> &  lhs,
energy_t  rhs 
)

Definition at line 3159 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [19/20]

template<typename T >
auto qbpp::operator<= ( const std::pair< energy_t, Vector< Vector< T >>> &  lhs,
Inf  rhs 
)

Definition at line 3170 of file qbpp.hpp.

Here is the call graph for this function:

◆ operator<=() [20/20]

template<typename T >
auto qbpp::operator<= ( const std::pair< Inf, Vector< Vector< T >>> &  lhs,
energy_t  rhs 
)

Definition at line 3180 of file qbpp.hpp.

Here is the call graph for this function:

◆ sum() [2/3]

template<typename T >
Expr qbpp::sum ( const T &arg]  [[maybe_unused])

Definition at line 3192 of file qbpp.hpp.

Here is the call graph for this function:

◆ sum() [3/3]

template<typename T >
Expr qbpp::sum ( const Vector< Vector< T >> &arg]  [[maybe_unused])

Definition at line 3199 of file qbpp.hpp.

Here is the call graph for this function:

◆ total_sum_impl() [1/2]

template<typename T >
Expr qbpp::total_sum_impl ( const T &  item)

Definition at line 3231 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ total_sum_impl() [2/2]

template<typename T >
Expr qbpp::total_sum_impl ( const Vector< T > &  items)

Definition at line 3236 of file qbpp.hpp.

Here is the call graph for this function:

◆ total_sum() [1/3]

template<typename T >
qbpp::Expr qbpp::total_sum ( const T &arg]  [[maybe_unused])

Definition at line 3262 of file qbpp.hpp.

Here is the call graph for this function:

◆ total_sum() [2/3]

template<typename T >
qbpp::Expr qbpp::total_sum ( const Vector< T > &arg]  [[maybe_unused])

Definition at line 3269 of file qbpp.hpp.

Here is the call graph for this function:

◆ total_sum() [3/3]

template<typename T >
Expr qbpp::total_sum ( const Vector< Vector< T >> &  items)

Definition at line 3277 of file qbpp.hpp.

Here is the call graph for this function:

◆ vector_sum() [1/3]

template<typename T >
Expr qbpp::vector_sum ( const T &items]  [[maybe_unused])

Definition at line 3282 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vector_sum() [2/3]

template<typename T >
Expr qbpp::vector_sum ( const Vector< T > &items]  [[maybe_unused])

Definition at line 3289 of file qbpp.hpp.

Here is the call graph for this function:

◆ vector_sum_impl() [1/3]

template<typename T >
auto qbpp::vector_sum_impl ( const T &  items)

Definition at line 3297 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vector_sum_impl() [2/3]

template<typename T >
auto qbpp::vector_sum_impl ( const Vector< T > &  items)

Definition at line 3302 of file qbpp.hpp.

Here is the call graph for this function:

◆ vector_sum_impl() [3/3]

template<typename T >
auto qbpp::vector_sum_impl ( const Vector< Vector< T >> &  items)

Definition at line 3307 of file qbpp.hpp.

Here is the call graph for this function:

◆ vector_sum() [3/3]

template<typename T >
auto qbpp::vector_sum ( const Vector< Vector< T >> &  items)

Definition at line 3316 of file qbpp.hpp.

Here is the call graph for this function:

◆ product() [1/3]

template<typename T >
Expr qbpp::product ( const T &arg]  [[maybe_unused])

Definition at line 3321 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ product() [2/3]

template<typename T >
Expr qbpp::product ( const Vector< Vector< T >> &arg]  [[maybe_unused])

Definition at line 3328 of file qbpp.hpp.

Here is the call graph for this function:

◆ product() [3/3]

template<typename T >
Expr qbpp::product ( const Vector< T > &  items)

Definition at line 3339 of file qbpp.hpp.

Here is the call graph for this function:

◆ total_product_impl() [1/2]

template<typename T >
Expr qbpp::total_product_impl ( const T &  item)

Definition at line 3352 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ total_product_impl() [2/2]

template<typename T >
Expr qbpp::total_product_impl ( const Vector< T > &  items)

Definition at line 3357 of file qbpp.hpp.

Here is the call graph for this function:

◆ total_product() [1/3]

template<typename T >
Expr qbpp::total_product ( const Vector< Vector< T >> &  items)

Definition at line 3371 of file qbpp.hpp.

Here is the call graph for this function:

◆ total_product() [2/3]

template<typename T >
Expr qbpp::total_product ( const T &arg]  [[maybe_unused])

Definition at line 3376 of file qbpp.hpp.

Here is the call graph for this function:

◆ total_product() [3/3]

template<typename T >
Expr qbpp::total_product ( const Vector< T > &arg]  [[maybe_unused])

Definition at line 3384 of file qbpp.hpp.

Here is the call graph for this function:

◆ vector_product() [1/3]

template<typename T >
Expr qbpp::vector_product ( const T &items]  [[maybe_unused])

Definition at line 3392 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vector_product() [2/3]

template<typename T >
Expr qbpp::vector_product ( const Vector< T > &items]  [[maybe_unused])

Definition at line 3399 of file qbpp.hpp.

Here is the call graph for this function:

◆ vector_product_impl() [1/3]

template<typename T >
auto qbpp::vector_product_impl ( const T &  items)

Definition at line 3407 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vector_product_impl() [2/3]

template<typename T >
auto qbpp::vector_product_impl ( const Vector< T > &  items)

Definition at line 3412 of file qbpp.hpp.

Here is the call graph for this function:

◆ vector_product_impl() [3/3]

template<typename T >
auto qbpp::vector_product_impl ( const Vector< Vector< T >> &  items)

Definition at line 3417 of file qbpp.hpp.

Here is the call graph for this function:

◆ vector_product() [3/3]

template<typename T >
auto qbpp::vector_product ( const Vector< Vector< T >> &  items)

Definition at line 3431 of file qbpp.hpp.

Here is the call graph for this function:

◆ toInt() [2/2]

template<typename T >
auto qbpp::toInt ( const Vector< T > &  arg)

Definition at line 3446 of file qbpp.hpp.

Here is the call graph for this function:

◆ eval_var_val_map() [2/3]

template<typename T >
Vector<energy_t> qbpp::eval_var_val_map ( const Vector< T > &  arg,
const VarValMap var_val_map 
)

Definition at line 3461 of file qbpp.hpp.

Here is the call graph for this function:

◆ eval() [5/6]

template<typename T >
Vector<energy_t> qbpp::eval ( const Vector< T > &  arg,
const MapList map_list 
)

Definition at line 3476 of file qbpp.hpp.

Here is the call graph for this function:

◆ eval_var_val_map() [3/3]

template<typename T >
auto qbpp::eval_var_val_map ( const Vector< Vector< T >> &  arg,
const VarValMap var_val_map 
)

Definition at line 3482 of file qbpp.hpp.

Here is the call graph for this function:

◆ eval() [6/6]

template<typename T >
auto qbpp::eval ( const Vector< Vector< T >> &  arg,
const MapList map_list 
)

Definition at line 3498 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ replace() [3/4]

template<typename T >
Vector<Expr> qbpp::replace ( const Vector< T > &  arg,
const MapList map_list 
)

Definition at line 3504 of file qbpp.hpp.

Here is the call graph for this function:

◆ replace() [4/4]

template<typename T >
auto qbpp::replace ( const Vector< Vector< T >> &  arg,
const MapList map_list 
)

Definition at line 3518 of file qbpp.hpp.

Here is the call graph for this function:

◆ element_wise()

template<typename T , typename F >
auto qbpp::element_wise ( const Vector< T > &  arg,
func 
)

Definition at line 3533 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduce() [2/3]

template<typename T >
Vector<Expr> qbpp::reduce ( const Vector< T > &  arg)

Definition at line 3557 of file qbpp.hpp.

Here is the call graph for this function:

◆ reduce() [3/3]

template<typename T >
auto qbpp::reduce ( const Vector< Vector< T >> &  arg)

Definition at line 3562 of file qbpp.hpp.

Here is the call graph for this function:

◆ gcd() [3/3]

template<typename T >
energy_t qbpp::gcd ( const Vector< T > &  vec)

Definition at line 3605 of file qbpp.hpp.

Here is the call graph for this function:

◆ onehot_to_int() [1/2]

int32_t qbpp::onehot_to_int ( const Vector< var_val_t > &  vec)
inline

Definition at line 3627 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onehot_to_int() [2/2]

template<typename T >
auto qbpp::onehot_to_int ( const Vector< Vector< T >> &  vec)

Definition at line 3644 of file qbpp.hpp.

Here is the call graph for this function:

◆ check_if_simplified_as_binary()

std::tuple<bool, size_t, size_t, coeff_t, coeff_t> qbpp::check_if_simplified_as_binary ( const Expr expr)
inline

Definition at line 3676 of file qbpp.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ vindex_limit

const vindex_t qbpp::vindex_limit = std::numeric_limits<vindex_t>::max()

Definition at line 124 of file qbpp.hpp.

◆ inf

const Inf qbpp::inf

Definition at line 287 of file qbpp.hpp.