Lines Matching defs:dens
553 /// If the returned value is {num, dens}, it represents the function
554 /// t^num / \prod_j (1 - t^dens[j]).
590 std::vector<Fraction> dens;
591 dens.reserve(ds.size());
596 // (1 - t^dens.back())
597 dens.emplace_back(dotProduct(d, mu));
600 return {num, dens};
603 /// Normalize all denominator exponents `dens` to their absolute values
605 /// sign * t^num / prod_j (1 - t^dens[j]).
608 /// each dens[j] is a Fraction.
610 std::vector<Fraction> &dens) {
615 for (const auto &den : dens) {
709 auto [numExp, dens] =
712 // and the denominator is \prod_j (1 - (s+1)^dens[j]).
716 // sign_i * (s+1)^numExp / (\prod_j (1 - (s+1)^dens[j]))
718 // positive exponents. We convert all the dens[j] to their
720 normalizeDenominatorExponents(sign, numExp, dens);
723 // (s+1)^(dens[j])) with
724 // (-s)(\sum_{0 ≤ k < dens[j]} (s+1)^k).
725 for (auto &j : dens)
727 // Note that at this point, the semantics of `dens[j]` changes to mean
728 // a term (\sum_{0 ≤ k ≤ dens[j]} (s+1)^k). The denominator is, as before,
733 unsigned r = dens.size();
734 if (dens.size() % 2 == 1)
739 // (s^r * \prod_j (\sum_{0 ≤ k < dens[j]} (s+1)^k)).
762 // which are (dens[i]+1) C (k+1) for 0 ≤ k ≤ dens[i].
766 for (const Fraction &den : dens) {