Java Code Examples for org.apache.commons.math3.exception.util.LocalizedFormats#SHAPE

The following examples show how to use org.apache.commons.math3.exception.util.LocalizedFormats#SHAPE . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ParetoDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a Pareto distribution.
 *
 * @param rng Random number generator.
 * @param scale Scale parameter of this distribution.
 * @param shape Shape parameter of this distribution.
 * @param inverseCumAccuracy Inverse cumulative probability accuracy.
 * @throws NotStrictlyPositiveException if {@code scale <= 0} or {@code shape <= 0}.
 */
public ParetoDistribution(RandomGenerator rng,
                          double scale,
                          double shape,
                          double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (scale <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE, scale);
    }

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }

    this.scale = scale;
    this.shape = shape;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 2
Source File: WeibullDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a Weibull distribution.
 *
 * @param rng Random number generator.
 * @param alpha Shape parameter.
 * @param beta Scale parameter.
 * @param inverseCumAccuracy Maximum absolute error in inverse
 * cumulative probability estimates
 * (defaults to {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code alpha <= 0} or
 * {@code beta <= 0}.
 * @since 3.1
 */
public WeibullDistribution(RandomGenerator rng,
                           double alpha,
                           double beta,
                           double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (alpha <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE,
                                               alpha);
    }
    if (beta <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE,
                                               beta);
    }
    scale = beta;
    shape = alpha;
    solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 3
Source File: LogNormalDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a log-normal distribution.
 *
 * @param rng Random number generator.
 * @param scale Scale parameter of this distribution.
 * @param shape Shape parameter of this distribution.
 * @param inverseCumAccuracy Inverse cumulative probability accuracy.
 * @throws NotStrictlyPositiveException if {@code shape <= 0}.
 * @since 3.1
 */
public LogNormalDistribution(RandomGenerator rng,
                             double scale,
                             double shape,
                             double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }

    this.scale = scale;
    this.shape = shape;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 4
Source File: WeibullDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Create a Weibull distribution with the given shape, scale and inverse
 * cumulative probability accuracy and a location equal to zero.
 *
 * @param alpha Shape parameter.
 * @param beta Scale parameter.
 * @param inverseCumAccuracy Maximum absolute error in inverse
 * cumulative probability estimates
 * (defaults to {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code alpha <= 0} or
 * {@code beta <= 0}.
 * @since 2.1
 */
public WeibullDistribution(double alpha, double beta,
                               double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    if (alpha <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE,
                                               alpha);
    }
    if (beta <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE,
                                               beta);
    }
    scale = beta;
    shape = alpha;
    solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 5
Source File: WeibullDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a Weibull distribution.
 *
 * @param rng Random number generator.
 * @param alpha Shape parameter.
 * @param beta Scale parameter.
 * @param inverseCumAccuracy Maximum absolute error in inverse
 * cumulative probability estimates
 * (defaults to {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code alpha <= 0} or
 * {@code beta <= 0}.
 * @since 3.1
 */
public WeibullDistribution(RandomGenerator rng,
                           double alpha,
                           double beta,
                           double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (alpha <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE,
                                               alpha);
    }
    if (beta <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE,
                                               beta);
    }
    scale = beta;
    shape = alpha;
    solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 6
Source File: ParetoDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a log-normal distribution.
 *
 * @param rng Random number generator.
 * @param scale Scale parameter of this distribution.
 * @param shape Shape parameter of this distribution.
 * @param inverseCumAccuracy Inverse cumulative probability accuracy.
 * @throws NotStrictlyPositiveException if {@code scale <= 0} or {@code shape <= 0}.
 */
public ParetoDistribution(RandomGenerator rng,
                          double scale,
                          double shape,
                          double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (scale <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE, scale);
    }

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }

    this.scale = scale;
    this.shape = shape;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 7
Source File: LogNormalDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a log-normal distribution.
 *
 * @param rng Random number generator.
 * @param scale Scale parameter of this distribution.
 * @param shape Shape parameter of this distribution.
 * @param inverseCumAccuracy Inverse cumulative probability accuracy.
 * @throws NotStrictlyPositiveException if {@code shape <= 0}.
 * @since 3.1
 */
public LogNormalDistribution(RandomGenerator rng,
                             double scale,
                             double shape,
                             double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }

    this.scale = scale;
    this.shape = shape;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 8
Source File: WeibullDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a Weibull distribution.
 *
 * @param rng Random number generator.
 * @param alpha Shape parameter.
 * @param beta Scale parameter.
 * @param inverseCumAccuracy Maximum absolute error in inverse
 * cumulative probability estimates
 * (defaults to {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code alpha <= 0} or
 * {@code beta <= 0}.
 * @since 3.1
 */
public WeibullDistribution(RandomGenerator rng,
                           double alpha,
                           double beta,
                           double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (alpha <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE,
                                               alpha);
    }
    if (beta <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE,
                                               beta);
    }
    scale = beta;
    shape = alpha;
    solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 9
Source File: LogNormalDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a log-normal distribution.
 *
 * @param rng Random number generator.
 * @param scale Scale parameter of this distribution.
 * @param shape Shape parameter of this distribution.
 * @param inverseCumAccuracy Inverse cumulative probability accuracy.
 * @throws NotStrictlyPositiveException if {@code shape <= 0}.
 * @since 3.1
 */
public LogNormalDistribution(RandomGenerator rng,
                             double scale,
                             double shape,
                             double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }

    this.scale = scale;
    this.shape = shape;
    this.logShapePlusHalfLog2Pi = FastMath.log(shape) + 0.5 * FastMath.log(2 * FastMath.PI);
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 10
Source File: LogNormalDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a log-normal distribution.
 *
 * @param rng Random number generator.
 * @param scale Scale parameter of this distribution.
 * @param shape Shape parameter of this distribution.
 * @param inverseCumAccuracy Inverse cumulative probability accuracy.
 * @throws NotStrictlyPositiveException if {@code shape <= 0}.
 */
public LogNormalDistribution(RandomGenerator rng,
                             double scale,
                             double shape,
                             double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }

    this.scale = scale;
    this.shape = shape;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 11
Source File: WeibullDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a Weibull distribution.
 *
 * @param rng Random number generator.
 * @param alpha Shape parameter.
 * @param beta Scale parameter.
 * @param inverseCumAccuracy Maximum absolute error in inverse
 * cumulative probability estimates
 * (defaults to {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code alpha <= 0} or
 * {@code beta <= 0}.
 * @since 3.1
 */
public WeibullDistribution(RandomGenerator rng,
                           double alpha,
                           double beta,
                           double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (alpha <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE,
                                               alpha);
    }
    if (beta <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE,
                                               beta);
    }
    scale = beta;
    shape = alpha;
    solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 12
Source File: WeibullDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a Weibull distribution.
 *
 * @param rng Random number generator.
 * @param alpha Shape parameter.
 * @param beta Scale parameter.
 * @param inverseCumAccuracy Maximum absolute error in inverse
 * cumulative probability estimates
 * (defaults to {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code alpha <= 0} or
 * {@code beta <= 0}.
 * @since 3.1
 */
public WeibullDistribution(RandomGenerator rng,
                           double alpha,
                           double beta,
                           double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (alpha <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE,
                                               alpha);
    }
    if (beta <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE,
                                               beta);
    }
    scale = beta;
    shape = alpha;
    solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 13
Source File: WeibullDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a Weibull distribution.
 *
 * @param rng Random number generator.
 * @param alpha Shape parameter.
 * @param beta Scale parameter.
 * @param inverseCumAccuracy Maximum absolute error in inverse
 * cumulative probability estimates
 * (defaults to {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code alpha <= 0} or {@code beta <= 0}.
 * @since 3.1
 */
public WeibullDistribution(RandomGenerator rng,
                           double alpha,
                           double beta,
                           double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (alpha <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE,
                                               alpha);
    }
    if (beta <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE,
                                               beta);
    }
    scale = beta;
    shape = alpha;
    solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 14
Source File: LogNormalDistribution.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Creates a log-normal distribution.
 *
 * @param rng Random number generator.
 * @param scale Scale parameter of this distribution.
 * @param shape Shape parameter of this distribution.
 * @param inverseCumAccuracy Inverse cumulative probability accuracy.
 * @throws NotStrictlyPositiveException if {@code shape <= 0}.
 * @since 3.1
 */
public LogNormalDistribution(RandomGenerator rng,
                             double scale,
                             double shape,
                             double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }

    this.scale = scale;
    this.shape = shape;
    this.logShapePlusHalfLog2Pi = FastMath.log(shape) + 0.5 * FastMath.log(2 * FastMath.PI);
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 15
Source File: GammaDistribution.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Creates a Gamma distribution.
 *
 * @param rng Random number generator.
 * @param shape the shape parameter
 * @param scale the scale parameter
 * @param inverseCumAccuracy the maximum absolute error in inverse
 * cumulative probability estimates (defaults to
 * {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code shape <= 0} or
 * {@code scale <= 0}.
 * @since 3.1
 */
public GammaDistribution(RandomGenerator rng,
                         double shape,
                         double scale,
                         double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }
    if (scale <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE, scale);
    }

    this.shape = shape;
    this.scale = scale;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
    this.shiftedShape = shape + Gamma.LANCZOS_G + 0.5;
    final double aux = FastMath.E / (2.0 * FastMath.PI * shiftedShape);
    this.densityPrefactor2 = shape * FastMath.sqrt(aux) / Gamma.lanczos(shape);
    this.densityPrefactor1 = this.densityPrefactor2 / scale *
            FastMath.pow(shiftedShape, -shape) *
            FastMath.exp(shape + Gamma.LANCZOS_G);
    this.minY = shape + Gamma.LANCZOS_G - FastMath.log(Double.MAX_VALUE);
    this.maxLogY = FastMath.log(Double.MAX_VALUE) / (shape - 1.0);
}
 
Example 16
Source File: GammaDistribution.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Creates a Gamma distribution.
 *
 * @param rng Random number generator.
 * @param shape the shape parameter
 * @param scale the scale parameter
 * @param inverseCumAccuracy the maximum absolute error in inverse
 * cumulative probability estimates (defaults to
 * {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code shape <= 0} or
 * {@code scale <= 0}.
 * @since 3.1
 */
public GammaDistribution(RandomGenerator rng,
                         double shape,
                         double scale,
                         double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }
    if (scale <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE, scale);
    }

    this.shape = shape;
    this.scale = scale;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
    this.shiftedShape = shape + Gamma.LANCZOS_G + 0.5;
    final double aux = FastMath.E / (2.0 * FastMath.PI * shiftedShape);
    this.densityPrefactor2 = shape * FastMath.sqrt(aux) / Gamma.lanczos(shape);
    this.densityPrefactor1 = this.densityPrefactor2 / scale *
            FastMath.pow(shiftedShape, -shape) *
            FastMath.exp(shape + Gamma.LANCZOS_G);
    this.minY = shape + Gamma.LANCZOS_G - FastMath.log(Double.MAX_VALUE);
    this.maxLogY = FastMath.log(Double.MAX_VALUE) / (shape - 1.0);
}
 
Example 17
Source File: LogNormalDistribution.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Create a log-normal distribution using the specified scale, shape and
 * inverse cumulative distribution accuracy.
 *
 * @param scale the scale parameter of this distribution
 * @param shape the shape parameter of this distribution
 * @param inverseCumAccuracy Inverse cumulative probability accuracy.
 * @throws NotStrictlyPositiveException if {@code shape <= 0}.
 */
public LogNormalDistribution(double scale, double shape,
    double inverseCumAccuracy) throws NotStrictlyPositiveException {
    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }

    this.scale = scale;
    this.shape = shape;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
}
 
Example 18
Source File: GammaDistribution.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Creates a Gamma distribution.
 *
 * @param rng Random number generator.
 * @param shape the shape parameter
 * @param scale the scale parameter
 * @param inverseCumAccuracy the maximum absolute error in inverse
 * cumulative probability estimates (defaults to
 * {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code shape <= 0} or
 * {@code scale <= 0}.
 * @since 3.1
 */
public GammaDistribution(RandomGenerator rng,
                         double shape,
                         double scale,
                         double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }
    if (scale <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE, scale);
    }

    this.shape = shape;
    this.scale = scale;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
    this.shiftedShape = shape + Gamma.LANCZOS_G + 0.5;
    final double aux = FastMath.E / (2.0 * FastMath.PI * shiftedShape);
    this.densityPrefactor2 = shape * FastMath.sqrt(aux) / Gamma.lanczos(shape);
    this.logDensityPrefactor2 = FastMath.log(shape) + 0.5 * FastMath.log(aux) -
                                FastMath.log(Gamma.lanczos(shape));
    this.densityPrefactor1 = this.densityPrefactor2 / scale *
            FastMath.pow(shiftedShape, -shape) *
            FastMath.exp(shape + Gamma.LANCZOS_G);
    this.logDensityPrefactor1 = this.logDensityPrefactor2 - FastMath.log(scale) -
            FastMath.log(shiftedShape) * shape +
            shape + Gamma.LANCZOS_G;
    this.minY = shape + Gamma.LANCZOS_G - FastMath.log(Double.MAX_VALUE);
    this.maxLogY = FastMath.log(Double.MAX_VALUE) / (shape - 1.0);
}
 
Example 19
Source File: GammaDistribution.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Creates a Gamma distribution.
 *
 * @param rng Random number generator.
 * @param shape the shape parameter
 * @param scale the scale parameter
 * @param inverseCumAccuracy the maximum absolute error in inverse
 * cumulative probability estimates (defaults to
 * {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code shape <= 0} or
 * {@code scale <= 0}.
 * @since 3.1
 */
public GammaDistribution(RandomGenerator rng,
                         double shape,
                         double scale,
                         double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }
    if (scale <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE, scale);
    }

    this.shape = shape;
    this.scale = scale;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
    this.shiftedShape = shape + Gamma.LANCZOS_G + 0.5;
    final double aux = FastMath.E / (2.0 * FastMath.PI * shiftedShape);
    this.densityPrefactor2 = shape * FastMath.sqrt(aux) / Gamma.lanczos(shape);
    this.densityPrefactor1 = this.densityPrefactor2 / scale *
            FastMath.pow(shiftedShape, -shape) *
            FastMath.exp(shape + Gamma.LANCZOS_G);
    this.minY = shape + Gamma.LANCZOS_G - FastMath.log(Double.MAX_VALUE);
    this.maxLogY = FastMath.log(Double.MAX_VALUE) / (shape - 1.0);
}
 
Example 20
Source File: GammaDistribution.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Creates a Gamma distribution.
 *
 * @param rng Random number generator.
 * @param shape the shape parameter
 * @param scale the scale parameter
 * @param inverseCumAccuracy the maximum absolute error in inverse
 * cumulative probability estimates (defaults to
 * {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
 * @throws NotStrictlyPositiveException if {@code shape <= 0} or
 * {@code scale <= 0}.
 * @since 3.1
 */
public GammaDistribution(RandomGenerator rng,
                         double shape,
                         double scale,
                         double inverseCumAccuracy)
    throws NotStrictlyPositiveException {
    super(rng);

    if (shape <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SHAPE, shape);
    }
    if (scale <= 0) {
        throw new NotStrictlyPositiveException(LocalizedFormats.SCALE, scale);
    }

    this.shape = shape;
    this.scale = scale;
    this.solverAbsoluteAccuracy = inverseCumAccuracy;
    this.shiftedShape = shape + Gamma.LANCZOS_G + 0.5;
    final double aux = FastMath.E / (2.0 * FastMath.PI * shiftedShape);
    this.densityPrefactor2 = shape * FastMath.sqrt(aux) / Gamma.lanczos(shape);
    this.logDensityPrefactor2 = FastMath.log(shape) + 0.5 * FastMath.log(aux) -
                                FastMath.log(Gamma.lanczos(shape));
    this.densityPrefactor1 = this.densityPrefactor2 / scale *
            FastMath.pow(shiftedShape, -shape) *
            FastMath.exp(shape + Gamma.LANCZOS_G);
    this.logDensityPrefactor1 = this.logDensityPrefactor2 - FastMath.log(scale) -
            FastMath.log(shiftedShape) * shape +
            shape + Gamma.LANCZOS_G;
    this.minY = shape + Gamma.LANCZOS_G - FastMath.log(Double.MAX_VALUE);
    this.maxLogY = FastMath.log(Double.MAX_VALUE) / (shape - 1.0);
}