@ohos-ports/stdlib-simulate 0.4.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +177 -0
- package/NOTICE +1 -0
- package/README.md +188 -0
- package/SECURITY.md +5 -0
- package/docs/types/index.d.ts +43 -0
- package/iter/README.md +142 -0
- package/iter/awgn/README.md +240 -0
- package/iter/awgn/docs/repl.txt +85 -0
- package/iter/awgn/docs/types/index.d.ts +155 -0
- package/iter/awgn/docs/types/test.ts +150 -0
- package/iter/awgn/lib/defaults.js +38 -0
- package/iter/awgn/lib/index.js +55 -0
- package/iter/awgn/lib/main.js +278 -0
- package/iter/awgn/package.json +68 -0
- package/iter/awln/README.md +238 -0
- package/iter/awln/docs/repl.txt +85 -0
- package/iter/awln/docs/types/index.d.ts +155 -0
- package/iter/awln/docs/types/test.ts +150 -0
- package/iter/awln/lib/defaults.js +38 -0
- package/iter/awln/lib/index.js +55 -0
- package/iter/awln/lib/main.js +299 -0
- package/iter/awln/package.json +72 -0
- package/iter/awun/README.md +238 -0
- package/iter/awun/docs/repl.txt +85 -0
- package/iter/awun/docs/types/index.d.ts +155 -0
- package/iter/awun/docs/types/test.ts +150 -0
- package/iter/awun/lib/defaults.js +38 -0
- package/iter/awun/lib/index.js +55 -0
- package/iter/awun/lib/main.js +305 -0
- package/iter/awun/package.json +68 -0
- package/iter/bartlett-hann-pulse/README.md +331 -0
- package/iter/bartlett-hann-pulse/docs/img/equation_bartlett_hann_pulse_waveform.svg +191 -0
- package/iter/bartlett-hann-pulse/docs/repl.txt +54 -0
- package/iter/bartlett-hann-pulse/docs/types/index.d.ts +105 -0
- package/iter/bartlett-hann-pulse/docs/types/test.ts +89 -0
- package/iter/bartlett-hann-pulse/lib/index.js +54 -0
- package/iter/bartlett-hann-pulse/lib/main.js +192 -0
- package/iter/bartlett-hann-pulse/lib/validate.js +97 -0
- package/iter/bartlett-hann-pulse/package.json +76 -0
- package/iter/bartlett-pulse/README.md +328 -0
- package/iter/bartlett-pulse/docs/img/equation_bartlett_pulse_waveform.svg +128 -0
- package/iter/bartlett-pulse/docs/repl.txt +54 -0
- package/iter/bartlett-pulse/docs/types/index.d.ts +105 -0
- package/iter/bartlett-pulse/docs/types/test.ts +89 -0
- package/iter/bartlett-pulse/lib/index.js +54 -0
- package/iter/bartlett-pulse/lib/main.js +169 -0
- package/iter/bartlett-pulse/lib/validate.js +97 -0
- package/iter/bartlett-pulse/package.json +72 -0
- package/iter/cosine-wave/README.md +292 -0
- package/iter/cosine-wave/docs/img/equation_cosine_waveform.svg +55 -0
- package/iter/cosine-wave/docs/repl.txt +51 -0
- package/iter/cosine-wave/docs/types/index.d.ts +96 -0
- package/iter/cosine-wave/docs/types/test.ts +78 -0
- package/iter/cosine-wave/lib/index.js +54 -0
- package/iter/cosine-wave/lib/main.js +156 -0
- package/iter/cosine-wave/lib/validate.js +90 -0
- package/iter/cosine-wave/package.json +70 -0
- package/iter/dirac-comb/README.md +278 -0
- package/iter/dirac-comb/docs/img/equation_dirac_comb.svg +44 -0
- package/iter/dirac-comb/docs/repl.txt +48 -0
- package/iter/dirac-comb/docs/types/index.d.ts +89 -0
- package/iter/dirac-comb/docs/types/test.ts +78 -0
- package/iter/dirac-comb/lib/index.js +54 -0
- package/iter/dirac-comb/lib/main.js +152 -0
- package/iter/dirac-comb/lib/validate.js +82 -0
- package/iter/dirac-comb/package.json +72 -0
- package/iter/docs/types/index.d.ts +678 -0
- package/iter/docs/types/test.ts +29 -0
- package/iter/flat-top-pulse/README.md +330 -0
- package/iter/flat-top-pulse/docs/img/equation_flat_top_pulse_waveform.svg +177 -0
- package/iter/flat-top-pulse/docs/repl.txt +54 -0
- package/iter/flat-top-pulse/docs/types/index.d.ts +105 -0
- package/iter/flat-top-pulse/docs/types/test.ts +89 -0
- package/iter/flat-top-pulse/lib/index.js +54 -0
- package/iter/flat-top-pulse/lib/main.js +193 -0
- package/iter/flat-top-pulse/lib/validate.js +97 -0
- package/iter/flat-top-pulse/package.json +71 -0
- package/iter/hann-pulse/README.md +328 -0
- package/iter/hann-pulse/docs/img/equation_hann_pulse_waveform.svg +129 -0
- package/iter/hann-pulse/docs/repl.txt +54 -0
- package/iter/hann-pulse/docs/types/index.d.ts +105 -0
- package/iter/hann-pulse/docs/types/test.ts +89 -0
- package/iter/hann-pulse/lib/index.js +54 -0
- package/iter/hann-pulse/lib/main.js +171 -0
- package/iter/hann-pulse/lib/validate.js +97 -0
- package/iter/hann-pulse/package.json +72 -0
- package/iter/lanczos-pulse/README.md +325 -0
- package/iter/lanczos-pulse/docs/img/equation_lanczos_pulse_waveform.svg +122 -0
- package/iter/lanczos-pulse/docs/repl.txt +54 -0
- package/iter/lanczos-pulse/docs/types/index.d.ts +105 -0
- package/iter/lanczos-pulse/docs/types/test.ts +89 -0
- package/iter/lanczos-pulse/lib/index.js +54 -0
- package/iter/lanczos-pulse/lib/main.js +169 -0
- package/iter/lanczos-pulse/lib/validate.js +97 -0
- package/iter/lanczos-pulse/package.json +70 -0
- package/iter/lib/index.js +186 -0
- package/iter/package.json +63 -0
- package/iter/periodic-sinc/README.md +301 -0
- package/iter/periodic-sinc/docs/img/equation_periodic_sinc.svg +146 -0
- package/iter/periodic-sinc/docs/img/equation_periodic_sinc_in_terms_of_period.svg +164 -0
- package/iter/periodic-sinc/docs/img/equation_periodic_sinc_in_terms_of_sinc_function.svg +65 -0
- package/iter/periodic-sinc/docs/img/equation_periodic_sinc_substitution_even.svg +34 -0
- package/iter/periodic-sinc/docs/img/equation_periodic_sinc_substitution_odd.svg +34 -0
- package/iter/periodic-sinc/docs/repl.txt +54 -0
- package/iter/periodic-sinc/docs/types/index.d.ts +98 -0
- package/iter/periodic-sinc/docs/types/test.ts +102 -0
- package/iter/periodic-sinc/lib/index.js +50 -0
- package/iter/periodic-sinc/lib/main.js +241 -0
- package/iter/periodic-sinc/lib/validate.js +90 -0
- package/iter/periodic-sinc/package.json +70 -0
- package/iter/pulse/README.md +322 -0
- package/iter/pulse/docs/img/equation_pulse_waveform.svg +115 -0
- package/iter/pulse/docs/repl.txt +58 -0
- package/iter/pulse/docs/types/index.d.ts +109 -0
- package/iter/pulse/docs/types/test.ts +100 -0
- package/iter/pulse/lib/index.js +54 -0
- package/iter/pulse/lib/main.js +165 -0
- package/iter/pulse/lib/validate.js +105 -0
- package/iter/pulse/package.json +69 -0
- package/iter/sawtooth-wave/README.md +289 -0
- package/iter/sawtooth-wave/docs/img/equation_sawtooth_waveform.svg +73 -0
- package/iter/sawtooth-wave/docs/repl.txt +51 -0
- package/iter/sawtooth-wave/docs/types/index.d.ts +96 -0
- package/iter/sawtooth-wave/docs/types/test.ts +78 -0
- package/iter/sawtooth-wave/lib/index.js +54 -0
- package/iter/sawtooth-wave/lib/main.js +161 -0
- package/iter/sawtooth-wave/lib/validate.js +90 -0
- package/iter/sawtooth-wave/package.json +67 -0
- package/iter/sine-wave/README.md +292 -0
- package/iter/sine-wave/docs/img/equation_sine_waveform.svg +55 -0
- package/iter/sine-wave/docs/repl.txt +51 -0
- package/iter/sine-wave/docs/types/index.d.ts +96 -0
- package/iter/sine-wave/docs/types/test.ts +78 -0
- package/iter/sine-wave/lib/index.js +54 -0
- package/iter/sine-wave/lib/main.js +156 -0
- package/iter/sine-wave/lib/validate.js +90 -0
- package/iter/sine-wave/package.json +70 -0
- package/iter/square-wave/README.md +291 -0
- package/iter/square-wave/docs/img/equation_square_waveform.svg +115 -0
- package/iter/square-wave/docs/repl.txt +55 -0
- package/iter/square-wave/docs/types/index.d.ts +105 -0
- package/iter/square-wave/docs/types/test.ts +89 -0
- package/iter/square-wave/lib/index.js +54 -0
- package/iter/square-wave/lib/main.js +156 -0
- package/iter/square-wave/lib/validate.js +99 -0
- package/iter/square-wave/package.json +67 -0
- package/iter/triangle-wave/README.md +289 -0
- package/iter/triangle-wave/docs/img/equation_triangle_waveform.svg +75 -0
- package/iter/triangle-wave/docs/repl.txt +51 -0
- package/iter/triangle-wave/docs/types/index.d.ts +96 -0
- package/iter/triangle-wave/docs/types/test.ts +78 -0
- package/iter/triangle-wave/lib/index.js +54 -0
- package/iter/triangle-wave/lib/main.js +160 -0
- package/iter/triangle-wave/lib/validate.js +90 -0
- package/iter/triangle-wave/package.json +66 -0
- package/lib/index.js +51 -0
- package/package.json +72 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
|
|
2
|
+
{{alias}}( iterator, sigma[, options] )
|
|
3
|
+
Returns an iterator which introduces additive white Laplacian noise (AWLN)
|
|
4
|
+
with standard deviation `sigma`.
|
|
5
|
+
|
|
6
|
+
If an environment supports Symbol.iterator and the provided iterator is
|
|
7
|
+
iterable, the returned iterator is iterable.
|
|
8
|
+
|
|
9
|
+
Parameters
|
|
10
|
+
----------
|
|
11
|
+
iterator: Object
|
|
12
|
+
Input iterator.
|
|
13
|
+
|
|
14
|
+
sigma: number
|
|
15
|
+
Standard deviation of the noise.
|
|
16
|
+
|
|
17
|
+
options: Object (optional)
|
|
18
|
+
Options.
|
|
19
|
+
|
|
20
|
+
options.prng: Function (optional)
|
|
21
|
+
Pseudorandom number generator (PRNG) for generating uniformly
|
|
22
|
+
distributed pseudorandom numbers on the interval [0,1). If provided, the
|
|
23
|
+
`state` and `seed` options are ignored. In order to seed the returned
|
|
24
|
+
iterator, one must seed the provided `prng` (assuming the provided
|
|
25
|
+
`prng` is seedable).
|
|
26
|
+
|
|
27
|
+
options.seed: integer|ArrayLikeObject<integer> (optional)
|
|
28
|
+
Pseudorandom number generator seed. The seed may be either a positive
|
|
29
|
+
unsigned 32-bit integer or, for arbitrary length seeds, an array-like
|
|
30
|
+
object containing unsigned 32-bit integers.
|
|
31
|
+
|
|
32
|
+
options.state: Uint32Array (optional)
|
|
33
|
+
Pseudorandom number generator state. If provided, the `seed` option is
|
|
34
|
+
ignored.
|
|
35
|
+
|
|
36
|
+
options.copy: boolean (optional)
|
|
37
|
+
Boolean indicating whether to copy a provided pseudorandom number
|
|
38
|
+
generator state. Setting this option to `false` allows sharing state
|
|
39
|
+
between two or more pseudorandom number generators. Setting this option
|
|
40
|
+
to `true` ensures that a returned iterator has exclusive control over
|
|
41
|
+
its internal state. Default: true.
|
|
42
|
+
|
|
43
|
+
Returns
|
|
44
|
+
-------
|
|
45
|
+
iterator: Object
|
|
46
|
+
Iterator.
|
|
47
|
+
|
|
48
|
+
iterator.next(): Function
|
|
49
|
+
Returns an iterator protocol-compliant object containing the next
|
|
50
|
+
iterated value (if one exists) and a boolean flag indicating whether the
|
|
51
|
+
iterator is finished.
|
|
52
|
+
|
|
53
|
+
iterator.return( [value] ): Function
|
|
54
|
+
Finishes an iterator and returns a provided value.
|
|
55
|
+
|
|
56
|
+
iterator.PRNG: Function
|
|
57
|
+
Underlying pseudorandom number generator.
|
|
58
|
+
|
|
59
|
+
iterator.seed: Uint32Array|null
|
|
60
|
+
Pseudorandom number generator seed.
|
|
61
|
+
|
|
62
|
+
iterator.seedLength: integer|null
|
|
63
|
+
Length of generator seed.
|
|
64
|
+
|
|
65
|
+
iterator.state: Uint32Array|null
|
|
66
|
+
Pseudorandom random number generator state.
|
|
67
|
+
|
|
68
|
+
iterator.stateLength: integer|null
|
|
69
|
+
Length of generator state.
|
|
70
|
+
|
|
71
|
+
iterator.byteLength: integer|null
|
|
72
|
+
Size (in bytes) of generator state.
|
|
73
|
+
|
|
74
|
+
Examples
|
|
75
|
+
--------
|
|
76
|
+
> var src = {{alias:@stdlib/simulate/iter/sine-wave}}();
|
|
77
|
+
> var it = {{alias}}( src, 0.5 );
|
|
78
|
+
> var v = it.next().value
|
|
79
|
+
<number>
|
|
80
|
+
> v = it.next().value
|
|
81
|
+
<number>
|
|
82
|
+
|
|
83
|
+
See Also
|
|
84
|
+
--------
|
|
85
|
+
|
|
@@ -0,0 +1,155 @@
|
|
|
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: 4.1
|
|
20
|
+
|
|
21
|
+
/// <reference types="@stdlib/types"/>
|
|
22
|
+
|
|
23
|
+
import { Iterator as Iter, IterableIterator } from '@stdlib/types/iter';
|
|
24
|
+
import * as random from '@stdlib/types/random';
|
|
25
|
+
|
|
26
|
+
// Define a union type representing both iterable and non-iterable iterators:
|
|
27
|
+
type Iterator = Iter | IterableIterator;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Interface defining function options.
|
|
31
|
+
*/
|
|
32
|
+
interface Options {
|
|
33
|
+
/**
|
|
34
|
+
* Pseudorandom number generator which generates uniformly distributed pseudorandom numbers on the interval `[0,1)`.
|
|
35
|
+
*
|
|
36
|
+
* ## Notes
|
|
37
|
+
*
|
|
38
|
+
* - If provided, the `state` and `seed` options are ignored. In order to seed the returned iterator, one must seed the provided `prng` (assuming the provided `prng` is seedable).
|
|
39
|
+
*/
|
|
40
|
+
prng?: random.PRNG;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Pseudorandom number generator state.
|
|
44
|
+
*
|
|
45
|
+
* ## Notes
|
|
46
|
+
*
|
|
47
|
+
* - If provided, the `seed` option is ignored.
|
|
48
|
+
*/
|
|
49
|
+
state?: random.PRNGStateMT19937;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Pseudorandom number generator seed.
|
|
53
|
+
*/
|
|
54
|
+
seed?: random.PRNGSeedMT19937;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Specifies whether to copy a provided pseudorandom number generator state.
|
|
58
|
+
*
|
|
59
|
+
* ## Notes
|
|
60
|
+
*
|
|
61
|
+
* - Setting this option to `false` allows sharing state between two or more pseudorandom number generators. Setting this option to `true` ensures that a returned iterator has exclusive control over its internal state.
|
|
62
|
+
*/
|
|
63
|
+
copy?: boolean;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Interface defining a returned iterator.
|
|
68
|
+
*/
|
|
69
|
+
interface ExtendedIter extends Iter {
|
|
70
|
+
/**
|
|
71
|
+
* Underlying PRNG.
|
|
72
|
+
*/
|
|
73
|
+
readonly PRNG: random.PRNG;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* PRNG seed.
|
|
77
|
+
*/
|
|
78
|
+
readonly seed: random.PRNGSeedMT19937 | null;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* PRNG seed length.
|
|
82
|
+
*/
|
|
83
|
+
readonly seedLength: number | null;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* PRNG state.
|
|
87
|
+
*/
|
|
88
|
+
state: random.PRNGStateMT19937 | null;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* PRNG state length.
|
|
92
|
+
*/
|
|
93
|
+
readonly stateLength: number | null;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* PRNG state size (in bytes).
|
|
97
|
+
*/
|
|
98
|
+
readonly byteLength: number | null;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Interface defining a returned iterable iterator.
|
|
103
|
+
*/
|
|
104
|
+
interface ExtendedIterableIterator extends ExtendedIter {
|
|
105
|
+
/**
|
|
106
|
+
* Returns a new iterable iterator.
|
|
107
|
+
*
|
|
108
|
+
* @returns iterable iterator
|
|
109
|
+
*/
|
|
110
|
+
[Symbol.iterator](): IterableIterator;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Define a union type representing both iterable and non-iterable returned iterators:
|
|
114
|
+
type ExtendedIterator = ExtendedIter | ExtendedIterableIterator;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Returns an iterator which introduces additive white Laplacian (a.k.a. biexponential or double-exponential) noise with standard deviation `sigma`.
|
|
118
|
+
*
|
|
119
|
+
* @param iterator - input iterator
|
|
120
|
+
* @param sigma - standard deviation of the noise
|
|
121
|
+
* @param options - function options
|
|
122
|
+
* @param options.prng - pseudorandom number generator for generating uniformly distributed pseudorandom numbers on the interval `[0,1)`
|
|
123
|
+
* @param options.state - pseudorandom number generator state
|
|
124
|
+
* @param options.seed - pseudorandom number generator seed
|
|
125
|
+
* @param options.copy - boolean indicating whether to copy a provided pseudorandom number generator state (default: true)
|
|
126
|
+
* @throws `sigma` must be a positive number
|
|
127
|
+
* @throws must provide a valid state
|
|
128
|
+
* @returns iterator
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* var iterSineWave = require( '@stdlib/simulate/iter/sine-wave' );
|
|
132
|
+
*
|
|
133
|
+
* var sine = iterSineWave({
|
|
134
|
+
* 'iter': 100
|
|
135
|
+
* });
|
|
136
|
+
*
|
|
137
|
+
* var it = iterawln( sine, 0.5 );
|
|
138
|
+
*
|
|
139
|
+
* var v = it.next().value;
|
|
140
|
+
* // returns <number>
|
|
141
|
+
*
|
|
142
|
+
* v = it.next().value;
|
|
143
|
+
* // returns <number>
|
|
144
|
+
*
|
|
145
|
+
* v = it.next().value;
|
|
146
|
+
* // returns <number>
|
|
147
|
+
*
|
|
148
|
+
* // ...
|
|
149
|
+
*/
|
|
150
|
+
declare function iterawln( iterator: Iterator, sigma: number, options?: Options ): ExtendedIterator;
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
// EXPORTS //
|
|
154
|
+
|
|
155
|
+
export = iterawln;
|
|
@@ -0,0 +1,150 @@
|
|
|
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
|
+
import iterawln = require( './index' );
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Returns an iterator protocol-compliant object.
|
|
23
|
+
*
|
|
24
|
+
* @returns iterator protocol-compliant object
|
|
25
|
+
*/
|
|
26
|
+
function iterator() {
|
|
27
|
+
return {
|
|
28
|
+
'next': next
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Implements the iterator protocol `next` method.
|
|
33
|
+
*
|
|
34
|
+
* @returns iterator protocol-compliant object
|
|
35
|
+
*/
|
|
36
|
+
function next() {
|
|
37
|
+
return {
|
|
38
|
+
'value': true,
|
|
39
|
+
'done': false
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
// TESTS //
|
|
46
|
+
|
|
47
|
+
// The function returns an iterator...
|
|
48
|
+
{
|
|
49
|
+
iterawln( iterator(), 0.2 ); // $ExpectType ExtendedIterator
|
|
50
|
+
iterawln( iterator(), 0.2, {} ); // $ExpectType ExtendedIterator
|
|
51
|
+
iterawln( iterator(), 0.2, { 'seed': 12345 } ); // $ExpectType ExtendedIterator
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// The compiler throws an error if the function is provided a first argument which is not an iterator protocol-compliant object...
|
|
55
|
+
{
|
|
56
|
+
iterawln( '5', 1.0 ); // $ExpectError
|
|
57
|
+
iterawln( 5, 1.0 ); // $ExpectError
|
|
58
|
+
iterawln( true, 1.0 ); // $ExpectError
|
|
59
|
+
iterawln( false, 1.0 ); // $ExpectError
|
|
60
|
+
iterawln( null, 1.0 ); // $ExpectError
|
|
61
|
+
iterawln( undefined, 1.0 ); // $ExpectError
|
|
62
|
+
iterawln( [], 1.0 ); // $ExpectError
|
|
63
|
+
iterawln( {}, 1.0 ); // $ExpectError
|
|
64
|
+
iterawln( ( x: number ): number => x, 1.0 ); // $ExpectError
|
|
65
|
+
|
|
66
|
+
iterawln( '5', 1.0, {} ); // $ExpectError
|
|
67
|
+
iterawln( 5, 1.0, {} ); // $ExpectError
|
|
68
|
+
iterawln( true, 1.0, {} ); // $ExpectError
|
|
69
|
+
iterawln( false, 1.0, {} ); // $ExpectError
|
|
70
|
+
iterawln( null, 1.0, {} ); // $ExpectError
|
|
71
|
+
iterawln( undefined, 1.0, {} ); // $ExpectError
|
|
72
|
+
iterawln( [], 1.0, {} ); // $ExpectError
|
|
73
|
+
iterawln( {}, 1.0, {} ); // $ExpectError
|
|
74
|
+
iterawln( ( x: number ): number => x, 1.0, {} ); // $ExpectError
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// The compiler throws an error if the function is provided a second argument which is not a number...
|
|
78
|
+
{
|
|
79
|
+
iterawln( iterator(), '5' ); // $ExpectError
|
|
80
|
+
iterawln( iterator(), true ); // $ExpectError
|
|
81
|
+
iterawln( iterator(), false ); // $ExpectError
|
|
82
|
+
iterawln( iterator(), null ); // $ExpectError
|
|
83
|
+
iterawln( iterator(), undefined ); // $ExpectError
|
|
84
|
+
iterawln( iterator(), [] ); // $ExpectError
|
|
85
|
+
iterawln( iterator(), {} ); // $ExpectError
|
|
86
|
+
iterawln( iterator(), ( x: number ): number => x ); // $ExpectError
|
|
87
|
+
|
|
88
|
+
iterawln( iterator(), '5', {} ); // $ExpectError
|
|
89
|
+
iterawln( iterator(), true, {} ); // $ExpectError
|
|
90
|
+
iterawln( iterator(), false, {} ); // $ExpectError
|
|
91
|
+
iterawln( iterator(), null, {} ); // $ExpectError
|
|
92
|
+
iterawln( iterator(), undefined, {} ); // $ExpectError
|
|
93
|
+
iterawln( iterator(), [], {} ); // $ExpectError
|
|
94
|
+
iterawln( iterator(), {}, {} ); // $ExpectError
|
|
95
|
+
iterawln( iterator(), ( x: number ): number => x, {} ); // $ExpectError
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// The compiler throws an error if the function is provided a third argument which is not an object...
|
|
99
|
+
{
|
|
100
|
+
iterawln( iterator(), 1.0, null ); // $ExpectError
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// The compiler throws an error if the function is provided an invalid `seed` option...
|
|
104
|
+
{
|
|
105
|
+
iterawln( iterator(), 1.0, { 'seed': '5' } ); // $ExpectError
|
|
106
|
+
iterawln( iterator(), 1.0, { 'seed': true } ); // $ExpectError
|
|
107
|
+
iterawln( iterator(), 1.0, { 'seed': false } ); // $ExpectError
|
|
108
|
+
iterawln( iterator(), 1.0, { 'seed': null } ); // $ExpectError
|
|
109
|
+
iterawln( iterator(), 1.0, { 'seed': {} } ); // $ExpectError
|
|
110
|
+
iterawln( iterator(), 1.0, { 'seed': ( x: number ): number => x } ); // $ExpectError
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// The compiler throws an error if the function is provided an invalid `prng` option...
|
|
114
|
+
{
|
|
115
|
+
iterawln( iterator(), 1.0, { 'prng': '5' } ); // $ExpectError
|
|
116
|
+
iterawln( iterator(), 1.0, { 'prng': 5 } ); // $ExpectError
|
|
117
|
+
iterawln( iterator(), 1.0, { 'prng': true } ); // $ExpectError
|
|
118
|
+
iterawln( iterator(), 1.0, { 'prng': false } ); // $ExpectError
|
|
119
|
+
iterawln( iterator(), 1.0, { 'prng': null } ); // $ExpectError
|
|
120
|
+
iterawln( iterator(), 1.0, { 'prng': [] } ); // $ExpectError
|
|
121
|
+
iterawln( iterator(), 1.0, { 'prng': {} } ); // $ExpectError
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// The compiler throws an error if the function is provided an invalid `state` option...
|
|
125
|
+
{
|
|
126
|
+
iterawln( iterator(), 1.0, { 'state': '5' } ); // $ExpectError
|
|
127
|
+
iterawln( iterator(), 1.0, { 'state': 5 } ); // $ExpectError
|
|
128
|
+
iterawln( iterator(), 1.0, { 'state': true } ); // $ExpectError
|
|
129
|
+
iterawln( iterator(), 1.0, { 'state': false } ); // $ExpectError
|
|
130
|
+
iterawln( iterator(), 1.0, { 'state': null } ); // $ExpectError
|
|
131
|
+
iterawln( iterator(), 1.0, { 'state': [] } ); // $ExpectError
|
|
132
|
+
iterawln( iterator(), 1.0, { 'state': {} } ); // $ExpectError
|
|
133
|
+
iterawln( iterator(), 1.0, { 'state': ( x: number ): number => x } ); // $ExpectError
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// The compiler throws an error if the function is provided an invalid `copy` option...
|
|
137
|
+
{
|
|
138
|
+
iterawln( iterator(), 1.0, { 'copy': '5' } ); // $ExpectError
|
|
139
|
+
iterawln( iterator(), 1.0, { 'copy': 5 } ); // $ExpectError
|
|
140
|
+
iterawln( iterator(), 1.0, { 'copy': null } ); // $ExpectError
|
|
141
|
+
iterawln( iterator(), 1.0, { 'copy': [] } ); // $ExpectError
|
|
142
|
+
iterawln( iterator(), 1.0, { 'copy': {} } ); // $ExpectError
|
|
143
|
+
iterawln( iterator(), 1.0, { 'copy': ( x: number ): number => x } ); // $ExpectError
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// The compiler throws an error if the function is provided insufficient arguments...
|
|
147
|
+
{
|
|
148
|
+
iterawln(); // $ExpectError
|
|
149
|
+
iterawln( iterator() ); // $ExpectError
|
|
150
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Apache-2.0
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2023 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
|
+
'use strict';
|
|
20
|
+
|
|
21
|
+
// MAIN //
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Returns default options.
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @returns {Object} default options
|
|
28
|
+
*/
|
|
29
|
+
function defaults() {
|
|
30
|
+
return {
|
|
31
|
+
'copy': true
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
// EXPORTS //
|
|
37
|
+
|
|
38
|
+
module.exports = defaults;
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
'use strict';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Create an iterator which introduces additive white Laplacian noise (AWLN).
|
|
23
|
+
*
|
|
24
|
+
* @module @stdlib/simulate/iter/awln
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* var iterSineWave = require( '@stdlib/simulate/iter/sine-wave' );
|
|
28
|
+
* var iterawln = require( '@stdlib/simulate/iter/awln' );
|
|
29
|
+
*
|
|
30
|
+
* var sine = iterSineWave({
|
|
31
|
+
* 'iter': 100
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* var it = iterawln( sine, 0.5 );
|
|
35
|
+
*
|
|
36
|
+
* var v = it.next().value;
|
|
37
|
+
* // returns <number>
|
|
38
|
+
*
|
|
39
|
+
* v = it.next().value;
|
|
40
|
+
* // returns <number>
|
|
41
|
+
*
|
|
42
|
+
* v = it.next().value;
|
|
43
|
+
* // returns <number>
|
|
44
|
+
*
|
|
45
|
+
* // ...
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
// MODULES //
|
|
49
|
+
|
|
50
|
+
var main = require( './main.js' );
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
// EXPORTS //
|
|
54
|
+
|
|
55
|
+
module.exports = main;
|