13 template <
typename ValueSet>
14 typename ValueSet::value_t
16 const typename ValueSet::value_t& lhs,
17 const typename ValueSet::value_t& rhs)
19 return vs.ldivide(lhs, rhs);
28 template <
typename ExpansionSetLhs,
typename ExpansionSetRhs>
32 auto join_elts = join<ExpansionSetLhs, ExpansionSetRhs>(lhs, rhs);
33 return {std::get<0>(join_elts),
ldivide(std::get<0>(join_elts),
34 std::get<1>(join_elts),
35 std::get<2>(join_elts))};
39 template <
typename ExpressionSetLhs,
typename ExpressionSetRhs>
43 auto join_elts = join<ExpressionSetLhs, ExpressionSetRhs>(lhs, rhs);
44 return {std::get<0>(join_elts),
ldivide(std::get<0>(join_elts),
45 std::get<1>(join_elts),
46 std::get<2>(join_elts))};
50 template <
typename LabelSetLhs,
typename LabelSetRhs>
54 auto join_elts = join<LabelSetLhs, LabelSetRhs>(lhs, rhs);
55 return {std::get<0>(join_elts),
ldivide(std::get<0>(join_elts),
56 std::get<1>(join_elts),
57 std::get<2>(join_elts))};
61 template <
typename PolynomialSetLhs,
typename PolynomialSetRhs>
65 auto join_elts = join<PolynomialSetLhs, PolynomialSetRhs>(lhs, rhs);
66 return {std::get<0>(join_elts),
ldivide(std::get<0>(join_elts),
67 std::get<1>(join_elts),
68 std::get<2>(join_elts))};
72 template <
typename WeightSetLhs,
typename WeightSetRhs>
76 auto join_elts = join<WeightSetLhs, WeightSetRhs>(lhs, rhs);
77 return {std::get<0>(join_elts),
ldivide(std::get<0>(join_elts),
78 std::get<1>(join_elts),
79 std::get<2>(join_elts))};
89 template <
typename ValueSet>
90 typename ValueSet::value_t
92 const typename ValueSet::value_t& lhs,
93 const typename ValueSet::value_t& rhs)
95 return vs.lgcd(lhs, rhs);
104 template <
typename PolynomialSetLhs,
typename PolynomialSetRhs>
108 auto join_elts = join<PolynomialSetLhs, PolynomialSetRhs>(lhs, rhs);
109 return {std::get<0>(join_elts),
lgcd(std::get<0>(join_elts),
110 std::get<1>(join_elts),
111 std::get<2>(join_elts))};
121 template <
typename ValueSet>
122 typename ValueSet::value_t
124 const typename ValueSet::value_t& lhs,
125 const typename ValueSet::value_t& rhs)
127 return vs.rdivide(lhs, rhs);
135 template <
typename LabelSetLhs,
typename LabelSetRhs>
139 auto join_elts = join<LabelSetLhs, LabelSetRhs>(lhs, rhs);
140 return {std::get<0>(join_elts),
rdivide(std::get<0>(join_elts),
141 std::get<1>(join_elts),
142 std::get<2>(join_elts))};
146 template <
typename ExpressionSetLhs,
typename ExpressionSetRhs>
150 auto join_elts = join<ExpressionSetLhs, ExpressionSetRhs>(lhs, rhs);
151 return {std::get<0>(join_elts),
rdivide(std::get<0>(join_elts),
152 std::get<1>(join_elts),
153 std::get<2>(join_elts))};
157 template <
typename WeightSetLhs,
typename WeightSetRhs>
161 auto join_elts = join<WeightSetLhs, WeightSetRhs>(lhs, rhs);
162 return {std::get<0>(join_elts),
rdivide(std::get<0>(join_elts),
163 std::get<1>(join_elts),
164 std::get<2>(join_elts))};
value_impl< detail::expansion_tag > expansion
polynomial lgcd(const polynomial &lhs, const polynomial &rhs)
Left greatest common divisor of two polynomials (lhs \ rhs).
weight ldivide_weight(const weight &lhs, const weight &rhs)
Bridge (ldivide).
automaton rdivide(const automaton &aut1, const automaton &aut2)
Bridge.
polynomial ldivide_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (ldivide).
expression ldivide_expression(const expression &lhs, const expression &rhs)
Bridge (ldivide).
label rdivide_label(const label &lhs, const label &rhs)
Bridge (rdivide).
weight rdivide_weight(const weight &lhs, const weight &rhs)
Bridge (rdivide).
expression rdivide_expression(const expression &lhs, const expression &rhs)
Bridge (rdivide).
automaton ldivide(const automaton &aut1, const automaton &aut2)
Bridge (ldivide).
value_impl< detail::label_tag > label
value_impl< detail::expression_tag > expression
expansion ldivide_expansion(const expansion &lhs, const expansion &rhs)
Bridge (ldivide).
auto ldivide(const Aut1 &lhs, const Aut2 &rhs, auto_tag={})
Compute the left quotient.
value_impl< detail::polynomial_tag > polynomial
polynomial lgcd_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (lgcd).
label ldivide_label(const label &lhs, const label &rhs)
Bridge (ldivide).