当前位置: 首页>>代码示例>>Java>>正文


Java Gamma.lanczos方法代码示例

本文整理汇总了Java中org.apache.commons.math3.special.Gamma.lanczos方法的典型用法代码示例。如果您正苦于以下问题:Java Gamma.lanczos方法的具体用法?Java Gamma.lanczos怎么用?Java Gamma.lanczos使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.commons.math3.special.Gamma的用法示例。


在下文中一共展示了Gamma.lanczos方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: logGamma

import org.apache.commons.math3.special.Gamma; //导入方法依赖的package包/类
public static double logGamma(double x) {
    /*
     * This is a copy of
     * double Gamma.logGamma(double)
     * prior to MATH-849
     */
    double ret;

    if (Double.isNaN(x) || (x <= 0.0)) {
        ret = Double.NaN;
    } else {
        double sum = Gamma.lanczos(x);
        double tmp = x + Gamma.LANCZOS_G + .5;
        ret = ((x + .5) * FastMath.log(tmp)) - tmp +
            HALF_LOG_2_PI + FastMath.log(sum / x);
    }

    return ret;
}
 
开发者ID:Quanticol,项目名称:CARMA,代码行数:20,代码来源:GammaDistributionTest.java

示例2: CustomGammaDistribution

import org.apache.commons.math3.special.Gamma; //导入方法依赖的package包/类
/**
 * 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 CustomGammaDistribution(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);
}
 
开发者ID:aherbert,项目名称:GDSC-SMLM,代码行数:42,代码来源:CustomGammaDistribution.java

示例3: GammaDistribution

import org.apache.commons.math3.special.Gamma; //导入方法依赖的package包/类
/**
 * 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);
}
 
开发者ID:biocompibens,项目名称:SME,代码行数:45,代码来源:GammaDistribution.java

示例4: GammaDistribution

import org.apache.commons.math3.special.Gamma; //导入方法依赖的package包/类
/**
 * 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);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:40,代码来源:GammaDistribution.java

示例5: logGamma

import org.apache.commons.math3.special.Gamma; //导入方法依赖的package包/类
/**
 * Copied from Apache Commons FastMath. Removed support for NaN and x < 0.5.
 * <p>
 * Returns the value of log&nbsp;&Gamma;(x) for x&nbsp;&gt;&nbsp;0.
 * </p>
 * <p>
 * For x &le; 8, the implementation is based on the double precision
 * implementation in the <em>NSWC Library of Mathematics Subroutines</em>,
 * {@code DGAMLN}. For x &gt; 8, the implementation is based on
 * </p>
 * <ul>
 * <li><a href="http://mathworld.wolfram.com/GammaFunction.html">Gamma
 * Function</a>, equation (28).</li>
 * <li><a href="http://mathworld.wolfram.com/LanczosApproximation.html">
 * Lanczos Approximation</a>, equations (1) through (5).</li>
 * <li><a href="http://my.fit.edu/~gabdo/gamma.txt">Paul Godfrey, A note on
 * the computation of the convergent Lanczos complex Gamma
 * approximation</a></li>
 * </ul>
 *
 * @param x
 *            Argument.
 * @return the value of {@code log(Gamma(x))}, {@code Double.NaN} if
 *         {@code x <= 0.0}.
 */
private static double logGamma(double x)
{
	//		if (Double.isNaN(x) || (x <= 0.0))
	//		{
	//			return Double.NaN;
	//		}
	//		else if (x < 0.5)
	//		{
	//			return Gamma.logGamma1p(x) - Math.log(x);
	//		}
	//		else 
	if (x <= 2.5)
	{
		return Gamma.logGamma1p((x - 0.5) - 0.5);
	}
	else if (x <= 8.0)
	{
		final int n = (int) FastMath.floor(x - 1.5);
		double prod = 1.0;
		for (int i = 1; i <= n; i++)
		{
			prod *= x - i;
		}
		return Gamma.logGamma1p(x - (n + 1)) + Math.log(prod);
	}
	else
	{
		double sum = Gamma.lanczos(x);
		double tmp = x + Gamma.LANCZOS_G + .5;
		return ((x + .5) * Math.log(tmp)) - tmp + HALF_LOG_2_PI + Math.log(sum / x);
	}
}
 
开发者ID:aherbert,项目名称:GDSC-SMLM,代码行数:58,代码来源:PoissonCalculator.java

示例6: init

import org.apache.commons.math3.special.Gamma; //导入方法依赖的package包/类
public void init() {
    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);
}
 
开发者ID:happyjack27,项目名称:autoredistrict,代码行数:16,代码来源:GammaDistribution.java


注:本文中的org.apache.commons.math3.special.Gamma.lanczos方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。