<commit_before>'use strict';

// MODULES //

var pow = require( '@stdlib/math/base/special/pow' );
var ln = require( '@stdlib/math/base/special/ln' );


// MAIN //

/**
* Handles case where `alpha` and `beta` are equal and greater than `1.5`.
*
* @private
* @param {Function} rand - PRNG for uniformly distributed numbers
* @param {Function} rnorm - PRNG for normally distributed numbers
* @param {PositiveNumber} alpha - first shape parameter
* @returns {Probability} pseudorandom number
*/
function sample( rand, rnorm, alpha ) {
	var flg;
	var s4;
	var A;
	var s;
	var t;
	var u;
	var x;
	var y;

	A = alpha - 1.0;
	t = pow( A + A, 0.5 );

	flg = true;
	while ( flg === true ) {
		s = rnorm( 0.0, 1.0 );
		x =  0.5 * ( 1.0 + s/t );
		if ( x >= 0.0 && x <= 1.0 ) {
			u = rand();
			s4 = pow( s, 4.0 );
			y = 8.0*alpha - 12.0;
			y = 1.0 - s4 / y;
			if ( u <= y ) {
				flg = false;
			} else {
				y += 0.5 * pow( s4/(8.0*alpha-8.0), 2.0 );
				if ( u < y ) {
					y = A * ln(4.0 * x * (1.0-x)) + s*s / 2.0;
					if ( y >= ln( u ) ) {
						flg = false;
					}
				}
			}
		}
	}
	return x;
} // end FUNCTION sample()


// EXPORTS //

module.exports = sample;
<commit_msg>Fix lint errors<commit_after>'use strict';

// MODULES //

var pow = require( '@stdlib/math/base/special/pow' );
var ln = require( '@stdlib/math/base/special/ln' );


// MAIN //

/**
* Handles case where `alpha` and `beta` are equal and greater than `1.5`.
*
* @private
* @param {Function} rand - PRNG for uniformly distributed numbers
* @param {Function} rnorm - PRNG for normally distributed numbers
* @param {PositiveNumber} alpha - first shape parameter
* @returns {Probability} pseudorandom number
*/
function sample( rand, rnorm, alpha ) {
	var flg;
	var s4;
	var A;
	var s;
	var t;
	var u;
	var x;
	var y;

	A = alpha - 1.0;
	t = pow( A + A, 0.5 );

	flg = true;
	while ( flg === true ) {
		s = rnorm( 0.0, 1.0 );
		x = 0.5 * ( 1.0 + (s/t) );
		if ( x >= 0.0 && x <= 1.0 ) {
			u = rand();
			s4 = pow( s, 4.0 );
			y = (8.0*alpha) - 12.0;
			y = 1.0 - (s4 / y);
			if ( u <= y ) {
				flg = false;
			} else {
				y += 0.5 * pow( s4/((8.0*alpha)-8.0), 2.0 );
				if ( u < y ) {
					y = A * ln(4.0 * x * (1.0-x));
					y += s*s / 2.0;
					if ( y >= ln( u ) ) {
						flg = false;
					}
				}
			}
		}
	}
	return x;
} // end FUNCTION sample()


// EXPORTS //

module.exports = sample;

{'fraction_non_alphanumeric': 0.19324894514767932, 'fraction_numerical': 0.0379746835443038, 'mean_word_length': 2.0554123711340204, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2013158', 'n_tokens_mistral': 1144, 'n_tokens_neox': 994, 'n_words': 295}