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 +4 -4
- data/README.md +54 -395
- data/lib/figurate_numbers/multidimensional_figurate_numbers.rb +831 -0
- data/lib/figurate_numbers/p_adic_utils/p_adic_utils.rb +27 -0
- data/lib/figurate_numbers/plane_figurate_numbers.rb +653 -0
- data/lib/figurate_numbers/space_figurate_numbers.rb +712 -0
- data/lib/figurate_numbers/utils/utils.rb +38 -0
- data/lib/figurate_numbers/version.rb +5 -0
- data/lib/figurate_numbers.rb +11 -2229
- metadata +10 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a19370a4ba2a14d8dad926f3041c2f3f13be439c9b983b6a8d917ce796ad3342
|
4
|
+
data.tar.gz: dd218f8d7c47aa04945175c694ee46f8e899d310d8601dca7e46d12d87367b8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c7cad43ef8f91511a91517077f6e709f7692c6039731203084190f562e774544ad391f7faf245b1e206392fffff5f8b2b1bbbf64fc511e7c4abbcfd4c15b5f3
|
7
|
+
data.tar.gz: a6f5862ee08fe407786f8145a8412129a02d5d310980c97db00ea00d8073d0ba0562dd513fb6346420d17f65da3273255d6b078d54bd57aec408e40a18542933
|
data/README.md
CHANGED
@@ -1,433 +1,92 @@
|
|
1
|
-
|
1
|
+
<h1 align="center"> Figurate Numbers </h1>
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-

|
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
|
-
|
8
|
-
|
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
|
-
|
13
|
+
[](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
|
-
|
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
|
-
|
18
|
+
Install it from the gem repository:
|
20
19
|
|
21
|
-
|
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
|
-
*
|
28
|
+
The sequences are organized following the structure of the *Figurate Numbers* book:
|
24
29
|
|
25
|
-
|
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
|
-
|
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.
|
43
|
+
FigurateNumbers.pentatope.take(10)
|
34
44
|
|
35
45
|
## Storing and iterating
|
36
|
-
f = FigurateNumbers.
|
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.
|
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
|
-
|
48
|
-
|
49
|
-
|
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
|
-
##
|
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
|
-
|
340
|
-
|
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
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
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
|
-
|
76
|
+
Simply copy the entry point path from the `lib/figurate_numbers.rb` file where the *gem* is installed.
|
417
77
|
|
418
|
-
|
78
|
+
### Version 1.3.0 (legacy)
|
419
79
|
|
420
|
-
|
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
|
-
|
82
|
+
## 📚 List of Implemented Sequences in `figurate_numbers`
|
424
83
|
|
425
|
-
|
84
|
+
Explore the complete list of figurate number sequences and their Ruby methods:
|
426
85
|
|
427
|
-
-
|
428
|
-
> `hexacisihoron numbers`
|
86
|
+
- [View all implemented methods and sequences 🔍](docs/METHODS.md)
|
429
87
|
|
430
|
-
|
88
|
+
## 📝 Book Errata
|
431
89
|
|
432
|
-
|
90
|
+
Corrections to formulas and data found in *Figurate Numbers* (2012):
|
433
91
|
|
92
|
+
- [See full list of known errata 🔍](docs/ERRATA.md)
|