docs: public static double logpdf(double val, double shape, double location, double scale) {
      if(val < location) {
        return Double.NEGATIVE_INFINITY;
      }
      val = (val - location) / scale;
      final double lval = FastMath.log(val);
      if(lval == Double.POSITIVE_INFINITY) {
        return Double.NEGATIVE_INFINITY;
      }
      return FastMath.log(shape / scale) + (shape - 1.) * lval //
          - 2. * FastMath.log1p(FastMath.exp(lval * shape));
    }