Skip to content

Commit ef6fc14

Browse files
committed
Add Typescript definition
1 parent 3031cb6 commit ef6fc14

File tree

4 files changed

+417
-2
lines changed

4 files changed

+417
-2
lines changed

lib/node_modules/@stdlib/random/base/t/docs/repl.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
{{alias}}( v )
33
Returns a pseudorandom number drawn from a Student's t distribution.
44

5-
If `v <= 0` or `v` is `NaN`, the function
6-
returns `NaN`.
5+
If `v <= 0` or `v` is `NaN`, the function returns `NaN`.
76

87
Parameters
98
----------
Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,231 @@
1+
/*
2+
* @license Apache-2.0
3+
*
4+
* Copyright (c) 2019 The Stdlib Authors.
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
18+
19+
// TypeScript Version: 2.0
20+
21+
/// <reference types="@stdlib/types"/>
22+
23+
import * as random from '@stdlib/types/random';
24+
25+
/**
26+
* Interface defining `factory` options.
27+
*/
28+
interface Options {
29+
/**
30+
* Pseudorandom number generator which generates uniformly distributed pseudorandom numbers.
31+
*/
32+
prng?: random.PRNG;
33+
34+
/**
35+
* Pseudorandom number generator seed.
36+
*/
37+
seed?: random.PRNGSeedMT19937;
38+
39+
/**
40+
* Pseudorandom number generator state.
41+
*/
42+
state?: random.PRNGStateMT19937;
43+
44+
/**
45+
* Specifies whether to copy a provided pseudorandom number generator state.
46+
*/
47+
copy?: boolean;
48+
}
49+
50+
/**
51+
* Interface for PRNG properties and methods.
52+
*/
53+
interface PRNG {
54+
/**
55+
* Generator name.
56+
*/
57+
readonly NAME: string;
58+
59+
/**
60+
* Underlying pseudorandom number generator.
61+
*/
62+
readonly PRNG: random.PRNG;
63+
64+
/**
65+
* PRNG seed.
66+
*/
67+
readonly seed: random.PRNGSeedMT19937;
68+
69+
/**
70+
* PRNG seed length.
71+
*/
72+
readonly seedLength: number;
73+
74+
/**
75+
* PRNG state.
76+
*/
77+
state: random.PRNGStateMT19937;
78+
79+
/**
80+
* PRNG state length.
81+
*/
82+
readonly stateLength: number;
83+
84+
/**
85+
* PRNG state size (in bytes).
86+
*/
87+
readonly byteLength: number;
88+
89+
/**
90+
* Serializes the pseudorandom number generator as a JSON object.
91+
*
92+
* @returns out - JSON representation
93+
*/
94+
toJSON(): string;
95+
}
96+
97+
/**
98+
* Interface for generating t-distributed pseudorandom numbers with pre-specified parameter values.
99+
*/
100+
interface NullaryFunction extends PRNG {
101+
/**
102+
* Returns a t-distributed pseudorandom number.
103+
*
104+
* @returns pseudorandom number
105+
*/
106+
(): number;
107+
}
108+
109+
/**
110+
* Interface for generating t-distributed pseudorandom numbers without pre-specified parameter values.
111+
*/
112+
interface BinaryFunction extends PRNG {
113+
/**
114+
* Returns a t-distributed pseudorandom number.
115+
*
116+
* @param v - degrees of freedom
117+
* @returns pseudorandom number
118+
*/
119+
( v: number ): number;
120+
}
121+
122+
/**
123+
* Interface for generating pseudorandom numbers drawn from a Student's t-distribution.
124+
*/
125+
interface Random extends PRNG {
126+
/**
127+
* Returns a t-distributed pseudorandom number.
128+
*
129+
* ## Notes
130+
*
131+
* - If `v <= 0`, the function returns `NaN`.
132+
* - If `v` is `NaN`, the function returns `NaN`.
133+
*
134+
* @param v - degrees of freedom
135+
* @returns pseudorandom number
136+
*
137+
* @example
138+
* var v = t( 1.5 );
139+
* // returns <number>
140+
*/
141+
( v: number ): number;
142+
143+
/**
144+
* Returns a pseudorandom number generator for generating t-distributed random numbers.
145+
*
146+
* ## Notes
147+
*
148+
* - When provided `v`, the returned PRNG returns random variates drawn from the specified distribution.
149+
*
150+
* @param v - degrees of freedom
151+
* @param options - function options
152+
* @param options.prng - pseudorandom number generator which generates uniformly distributed pseudorandom numbers
153+
* @param options.seed - pseudorandom number generator seed
154+
* @param options.state - pseudorandom number generator state
155+
* @param options.copy - boolean indicating whether to copy a provided pseudorandom number generator state (default: true)
156+
* @throws must provide a valid state
157+
* @returns pseudorandom number generator
158+
*
159+
* @example
160+
* var myt = t.factory( 1.5 );
161+
*
162+
* var v = myt();
163+
* // returns <number>
164+
*
165+
* @example
166+
* var myt = t.factory( 2.3, {
167+
* 'seed': 297
168+
* });
169+
* var v = myt();
170+
* // returns <number>
171+
*/
172+
factory( v: number, options?: Options ): NullaryFunction;
173+
174+
/**
175+
* Returns a pseudorandom number generator for generating t-distributed random numbers.
176+
*
177+
* ## Notes
178+
*
179+
* - When not provided `v`, the returned PRNG requires that `v` be provided at each invocation.
180+
*
181+
* @param options - function options
182+
* @param options.prng - pseudorandom number generator which generates uniformly distributed pseudorandom numbers
183+
* @param options.seed - pseudorandom number generator seed
184+
* @param options.state - pseudorandom number generator state
185+
* @param options.copy - boolean indicating whether to copy a provided pseudorandom number generator state (default: true)
186+
* @throws must provide a valid state
187+
* @returns pseudorandom number generator
188+
*
189+
* @example
190+
* var myt = t.factory();
191+
*
192+
* var v = myt( 1.5 );
193+
* // returns <number>
194+
*
195+
* @example
196+
* var myt = t.factory({
197+
* 'seed': 297
198+
* });
199+
* var v = myt( 2.3 );
200+
* // returns <number>
201+
*/
202+
factory( options?: Options ): BinaryFunction;
203+
}
204+
205+
/**
206+
* Returns a t-distributed pseudorandom number.
207+
*
208+
* ## Notes
209+
*
210+
* - If `v <= 0`, the function returns `NaN`.
211+
* - If `v` is `NaN`, the function returns `NaN`.
212+
*
213+
* @param v - degrees of freedom
214+
* @returns pseudorandom number
215+
*
216+
* @example
217+
* var v = t( 1.5 );
218+
* // returns <number>
219+
*
220+
* @example
221+
* var myt = t.factory( 1.5 );
222+
*
223+
* var v = myt();
224+
* // returns <number>
225+
*/
226+
declare var t: Random;
227+
228+
229+
// EXPORTS //
230+
231+
export = t;

0 commit comments

Comments
 (0)