Skip to content

Commit

Permalink
Fixed jsdoc for auto typescript declaration file (used primitive bigi…
Browse files Browse the repository at this point in the history
…nt vs BigInt).
  • Loading branch information
chrisakroyd committed Sep 6, 2021
1 parent 4c5a25b commit 4c524da
Show file tree
Hide file tree
Showing 11 changed files with 101 additions and 101 deletions.
22 changes: 11 additions & 11 deletions src/PRNG.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@
class PRNG {
/**
* @constructor
* @param {number | BigInt} max -> Max number that can be generated by this generator.
* @param {number | BigInt} seed -> Initial seed.
* @param {number | bigint} max -> Max number that can be generated by this generator.
* @param {number | bigint} seed -> Initial seed.
*/
constructor(max, seed) {
/**
* @protected
* @readonly
* @type {number | BigInt}
* @type {number | bigint}
*/
this.max = max;
/**
* @protected
* @type {number | BigInt}
* @type {number | bigint}
*/
this._seed = seed;
}
Expand All @@ -26,9 +26,9 @@ class PRNG {
* number of bits.
*
* @protected
* @param {BigInt} number -> A string param.
* @param {bigint} number -> A string param.
* @param {number} bits -> An optional param (Closure syntax)
* @return {BigInt} This is the result
* @return {bigint} This is the result
*/
cast(number, bits) {
return BigInt.asUintN(bits, number);
Expand Down Expand Up @@ -65,7 +65,7 @@ class PRNG {
* To be implemented by sub-classes.
*
* @protected
* @return {BigInt} Random integer.
* @return {bigint} Random integer.
*/
_int() {
if (this.constructor === PRNG) {
Expand Down Expand Up @@ -134,7 +134,7 @@ class PRNG {
* random.bigInt(); // 85424123n
*
* @public
* @returns {BigInt} Number less than 2 ** 32 for 32 bit generators represented as a BigInt class.
* @returns {bigint} Number less than 2 ** 32 for 32 bit generators represented as a BigInt class.
*/
bigInt() {
return this._int();
Expand Down Expand Up @@ -289,8 +289,8 @@ class PRNG {
*
* @protected
* @param {number} size -> Length of the array to create.
* @param {function(): boolean | number | BigInt} mapFn -> Function which we use to fill array.
* @returns {boolean[] | number[] | BigInt[]} Array created by repeated calls to the mapFn.
* @param {function(): boolean | number | bigint} mapFn -> Function which we use to fill array.
* @returns {boolean[] | number[] | bigint[]} Array created by repeated calls to the mapFn.
*/
initArray(size, mapFn) {
return Array.from({ length: size }, mapFn);
Expand Down Expand Up @@ -366,7 +366,7 @@ class PRNG {
*
* @public
* @param size -> Size of the array to generate.
* @returns {BigInt[]} Array[BigInt] of length size.
* @returns {bigint[]} Array[BigInt] of length size.
*/
bigIntArray(size) {
return this.initArray(size, () => this.bigInt());
Expand Down
8 changes: 4 additions & 4 deletions src/PRNG64.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import PRNG from './PRNG.js';
* 64 bit modification of PRNG class.
* @class
* @extends {PRNG}
* @param {number | BigInt} max -> Max number that can be generated by this generator.
* @param {number | BigInt} seed -> Initial seed.
* @param {number | bigint} max -> Max number that can be generated by this generator.
* @param {number | bigint} seed -> Initial seed.
*/
class PRNG64 extends PRNG {
/**
* @constructor
* @param {number | BigInt} max -> Max number that can be generated by this generator.
* @param {number | BigInt} seed -> Initial seed.
* @param {number | bigint} max -> Max number that can be generated by this generator.
* @param {number | bigint} seed -> Initial seed.
*/
constructor(max, seed) {
super(max, seed);
Expand Down
4 changes: 2 additions & 2 deletions src/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
export const MAX32 = 2 ** 32;
/** @type {number} */
export const MAX53 = 2 ** 53;
/** @type {BigInt} */
/** @type {bigint} */
export const MAX64 = 2n ** 64n;

/** @enum {number | BigInt} */
/** @enum {number | bigint} */
export default {
MAX32,
MAX53,
Expand Down
4 changes: 2 additions & 2 deletions src/lcg.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ class LCG extends PRNG {
* Seed getter.
*
* @public
* @returns {number|BigInt} Retrieves seed.
* @returns {number | bigint} Retrieves seed.
*/
get seed() {
return this._seed;
}

/**
* Converts seed into BigInt + takes steps to reset generator.
* @param {number | BigInt} seed -> New seed to set.
* @param {number | bigint} seed -> New seed to set.
*/
set seed(seed) {
this._seed = seed;
Expand Down
34 changes: 17 additions & 17 deletions src/mersenneTwister.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import PRNG from './PRNG.js';
import { MAX32 } from './constants.js';

/** @type {BigInt} */
/** @type {bigint} */
const MATRIX_A = 0x9908b0dfn; /* constant vector a */
/** @type {BigInt} */
/** @type {bigint} */
const UPPER_MASK = 0x80000000n; /* most significant w-r bits */
/** @type {BigInt} */
/** @type {bigint} */
const LOWER_MASK = 0x7fffffffn; /* least significant r bits */

// https://github.com/boo1ean/mersenne-twister/blob/master/src/mersenne-twister.js
Expand All @@ -22,16 +22,16 @@ const LOWER_MASK = 0x7fffffffn; /* least significant r bits */
*
* @class
* @extends {PRNG}
* @param {number | BigInt} seed -> Initial seed.
* @param {number | BigInt} n -> Degree of recurrence.
* @param {number | BigInt} m -> Middle word, offset used during recurrence.
* @param {number | bigint} seed -> Initial seed.
* @param {number | bigint} n -> Degree of recurrence.
* @param {number | bigint} m -> Middle word, offset used during recurrence.
*/
class MersenneTwister extends PRNG {
/**
* @constructor
* @param {number | BigInt} seed -> Initial seed.
* @param {number | BigInt} n -> Degree of recurrence.
* @param {number | BigInt} m -> Middle word, offset used during recurrence.
* @param {number | bigint} seed -> Initial seed.
* @param {number | bigint} n -> Degree of recurrence.
* @param {number | bigint} m -> Middle word, offset used during recurrence.
*/
constructor(seed = Date.now(), n = 624, m = 397) {
super(MAX32, BigInt(seed));
Expand All @@ -58,7 +58,7 @@ class MersenneTwister extends PRNG {
* Seed getter.
*
* @public
* @returns {number | BigInt} Retrieves seed.
* @returns {number | bigint} Retrieves seed.
*/
get seed() {
return this._seed;
Expand All @@ -68,7 +68,7 @@ class MersenneTwister extends PRNG {
* Converts seed into BigInt + takes steps to reset generator.
*
* @public
* @param {number | BigInt} seed -> New seed to set.
* @param {number | bigint} seed -> New seed to set.
*/
set seed(seed) {
this._seed = this.cast(BigInt(seed), 32);
Expand All @@ -87,9 +87,9 @@ class MersenneTwister extends PRNG {

/**
* @private
* @param {BigInt} u
* @param {BigInt} v
* @returns {BigInt}
* @param {bigint} u
* @param {bigint} v
* @returns {bigint}
*/
mixBits(u, v) {
return (((u) & UPPER_MASK) | ((v) & LOWER_MASK));
Expand All @@ -98,9 +98,9 @@ class MersenneTwister extends PRNG {
/**
* Computes the twist function.
* @private
* @param {BigInt} u
* @param {BigInt} v
* @returns {BigInt}
* @param {bigint} u
* @param {bigint} v
* @returns {bigint}
*/
twist(u, v) {
return ((this.mixBits(u, v) >> 1n) ^ ((v) & 1n ? MATRIX_A : 0n));
Expand Down
26 changes: 13 additions & 13 deletions src/pcg.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,29 @@ import { MAX32 } from './constants.js';
*
* @class
* @extends {PRNG}
* @param {number | BigInt} seed -> Initial seed.
* @param {number | BigInt} mul -> Multiplier parameter.
* @param {number | BigInt} inc -> Increment parameter.
* @param {number | bigint} seed -> Initial seed.
* @param {number | bigint} mul -> Multiplier parameter.
* @param {number | bigint} inc -> Increment parameter.
*/
class PCG extends PRNG {
// constructor(seed = 0x4d595df4d0f33173n, mul = 6364136223846793005n, inc = 1442695040888963407n) {
/**
* @constructor
* @param {number | BigInt} seed -> Initial seed.
* @param {number | BigInt} mul -> Multiplier parameter.
* @param {number | BigInt} inc -> Increment parameter.
* @param {number | bigint} seed -> Initial seed.
* @param {number | bigint} mul -> Multiplier parameter.
* @param {number | bigint} inc -> Increment parameter.
*/
constructor(seed = Date.now(), mul = 6364136223846793005n, inc = 1442695040888963407n) {
super(MAX32, BigInt(seed));
this.seed = seed;
/**
* @private
* @type {BigInt}
* @type {bigint}
*/
this.mul = this.cast(BigInt(mul), 64);
/**
* @private
* @type {BigInt}
* @type {bigint}
*/
this.inc = this.cast(BigInt(inc), 64);
}
Expand All @@ -49,7 +49,7 @@ class PCG extends PRNG {
* Seed getter.
*
* @public
* @returns {number | BigInt} Retrieves seed.
* @returns {number | bigint} Retrieves seed.
*/
get seed() {
return this._seed;
Expand All @@ -58,7 +58,7 @@ class PCG extends PRNG {
/**
* Converts seed into BigInt + sets.
*
* @param {number | BigInt} seed -> New seed to set.
* @param {number | bigint} seed -> New seed to set.
*/
set seed(seed) {
this._seed = this.cast(BigInt(seed), 64);
Expand All @@ -67,9 +67,9 @@ class PCG extends PRNG {

/**
* 32 bit rotation op.
* @param {BigInt} x -> x parameter of PCG algorithm.
* @param {BigInt} r -> r parameter of PCG algorithm.
* @returns {BigInt} Returns 32 bit result of rotation operation.
* @param {bigint} x -> x parameter of PCG algorithm.
* @param {bigint} r -> r parameter of PCG algorithm.
* @returns {bigint} Returns 32 bit result of rotation operation.
*/
rotr32(x, r) {
return this.cast(x >> r | x << (-r & 31n), 32);
Expand Down
20 changes: 10 additions & 10 deletions src/xorshift.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@ import { MAX32 } from './constants.js';
*
* @class
* @extends {PRNG}
* @param {number | BigInt} seed -> Initial seed.
* @param {number | BigInt} a -> First bit shift parameter.
* @param {number | BigInt} b -> Second bit shift parameter.
* @param {number | BigInt} c -> Third bit shift parameter.
* @param {number | bigint} seed -> Initial seed.
* @param {number | bigint} a -> First bit shift parameter.
* @param {number | bigint} b -> Second bit shift parameter.
* @param {number | bigint} c -> Third bit shift parameter.
*/
class XORShift extends PRNG {
/**
* @constructor
* @param {number | BigInt} seed -> Initial seed.
* @param {number | BigInt} a -> First bit shift parameter.
* @param {number | BigInt} b -> Second bit shift parameter.
* @param {number | BigInt} c -> Third bit shift parameter.
* @param {number | bigint} seed -> Initial seed.
* @param {number | bigint} a -> First bit shift parameter.
* @param {number | bigint} b -> Second bit shift parameter.
* @param {number | bigint} c -> Third bit shift parameter.
*/
constructor(seed = Date.now(), a = 13, b = 17, c = 5) {
super(MAX32, BigInt(seed));
Expand Down Expand Up @@ -54,7 +54,7 @@ class XORShift extends PRNG {
* Seed getter.
*
* @public
* @returns {number | BigInt} Retrieves seed.
* @returns {number | bigint} Retrieves seed.
*/
get seed() {
return this._seed;
Expand All @@ -64,7 +64,7 @@ class XORShift extends PRNG {
* Converts seed into BigInt + takes steps to reset generator.
*
* @public
* @param {number | BigInt} seed -> New seed to set.
* @param {number | bigint} seed -> New seed to set.
*/
set seed(seed) {
this._seed = this.cast(BigInt(seed), 32);
Expand Down
20 changes: 10 additions & 10 deletions src/xorshift128.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@ import { MAX32 } from './constants.js';
*
* @class
* @extends {PRNG}
* @param {number | BigInt} seed -> Initial seed.
* @param {number | BigInt} y -> First bit shift parameter.
* @param {number | BigInt} z -> Second bit shift parameter.
* @param {number | BigInt} w -> Third bit shift parameter.
* @param {number | bigint} seed -> Initial seed.
* @param {number | bigint} y -> First bit shift parameter.
* @param {number | bigint} z -> Second bit shift parameter.
* @param {number | bigint} w -> Third bit shift parameter.
*/
class XORShift128 extends PRNG {
/**
* @constructor
* @param {number | BigInt} seed -> Initial seed.
* @param {number | BigInt} y -> First bit shift parameter.
* @param {number | BigInt} z -> Second bit shift parameter.
* @param {number | BigInt} w -> Third bit shift parameter.
* @param {number | bigint} seed -> Initial seed.
* @param {number | bigint} y -> First bit shift parameter.
* @param {number | bigint} z -> Second bit shift parameter.
* @param {number | bigint} w -> Third bit shift parameter.
*/
constructor(seed = Date.now(), y = 362436069, z = 521288629, w = 88675123) {
super(MAX32, BigInt(seed));
Expand All @@ -46,7 +46,7 @@ class XORShift128 extends PRNG {
* Seed getter.
*
* @public
* @returns {number | BigInt} Retrieves seed.
* @returns {number | bigint} Retrieves seed.
*/
get seed() {
return this._seed;
Expand All @@ -56,7 +56,7 @@ class XORShift128 extends PRNG {
* Converts seed into BigInt + takes steps to reset generator.
*
* @public
* @param {number | BigInt} seed -> New seed to set.
* @param {number | bigint} seed -> New seed to set.
*/
set seed(seed) {
this._seed = this.cast(BigInt(seed), 32);
Expand Down

0 comments on commit 4c524da

Please sign in to comment.