14 template <
typename ValueSet>
16 typename ValueSet::value_t
18 const typename ValueSet::value_t& lhs,
19 const typename ValueSet::value_t& rhs)
21 return vs.ldiv(lhs, rhs);
30 template <
typename ExpressionSetLhs,
typename ExpressionSetRhs>
34 auto join_elts = join<ExpressionSetLhs, ExpressionSetRhs>(lhs, rhs);
35 return make_expression(std::get<0>(join_elts), ldiv(std::get<0>(join_elts),
36 std::get<1>(join_elts),
37 std::get<2>(join_elts)));
41 template <
typename PolynomialSetLhs,
typename PolynomialSetRhs>
45 auto join_elts = join<PolynomialSetLhs, PolynomialSetRhs>(lhs, rhs);
46 return make_polynomial(std::get<0>(join_elts), ldiv(std::get<0>(join_elts),
47 std::get<1>(join_elts),
48 std::get<2>(join_elts)));
58 template <
typename ValueSet>
60 typename ValueSet::value_t
62 const typename ValueSet::value_t& lhs,
63 const typename ValueSet::value_t& rhs)
65 return vs.lgcd(lhs, rhs);
74 template <
typename PolynomialSetLhs,
typename PolynomialSetRhs>
78 auto join_elts = join<PolynomialSetLhs, PolynomialSetRhs>(lhs, rhs);
80 std::get<1>(join_elts),
81 std::get<2>(join_elts)));
91 template <
typename ValueSet>
93 typename ValueSet::value_t
95 const typename ValueSet::value_t& lhs,
96 const typename ValueSet::value_t& rhs)
98 return vs.rdiv(lhs, rhs);
106 template <
typename ExpressionSetLhs,
typename ExpressionSetRhs>
110 auto join_elts = join<ExpressionSetLhs, ExpressionSetRhs>(lhs, rhs);
112 std::get<1>(join_elts),
113 std::get<2>(join_elts)));
expression rdiv(const expression &lhs, const expression &rhs)
Right-division of two expressions (lhs \ rhs).
polynomial lgcd(const polynomial &lhs, const polynomial &rhs)
Left greatest common divisor of two polynomials (lhs \ rhs).
std::shared_ptr< const detail::polynomial_base > polynomial
polynomial make_polynomial(const PolynomialSet &ps, const typename PolynomialSet::value_t &p)
ValueSet::value_t lgcd(const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
Left-division of values.
expression rdiv_expression(const expression &lhs, const expression &rhs)
Bridge (rdiv).
ValueSet::value_t rdiv(const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
Right-division of values.
expression ldiv_expression(const expression &lhs, const expression &rhs)
Bridge (ldiv).
polynomial lgcd_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (lgcd).
polynomial ldiv_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (ldiv).
std::shared_ptr< detail::expression_base > expression
expression make_expression(const ExpSet &rs, const typename ExpSet::value_t &r)
ValueSet::value_t ldiv(const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
Left-division of values.