code: public double[] getQuantiles(double[] fractions)
    {
      // The solver attempts to construct a distribution estimate which matches the
      // statistics tracked by the moments sketch. We can then read off quantile estimates
      // from the reconstructed distribution.
      // This operation can be relatively expensive (~1 ms) so we set the parameters from distribution
      // reconstruction to conservative values.
      MomentSolver ms = new MomentSolver(data);
      // Constants here are chosen to yield maximum precision while keeping solve times ~1ms on 2Ghz cpu
      // Grid size can be increased if longer solve times are acceptable
      ms.setGridSize(1024);
      ms.setMaxIter(15);
      ms.solve();
      double[] rawQuantiles = ms.getQuantiles(fractions);
      for (int i = 0; i < fractions.length; i++) {
        if (useArcSinh) {
          rawQuantiles[i] = Math.sinh(rawQuantiles[i]);
        }
      }
      return rawQuantiles;
    }
docs: Estimates quantiles given the statistics in a moments sketch.
  @param fractions real values between [0,1] for which we want to estimate quantiles
  
  @return estimated quantiles.