SetDistributionParameters(
            int alpha,
            int beta
            )
        {
            if (!IsValidParameterSet(alpha, beta))
            {
                throw new ArgumentException(Properties.Resources.ArgumentParameterSetInvalid);
            }

            _alpha = alpha;
            _beta  = beta;
            _chiSquaredAlpha.SetDistributionParameters(alpha);
            _chiSquaredBeta.SetDistributionParameters(beta);

            double alphaHalf = 0.5 * alpha;
            double betaHalf  = 0.5 * beta;

            _alphabeta = (double)beta / (double)alpha;

            _pdfScaleLn =
                alphaHalf * Math.Log(alpha)
                + betaHalf * Math.Log(beta)
                - Fn.BetaLn(alphaHalf, betaHalf);
            _pdfExponent1 = alphaHalf - 1.0;
            _pdfExponent2 = -alphaHalf - betaHalf;
        }
Пример #2
0
        public void SetDistributionParameters(double alpha, double beta)
        {
            if (!IsValidParameterSet(alpha, beta))
            {
                throw new ArgumentOutOfRangeException();
            }

            _alpha = alpha;
            _beta  = beta;
            _gammaAlpha.SetDistributionParameters(alpha, 1.0);
            _gammaBeta.SetDistributionParameters(beta, 1.0);
            _lnbetaAlphaBeta = Fn.BetaLn(alpha, beta);
        }
Пример #3
0
        SetDistributionParameters(
            double alpha,
            double beta)
        {
            if (!IsValidParameterSet(alpha, beta))
            {
                throw new ArgumentException(Properties.LocalStrings.ArgumentParameterSetInvalid);
            }

            _alpha = alpha;
            _beta  = beta;
            _gammaAlpha.SetDistributionParameters(alpha, 1.0);
            _gammaBeta.SetDistributionParameters(beta, 1.0);
            _lnbetaAlphaBeta = Fn.BetaLn(alpha, beta);
        }