docs: public static double pdf(double x, double k, double theta, double shift) {
      if(x == Double.POSITIVE_INFINITY || x == Double.NEGATIVE_INFINITY) {
        return 0.;
      }
      if(x != x) {
        return Double.NaN;
      }
      x = (x - shift) * theta;
      final double ex = FastMath.exp(x);
      return ex < Double.POSITIVE_INFINITY ? FastMath.exp(k * x - ex - GammaDistribution.logGamma(k)) * theta : 0.;
    }