@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.
Files changed (157) hide show
  1. package/LICENSE +177 -0
  2. package/NOTICE +1 -0
  3. package/README.md +188 -0
  4. package/SECURITY.md +5 -0
  5. package/docs/types/index.d.ts +43 -0
  6. package/iter/README.md +142 -0
  7. package/iter/awgn/README.md +240 -0
  8. package/iter/awgn/docs/repl.txt +85 -0
  9. package/iter/awgn/docs/types/index.d.ts +155 -0
  10. package/iter/awgn/docs/types/test.ts +150 -0
  11. package/iter/awgn/lib/defaults.js +38 -0
  12. package/iter/awgn/lib/index.js +55 -0
  13. package/iter/awgn/lib/main.js +278 -0
  14. package/iter/awgn/package.json +68 -0
  15. package/iter/awln/README.md +238 -0
  16. package/iter/awln/docs/repl.txt +85 -0
  17. package/iter/awln/docs/types/index.d.ts +155 -0
  18. package/iter/awln/docs/types/test.ts +150 -0
  19. package/iter/awln/lib/defaults.js +38 -0
  20. package/iter/awln/lib/index.js +55 -0
  21. package/iter/awln/lib/main.js +299 -0
  22. package/iter/awln/package.json +72 -0
  23. package/iter/awun/README.md +238 -0
  24. package/iter/awun/docs/repl.txt +85 -0
  25. package/iter/awun/docs/types/index.d.ts +155 -0
  26. package/iter/awun/docs/types/test.ts +150 -0
  27. package/iter/awun/lib/defaults.js +38 -0
  28. package/iter/awun/lib/index.js +55 -0
  29. package/iter/awun/lib/main.js +305 -0
  30. package/iter/awun/package.json +68 -0
  31. package/iter/bartlett-hann-pulse/README.md +331 -0
  32. package/iter/bartlett-hann-pulse/docs/img/equation_bartlett_hann_pulse_waveform.svg +191 -0
  33. package/iter/bartlett-hann-pulse/docs/repl.txt +54 -0
  34. package/iter/bartlett-hann-pulse/docs/types/index.d.ts +105 -0
  35. package/iter/bartlett-hann-pulse/docs/types/test.ts +89 -0
  36. package/iter/bartlett-hann-pulse/lib/index.js +54 -0
  37. package/iter/bartlett-hann-pulse/lib/main.js +192 -0
  38. package/iter/bartlett-hann-pulse/lib/validate.js +97 -0
  39. package/iter/bartlett-hann-pulse/package.json +76 -0
  40. package/iter/bartlett-pulse/README.md +328 -0
  41. package/iter/bartlett-pulse/docs/img/equation_bartlett_pulse_waveform.svg +128 -0
  42. package/iter/bartlett-pulse/docs/repl.txt +54 -0
  43. package/iter/bartlett-pulse/docs/types/index.d.ts +105 -0
  44. package/iter/bartlett-pulse/docs/types/test.ts +89 -0
  45. package/iter/bartlett-pulse/lib/index.js +54 -0
  46. package/iter/bartlett-pulse/lib/main.js +169 -0
  47. package/iter/bartlett-pulse/lib/validate.js +97 -0
  48. package/iter/bartlett-pulse/package.json +72 -0
  49. package/iter/cosine-wave/README.md +292 -0
  50. package/iter/cosine-wave/docs/img/equation_cosine_waveform.svg +55 -0
  51. package/iter/cosine-wave/docs/repl.txt +51 -0
  52. package/iter/cosine-wave/docs/types/index.d.ts +96 -0
  53. package/iter/cosine-wave/docs/types/test.ts +78 -0
  54. package/iter/cosine-wave/lib/index.js +54 -0
  55. package/iter/cosine-wave/lib/main.js +156 -0
  56. package/iter/cosine-wave/lib/validate.js +90 -0
  57. package/iter/cosine-wave/package.json +70 -0
  58. package/iter/dirac-comb/README.md +278 -0
  59. package/iter/dirac-comb/docs/img/equation_dirac_comb.svg +44 -0
  60. package/iter/dirac-comb/docs/repl.txt +48 -0
  61. package/iter/dirac-comb/docs/types/index.d.ts +89 -0
  62. package/iter/dirac-comb/docs/types/test.ts +78 -0
  63. package/iter/dirac-comb/lib/index.js +54 -0
  64. package/iter/dirac-comb/lib/main.js +152 -0
  65. package/iter/dirac-comb/lib/validate.js +82 -0
  66. package/iter/dirac-comb/package.json +72 -0
  67. package/iter/docs/types/index.d.ts +678 -0
  68. package/iter/docs/types/test.ts +29 -0
  69. package/iter/flat-top-pulse/README.md +330 -0
  70. package/iter/flat-top-pulse/docs/img/equation_flat_top_pulse_waveform.svg +177 -0
  71. package/iter/flat-top-pulse/docs/repl.txt +54 -0
  72. package/iter/flat-top-pulse/docs/types/index.d.ts +105 -0
  73. package/iter/flat-top-pulse/docs/types/test.ts +89 -0
  74. package/iter/flat-top-pulse/lib/index.js +54 -0
  75. package/iter/flat-top-pulse/lib/main.js +193 -0
  76. package/iter/flat-top-pulse/lib/validate.js +97 -0
  77. package/iter/flat-top-pulse/package.json +71 -0
  78. package/iter/hann-pulse/README.md +328 -0
  79. package/iter/hann-pulse/docs/img/equation_hann_pulse_waveform.svg +129 -0
  80. package/iter/hann-pulse/docs/repl.txt +54 -0
  81. package/iter/hann-pulse/docs/types/index.d.ts +105 -0
  82. package/iter/hann-pulse/docs/types/test.ts +89 -0
  83. package/iter/hann-pulse/lib/index.js +54 -0
  84. package/iter/hann-pulse/lib/main.js +171 -0
  85. package/iter/hann-pulse/lib/validate.js +97 -0
  86. package/iter/hann-pulse/package.json +72 -0
  87. package/iter/lanczos-pulse/README.md +325 -0
  88. package/iter/lanczos-pulse/docs/img/equation_lanczos_pulse_waveform.svg +122 -0
  89. package/iter/lanczos-pulse/docs/repl.txt +54 -0
  90. package/iter/lanczos-pulse/docs/types/index.d.ts +105 -0
  91. package/iter/lanczos-pulse/docs/types/test.ts +89 -0
  92. package/iter/lanczos-pulse/lib/index.js +54 -0
  93. package/iter/lanczos-pulse/lib/main.js +169 -0
  94. package/iter/lanczos-pulse/lib/validate.js +97 -0
  95. package/iter/lanczos-pulse/package.json +70 -0
  96. package/iter/lib/index.js +186 -0
  97. package/iter/package.json +63 -0
  98. package/iter/periodic-sinc/README.md +301 -0
  99. package/iter/periodic-sinc/docs/img/equation_periodic_sinc.svg +146 -0
  100. package/iter/periodic-sinc/docs/img/equation_periodic_sinc_in_terms_of_period.svg +164 -0
  101. package/iter/periodic-sinc/docs/img/equation_periodic_sinc_in_terms_of_sinc_function.svg +65 -0
  102. package/iter/periodic-sinc/docs/img/equation_periodic_sinc_substitution_even.svg +34 -0
  103. package/iter/periodic-sinc/docs/img/equation_periodic_sinc_substitution_odd.svg +34 -0
  104. package/iter/periodic-sinc/docs/repl.txt +54 -0
  105. package/iter/periodic-sinc/docs/types/index.d.ts +98 -0
  106. package/iter/periodic-sinc/docs/types/test.ts +102 -0
  107. package/iter/periodic-sinc/lib/index.js +50 -0
  108. package/iter/periodic-sinc/lib/main.js +241 -0
  109. package/iter/periodic-sinc/lib/validate.js +90 -0
  110. package/iter/periodic-sinc/package.json +70 -0
  111. package/iter/pulse/README.md +322 -0
  112. package/iter/pulse/docs/img/equation_pulse_waveform.svg +115 -0
  113. package/iter/pulse/docs/repl.txt +58 -0
  114. package/iter/pulse/docs/types/index.d.ts +109 -0
  115. package/iter/pulse/docs/types/test.ts +100 -0
  116. package/iter/pulse/lib/index.js +54 -0
  117. package/iter/pulse/lib/main.js +165 -0
  118. package/iter/pulse/lib/validate.js +105 -0
  119. package/iter/pulse/package.json +69 -0
  120. package/iter/sawtooth-wave/README.md +289 -0
  121. package/iter/sawtooth-wave/docs/img/equation_sawtooth_waveform.svg +73 -0
  122. package/iter/sawtooth-wave/docs/repl.txt +51 -0
  123. package/iter/sawtooth-wave/docs/types/index.d.ts +96 -0
  124. package/iter/sawtooth-wave/docs/types/test.ts +78 -0
  125. package/iter/sawtooth-wave/lib/index.js +54 -0
  126. package/iter/sawtooth-wave/lib/main.js +161 -0
  127. package/iter/sawtooth-wave/lib/validate.js +90 -0
  128. package/iter/sawtooth-wave/package.json +67 -0
  129. package/iter/sine-wave/README.md +292 -0
  130. package/iter/sine-wave/docs/img/equation_sine_waveform.svg +55 -0
  131. package/iter/sine-wave/docs/repl.txt +51 -0
  132. package/iter/sine-wave/docs/types/index.d.ts +96 -0
  133. package/iter/sine-wave/docs/types/test.ts +78 -0
  134. package/iter/sine-wave/lib/index.js +54 -0
  135. package/iter/sine-wave/lib/main.js +156 -0
  136. package/iter/sine-wave/lib/validate.js +90 -0
  137. package/iter/sine-wave/package.json +70 -0
  138. package/iter/square-wave/README.md +291 -0
  139. package/iter/square-wave/docs/img/equation_square_waveform.svg +115 -0
  140. package/iter/square-wave/docs/repl.txt +55 -0
  141. package/iter/square-wave/docs/types/index.d.ts +105 -0
  142. package/iter/square-wave/docs/types/test.ts +89 -0
  143. package/iter/square-wave/lib/index.js +54 -0
  144. package/iter/square-wave/lib/main.js +156 -0
  145. package/iter/square-wave/lib/validate.js +99 -0
  146. package/iter/square-wave/package.json +67 -0
  147. package/iter/triangle-wave/README.md +289 -0
  148. package/iter/triangle-wave/docs/img/equation_triangle_waveform.svg +75 -0
  149. package/iter/triangle-wave/docs/repl.txt +51 -0
  150. package/iter/triangle-wave/docs/types/index.d.ts +96 -0
  151. package/iter/triangle-wave/docs/types/test.ts +78 -0
  152. package/iter/triangle-wave/lib/index.js +54 -0
  153. package/iter/triangle-wave/lib/main.js +160 -0
  154. package/iter/triangle-wave/lib/validate.js +90 -0
  155. package/iter/triangle-wave/package.json +66 -0
  156. package/lib/index.js +51 -0
  157. package/package.json +72 -0
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@stdlib/simulate/iter",
3
+ "version": "0.0.0",
4
+ "description": "Simulation iterators.",
5
+ "license": "Apache-2.0",
6
+ "author": {
7
+ "name": "The Stdlib Authors",
8
+ "url": "https://github.com/stdlib-js/stdlib/graphs/contributors"
9
+ },
10
+ "contributors": [
11
+ {
12
+ "name": "The Stdlib Authors",
13
+ "url": "https://github.com/stdlib-js/stdlib/graphs/contributors"
14
+ }
15
+ ],
16
+ "main": "./lib",
17
+ "directories": {
18
+ "doc": "./docs",
19
+ "example": "./examples",
20
+ "lib": "./lib",
21
+ "test": "./test"
22
+ },
23
+ "types": "./docs/types",
24
+ "scripts": {},
25
+ "homepage": "https://github.com/stdlib-js/stdlib",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git://github.com/stdlib-js/stdlib.git"
29
+ },
30
+ "bugs": {
31
+ "url": "https://github.com/stdlib-js/stdlib/issues"
32
+ },
33
+ "dependencies": {},
34
+ "devDependencies": {},
35
+ "engines": {
36
+ "node": ">=0.10.0",
37
+ "npm": ">2.7.0"
38
+ },
39
+ "os": [
40
+ "aix",
41
+ "darwin",
42
+ "freebsd",
43
+ "linux",
44
+ "macos",
45
+ "openbsd",
46
+ "sunos",
47
+ "win32",
48
+ "windows"
49
+ ],
50
+ "keywords": [
51
+ "stdlib",
52
+ "standard",
53
+ "library",
54
+ "std",
55
+ "lib",
56
+ "simulation",
57
+ "simulate",
58
+ "iterator",
59
+ "iterable",
60
+ "iteration",
61
+ "iter"
62
+ ]
63
+ }
@@ -0,0 +1,301 @@
1
+ <!--
2
+
3
+ @license Apache-2.0
4
+
5
+ Copyright (c) 2019 The Stdlib Authors.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+
19
+ -->
20
+
21
+ # iterPeriodicSinc
22
+
23
+ > Create an iterator which generates a periodic [sinc][@stdlib/math/base/special/sinc] waveform.
24
+
25
+ <!-- Section to include introductory text. Make sure to keep an empty line after the intro `section` element and another before the `/section` close. -->
26
+
27
+ <section class="intro">
28
+
29
+ The periodic [sinc][@stdlib/math/base/special/sinc] function, also known as the Dirichlet function, is defined as
30
+
31
+ <!-- <equation class="equation" label="eq:periodic_sinc" align="center" raw="D_N(x; A) = \begin{cases}\frac{A\sin(Nx/2)} {N\sin(x/2)} & x \neq 2\pi k\ \textrm{for}\ k = 0, \pm 1, \pm 2, \ldots \\ A (-1)^{k(N-1)} & x = 2\pi k\ \textrm{for}\ k = 0, \pm 1, \pm 2, \ldots \end{cases}" alt="Periodic sinc function."> -->
32
+
33
+ <div class="equation" align="center" data-raw-text="D_N(x; A) = \begin{cases}\frac{A\sin(Nx/2)} {N\sin(x/2)} &amp; x \neq 2\pi k\ \textrm{for}\ k = 0, \pm 1, \pm 2, \ldots \\ A (-1)^{k(N-1)} &amp; x = 2\pi k\ \textrm{for}\ k = 0, \pm 1, \pm 2, \ldots \end{cases}" data-equation="eq:periodic_sinc">
34
+ <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@d985bb501380970d8c79ffba20ce15965a7acfa9/lib/node_modules/@stdlib/simulate/iter/periodic-sinc/docs/img/equation_periodic_sinc.svg" alt="Periodic sinc function.">
35
+ <br>
36
+ </div> -->
37
+
38
+ <!-- </equation> -->
39
+
40
+ where `N` is the function order and `A` is the peak amplitude. For odd `N`, the waveform has a period of `2π`, and, for even `N`, the waveform has a period of `4π`.
41
+
42
+ To express the periodic [sinc][@stdlib/math/base/special/sinc] function as a function of a discrete iteration number `t` and the waveform period `τ`, for odd `N`, let
43
+
44
+ <!-- <equation class="equation" label="eq:periodic_sinc_substitution_odd" align="center" raw="x = \frac{2\pi (t-\varphi)}{\tau}" alt="Periodic sinc function substitution for odd N."> -->
45
+
46
+ <!-- <div class="equation" align="center" data-raw-text="x = \frac{2\pi (t-\varphi)}{\tau}" data-equation="eq:periodic_sinc_substitution_odd">
47
+ <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@d985bb501380970d8c79ffba20ce15965a7acfa9/lib/node_modules/@stdlib/simulate/iter/periodic-sinc/docs/img/equation_periodic_sinc_substitution_odd.svg" alt="Periodic sinc function substitution for odd N.">
48
+ <br>
49
+ </div> -->
50
+
51
+ <!-- </equation> -->
52
+
53
+ and, for even `N`, let
54
+
55
+ <!-- <equation class="equation" label="eq:periodic_sinc_substitution_even" align="center" raw="x = \frac{4\pi (t-\varphi)}{\tau}" alt="Periodic sinc function substitution for even N."> -->
56
+
57
+ <!-- <div class="equation" align="center" data-raw-text="x = \frac{4\pi (t-\varphi)}{\tau}" data-equation="eq:periodic_sinc_substitution_even">
58
+ <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@d985bb501380970d8c79ffba20ce15965a7acfa9/lib/node_modules/@stdlib/simulate/iter/periodic-sinc/docs/img/equation_periodic_sinc_substitution_even.svg" alt="Periodic sinc function substitution for even N.">
59
+ <br>
60
+ </div> -->
61
+
62
+ <!-- </equation> -->
63
+
64
+ where `τ` is the period (i.e., the number of iterations until a waveform repeats) and `φ` is the phase (iteration) offset. For odd `N`, we can thus substitute and express the periodic [sinc][@stdlib/math/base/special/sinc] function as
65
+
66
+ <!-- <equation class="equation" label="eq:periodic_sinc_in_terms_of_period" align="center" raw="D_N(t; A, \tau, \varphi) = \begin{cases}\frac{A\sin(N\pi(t-\varphi)/\tau)} {N\sin(\pi (t-\varphi)/\tau)} & t-\varphi \neq \tau k\ \textrm{for}\ k = 0, \pm 1, \pm 2, \ldots \\ A (-1)^{k(N-1)} & t-\varphi = \tau k\ \textrm{for}\ k = 0, \pm 1, \pm 2, \ldots \end{cases}" alt="Periodic sinc function as a function of the waveform period."> -->
67
+
68
+ <!-- <div class="equation" align="center" data-raw-text="D_N(t; A, \tau, \varphi) = \begin{cases}\frac{A\sin(N\pi(t-\varphi)/\tau)} {N\sin(\pi (t-\varphi)/\tau)} &amp; t-\varphi \neq \tau k\ \textrm{for}\ k = 0, \pm 1, \pm 2, \ldots \\ A (-1)^{k(N-1)} &amp; t-\varphi = \tau k\ \textrm{for}\ k = 0, \pm 1, \pm 2, \ldots \end{cases}" data-equation="eq:periodic_sinc_in_terms_of_period">
69
+ <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@d985bb501380970d8c79ffba20ce15965a7acfa9/lib/node_modules/@stdlib/simulate/iter/periodic-sinc/docs/img/equation_periodic_sinc_in_terms_of_period.svg" alt="Periodic sinc function as a function of the waveform period.">
70
+ <br>
71
+ </div> -->
72
+
73
+ <!-- </equation> -->
74
+
75
+ For even `N`, we can express the periodic [sinc][@stdlib/math/base/special/sinc] function similarly.
76
+
77
+ Note that the periodic [sinc][@stdlib/math/base/special/sinc] can be equivalently expressed as a function of the [sinc][@stdlib/math/base/special/sinc] function
78
+
79
+ <!-- <equation class="equation" label="eq:periodic_sinc_in_terms_of_sinc_function" align="center" raw="D_N(\pi x; N, A) = A \cdot \frac{\operatorname{sinc}(Nx/2)} {\operatorname{sinc}(x/2)}" alt="Periodic sinc function in terms of the sinc function."> -->
80
+
81
+ <!-- <div class="equation" align="center" data-raw-text="D_N(\pi x; N, A) = A \cdot \frac{\operatorname{sinc}(Nx/2)} {\operatorname{sinc}(x/2)}" data-equation="eq:periodic_sinc_in_terms_of_sinc_function">
82
+ <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@d985bb501380970d8c79ffba20ce15965a7acfa9/lib/node_modules/@stdlib/simulate/iter/periodic-sinc/docs/img/equation_periodic_sinc_in_terms_of_sinc_function.svg" alt="Periodic sinc function in terms of the sinc function.">
83
+ <br>
84
+ </div>
85
+
86
+ <!-- </equation> -->
87
+
88
+ <!-- TODO: add a figure showing a periodic sinc waveform -->
89
+
90
+ </section>
91
+
92
+ <!-- /.intro -->
93
+
94
+ <!-- Package usage documentation. -->
95
+
96
+ <section class="usage">
97
+
98
+ ## Usage
99
+
100
+ ```javascript
101
+ var iterPeriodicSinc = require( '@stdlib/simulate/iter/periodic-sinc' );
102
+ ```
103
+
104
+ #### iterPeriodicSinc( n\[, options] )
105
+
106
+ Returns an iterator which generates a periodic [sinc][@stdlib/math/base/special/sinc] waveform of order `n`.
107
+
108
+ ```javascript
109
+ var it = iterPeriodicSinc( 7 );
110
+ // returns <Object>
111
+
112
+ var v = it.next().value;
113
+ // returns <number>
114
+
115
+ v = it.next().value;
116
+ // returns <number>
117
+
118
+ v = it.next().value;
119
+ // returns <number>
120
+
121
+ // ...
122
+ ```
123
+
124
+ The returned iterator protocol-compliant object has the following properties:
125
+
126
+ - **next**: function which returns an iterator protocol-compliant object containing the next iterated value (if one exists) assigned to a `value` property and a `done` property having a `boolean` value indicating whether the iterator is finished.
127
+ - **return**: function which closes an iterator and returns a single (optional) argument in an iterator protocol-compliant object.
128
+
129
+ The function supports the following `options`:
130
+
131
+ - **period**: period (i.e., the number of iterations before a waveform repeats). Default: `100`.
132
+ - **amplitude**: peak amplitude. Default: `1.0`.
133
+ - **offset**: phase offset (in units of iterations; zero-based). A negative offset translates a waveform to the left. A positive offset translates a waveform to the right. Default: `0`.
134
+ - **iter**: number of iterations. Default: `1e308`.
135
+
136
+ By default, the function returns an iterator which generates a waveform that repeats every `100` iterations. To specify an alternative period, set the `period` option.
137
+
138
+ ```javascript
139
+ var opts = {
140
+ 'period': 1000
141
+ };
142
+
143
+ var it = iterPeriodicSinc( 7, opts );
144
+ // returns <Object>
145
+
146
+ var v = it.next().value;
147
+ // returns <number>
148
+
149
+ v = it.next().value;
150
+ // returns <number>
151
+
152
+ // ...
153
+ ```
154
+
155
+ To adjust at what point the iterator begins in the waveform cycle, set the phase `offset` option. For example, to translate the waveform to the left,
156
+
157
+ ```javascript
158
+ var opts = {
159
+ 'period': 100,
160
+ 'offset': -1
161
+ };
162
+
163
+ var it = iterPeriodicSinc( 7, opts );
164
+ // returns <Object>
165
+
166
+ var v = it.next().value;
167
+ // returns <number>
168
+
169
+ v = it.next().value;
170
+ // returns <number>
171
+
172
+ // ...
173
+ ```
174
+
175
+ To translate the waveform to the right,
176
+
177
+ ```javascript
178
+ var opts = {
179
+ 'period': 100,
180
+ 'offset': 1
181
+ };
182
+
183
+ var it = iterPeriodicSinc( 7, opts );
184
+ // returns <Object>
185
+
186
+ var v = it.next().value;
187
+ // returns <number>
188
+
189
+ v = it.next().value;
190
+ // returns <number>
191
+
192
+ // ...
193
+ ```
194
+
195
+ By default, the function returns an infinite iterator (i.e., an iterator which never ends). To limit the number of iterations, set the `iter` option.
196
+
197
+ ```javascript
198
+ var opts = {
199
+ 'iter': 2
200
+ };
201
+ var it = iterPeriodicSinc( 7, opts );
202
+ // returns <Object>
203
+
204
+ var v = it.next().value;
205
+ // returns <number>
206
+
207
+ v = it.next().value;
208
+ // returns <number>
209
+
210
+ var bool = it.next().done;
211
+ // returns true
212
+ ```
213
+
214
+ </section>
215
+
216
+ <!-- /.usage -->
217
+
218
+ <!-- Package usage notes. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->
219
+
220
+ <section class="notes">
221
+
222
+ ## Notes
223
+
224
+ - If an environment supports `Symbol.iterator`, the returned iterator is iterable.
225
+
226
+ </section>
227
+
228
+ <!-- /.notes -->
229
+
230
+ <!-- Package usage examples. -->
231
+
232
+ <section class="examples">
233
+
234
+ ## Examples
235
+
236
+ <!-- eslint no-undef: "error" -->
237
+
238
+ ```javascript
239
+ var iterPeriodicSinc = require( '@stdlib/simulate/iter/periodic-sinc' );
240
+
241
+ // Create an iterator:
242
+ var opts = {
243
+ 'period': 100,
244
+ 'amplitude': 10.0,
245
+ 'offset': -50,
246
+ 'iter': 100
247
+ };
248
+ var it = iterPeriodicSinc( 7, opts );
249
+
250
+ // Perform manual iteration...
251
+ var v;
252
+ while ( true ) {
253
+ v = it.next();
254
+ if ( v.done ) {
255
+ break;
256
+ }
257
+ console.log( v.value );
258
+ }
259
+ ```
260
+
261
+ </section>
262
+
263
+ <!-- /.examples -->
264
+
265
+ <!-- Section to include cited references. If references are included, add a horizontal rule *before* the section. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->
266
+
267
+ <section class="references">
268
+
269
+ </section>
270
+
271
+ <!-- /.references -->
272
+
273
+ <!-- Section for related `stdlib` packages. Do not manually edit this section, as it is automatically populated. -->
274
+
275
+ <section class="related">
276
+
277
+ * * *
278
+
279
+ ## See Also
280
+
281
+ - <span class="package-name">[`@stdlib/simulate/iter/sine-wave`][@stdlib/simulate/iter/sine-wave]</span><span class="delimiter">: </span><span class="description">create an iterator which generates a sine wave.</span>
282
+
283
+ </section>
284
+
285
+ <!-- /.related -->
286
+
287
+ <!-- Section for all links. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->
288
+
289
+ <section class="links">
290
+
291
+ [@stdlib/math/base/special/sinc]: https://www.npmjs.com/package/@stdlib/math-base-special-sinc
292
+
293
+ <!-- <related-links> -->
294
+
295
+ [@stdlib/simulate/iter/sine-wave]: https://github.com/stdlib-js/simulate/tree/main/iter/sine-wave
296
+
297
+ <!-- </related-links> -->
298
+
299
+ </section>
300
+
301
+ <!-- /.links -->
@@ -0,0 +1,146 @@
1
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="59.348ex" height="7.843ex" style="vertical-align: -3.079ex; margin-bottom: -0.259ex;" viewBox="0 -1939.5 25552.4 3376.7" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-1-Title">
2
+ <title id="MathJax-SVG-1-Title">upper D Subscript upper N Baseline left-parenthesis x semicolon upper A right-parenthesis equals StartLayout Enlarged left-brace 1st Row 1st Column StartFraction upper A sine left-parenthesis upper N x slash 2 right-parenthesis Over upper N sine left-parenthesis x slash 2 right-parenthesis EndFraction 2nd Column x not-equals 2 pi k for k equals 0 comma plus-or-minus 1 comma plus-or-minus 2 comma ellipsis 2nd Row 1st Column upper A left-parenthesis negative 1 right-parenthesis Superscript k left-parenthesis upper N minus 1 right-parenthesis Baseline 2nd Column x equals 2 pi k for k equals 0 comma plus-or-minus 1 comma plus-or-minus 2 comma ellipsis EndLayout</title>
3
+ <defs aria-hidden="true">
4
+ <path stroke-width="1" id="E1-MJMATHI-44" d="M287 628Q287 635 230 637Q207 637 200 638T193 647Q193 655 197 667T204 682Q206 683 403 683Q570 682 590 682T630 676Q702 659 752 597T803 431Q803 275 696 151T444 3L430 1L236 0H125H72Q48 0 41 2T33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM703 469Q703 507 692 537T666 584T629 613T590 629T555 636Q553 636 541 636T512 636T479 637H436Q392 637 386 627Q384 623 313 339T242 52Q242 48 253 48T330 47Q335 47 349 47T373 46Q499 46 581 128Q617 164 640 212T683 339T703 469Z"></path>
5
+ <path stroke-width="1" id="E1-MJMATHI-4E" d="M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z"></path>
6
+ <path stroke-width="1" id="E1-MJMAIN-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path>
7
+ <path stroke-width="1" id="E1-MJMATHI-78" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path>
8
+ <path stroke-width="1" id="E1-MJMAIN-3B" d="M78 370Q78 394 95 412T138 430Q162 430 180 414T199 371Q199 346 182 328T139 310T96 327T78 370ZM78 60Q78 85 94 103T137 121Q202 121 202 8Q202 -44 183 -94T144 -169T118 -194Q115 -194 106 -186T95 -174Q94 -171 107 -155T137 -107T160 -38Q161 -32 162 -22T165 -4T165 4Q165 5 161 4T142 0Q110 0 94 18T78 60Z"></path>
9
+ <path stroke-width="1" id="E1-MJMATHI-41" d="M208 74Q208 50 254 46Q272 46 272 35Q272 34 270 22Q267 8 264 4T251 0Q249 0 239 0T205 1T141 2Q70 2 50 0H42Q35 7 35 11Q37 38 48 46H62Q132 49 164 96Q170 102 345 401T523 704Q530 716 547 716H555H572Q578 707 578 706L606 383Q634 60 636 57Q641 46 701 46Q726 46 726 36Q726 34 723 22Q720 7 718 4T704 0Q701 0 690 0T651 1T578 2Q484 2 455 0H443Q437 6 437 9T439 27Q443 40 445 43L449 46H469Q523 49 533 63L521 213H283L249 155Q208 86 208 74ZM516 260Q516 271 504 416T490 562L463 519Q447 492 400 412L310 260L413 259Q516 259 516 260Z"></path>
10
+ <path stroke-width="1" id="E1-MJMAIN-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path>
11
+ <path stroke-width="1" id="E1-MJMAIN-3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path>
12
+ <path stroke-width="1" id="E1-MJMAIN-7B" d="M434 -231Q434 -244 428 -250H410Q281 -250 230 -184Q225 -177 222 -172T217 -161T213 -148T211 -133T210 -111T209 -84T209 -47T209 0Q209 21 209 53Q208 142 204 153Q203 154 203 155Q189 191 153 211T82 231Q71 231 68 234T65 250T68 266T82 269Q116 269 152 289T203 345Q208 356 208 377T209 529V579Q209 634 215 656T244 698Q270 724 324 740Q361 748 377 749Q379 749 390 749T408 750H428Q434 744 434 732Q434 719 431 716Q429 713 415 713Q362 710 332 689T296 647Q291 634 291 499V417Q291 370 288 353T271 314Q240 271 184 255L170 250L184 245Q202 239 220 230T262 196T290 137Q291 131 291 1Q291 -134 296 -147Q306 -174 339 -192T415 -213Q429 -213 431 -216Q434 -219 434 -231Z"></path>
13
+ <path stroke-width="1" id="E1-MJMAIN-73" d="M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z"></path>
14
+ <path stroke-width="1" id="E1-MJMAIN-69" d="M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z"></path>
15
+ <path stroke-width="1" id="E1-MJMAIN-6E" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z"></path>
16
+ <path stroke-width="1" id="E1-MJMAIN-2F" d="M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z"></path>
17
+ <path stroke-width="1" id="E1-MJMAIN-32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path>
18
+ <path stroke-width="1" id="E1-MJMAIN-2260" d="M166 -215T159 -215T147 -212T141 -204T139 -197Q139 -190 144 -183L306 133H70Q56 140 56 153Q56 168 72 173H327L406 327H72Q56 332 56 347Q56 360 70 367H426Q597 702 602 707Q605 716 618 716Q625 716 630 712T636 703T638 696Q638 692 471 367H707Q722 359 722 347Q722 336 708 328L451 327L371 173H708Q722 163 722 153Q722 140 707 133H351Q175 -210 170 -212Q166 -215 159 -215Z"></path>
19
+ <path stroke-width="1" id="E1-MJMATHI-3C0" d="M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"></path>
20
+ <path stroke-width="1" id="E1-MJMATHI-6B" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path>
21
+ <path stroke-width="1" id="E1-MJMAIN-66" d="M273 0Q255 3 146 3Q43 3 34 0H26V46H42Q70 46 91 49Q99 52 103 60Q104 62 104 224V385H33V431H104V497L105 564L107 574Q126 639 171 668T266 704Q267 704 275 704T289 705Q330 702 351 679T372 627Q372 604 358 590T321 576T284 590T270 627Q270 647 288 667H284Q280 668 273 668Q245 668 223 647T189 592Q183 572 182 497V431H293V385H185V225Q185 63 186 61T189 57T194 54T199 51T206 49T213 48T222 47T231 47T241 46T251 46H282V0H273Z"></path>
22
+ <path stroke-width="1" id="E1-MJMAIN-6F" d="M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z"></path>
23
+ <path stroke-width="1" id="E1-MJMAIN-72" d="M36 46H50Q89 46 97 60V68Q97 77 97 91T98 122T98 161T98 203Q98 234 98 269T98 328L97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 60 434T96 436Q112 437 131 438T160 441T171 442H174V373Q213 441 271 441H277Q322 441 343 419T364 373Q364 352 351 337T313 322Q288 322 276 338T263 372Q263 381 265 388T270 400T273 405Q271 407 250 401Q234 393 226 386Q179 341 179 207V154Q179 141 179 127T179 101T180 81T180 66V61Q181 59 183 57T188 54T193 51T200 49T207 48T216 47T225 47T235 46T245 46H276V0H267Q249 3 140 3Q37 3 28 0H20V46H36Z"></path>
24
+ <path stroke-width="1" id="E1-MJMAIN-30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path>
25
+ <path stroke-width="1" id="E1-MJMAIN-2C" d="M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"></path>
26
+ <path stroke-width="1" id="E1-MJMAIN-B1" d="M56 320T56 333T70 353H369V502Q369 651 371 655Q376 666 388 666Q402 666 405 654T409 596V500V353H707Q722 345 722 333Q722 320 707 313H409V40H707Q722 32 722 20T707 0H70Q56 7 56 20T70 40H369V313H70Q56 320 56 333Z"></path>
27
+ <path stroke-width="1" id="E1-MJMAIN-31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path>
28
+ <path stroke-width="1" id="E1-MJMAIN-2026" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60ZM525 60Q525 84 542 102T585 120Q609 120 627 104T646 61Q646 36 629 18T586 0T543 17T525 60ZM972 60Q972 84 989 102T1032 120Q1056 120 1074 104T1093 61Q1093 36 1076 18T1033 0T990 17T972 60Z"></path>
29
+ <path stroke-width="1" id="E1-MJMAIN-2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path>
30
+ <path stroke-width="1" id="E1-MJSZ4-7B" d="M661 -1243L655 -1249H622L604 -1240Q503 -1190 434 -1107T348 -909Q346 -897 346 -499L345 -98L343 -82Q335 3 287 87T157 223Q146 232 145 236Q144 240 144 250Q144 265 145 268T157 278Q242 333 288 417T343 583L345 600L346 1001Q346 1398 348 1410Q379 1622 600 1739L622 1750H655L661 1744V1727V1721Q661 1712 661 1710T657 1705T648 1700T630 1690T602 1668Q589 1659 574 1643T531 1593T484 1508T459 1398Q458 1389 458 1001Q458 614 457 605Q441 435 301 316Q254 277 202 251L250 222Q260 216 301 185Q443 66 457 -104Q458 -113 458 -501Q458 -888 459 -897Q463 -944 478 -988T509 -1060T548 -1114T580 -1149T602 -1167Q620 -1183 634 -1192T653 -1202T659 -1207T661 -1220V-1226V-1243Z"></path>
31
+ </defs>
32
+ <g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
33
+ <use xlink:href="#E1-MJMATHI-44" x="0" y="0"></use>
34
+ <use transform="scale(0.707)" xlink:href="#E1-MJMATHI-4E" x="1171" y="-213"></use>
35
+ <use xlink:href="#E1-MJMAIN-28" x="1556" y="0"></use>
36
+ <use xlink:href="#E1-MJMATHI-78" x="1946" y="0"></use>
37
+ <use xlink:href="#E1-MJMAIN-3B" x="2518" y="0"></use>
38
+ <use xlink:href="#E1-MJMATHI-41" x="2963" y="0"></use>
39
+ <use xlink:href="#E1-MJMAIN-29" x="3714" y="0"></use>
40
+ <use xlink:href="#E1-MJMAIN-3D" x="4381" y="0"></use>
41
+ <g transform="translate(5437,0)">
42
+ <use xlink:href="#E1-MJSZ4-7B"></use>
43
+ <g transform="translate(973,0)">
44
+ <g transform="translate(-11,0)">
45
+ <g transform="translate(0,672)">
46
+ <g transform="translate(120,0)">
47
+ <rect stroke="none" width="3978" height="60" x="0" y="220"></rect>
48
+ <g transform="translate(60,622)">
49
+ <use transform="scale(0.707)" xlink:href="#E1-MJMATHI-41" x="0" y="0"></use>
50
+ <g transform="translate(697,0)">
51
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-73"></use>
52
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-69" x="394" y="0"></use>
53
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-6E" x="673" y="0"></use>
54
+ </g>
55
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-28" x="2215" y="0"></use>
56
+ <use transform="scale(0.707)" xlink:href="#E1-MJMATHI-4E" x="2605" y="0"></use>
57
+ <use transform="scale(0.707)" xlink:href="#E1-MJMATHI-78" x="3493" y="0"></use>
58
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-2F" x="4066" y="0"></use>
59
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-32" x="4566" y="0"></use>
60
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-29" x="5067" y="0"></use>
61
+ </g>
62
+ <g transform="translate(325,-476)">
63
+ <use transform="scale(0.707)" xlink:href="#E1-MJMATHI-4E" x="0" y="0"></use>
64
+ <g transform="translate(794,0)">
65
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-73"></use>
66
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-69" x="394" y="0"></use>
67
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-6E" x="673" y="0"></use>
68
+ </g>
69
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-28" x="2353" y="0"></use>
70
+ <use transform="scale(0.707)" xlink:href="#E1-MJMATHI-78" x="2743" y="0"></use>
71
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-2F" x="3315" y="0"></use>
72
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-32" x="3816" y="0"></use>
73
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-29" x="4316" y="0"></use>
74
+ </g>
75
+ </g>
76
+ </g>
77
+ <g transform="translate(0,-1075)">
78
+ <use xlink:href="#E1-MJMATHI-41" x="0" y="0"></use>
79
+ <use xlink:href="#E1-MJMAIN-28" x="750" y="0"></use>
80
+ <use xlink:href="#E1-MJMAIN-2212" x="1140" y="0"></use>
81
+ <use xlink:href="#E1-MJMAIN-31" x="1918" y="0"></use>
82
+ <g transform="translate(2419,0)">
83
+ <use xlink:href="#E1-MJMAIN-29" x="0" y="0"></use>
84
+ <g transform="translate(389,362)">
85
+ <use transform="scale(0.707)" xlink:href="#E1-MJMATHI-6B" x="0" y="0"></use>
86
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-28" x="521" y="0"></use>
87
+ <use transform="scale(0.707)" xlink:href="#E1-MJMATHI-4E" x="911" y="0"></use>
88
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-2212" x="1799" y="0"></use>
89
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-31" x="2578" y="0"></use>
90
+ <use transform="scale(0.707)" xlink:href="#E1-MJMAIN-29" x="3078" y="0"></use>
91
+ </g>
92
+ </g>
93
+ </g>
94
+ </g>
95
+ <g transform="translate(6350,0)">
96
+ <g transform="translate(0,672)">
97
+ <use xlink:href="#E1-MJMATHI-78" x="0" y="0"></use>
98
+ <use xlink:href="#E1-MJMAIN-2260" x="850" y="0"></use>
99
+ <use xlink:href="#E1-MJMAIN-32" x="1906" y="0"></use>
100
+ <use xlink:href="#E1-MJMATHI-3C0" x="2407" y="0"></use>
101
+ <use xlink:href="#E1-MJMATHI-6B" x="2980" y="0"></use>
102
+ <g transform="translate(3752,0)">
103
+ <use xlink:href="#E1-MJMAIN-66"></use>
104
+ <use xlink:href="#E1-MJMAIN-6F" x="306" y="0"></use>
105
+ <use xlink:href="#E1-MJMAIN-72" x="807" y="0"></use>
106
+ </g>
107
+ <use xlink:href="#E1-MJMATHI-6B" x="5201" y="0"></use>
108
+ <use xlink:href="#E1-MJMAIN-3D" x="6000" y="0"></use>
109
+ <use xlink:href="#E1-MJMAIN-30" x="7057" y="0"></use>
110
+ <use xlink:href="#E1-MJMAIN-2C" x="7557" y="0"></use>
111
+ <use xlink:href="#E1-MJMAIN-B1" x="8002" y="0"></use>
112
+ <use xlink:href="#E1-MJMAIN-31" x="8781" y="0"></use>
113
+ <use xlink:href="#E1-MJMAIN-2C" x="9281" y="0"></use>
114
+ <use xlink:href="#E1-MJMAIN-B1" x="9726" y="0"></use>
115
+ <use xlink:href="#E1-MJMAIN-32" x="10505" y="0"></use>
116
+ <use xlink:href="#E1-MJMAIN-2C" x="11005" y="0"></use>
117
+ <use xlink:href="#E1-MJMAIN-2026" x="11451" y="0"></use>
118
+ </g>
119
+ <g transform="translate(0,-1075)">
120
+ <use xlink:href="#E1-MJMATHI-78" x="0" y="0"></use>
121
+ <use xlink:href="#E1-MJMAIN-3D" x="850" y="0"></use>
122
+ <use xlink:href="#E1-MJMAIN-32" x="1906" y="0"></use>
123
+ <use xlink:href="#E1-MJMATHI-3C0" x="2407" y="0"></use>
124
+ <use xlink:href="#E1-MJMATHI-6B" x="2980" y="0"></use>
125
+ <g transform="translate(3752,0)">
126
+ <use xlink:href="#E1-MJMAIN-66"></use>
127
+ <use xlink:href="#E1-MJMAIN-6F" x="306" y="0"></use>
128
+ <use xlink:href="#E1-MJMAIN-72" x="807" y="0"></use>
129
+ </g>
130
+ <use xlink:href="#E1-MJMATHI-6B" x="5201" y="0"></use>
131
+ <use xlink:href="#E1-MJMAIN-3D" x="6000" y="0"></use>
132
+ <use xlink:href="#E1-MJMAIN-30" x="7057" y="0"></use>
133
+ <use xlink:href="#E1-MJMAIN-2C" x="7557" y="0"></use>
134
+ <use xlink:href="#E1-MJMAIN-B1" x="8002" y="0"></use>
135
+ <use xlink:href="#E1-MJMAIN-31" x="8781" y="0"></use>
136
+ <use xlink:href="#E1-MJMAIN-2C" x="9281" y="0"></use>
137
+ <use xlink:href="#E1-MJMAIN-B1" x="9726" y="0"></use>
138
+ <use xlink:href="#E1-MJMAIN-32" x="10505" y="0"></use>
139
+ <use xlink:href="#E1-MJMAIN-2C" x="11005" y="0"></use>
140
+ <use xlink:href="#E1-MJMAIN-2026" x="11451" y="0"></use>
141
+ </g>
142
+ </g>
143
+ </g>
144
+ </g>
145
+ </g>
146
+ </svg>