docs: private Rational doubleSum(int n) {
          Rational resul = Rational.ZERO;
          for (int k = 0; k <= n; k++) {
              Rational jsum = Rational.ZERO;
              BigInteger bin = BigInteger.ONE;
              for (int j = 0; j <= k; j++) {
                  BigInteger jpown = BigInteger.valueOf(j).pow(n);
                  if (j % 2 == 0) {
                      jsum = jsum.add(bin.multiply(jpown));
                  } else {
                      jsum = jsum.subtract(bin.multiply(jpown));
                  }
                  /* update binomial(k,j) recursively
                   */
                  bin = bin.multiply(BigInteger.valueOf(k - j)).divide(BigInteger.valueOf(j + 1));
              }
              resul = resul.add(jsum.divide(BigInteger.valueOf(k + 1)));
          }
          return resul;
      }