docs: public static double pdf(double val, double loc, double scale, double shape) {
      if(!(val < Double.POSITIVE_INFINITY && val > Double.NEGATIVE_INFINITY)) {
        return val == val ? 0. : Double.NaN;
      }
      val = (val - loc) / scale;
      double e = FastMath.exp(-val);
      double f = 1. + e;
      return e < Double.POSITIVE_INFINITY ? shape * e / (scale * FastMath.pow(f, shape + 1.)) : 0.;
    }