QuadExpr

template<class Key1 = idol::Var, class Key2 = Key1, class Hash = std::conditional_t<std::is_same_v<Key1, Key2>, idol::impl::symmetric_pair_hash, std::hash<idol::Pair<Key1, Key2>>>, class EqualTo = std::conditional_t<std::is_same_v<Key1, Key2>, idol::impl::symmetric_pair_equal_to, std::equal_to<idol::Pair<Key1, Key2>>>>
class QuadExpr : public AbstractExpr<idol::Pair<idol::Var, idol::Var>, QuadTerm<idol::Var, idol::Var>, std::conditional_t<std::is_same_v<idol::Var, idol::Var>, idol::impl::symmetric_pair_hash, std::hash<idol::Pair<idol::Var, idol::Var>>>, std::conditional_t<std::is_same_v<idol::Var, idol::Var>, idol::impl::symmetric_pair_equal_to, std::equal_to<idol::Pair<idol::Var, idol::Var>>>>

Public Functions

QuadExpr() = default
QuadExpr(const Key1 &t_a, const Key2 &t_b)
QuadExpr(Constant &&t_factor, const Key1 &t_a, const Key2 &t_b)
QuadExpr(const Constant &t_factor, const Key1 &t_a, const Key2 &t_b)
QuadExpr(const QuadExpr&) = default
QuadExpr(QuadExpr&&) noexcept = default
QuadExpr &operator=(const QuadExpr&) = default
QuadExpr &operator=(QuadExpr&&) noexcept = default
virtual ~QuadExpr() = default
void set(const Key1 &t_a, const Key2 &t_b, Constant t_coefficient)
const Constant &get(const Key1 &t_a, const Key2 &t_b) const
QuadExpr fix(const Solution::Primal &t_primals) const