All files main.js

100% Statements 72/72
100% Branches 4/4
100% Functions 1/1
100% Lines 72/72

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 732x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 28x 28x 28x 2x 2x 2x 26x 26x 28x 2x 2x 2x 2x 2x  
/**
* @license Apache-2.0
*
* Copyright (c) 2023 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
 
'use strict';
 
// MODULES //
 
var nullary = require( '@stdlib/strided/base/nullary' );
var binary = require( '@stdlib/strided/base/binary' );
var prng = require( './prng.js' );
 
 
// MAIN //
 
/**
* Fills a strided array with pseudorandom numbers drawn from an arcsine distribution.
*
* @param {NonNegativeInteger} N - number of indexed elements
* @param {Collection} a - minimum support
* @param {integer} sa - `a` stride length
* @param {Collection} b - maximum support
* @param {integer} sb - `b` stride length
* @param {Collection} out - output array
* @param {integer} so - `out` stride length
* @param {Options} [options] - function options
* @param {PRNG} [options.prng] - pseudorandom number generator which generates uniformly distributed pseudorandom numbers
* @param {PRNGSeedMT19937} [options.seed] - pseudorandom number generator seed
* @param {PRNGStateMT19937} [options.state] - pseudorandom number generator state
* @param {boolean} [options.copy=true] - boolean indicating whether to copy a provided pseudorandom number generator state
* @throws {Error} minimum support must be less than maximum support
* @throws {Error} must provide valid options
* @throws {Error} must provide a valid state
* @returns {Collection} output array
*
* @example
* var Float64Array = require( '@stdlib/array/float64' );
*
* // Create an array:
* var out = new Float64Array( 10 );
*
* // Fill the array with pseudorandom numbers:
* arcsine( out.length, [ 2.0 ], 0, [ 5.0 ], 0, out, 1 );
*/
function arcsine( N, a, sa, b, sb, out, so, options ) {
	var rand = prng( a, sa, 0, b, sb, 0, arguments.length > 7, options );
	if ( rand.arity === 0 ) {
		nullary( [ out ], [ N ], [ so ], rand.fcn );
		return out;
	}
	binary( [ a, b, out ], [ N ], [ sa, sb, so ], rand.fcn );
	return out;
}
 
 
// EXPORTS //
 
module.exports = arcsine;