QuadExpr

Doxygen

template<class KeyT = idol::Var, class ValueT = double>
class QuadExpr : public idol::LinExpr<CommutativePair<idol::Var>, double>

Public Types

using iterator = typename map_t::iterator
using const_iterator = typename map_t::const_iterator

Public Functions

QuadExpr() = default
inline QuadExpr(ValueT t_constant)
inline QuadExpr(const KeyT &t_key)
inline QuadExpr(LinExpr<KeyT, ValueT> t_expr)
inline QuadExpr(AffExpr<KeyT, ValueT> t_expr)
inline QuadExpr(const KeyT &t_key1, const KeyT &t_key2)
inline QuadExpr(const ValueT &t_factor, const KeyT &t_key1, const KeyT &t_key2)
inline QuadExpr(ValueT &&t_factor, const KeyT &t_key1, const KeyT &t_key2)
inline QuadExpr(const ValueT &t_factor, const KeyT &t_key)
inline QuadExpr(ValueT &&t_factor, const KeyT &t_key)
QuadExpr(const QuadExpr &t_src) = default
QuadExpr(QuadExpr&&) noexcept = default
QuadExpr &operator=(const QuadExpr &t_rhs) = default
QuadExpr &operator=(QuadExpr&&) noexcept = default
QuadExpr &operator+=(const QuadExpr &t_rhs)
QuadExpr &operator-=(const QuadExpr &t_rhs)
QuadExpr &operator*=(double t_rhs)
QuadExpr &operator/=(double t_rhs)
QuadExpr operator-() const
inline AffExpr<KeyT, ValueT> &affine()
inline const AffExpr<KeyT, ValueT> &affine() const
inline bool has_quadratic() const
inline bool empty_all() const
virtual bool is_zero(double t_tolerance) const override
void clear_all()
LinExpr &operator+=(const LinExpr<KeyT, ValueT> &t_rhs)
LinExpr &operator+=(const KeyT &t_rhs)
virtual SparseVector &operator+=(const SparseVector &t_vector)
LinExpr &operator-=(const LinExpr<KeyT, ValueT> &t_rhs)
LinExpr &operator-=(const KeyT &t_rhs)
virtual SparseVector &operator-=(const SparseVector &t_vector)
virtual SparseVector &operator*=(std::conditional_t<std::is_arithmetic_v<ValueT>, ValueT, double> t_scalar)
virtual SparseVector &operator/=(std::conditional_t<std::is_arithmetic_v<ValueT>, ValueT, double> t_scalar)
inline unsigned int size() const
inline bool empty() const
inline bool has_index(const IndexT &t_index) const
const ValueT &get(const IndexT &t_index1) const
void set(const IndexT &t_index, const ValueT &t_value)
inline void remove(const IndexT &t_index)
inline void clear()
inline void reserve(unsigned int t_capacity)
inline iterator begin()
inline const_iterator begin() const
inline iterator end()
inline const_iterator end() const
inline const_iterator cbegin() const
inline const_iterator cend() const
SparseVector &merge_without_conflict(const SparseVector &t_vec)

Public Static Attributes

static LinExpr<KeyT, ValueT> Zero = {}