figurate_numbers 1.3.0 → 1.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ce2e9677b127bf7f73fb6776128e8691fa53353495f6ed7fc61e60961f39abb
4
- data.tar.gz: d0596c55e684e9716c32c6e495c5feef10a4d0d25e91daac7914f49af652561b
3
+ metadata.gz: a19370a4ba2a14d8dad926f3041c2f3f13be439c9b983b6a8d917ce796ad3342
4
+ data.tar.gz: dd218f8d7c47aa04945175c694ee46f8e899d310d8601dca7e46d12d87367b8f
5
5
  SHA512:
6
- metadata.gz: a6b1da7cb33f30eed0179311888195fc837c06e8a419984d38c352e892a71d46724297930810a302edaf3fd699052cd7b8c7e737e5b17e327c81105f28658c92
7
- data.tar.gz: e3fc3b4415f2576c7222c029d9a030bfa44bf86270700e4022c24ce82fa6e73b541cbfc1ee3eceb415f2186a6dec5bf7954629a3ad14d67f08fd73e9cc511eae
6
+ metadata.gz: 2c7cad43ef8f91511a91517077f6e709f7692c6039731203084190f562e774544ad391f7faf245b1e206392fffff5f8b2b1bbbf64fc511e7c4abbcfd4c15b5f3
7
+ data.tar.gz: a6f5862ee08fe407786f8145a8412129a02d5d310980c97db00ea00d8073d0ba0562dd513fb6346420d17f65da3273255d6b078d54bd57aec408e40a18542933
data/README.md CHANGED
@@ -1,433 +1,92 @@
1
- # Figurate Numbers
1
+ <h1 align="center"> Figurate Numbers </h1>
2
2
 
3
- ![Gem Version](https://img.shields.io/gem/v/figurate_numbers)
4
- ![Gem Total Downloads](https://img.shields.io/gem/dt/figurate_numbers)
5
- ![GitHub License](https://img.shields.io/github/license/edelveart/figurate_numbers)
3
+ **Figurate Numbers** is the most comprehensive and specialized library for figurate numbers, developed in Ruby to date.
4
+ It implements **241 infinite number sequences** inspired by the groundbreaking work [*Figurate Numbers*](https://books.google.com.pe/books/about/Figurate_Numbers.html?id=ERS7CgAAQBAJ&redir_esc=y) by Elena Deza and Michel Deza, published in 2012.
6
5
 
7
- `figurate_numbers` is a Ruby module that implements `239 infinite number sequences` based on the formulas from the wonderful book
8
- > [Figurate Numbers (2012)](https://books.google.com.pe/books/about/Figurate_Numbers.html?id=ERS7CgAAQBAJ&redir_esc=y) by Elena Deza and Michel Deza.
6
+ <p align="center">
7
+ <img src="https://img.shields.io/gem/v/figurate_numbers" alt="Gem Version">
8
+ <img src="https://img.shields.io/gem/dt/figurate_numbers" alt="Gem Total Downloads">
9
+ <img src="https://img.shields.io/github/stars/edelveart/figurate_numbers" alt="GitHub Repo stars">
10
+ <img src="https://img.shields.io/github/license/edelveart/figurate_numbers" alt="GitHub License">
11
+ </p>
9
12
 
10
- This implementation uses the **Enumerator class** to deal with **INFINITE SEQUENCES**.
13
+ [![figurate numbers image](https://raw.githubusercontent.com/edelveart/figurate_numbers/main/figurate_numbers.png)](https://rubygems.org/gems/figurate_numbers)
11
14
 
12
- Following the order of the book, the methods are divided into 3 types according to the spatial dimension (see complete list below):
13
15
 
14
- 1. **Plane** figurate numbers implemented = `79`
15
- 2. **Space** figurate numbers implemented = `86`
16
- 3. **Multidimensional** figurate numbers implemented = `70`
17
- 4. **Zoo of figurate-related numbers** implemented = `6`
16
+ ## 💎 Installation
18
17
 
19
- - [x] **TOTAL** = `241` infinite sequences of figurate numbers implemented
18
+ Install it from the gem repository:
20
19
 
21
- ## Installation and use
20
+ ```rb
21
+ gem install figurate_numbers
22
+ ```
23
+
24
+ ## 🧊 Features
25
+
26
+ Figurate Numbers implements 241 infinite sequences using the Enumerator class in Ruby, each categorized by its geometric dimension. It is ideal for use in mathematical modeling, algorithmic composition, and integration with tools like Sonic Pi.
22
27
 
23
- * `gem install figurate_numbers`
28
+ The sequences are organized following the structure of the *Figurate Numbers* book:
24
29
 
25
- ### How to use in Ruby
30
+ - 🟦 **PlaneFigurateNumbers** 79 sequences (2D)
31
+ - 🟥 **SpaceFigurateNumbers** – 86 sequences (3D)
32
+ - 🟨 **MultiDimensionalFigurateNumbers** – 70 sequences (4D and beyond)
33
+ - 🧬 **Zoo of figurate-related numbers** – 6 additional sequences *(included in the MultiDimensional module)*
26
34
 
27
- If the sequence is defined with `lazy`, to make the numbers explicit we must include the converter method `to_a` at the end.
35
+ > 📚 Explore the detailed list of figurate numbers [here 🔍.](docs/METHODS.md)
36
+
37
+ ## 🧰 How to use in Ruby
28
38
 
29
39
  ```rb
30
40
  require 'figurate_numbers'
31
41
 
32
42
  ## Using take(integer)
33
- FigurateNumbers.pronic_numbers.take(10).to_a
43
+ FigurateNumbers.pentatope.take(10)
34
44
 
35
45
  ## Storing and iterating
36
- f = FigurateNumbers.centered_octagonal_pyramid_numbers
46
+ f = FigurateNumbers.centered_octagonal_pyramid
37
47
  f.next
38
48
  f.next
39
49
  f.next
40
50
  ```
41
- ### How to use in Sonic Pi
42
51
 
43
- 1. Locate or download the file in the path `lib/figurate_numbers.rb`
44
- 2. Drag the file to a buffer in Sonic Pi (this generates the `<PATH>`)
52
+ Starting with version **1.4.0**, you can also call methods directly from their respective classes. This allows you to work with figurate numbers grouped by their geometric dimension:
45
53
 
46
54
  ```rb
47
- run_file "<PATH>"
48
-
49
- pol_num = FigurateNumbers.polygonal_numbers(8)
50
- 80.times do
51
- play pol_num.next % 12 * 7 # Some mathematical function or transformation
52
- sleep 0.25
53
- end
55
+ PlaneFigurateNumbers.polygonal(3)
56
+ SpaceFigurateNumbers.rhombic_dodecahedral
57
+ MultiDimensionalFigurateNumbers.six_dimensional_hyperoctahedron
54
58
  ```
55
59
 
56
- ## List of implemented sequences
57
-
58
- * Note that `=` means that you can call the same sequence with different names.
59
-
60
- ### 1. Plane Figurate Numbers
61
- <ol>
62
- <li><code>polygonal_numbers(m)</code></li>
63
- <li><code>triangular_numbers</code></li>
64
- <li><code>square_numbers</code></li>
65
- <li><code>pentagonal_numbers</code></li>
66
- <li><code>hexagonal_numbers</code></li>
67
- <li><code>heptagonal_numbers</code></li>
68
- <li><code>octagonal_numbers</code></li>
69
- <li><code>nonagonal_numbers</code></li>
70
- <li><code>decagonal_numbers</code></li>
71
- <li><code>hendecagonal_numbers</code></li>
72
- <li><code>dodecagonal_numbers</code></li>
73
- <li><code>tridecagonal_numbers</code></li>
74
- <li><code>tetradecagonal_numbers</code></li>
75
- <li><code>pentadecagonal_numbers</code></li>
76
- <li><code>hexadecagonal_numbers</code></li>
77
- <li><code>heptadecagonal_numbers</code></li>
78
- <li><code>octadecagonal_numbers</code></li>
79
- <li><code>nonadecagonal_numbers</code></li>
80
- <li><code>icosagonal_numbers</code></li>
81
- <li><code>icosihenagonal_numbers</code></li>
82
- <li><code>icosidigonal_numbers</code></li>
83
- <li><code>icositrigonal_numbers</code></li>
84
- <li><code>icositetragonal_numbers</code></li>
85
- <li><code>icosipentagonal_numbers</code></li>
86
- <li><code>icosihexagonal_numbers</code></li>
87
- <li><code>icosiheptagonal_numbers</code></li>
88
- <li><code>icosioctagonal_numbers</code></li>
89
- <li><code>icosinonagonal_numbers</code></li>
90
- <li><code>triacontagonal_numbers</code></li>
91
- <li><code>centered_triangular_numbers</code></li>
92
- <li><code>centered_square_numbers = diamond_numbers (equality only by quantity)</code></li>
93
- <li><code>centered_pentagonal_numbers</code></li>
94
- <li><code>centered_hexagonal_numbers</code></li>
95
- <li><code>centered_heptagonal_numbers</code></li>
96
- <li><code>centered_octagonal_numbers</code></li>
97
- <li><code>centered_nonagonal_numbers</code></li>
98
- <li><code>centered_decagonal_numbers</code></li>
99
- <li><code>centered_hendecagonal_numbers</code></li>
100
- <li><code>centered_dodecagonal_numbers = star_numbers (equality only by quantity)</code></li>
101
- <li><code>centered_tridecagonal_numbers</code></li>
102
- <li><code>centered_tetradecagonal_numbers</code></li>
103
- <li><code>centered_pentadecagonal_numbers</code></li>
104
- <li><code>centered_hexadecagonal_numbers</code></li>
105
- <li><code>centered_heptadecagonal_numbers</code></li>
106
- <li><code>centered_octadecagonal_numbers</code></li>
107
- <li><code>centered_nonadecagonal_numbers</code></li>
108
- <li><code>centered_icosagonal_numbers</code></li>
109
- <li><code>centered_icosihenagonal_numbers</code></li>
110
- <li><code>centered_icosidigonal_numbers</code></li>
111
- <li><code>centered_icositrigonal_numbers</code></li>
112
- <li><code>centered_icositetragonal_numbers</code></li>
113
- <li><code>centered_icosipentagonal_numbers</code></li>
114
- <li><code>centered_icosihexagonal_numbers</code></li>
115
- <li><code>centered_icosiheptagonal_numbers</code></li>
116
- <li><code>centered_icosioctagonal_numbers</code></li>
117
- <li><code>centered_icosinonagonal_numbers</code></li>
118
- <li><code>centered_triacontagonal_numbers</code></li>
119
- <li><code>centered_mgonal_numbers(m)</code></li>
120
- <li><code>pronic_numbers = heteromecic_numbers = oblong_numbers</code></li>
121
- <li><code>polite_numbers</code></li>
122
- <li><code>impolite_numbers</code></li>
123
- <li><code>cross_numbers</code></li>
124
- <li><code>aztec_diamond_numbers</code></li>
125
- <li><code>polygram_numbers(m) = centered_star_polygonal_numbers(m)</code></li>
126
- <li><code>pentagram_numbers</code></li>
127
- <li><code>gnomic_numbers</code></li>
128
- <li><code>truncated_triangular_numbers</code></li>
129
- <li><code>truncated_square_numbers</code></li>
130
- <li><code>truncated_pronic_numbers</code></li>
131
- <li><code>truncated_centered_pol_numbers(m) = truncated_centered_mgonal_numbers(m)</code></li>
132
- <li><code>truncated_centered_triangular_numbers</code></li>
133
- <li><code>truncated_centered_square_numbers</code></li>
134
- <li><code>truncated_centered_pentagonal_numbers</code></li>
135
- <li><code>truncated_centered_hexagonal_numbers = truncated_hex_numbers</code></li>
136
- <li><code>generalized_mgonal_numbers(m, left_index = 0)</code></li>
137
- <li><code>generalized_pentagonal_numbers(left_index = 0)</code></li>
138
- <li><code>generalized_hexagonal_numbers(left_index = 0)</code></li>
139
- <li><code>generalized_centered_pol_numbers(m, left_index = 0)</code></li>
140
- <li><code>generalized_pronic_numbers(left_index = 0)</code></li>
141
- </ol>
142
-
143
- ### 2. Space Figurate Numbers
144
- <ol>
145
- <li><code>r_pyramidal_numbers(r)</code></li>
146
- <li><code>triangular_pyramidal_numbers = tetrahedral_numbers</code></li>
147
- <li><code>square_pyramidal_numbers = pyramidal_numbers</code></li>
148
- <li><code>pentagonal_pyramidal_numbers</code></li>
149
- <li><code>hexagonal_pyramidal_numbers</code></li>
150
- <li><code>heptagonal_pyramidal_numbers</code></li>
151
- <li><code>octagonal_pyramidal_numbers</code></li>
152
- <li><code>nonagonal_pyramidal_numbers</code></li>
153
- <li><code>decagonal_pyramidal_numbers</code></li>
154
- <li><code>hendecagonal_pyramidal_numbers</code></li>
155
- <li><code>dodecagonal_pyramidal_numbers</code></li>
156
- <li><code>tridecagonal_pyramidal_numbers</code></li>
157
- <li><code>tetradecagonal_pyramidal_numbers</code></li>
158
- <li><code>pentadecagonal_pyramidal_numbers</code></li>
159
- <li><code>hexadecagonal_pyramidal_numbers</code></li>
160
- <li><code>heptadecagonal_pyramidal_numbers</code></li>
161
- <li><code>octadecagonal_pyramidal_numbers</code></li>
162
- <li><code>nonadecagonal_pyramidal_numbers</code></li>
163
- <li><code>icosagonal_pyramidal_numbers</code></li>
164
- <li><code>icosihenagonal_pyramidal_numbers</code></li>
165
- <li><code>icosidigonal_pyramidal_numbers</code></li>
166
- <li><code>icositrigonal_pyramidal_numbers</code></li>
167
- <li><code>icositetragonal_pyramidal_numbers</code></li>
168
- <li><code>icosipentagonal_pyramidal_numbers</code></li>
169
- <li><code>icosihexagonal_pyramidal_numbers</code></li>
170
- <li><code>icosiheptagonal_pyramidal_numbers</code></li>
171
- <li><code>icosioctagonal_pyramidal_numbers</code></li>
172
- <li><code>icosinonagonal_pyramidal_numbers</code></li>
173
- <li><code>triacontagonal_pyramidal_numbers</code></li>
174
-
175
- <li><code>triangular_tetrahedral_numbers [finite]</code></li>
176
- <li><code>triangular_square_pyramidal_numbers [finite]</code></li>
177
- <li><code>square_tetrahedral_numbers [finite]</code></li>
178
- <li><code>square_square_pyramidal_numbers [finite]</code></li>
179
- <li><code>tetrahedral_square_pyramidal_number [finite]</code></li>
180
-
181
- <li><code>cubic_numbers = perfect_cube_numbers != hex_pyramidal_numbers (equality only by quantity) </code></li>
182
- <li><code>tetrahedral_numbers</code></li>
183
- <li><code>octahedral_numbers</code></li>
184
- <li><code>dodecahedral_numbers</code></li>
185
- <li><code>icosahedral_numbers</code></li>
186
- <li><code>truncated_tetrahedral_numbers</code></li>
187
- <li><code>truncated_cubic_numbers</code></li>
188
- <li><code>truncated_octahedral_numbers</code></li>
189
- <li><code>stella_octangula_numbers</code></li>
190
- <li><code>centered_cube_numbers</code></li>
191
- <li><code>rhombic_dodecahedral_numbers</code></li>
192
- <li><code>hauy_rhombic_dodecahedral_numbers</code></li>
193
-
194
- <li><code>centered_tetrahedron_numbers = centered_tetrahedral_numbers</code></li>
195
- <li><code>centered_square_pyramid_numbers = centered_pyramid_numbers</code></li>
196
- <li><code>centered_mgonal_pyramid_numbers(m)</code></li>
197
- <li><code>centered_pentagonal_pyramid_numbers != centered_octahedron_numbers (equality only in quantity)</code></li>
198
- <li><code>centered_hexagonal_pyramid_numbers</code></li>
199
- <li><code>centered_heptagonal_pyramid_numbers</code></li>
200
- <li><code>centered_octagonal_pyramid_numbers</code></li>
201
-
202
- <li><code>centered_octahedron_numbers</code></li>
203
- <li><code>centered_icosahedron_numbers = centered_cuboctahedron_numbers</code></li>
204
- <li><code>centered_dodecahedron_numbers</code></li>
205
- <li><code>centered_truncated_tetrahedron_numbers</code></li>
206
- <li><code>centered_truncated_cube_numbers</code></li>
207
- <li><code>centered_truncated_octahedron_numbers</code></li>
208
-
209
- <li><code>centered_mgonal_pyramidal_numbers(m)</code></li>
210
- <li><code>centered_triangular_pyramidal_numbers</code></li>
211
- <li><code>centered_square_pyramidal_numbers</code></li>
212
- <li><code>centered_pentagonal_pyramidal_numbers</code></li>
213
- <li><code>centered_hexagonal_pyramidal_numbers = hex_pyramidal_numbers</code></li>
214
- <li><code>centered_heptagonal_pyramidal_numbers</code></li>
215
- <li><code>centered_octagonal_pyramidal_numbers</code></li>
216
- <li><code>centered_nonagonal_pyramidal_numbers</code></li>
217
- <li><code>centered_decagonal_pyramidal_numbers</code></li>
218
- <li><code>centered_hendecagonal_pyramidal_numbers</code></li>
219
- <li><code>centered_dodecagonal_pyramidal_numbers</code></li>
220
-
221
- <li><code>hexagonal_prism_numbers</code></li>
222
- <li><code>mgonal_prism_numbers(m)</code></li>
223
- <li><code>generalized_mgonal_pyramidal_numbers(m, left_index = 0)</code></li>
224
- <li><code>generalized_pentagonal_pyramidal_numbers(left_index = 0)</code></li>
225
- <li><code>generalized_hexagonal_pyramidal_numbers(left_index = 0)</code></li>
226
- <li><code>generalized_cubic_numbers(left_index = 0)</code></li>
227
- <li><code>generalized_octahedral_numbers(left_index = 0)</code></li>
228
- <li><code>generalized_icosahedral_numbers(left_index = 0)</code></li>
229
- <li><code>generalized_dodecahedral_numbers(left_index = 0)</code></li>
230
- <li><code>generalized_centered_cube_numbers(left_index = 0)</code></li>
231
- <li><code>generalized_centered_tetrahedron_numbers(left_index = 0)</code></li>
232
- <li><code>generalized_centered_square_pyramid_numbers(left_index = 0)</code></li>
233
- <li><code>generalized_rhombic_dodecahedral_numbers(left_index = 0)</code></li>
234
- <li><code>generalized_centered_mgonal_pyramidal_numbers(m, left_index = 0)</code></li>
235
- <li><code>generalized_mgonal_prism_numbers(m, left_index = 0)</code></li>
236
- <li><code>generalized_hexagonal_prism_numbers(left_index = 0)</code></li>
237
- </ol>
238
-
239
- ### 3. Multidimensional figurate numbers
240
- <ol>
241
- <li><code>pentatope_numbers = hypertetrahedral_numbers = triangulotriangular_numbers</code></li>
242
- <li><code>k_dimensional_hypertetrahedron_numbers(k) = k_hypertetrahedron_numbers(k) = regular_k_polytopic_numbers(k) = figurate_numbers_of_order_k(k)</code></li>
243
- <li><code>five_dimensional_hypertetrahedron_numbers</code></li>
244
- <li><code>six_dimensional_hypertetrahedron_numbers</code></li>
245
- <li><code>biquadratic_numbers</code></li>
246
- <li><code>k_dimensional_hypercube_numbers(k) = k_hypercube_numbers(k)</code></li>
247
- <li><code>five_dimensional_hypercube_numbers</code></li>
248
- <li><code>six_dimensional_hypercube_numbers</code></li>
249
- <li><code>hyperoctahedral_numbers = hexadecachoron_numbers = four_cross_polytope_numbers = four_orthoplex_numbers</code></li>
250
- <li><code>hypericosahedral_numbers = tetraplex_numbers = polytetrahedron_numbers = hexacosichoron_numbers</code></li>
251
- <li><code>hyperdodecahedral_numbers = hecatonicosachoron_numbers = dodecaplex_numbers = polydodecahedron_numbers</code></li>
252
- <li><code>polyoctahedral_numbers = icositetrachoron_numbers = octaplex_numbers = hyperdiamond_numbers</code></li>
253
-
254
- <li><code>four_dimensional_hyperoctahedron_numbers</code></li>
255
- <li><code>five_dimensional_hyperoctahedron_numbers</code></li>
256
- <li><code>six_dimensional_hyperoctahedron_numbers</code></li>
257
- <li><code>seven_dimensional_hyperoctahedron_numbers</code></li>
258
- <li><code>eight_dimensional_hyperoctahedron_numbers</code></li>
259
- <li><code>nine_dimensional_hyperoctahedron_numbers</code></li>
260
- <li><code>ten_dimensional_hyperoctahedron_numbers</code></li>
261
- <li><code>k_dimensional_hyperoctahedron_numbers(k) = k_cross_polytope_numbers(k)</code></li>
262
-
263
- <li><code>four_dimensional_mgonal_pyramidal_numbers(m) = mgonal_pyramidal_numbers_of_the_second_order(m)</code></li>
264
- <li><code>four_dimensional_square_pyramidal_numbers</code></li>
265
- <li><code>four_dimensional_pentagonal_pyramidal_numbers</code></li>
266
- <li><code>four_dimensional_hexagonal_pyramidal_numbers</code></li>
267
- <li><code>four_dimensional_heptagonal_pyramidal_numbers</code></li>
268
- <li><code>four_dimensional_octagonal_pyramidal_numbers</code></li>
269
- <li><code>four_dimensional_nonagonal_pyramidal_numbers</code></li>
270
- <li><code>four_dimensional_decagonal_pyramidal_numbers</code></li>
271
- <li><code>four_dimensional_hendecagonal_pyramidal_numbers</code></li>
272
- <li><code>four_dimensional_dodecagonal_pyramidal_numbers</code></li>
273
-
274
- <li><code>k_dimensional_mgonal_pyramidal_numbers(k, m) = mgonal_pyramidal_numbers_of_the_k_2_th_order(k, m)</code></li>
275
- <li><code>five_dimensional_mgonal_pyramidal_numbers(m)</code></li>
276
- <li><code>five_dimensional_square_pyramidal_numbers</code></li>
277
- <li><code>five_dimensional_pentagonal_pyramidal_numbers</code></li>
278
- <li><code>five_dimensional_hexagonal_pyramidal_numbers</code></li>
279
- <li><code>five_dimensional_heptagonal_pyramidal_numbers</code></li>
280
- <li><code>five_dimensional_octagonal_pyramidal_numbers</code></li>
281
- <li><code>six_dimensional_mgonal_pyramidal_numbers(m)</code></li>
282
- <li><code>six_dimensional_square_pyramidal_numbers</code></li>
283
- <li><code>six_dimensional_pentagonal_pyramidal_numbers</code></li>
284
- <li><code>six_dimensional_hexagonal_pyramidal_numbers</code></li>
285
- <li><code>six_dimensional_heptagonal_pyramidal_numbers</code></li>
286
- <li><code>six_dimensional_octagonal_pyramidal_numbers</code></li>
287
-
288
- <li><code>centered_biquadratic_numbers</code></li>
289
- <li><code>k_dimensional_centered_hypercube_numbers(k)</code></li>
290
- <li><code>five_dimensional_centered_hypercube_numbers</code></li>
291
- <li><code>six_dimensional_centered_hypercube_numbers</code></li>
292
- <li><code>centered_polytope_numbers</code></li>
293
- <li><code>k_dimensional_centered_hypertetrahedron_numbers(k)</code></li>
294
- <li><code>five_dimensional_centered_hypertetrahedron_numbers(k)</code></li>
295
- <li><code>six_dimensional_centered_hypertetrahedron_numbers(k)</code></li>
296
-
297
- <li><code>centered_hyperoctahedral_numbers = orthoplex_numbers</code></li>
298
- <li><code>nexus_numbers(k)</code></li>
299
- <li><code>k_dimensional_centered_hyperoctahedron_numbers(k)</code></li>
300
- <li><code>five_dimensional_centered_hyperoctahedron_numbers</code></li>
301
- <li><code>six_dimensional_centered_hyperoctahedron_numbers</code></li>
302
- <li><code>generalized_pentatope_numbers(left_index = 0)</code></li>
303
- <li><code>generalized_k_dimensional_hypertetrahedron_numbers(k = 5, left_index = 0)</code></li>
304
- <li><code>generalized_biquadratic_numbers(left_index = 0)</code></li>
305
- <li><code>generalized_k_dimensional_hypercube_numbers(k = 5, left_index = 0)</code></li>
306
- <li><code>generalized_hyperoctahedral_numbers(left_index = 0)</code></li>
307
- <li><code>generalized_k_dimensional_hyperoctahedron_numbers(k = 5, left_index = 0) [even or odd dimension only changes sign]</code></li>
308
- <li><code>generalized_hyperdodecahedral_numbers(left_index = 0)</code></li>
309
- <li><code>generalized_hypericosahedral_numbers(left_index = 0)</code></li>
310
- <li><code>generalized_polyoctahedral_numbers(left_index = 0)</code></li>
311
- <li><code>generalized_k_dimensional_mgonal_pyramidal_numbers(k, m, left_index = 0)</code></li>
312
- <li><code>generalized_k_dimensional_centered_hypercube_numbers(k, left_index = 0)</code></li>
313
-
314
- <li><code>generalized_k_dimensional_centered_hypertetrahedron_numbers(k, left_index = 0)[provisional symmetry]</code></li>
315
- <li><code>generalized_k_dimensional_centered_hyperoctahedron_numbers(k, left_index = 0)[provisional symmetry]</code></li>
316
-
317
- <li><code>generalized_nexus_numbers(k, left_index = 0) [even or odd dimension only changes sign]</code></li>
318
- </ol>
319
-
320
- ### 6. Zoo of figurate-related numbers
321
- <ol>
322
- <li><code>cuban_numbers = cuban_prime_numbers</code></li>
323
- <li><code>quartan_numbers [Needs to improve the algorithmic complexity for n > 70]</code></li>
324
- <li><code>pell_numbers</code></li>
325
- <li><code>carmichael_numbers [Needs to improve the algorithmic complexity for n > 20]</code></li>
326
- <li><code>stern_prime_numbers(infty = false) [Quick calculations up to 8 terms]</code></li>
327
- <li><code>apocalyptic_numbers</code></li>
328
- </ol>
329
-
330
- ## Errata
331
-
332
- - Chapter 1, formula in the table on page 6 says:
333
-
334
- | Name | Formula | |
335
- | ------ | ------------------- | --- |
336
- | Square | `1/2 (n^2 - 0 * n)` | |
60
+ ## 🎶 How to use in Sonic Pi
337
61
 
62
+ ### Version 1.4.0
338
63
 
339
- It should be:
340
- | Name | Formula | |
341
- | ------ | -------------------- | --- |
342
- | Square | `1/2 (2n^2 - 0 * n)` | |
64
+ Starting from version **1.4.0**, you can use the library globally through `FigurateNumbers`to access all sequences, or you can use the specific classes mentioned above for separate access.
65
+ The main change compared to version **1.3.0** is that you now need to import the file using **require** instead of **run_file**; otherwise, it will not function.
343
66
 
344
- - Chapter 1, formula in the table on page 51 says:
345
-
346
- | Name | Formula | |
347
- | -------------------- | --------------------- | --------------------- |
348
- | Cent. icosihexagonal | `1/3n^2 - 13 * n + 1` | `546, 728, 936, 1170` |
349
-
350
-
351
- It should be:
352
- | Name | Formula | |
353
- | -------------------- | --------------------- | --------------------- |
354
- | Cent. icosihexagonal | `1/3n^2 - 13 * n + 1` | `547, 729, 937, 1171` |
355
-
356
- - Chapter 1, formula in the table on page 51 says:
357
-
358
- | Name | Formula | |
359
- | --------------------- | ------- | ----- |
360
- | Cent. icosiheptagonal | | `972` |
361
-
362
-
363
- It should be:
364
- | Name | Formula | |
365
- | --------------------- | ------- | ----- |
366
- | Cent. icosiheptagonal | | `973` |
367
-
368
- - Chapter 1, formula in the table on page 51 says:
369
-
370
- | Name | Formula | |
371
- | -------------------- | ------- | ---- |
372
- | Cent. icosioctagonal | | `84` |
373
-
374
-
375
- It should be:
376
- | Name | Formula | |
377
- | -------------------- | ------- | ---- |
378
- | Cent. icosioctagonal | | `85` |
379
-
380
- - Chapter 1, page 65 (polite numbers) says:
381
- > `inpolite numbers`
382
-
383
- It should read:
384
-
385
- > `impolite numbers`
386
-
387
- - Chapter 1, formula (truncated centered pentagonal numbers) on page 72 says:
388
- > `TCSS_5(n) = (35n^2 - 55n) / 2 + 3`
389
-
390
- It should be:
391
- > `TCSS_5(n) = (35n^2 - 55n) / 2 + 11`
392
-
393
- - Chapter 2, formula of octagonal pyramidal number on page 92 says:
394
- > `n(n+1)(6n-1) / 6`
395
-
396
- It should be:
397
- > `n(n+1)(6n-3) / 6`
398
-
399
- - Chapter 2, page 140 says:
400
- > centered square pyramidal numbers are 1, 6, 19, 44, 85, 111, 146, 231, ...
401
-
402
- This sequence must exclude the number 111:
403
-
404
- > centered square pyramidal numbers are 1, 6, 19, 44, 85, ~~111~~, 146, 231, ...
405
-
406
- - Chapter 2, page 155 (generalized centered tetrahedron numbers) says:
407
- > `S_3^3(n) = ((2n - 1)(n^2 + n + 3)) / 3`
408
-
409
- Formula must have a negative sign:
410
-
411
- > `S_3^3(n) = ((2n - 1)(n^2 - n + 3)) / 3`
412
-
413
- - Chapter 2, page 156 (generalized centered square pyramid numbers) says:
414
- > `S_4^3(n) = ((2n - 1) * (n^2 - n + 2)^2) / 3`
67
+ ```rb
68
+ require "<PATH>"
69
+ pol_num = FigurateNumbers.polygonal(8)
70
+ 350.times do
71
+ play pol_num.next % 12 * 7 # Some mathematical function or transformation
72
+ sleep 0.125
73
+ end
74
+ ```
415
75
 
416
- Formula must write:
76
+ Simply copy the entry point path from the `lib/figurate_numbers.rb` file where the *gem* is installed.
417
77
 
418
- > `S_4^3(n) = ((2n - 1) * (n^2 - n + 2)) / 2`
78
+ ### Version 1.3.0 (legacy)
419
79
 
420
- - Chapter 3, page 188 (hyperoctahedral numbers) says:
421
- > `hexadecahoron numbers`
80
+ See discussion in the [**Sonic Pi community thread right here!**](https://in-thread.sonic-pi.net/t/figurate-numbers-for-sonic-pi-new-ruby-gem-for-infinite-number-sequences-and-patterns/8962)
422
81
 
423
- It should read:
82
+ ## 📚 List of Implemented Sequences in `figurate_numbers`
424
83
 
425
- > `hexadecachoron numbers`
84
+ Explore the complete list of figurate number sequences and their Ruby methods:
426
85
 
427
- - Chapter 3, page 190 (hypericosahedral numbers) says:
428
- > `hexacisihoron numbers`
86
+ - [View all implemented methods and sequences 🔍](docs/METHODS.md)
429
87
 
430
- It should read:
88
+ ## 📝 Book Errata
431
89
 
432
- > `hexacosichoron numbers`
90
+ Corrections to formulas and data found in *Figurate Numbers* (2012):
433
91
 
92
+ - [See full list of known errata 🔍](docs/ERRATA.md)