function gamma2( alpha, beta ) {
		var c;
		var d;
		if (
			isnan( alpha ) ||
			isnan( beta ) ||
			alpha <= 0.0 ||
			beta <= 0.0
		) {
			return NaN;
		}
		if ( alpha < 1.0 ) {
			d = alpha + 1.0 - ONE_THIRD;
			c = 1.0 / sqrt( 9.0*d );
			return gamma0( rand, rnorm, beta, d, c ) * pow( rand(), 1.0/alpha );
		}
		d = alpha - ONE_THIRD;
		c = 1.0 / sqrt( 9.0*d );
		return gamma0( rand, rnorm, beta, d, c );
	}
Returns a pseudorandom number drawn from a gamma distribution.

@private
@param {PositiveNumber} alpha - shape parameter
@param {PositiveNumber} beta - rate parameter
@returns {PositiveNumber} pseudorandom number

@example
var v = gamma2( 2.0, 4.0 );
// returns <number>

@example
var v = gamma2( 3.0, 0.0 );
// returns NaN

@example
var v = gamma2( 0.0, 2.0 );
// returns NaN

@example
var v = gamma2( NaN, NaN );
// returns NaN