figurate_numbers 1.4.0 → 1.4.2

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.
@@ -1,720 +1,712 @@
1
- module SpaceFigurateNumbers
2
- extend self
3
- def r_pyramidal(r = 3)
4
- Enumerator.new do |y|
5
- (1..Float::INFINITY).each do |delta|
1
+ module FigurateNumbers
2
+ # Module containing methods for generating 3D figurate number sequences.
3
+ module SpaceFigurateNumbers # rubocop:disable Metrics/ModuleLength
4
+ extend self
5
+
6
+ def r_pyramidal(r = 3)
7
+ Enumerator.new do |y|
8
+ (1..Float::INFINITY).each do |delta|
6
9
  y << (3 * delta**2 + delta**3 * (r - 2) - delta * (r - 5)) / 6
10
+ end
7
11
  end
8
12
  end
9
- end
10
-
11
- def triangular_pyramidal
12
- Enumerator.new do |y|
13
- (1..Float::INFINITY).each do |delta|
14
- y << (delta * (delta + 1) * (delta + 2)) / 6
15
- end
16
- end
17
- end
18
13
 
19
- alias_method :tetrahedral, :triangular_pyramidal
20
-
21
- def square_pyramidal
22
- Enumerator.new do |y|
23
- (1..Float::INFINITY).each do |delta|
14
+ def square_pyramidal
15
+ Enumerator.new do |y|
16
+ (1..Float::INFINITY).each do |delta|
24
17
  y << (delta * (delta + 1) * (2 * delta + 1)) / 6
18
+ end
25
19
  end
26
20
  end
27
- end
28
21
 
29
- alias_method :pyramidal, :square_pyramidal
22
+ alias pyramidal square_pyramidal
30
23
 
31
- def pentagonal_pyramidal
32
- Enumerator.new do |y|
33
- (1..Float::INFINITY).each do |delta|
24
+ def pentagonal_pyramidal
25
+ Enumerator.new do |y|
26
+ (1..Float::INFINITY).each do |delta|
34
27
  y << delta**2 * (delta + 1) / 2
28
+ end
35
29
  end
36
30
  end
37
- end
38
31
 
39
- def hexagonal_pyramidal
40
- Enumerator.new do |y|
41
- (1..Float::INFINITY).each do |delta|
32
+ def hexagonal_pyramidal
33
+ Enumerator.new do |y|
34
+ (1..Float::INFINITY).each do |delta|
42
35
  y << delta * (delta + 1) * (4 * delta - 1) / 6
36
+ end
43
37
  end
44
38
  end
45
- end
46
39
 
47
- def heptagonal_pyramidal
48
- Enumerator.new do |y|
49
- (1..Float::INFINITY).each do |delta|
40
+ def heptagonal_pyramidal
41
+ Enumerator.new do |y|
42
+ (1..Float::INFINITY).each do |delta|
50
43
  y << delta * (delta + 1) * (5 * delta - 2) / 6
44
+ end
51
45
  end
52
46
  end
53
- end
54
47
 
55
- def octagonal_pyramidal
56
- Enumerator.new do |y|
57
- (1..Float::INFINITY).each do |delta|
48
+ def octagonal_pyramidal
49
+ Enumerator.new do |y|
50
+ (1..Float::INFINITY).each do |delta|
58
51
  y << delta * (delta + 1) * (6 * delta - 3) / 6
52
+ end
59
53
  end
60
54
  end
61
- end
62
55
 
63
- def nonagonal_pyramidal
64
- Enumerator.new do |y|
65
- (1..Float::INFINITY).each do |delta|
56
+ def nonagonal_pyramidal
57
+ Enumerator.new do |y|
58
+ (1..Float::INFINITY).each do |delta|
66
59
  y << delta * (delta + 1) * (7 * delta - 4) / 6
60
+ end
67
61
  end
68
62
  end
69
- end
70
63
 
71
- def decagonal_pyramidal
72
- Enumerator.new do |y|
73
- (1..Float::INFINITY).each do |delta|
64
+ def decagonal_pyramidal
65
+ Enumerator.new do |y|
66
+ (1..Float::INFINITY).each do |delta|
74
67
  y << delta * (delta + 1) * (8 * delta - 5) / 6
68
+ end
75
69
  end
76
70
  end
77
- end
78
71
 
79
- def hendecagonal_pyramidal
80
- Enumerator.new do |y|
81
- (1..Float::INFINITY).each do |delta|
72
+ def hendecagonal_pyramidal
73
+ Enumerator.new do |y|
74
+ (1..Float::INFINITY).each do |delta|
82
75
  y << delta * (delta + 1) * (9 * delta - 6) / 6
76
+ end
83
77
  end
84
78
  end
85
- end
86
79
 
87
- def dodecagonal_pyramidal
88
- Enumerator.new do |y|
89
- (1..Float::INFINITY).each do |delta|
80
+ def dodecagonal_pyramidal
81
+ Enumerator.new do |y|
82
+ (1..Float::INFINITY).each do |delta|
90
83
  y << delta * (delta + 1) * (10 * delta - 7) / 6
84
+ end
91
85
  end
92
86
  end
93
- end
94
87
 
95
- def tridecagonal_pyramidal
96
- Enumerator.new do |y|
97
- (1..Float::INFINITY).each do |delta|
88
+ def tridecagonal_pyramidal
89
+ Enumerator.new do |y|
90
+ (1..Float::INFINITY).each do |delta|
98
91
  y << delta * (delta + 1) * (11 * delta - 8) / 6
92
+ end
99
93
  end
100
94
  end
101
- end
102
95
 
103
- def tetradecagonal_pyramidal
104
- Enumerator.new do |y|
105
- (1..Float::INFINITY).each do |delta|
96
+ def tetradecagonal_pyramidal
97
+ Enumerator.new do |y|
98
+ (1..Float::INFINITY).each do |delta|
106
99
  y << delta * (delta + 1) * (12 * delta - 9) / 6
100
+ end
107
101
  end
108
102
  end
109
- end
110
103
 
111
-
112
- def pentadecagonal_pyramidal
113
- Enumerator.new do |y|
114
- (1..Float::INFINITY).each do |delta|
104
+ def pentadecagonal_pyramidal
105
+ Enumerator.new do |y|
106
+ (1..Float::INFINITY).each do |delta|
115
107
  y << delta * (delta + 1) * (13 * delta - 10) / 6
108
+ end
116
109
  end
117
110
  end
118
- end
119
-
120
111
 
121
- def hexadecagonal_pyramidal
122
- Enumerator.new do |y|
123
- (1..Float::INFINITY).each do |delta|
112
+ def hexadecagonal_pyramidal
113
+ Enumerator.new do |y|
114
+ (1..Float::INFINITY).each do |delta|
124
115
  y << delta * (delta + 1) * (14 * delta - 11) / 6
116
+ end
125
117
  end
126
118
  end
127
- end
128
119
 
129
- def heptadecagonal_pyramidal
130
- Enumerator.new do |y|
131
- (1..Float::INFINITY).each do |delta|
120
+ def heptadecagonal_pyramidal
121
+ Enumerator.new do |y|
122
+ (1..Float::INFINITY).each do |delta|
132
123
  y << delta * (delta + 1) * (15 * delta - 12) / 6
124
+ end
133
125
  end
134
126
  end
135
- end
136
127
 
137
- def octadecagonal_pyramidal
138
- Enumerator.new do |y|
139
- (1..Float::INFINITY).each do |delta|
128
+ def octadecagonal_pyramidal
129
+ Enumerator.new do |y|
130
+ (1..Float::INFINITY).each do |delta|
140
131
  y << delta * (delta + 1) * (16 * delta - 13) / 6
132
+ end
141
133
  end
142
134
  end
143
- end
144
135
 
145
- def nonadecagonal_pyramidal
146
- Enumerator.new do |y|
147
- (1..Float::INFINITY).each do |delta|
136
+ def nonadecagonal_pyramidal
137
+ Enumerator.new do |y|
138
+ (1..Float::INFINITY).each do |delta|
148
139
  y << delta * (delta + 1) * (17 * delta - 14) / 6
140
+ end
149
141
  end
150
142
  end
151
- end
152
143
 
153
- def icosagonal_pyramidal
154
- Enumerator.new do |y|
155
- (1..Float::INFINITY).each do |delta|
144
+ def icosagonal_pyramidal
145
+ Enumerator.new do |y|
146
+ (1..Float::INFINITY).each do |delta|
156
147
  y << delta * (delta + 1) * (18 * delta - 15) / 6
148
+ end
157
149
  end
158
150
  end
159
- end
160
151
 
161
- def icosihenagonal_pyramidal
162
- Enumerator.new do |y|
163
- (1..Float::INFINITY).each do |delta|
152
+ def icosihenagonal_pyramidal
153
+ Enumerator.new do |y|
154
+ (1..Float::INFINITY).each do |delta|
164
155
  y << delta * (delta + 1) * (19 * delta - 16) / 6
156
+ end
165
157
  end
166
158
  end
167
- end
168
159
 
169
- def icosidigonal_pyramidal
170
- Enumerator.new do |y|
171
- (1..Float::INFINITY).each do |delta|
160
+ def icosidigonal_pyramidal
161
+ Enumerator.new do |y|
162
+ (1..Float::INFINITY).each do |delta|
172
163
  y << delta * (delta + 1) * (20 * delta - 17) / 6
164
+ end
173
165
  end
174
166
  end
175
- end
176
167
 
177
- def icositrigonal_pyramidal
178
- Enumerator.new do |y|
179
- (1..Float::INFINITY).each do |delta|
168
+ def icositrigonal_pyramidal
169
+ Enumerator.new do |y|
170
+ (1..Float::INFINITY).each do |delta|
180
171
  y << delta * (delta + 1) * (21 * delta - 18) / 6
172
+ end
181
173
  end
182
174
  end
183
- end
184
175
 
185
- def icositetragonal_pyramidal
186
- Enumerator.new do |y|
187
- (1..Float::INFINITY).each do |delta|
176
+ def icositetragonal_pyramidal
177
+ Enumerator.new do |y|
178
+ (1..Float::INFINITY).each do |delta|
188
179
  y << delta * (delta + 1) * (22 * delta - 19) / 6
180
+ end
189
181
  end
190
182
  end
191
- end
192
183
 
193
- def icosipentagonal_pyramidal
194
- Enumerator.new do |y|
195
- (1..Float::INFINITY).each do |delta|
184
+ def icosipentagonal_pyramidal
185
+ Enumerator.new do |y|
186
+ (1..Float::INFINITY).each do |delta|
196
187
  y << delta * (delta + 1) * (23 * delta - 20) / 6
188
+ end
197
189
  end
198
190
  end
199
- end
200
191
 
201
- def icosihexagonal_pyramidal
202
- Enumerator.new do |y|
203
- (1..Float::INFINITY).each do |delta|
192
+ def icosihexagonal_pyramidal
193
+ Enumerator.new do |y|
194
+ (1..Float::INFINITY).each do |delta|
204
195
  y << delta * (delta + 1) * (24 * delta - 21) / 6
196
+ end
205
197
  end
206
198
  end
207
- end
208
199
 
209
- def icosiheptagonal_pyramidal
210
- Enumerator.new do |y|
211
- (1..Float::INFINITY).each do |delta|
200
+ def icosiheptagonal_pyramidal
201
+ Enumerator.new do |y|
202
+ (1..Float::INFINITY).each do |delta|
212
203
  y << delta * (delta + 1) * (25 * delta - 22) / 6
204
+ end
213
205
  end
214
206
  end
215
- end
216
207
 
217
- def icosioctagonal_pyramidal
218
- Enumerator.new do |y|
219
- (1..Float::INFINITY).each do |delta|
208
+ def icosioctagonal_pyramidal
209
+ Enumerator.new do |y|
210
+ (1..Float::INFINITY).each do |delta|
220
211
  y << delta * (delta + 1) * (26 * delta - 23) / 6
212
+ end
221
213
  end
222
214
  end
223
- end
224
-
225
215
 
226
- def icosinonagonal_pyramidal
227
- Enumerator.new do |y|
228
- (1..Float::INFINITY).each do |delta|
216
+ def icosinonagonal_pyramidal
217
+ Enumerator.new do |y|
218
+ (1..Float::INFINITY).each do |delta|
229
219
  y << delta * (delta + 1) * (27 * delta - 24) / 6
220
+ end
230
221
  end
231
222
  end
232
- end
233
223
 
234
- def triacontagonal_pyramidal
235
- Enumerator.new do |y|
236
- (1..Float::INFINITY).each do |delta|
224
+ def triacontagonal_pyramidal
225
+ Enumerator.new do |y|
226
+ (1..Float::INFINITY).each do |delta|
237
227
  y << delta * (delta + 1) * (28 * delta - 25) / 6
228
+ end
238
229
  end
239
230
  end
240
- end
241
231
 
242
- def triangular_tetrahedral
243
- Enumerator.new do |y|
244
- finite_set = [1, 10, 120, 1540, 7140]
245
- (0..Float::INFINITY).each do |delta|
232
+ def triangular_tetrahedral
233
+ Enumerator.new do |y|
234
+ finite_set = [1, 10, 120, 1540, 7140]
235
+ (0..Float::INFINITY).each do |delta|
246
236
  y << finite_set[delta % 5]
237
+ end
247
238
  end
248
239
  end
249
- end
250
240
 
251
- def triangular_square_pyramidal
252
- Enumerator.new do |y|
253
- finite_set = [1, 55, 91, 208335]
254
- (0..Float::INFINITY).each do |delta|
241
+ def triangular_square_pyramidal
242
+ Enumerator.new do |y|
243
+ finite_set = [1, 55, 91, 208_335]
244
+ (0..Float::INFINITY).each do |delta|
255
245
  y << finite_set[delta % 4]
246
+ end
256
247
  end
257
248
  end
258
- end
259
249
 
260
- def square_tetrahedral
261
- Enumerator.new do |y|
262
- finite_set = [1, 4, 19600]
263
- (0..Float::INFINITY).each do |delta|
250
+ def square_tetrahedral
251
+ Enumerator.new do |y|
252
+ finite_set = [1, 4, 19_600]
253
+ (0..Float::INFINITY).each do |delta|
264
254
  y << finite_set[delta % 3]
255
+ end
265
256
  end
266
257
  end
267
- end
268
258
 
269
- def square_square_pyramidal
270
- Enumerator.new do |y|
271
- finite_set = [1, 4900]
272
- (0..Float::INFINITY).each do |delta|
259
+ def square_square_pyramidal
260
+ Enumerator.new do |y|
261
+ finite_set = [1, 4900]
262
+ (0..Float::INFINITY).each do |delta|
273
263
  y << finite_set[delta % 2]
264
+ end
274
265
  end
275
266
  end
276
- end
277
267
 
278
- def tetrahedral_square_pyramidal_number
279
- Enumerator.new do |y|
280
- (1..Float::INFINITY).each do
268
+ def tetrahedral_square_pyramidal_number
269
+ Enumerator.new do |y|
270
+ (1..Float::INFINITY).each do
281
271
  y << 1
272
+ end
282
273
  end
283
274
  end
284
- end
285
275
 
286
- def cubic
287
- Enumerator.new do |y|
288
- (1..Float::INFINITY).each do |delta|
289
- y << delta**3
276
+ def cubic
277
+ Enumerator.new do |y|
278
+ (1..Float::INFINITY).each do |delta|
279
+ y << delta**3
280
+ end
290
281
  end
291
282
  end
292
- end
293
283
 
294
- alias_method :perfect_cube, :cubic
284
+ alias perfect_cube cubic
295
285
 
296
- def tetrahedral
297
- Enumerator.new do |y|
298
- (1..Float::INFINITY).each do |delta|
299
- y << (delta * (delta + 1) * (delta + 2)) / 6
286
+ def tetrahedral
287
+ Enumerator.new do |y|
288
+ (1..Float::INFINITY).each do |delta|
289
+ y << (delta * (delta + 1) * (delta + 2)) / 6
290
+ end
300
291
  end
301
292
  end
302
- end
303
293
 
304
- def octahedral
305
- Enumerator.new do |y|
306
- (1..Float::INFINITY).each do |delta|
307
- y << (delta * (2 * delta**2 + 1)) / 3
294
+ alias triangular_pyramidal tetrahedral
295
+
296
+ def octahedral
297
+ Enumerator.new do |y|
298
+ (1..Float::INFINITY).each do |delta|
299
+ y << (delta * (2 * delta**2 + 1)) / 3
300
+ end
308
301
  end
309
302
  end
310
- end
311
303
 
312
- def dodecahedral
313
- Enumerator.new do |y|
314
- (1..Float::INFINITY).each do |delta|
315
- y << (delta * (3 * delta - 1) * (3 * delta - 2)) / 2
304
+ def dodecahedral
305
+ Enumerator.new do |y|
306
+ (1..Float::INFINITY).each do |delta|
307
+ y << (delta * (3 * delta - 1) * (3 * delta - 2)) / 2
308
+ end
316
309
  end
317
310
  end
318
- end
319
311
 
320
- def icosahedral
321
- Enumerator.new do |y|
322
- (1..Float::INFINITY).each do |delta|
323
- y << (delta * (5 * delta**2 - 5 * delta + 2)) / 2
312
+ def icosahedral
313
+ Enumerator.new do |y|
314
+ (1..Float::INFINITY).each do |delta|
315
+ y << (delta * (5 * delta**2 - 5 * delta + 2)) / 2
316
+ end
324
317
  end
325
318
  end
326
- end
327
319
 
328
- def truncated_tetrahedral
329
- Enumerator.new do |y|
330
- (1..Float::INFINITY).each do |delta|
331
- y << (23 * delta**2 - 27 * delta + 10) * delta / 6
320
+ def truncated_tetrahedral
321
+ Enumerator.new do |y|
322
+ (1..Float::INFINITY).each do |delta|
323
+ y << (23 * delta**2 - 27 * delta + 10) * delta / 6
324
+ end
332
325
  end
333
326
  end
334
- end
335
327
 
336
- def truncated_cubic
337
- Enumerator.new do |y|
338
- (1..Float::INFINITY).each do |delta|
339
- y << (3 * delta - 2)**3 - ((8 * (delta - 1) * delta * (delta + 1)) / 6)
328
+ def truncated_cubic
329
+ Enumerator.new do |y|
330
+ (1..Float::INFINITY).each do |delta|
331
+ y << (3 * delta - 2)**3 - ((8 * (delta - 1) * delta * (delta + 1)) / 6)
332
+ end
340
333
  end
341
334
  end
342
- end
343
335
 
344
- def truncated_octahedral
345
- Enumerator.new do |y|
346
- (1..Float::INFINITY).each do |delta|
347
- y << (16 * delta**3 - 33 * delta**2 + 24 * delta - 6)
336
+ def truncated_octahedral
337
+ Enumerator.new do |y|
338
+ (1..Float::INFINITY).each do |delta|
339
+ y << (16 * delta**3 - 33 * delta**2 + 24 * delta - 6)
340
+ end
348
341
  end
349
342
  end
350
- end
351
343
 
352
- def stella_octangula
353
- Enumerator.new do |y|
354
- (1..Float::INFINITY).each do |delta|
355
- y << delta * (2 * delta**2 - 1)
344
+ def stella_octangula
345
+ Enumerator.new do |y|
346
+ (1..Float::INFINITY).each do |delta|
347
+ y << delta * (2 * delta**2 - 1)
348
+ end
356
349
  end
357
350
  end
358
- end
359
351
 
360
- def centered_cube
361
- Enumerator.new do |y|
362
- (1..Float::INFINITY).each do |delta|
363
- y << (2 * delta - 1) * (delta**2 - delta + 1)
352
+ def centered_cube
353
+ Enumerator.new do |y|
354
+ (1..Float::INFINITY).each do |delta|
355
+ y << (2 * delta - 1) * (delta**2 - delta + 1)
356
+ end
364
357
  end
365
358
  end
366
- end
367
359
 
368
- def rhombic_dodecahedral
369
- Enumerator.new do |y|
370
- (1..Float::INFINITY).each do |delta|
371
- y << (2 * delta - 1) * (2 * delta**2 - 2 * delta + 1)
360
+ def rhombic_dodecahedral
361
+ Enumerator.new do |y|
362
+ (1..Float::INFINITY).each do |delta|
363
+ y << (2 * delta - 1) * (2 * delta**2 - 2 * delta + 1)
364
+ end
372
365
  end
373
366
  end
374
- end
375
367
 
376
- def hauy_rhombic_dodecahedral
377
- Enumerator.new do |y|
378
- (1..Float::INFINITY).each do |delta|
379
- y << (2 * delta - 1) * (8 * delta**2 - 14 * delta + 7)
368
+ def hauy_rhombic_dodecahedral
369
+ Enumerator.new do |y|
370
+ (1..Float::INFINITY).each do |delta|
371
+ y << (2 * delta - 1) * (8 * delta**2 - 14 * delta + 7)
372
+ end
380
373
  end
381
374
  end
382
- end
383
375
 
384
- def centered_tetrahedron
385
- Enumerator.new do |y|
386
- (1..Float::INFINITY).each do |delta|
387
- y << (2 * delta - 1) * ((delta**2 - delta + 3)) / 3
376
+ def centered_tetrahedron
377
+ Enumerator.new do |y|
378
+ (1..Float::INFINITY).each do |delta|
379
+ y << (2 * delta - 1) * ((delta**2 - delta + 3)) / 3
380
+ end
388
381
  end
389
382
  end
390
- end
391
383
 
392
- alias_method :centered_tetrahedral, :centered_tetrahedron
384
+ alias centered_tetrahedral centered_tetrahedron
393
385
 
394
- def centered_square_pyramid
395
- Enumerator.new do |y|
396
- (1..Float::INFINITY).each do |delta|
397
- y << (2 * delta - 1) * ((delta**2 - delta + 2)) / 2
386
+ def centered_square_pyramid
387
+ Enumerator.new do |y|
388
+ (1..Float::INFINITY).each do |delta|
389
+ y << (2 * delta - 1) * ((delta**2 - delta + 2)) / 2
390
+ end
398
391
  end
399
392
  end
400
- end
401
393
 
402
- alias_method :centered_pyramid, :centered_square_pyramid
394
+ alias centered_pyramid centered_square_pyramid
403
395
 
404
- def centered_mgonal_pyramid(m)
405
- Enumerator.new do |y|
406
- (1..Float::INFINITY).each do |delta|
407
- y << (m - 1) * ((delta - 1) * delta * (2 * delta - 1)) / 6 + (2 * delta - 1)
396
+ def centered_mgonal_pyramid(m)
397
+ Enumerator.new do |y|
398
+ (1..Float::INFINITY).each do |delta|
399
+ y << (m - 1) * ((delta - 1) * delta * (2 * delta - 1)) / 6 + (2 * delta - 1)
400
+ end
408
401
  end
409
402
  end
410
- end
411
403
 
412
- def centered_pentagonal_pyramid
413
- Enumerator.new do |y|
414
- (1..Float::INFINITY).each do |delta|
415
- y << (2 * delta - 1) * ( 2 * delta**2 - 2 * delta + 3) / 3
404
+ def centered_pentagonal_pyramid
405
+ Enumerator.new do |y|
406
+ (1..Float::INFINITY).each do |delta|
407
+ y << (2 * delta - 1) * (2 * delta**2 - 2 * delta + 3) / 3
408
+ end
416
409
  end
417
410
  end
418
- end
419
411
 
420
- def centered_hexagonal_pyramid
421
- Enumerator.new do |y|
422
- (1..Float::INFINITY).each do |delta|
423
- y << (2 * delta - 1) * (5 * delta**2 - 5 * delta + 6) / 6
412
+ def centered_hexagonal_pyramid
413
+ Enumerator.new do |y|
414
+ (1..Float::INFINITY).each do |delta|
415
+ y << (2 * delta - 1) * (5 * delta**2 - 5 * delta + 6) / 6
416
+ end
424
417
  end
425
418
  end
426
- end
427
419
 
428
- def centered_heptagonal_pyramid
429
- Enumerator.new do |y|
430
- (1..Float::INFINITY).each do |delta|
431
- y << (2 * delta - 1) * (delta**2 - delta + 1)
420
+ def centered_heptagonal_pyramid
421
+ Enumerator.new do |y|
422
+ (1..Float::INFINITY).each do |delta|
423
+ y << (2 * delta - 1) * (delta**2 - delta + 1)
424
+ end
432
425
  end
433
426
  end
434
- end
435
427
 
436
- def centered_octagonal_pyramid
437
- Enumerator.new do |y|
438
- (1..Float::INFINITY).each do |delta|
439
- y << (2 * delta - 1) * (7 * delta**2 - 7 * delta + 6) / 6
428
+ def centered_octagonal_pyramid
429
+ Enumerator.new do |y|
430
+ (1..Float::INFINITY).each do |delta|
431
+ y << (2 * delta - 1) * (7 * delta**2 - 7 * delta + 6) / 6
432
+ end
440
433
  end
441
434
  end
442
- end
443
435
 
444
- def centered_octahedron
445
- Enumerator.new do |y|
446
- (1..Float::INFINITY).each do |delta|
447
- y << (2 * delta - 1) * (2 * delta**2 - 2 * delta + 3) / 3
436
+ def centered_octahedron
437
+ Enumerator.new do |y|
438
+ (1..Float::INFINITY).each do |delta|
439
+ y << (2 * delta - 1) * (2 * delta**2 - 2 * delta + 3) / 3
440
+ end
448
441
  end
449
442
  end
450
- end
451
443
 
452
- def centered_icosahedron
453
- Enumerator.new do |y|
454
- (1..Float::INFINITY).each do |delta|
455
- y << (2 * delta - 1) * (5 * delta**2 - 5 * delta + 3) / 3
444
+ def centered_icosahedron
445
+ Enumerator.new do |y|
446
+ (1..Float::INFINITY).each do |delta|
447
+ y << (2 * delta - 1) * (5 * delta**2 - 5 * delta + 3) / 3
448
+ end
456
449
  end
457
450
  end
458
- end
459
451
 
460
- alias_method :centered_cuboctahedron, :centered_icosahedron
452
+ alias centered_cuboctahedron centered_icosahedron
461
453
 
462
- def centered_dodecahedron
463
- Enumerator.new do |y|
464
- (1..Float::INFINITY).each do |delta|
465
- y << (2 * delta - 1) * (3 * delta**2 - 3 * delta + 1)
454
+ def centered_dodecahedron
455
+ Enumerator.new do |y|
456
+ (1..Float::INFINITY).each do |delta|
457
+ y << (2 * delta - 1) * (3 * delta**2 - 3 * delta + 1)
458
+ end
466
459
  end
467
460
  end
468
- end
469
461
 
470
- def centered_truncated_tetrahedron
471
- Enumerator.new do |y|
472
- (1..Float::INFINITY).each do |delta|
473
- y << (2 * delta - 1) * (7 * delta**2 - 7 * delta + 3) / 3
462
+ def centered_truncated_tetrahedron
463
+ Enumerator.new do |y|
464
+ (1..Float::INFINITY).each do |delta|
465
+ y << (2 * delta - 1) * (7 * delta**2 - 7 * delta + 3) / 3
466
+ end
474
467
  end
475
468
  end
476
- end
477
469
 
478
- def centered_truncated_cube
479
- Enumerator.new do |y|
480
- (1..Float::INFINITY).each do |delta|
481
- y << (2 * delta - 1) * (23 * delta**2 - 23 * delta + 3) / 3
470
+ def centered_truncated_cube
471
+ Enumerator.new do |y|
472
+ (1..Float::INFINITY).each do |delta|
473
+ y << (2 * delta - 1) * (23 * delta**2 - 23 * delta + 3) / 3
474
+ end
482
475
  end
483
476
  end
484
- end
485
477
 
486
- def centered_truncated_octahedron
487
- Enumerator.new do |y|
488
- (1..Float::INFINITY).each do |delta|
489
- y << (2 * delta - 1) * (5 * delta**2 - 5 * delta + 1)
478
+ def centered_truncated_octahedron
479
+ Enumerator.new do |y|
480
+ (1..Float::INFINITY).each do |delta|
481
+ y << (2 * delta - 1) * (5 * delta**2 - 5 * delta + 1)
482
+ end
490
483
  end
491
484
  end
492
- end
493
485
 
494
- def centered_mgonal_pyramidal(m)
495
- Enumerator.new do |y|
496
- (1..Float::INFINITY).each do |delta|
497
- y << (m * delta**3 + delta * (6 - m)) / 6
486
+ def centered_mgonal_pyramidal(m)
487
+ Enumerator.new do |y|
488
+ (1..Float::INFINITY).each do |delta|
489
+ y << (m * delta**3 + delta * (6 - m)) / 6
490
+ end
498
491
  end
499
492
  end
500
- end
501
493
 
502
- def centered_triangular_pyramidal
503
- Enumerator.new do |y|
504
- (1..Float::INFINITY).each do |delta|
505
- y << delta * (delta**2 + 1) / 2
494
+ def centered_triangular_pyramidal
495
+ Enumerator.new do |y|
496
+ (1..Float::INFINITY).each do |delta|
497
+ y << delta * (delta**2 + 1) / 2
498
+ end
506
499
  end
507
500
  end
508
- end
509
501
 
510
- def centered_square_pyramidal
511
- Enumerator.new do |y|
512
- (1..Float::INFINITY).each do |delta|
513
- y << (2 * delta**3 + delta) / 3
502
+ def centered_square_pyramidal
503
+ Enumerator.new do |y|
504
+ (1..Float::INFINITY).each do |delta|
505
+ y << (2 * delta**3 + delta) / 3
506
+ end
514
507
  end
515
508
  end
516
- end
517
509
 
518
- def centered_pentagonal_pyramidal
519
- Enumerator.new do |y|
520
- (1..Float::INFINITY).each do |delta|
521
- y << (5 * delta**3 + delta) / 6
510
+ def centered_pentagonal_pyramidal
511
+ Enumerator.new do |y|
512
+ (1..Float::INFINITY).each do |delta|
513
+ y << (5 * delta**3 + delta) / 6
514
+ end
522
515
  end
523
516
  end
524
- end
525
517
 
526
- def centered_hexagonal_pyramidal
527
- Enumerator.new do |y|
528
- (1..Float::INFINITY).each do |delta|
529
- y << delta**3
518
+ def centered_hexagonal_pyramidal
519
+ Enumerator.new do |y|
520
+ (1..Float::INFINITY).each do |delta|
521
+ y << delta**3
522
+ end
530
523
  end
531
524
  end
532
- end
533
525
 
534
- alias_method :hex_pyramidal, :centered_hexagonal_pyramidal
526
+ alias hex_pyramidal centered_hexagonal_pyramidal
535
527
 
536
- def centered_heptagonal_pyramidal
537
- m = 7
538
- Enumerator.new do |y|
539
- (1..Float::INFINITY).each do |delta|
540
- y << (m * delta**3 + delta * (6 - m)) / 6
528
+ def centered_heptagonal_pyramidal
529
+ m = 7
530
+ Enumerator.new do |y|
531
+ (1..Float::INFINITY).each do |delta|
532
+ y << (m * delta**3 + delta * (6 - m)) / 6
533
+ end
541
534
  end
542
535
  end
543
- end
544
536
 
545
- def centered_octagonal_pyramidal
546
- m = 8
547
- Enumerator.new do |y|
548
- (1..Float::INFINITY).each do |delta|
549
- y << (m * delta**3 + delta * (6 - m)) / 6
537
+ def centered_octagonal_pyramidal
538
+ m = 8
539
+ Enumerator.new do |y|
540
+ (1..Float::INFINITY).each do |delta|
541
+ y << (m * delta**3 + delta * (6 - m)) / 6
542
+ end
550
543
  end
551
544
  end
552
- end
553
545
 
554
- def centered_nonagonal_pyramidal
555
- m = 9
556
- Enumerator.new do |y|
557
- (1..Float::INFINITY).each do |delta|
558
- y << (m * delta**3 + delta * (6 - m)) / 6
546
+ def centered_nonagonal_pyramidal
547
+ m = 9
548
+ Enumerator.new do |y|
549
+ (1..Float::INFINITY).each do |delta|
550
+ y << (m * delta**3 + delta * (6 - m)) / 6
551
+ end
559
552
  end
560
553
  end
561
- end
562
554
 
563
- def centered_decagonal_pyramidal
564
- m = 10
565
- Enumerator.new do |y|
566
- (1..Float::INFINITY).each do |delta|
567
- y << (m * delta**3 + delta * (6 - m)) / 6
555
+ def centered_decagonal_pyramidal
556
+ m = 10
557
+ Enumerator.new do |y|
558
+ (1..Float::INFINITY).each do |delta|
559
+ y << (m * delta**3 + delta * (6 - m)) / 6
560
+ end
568
561
  end
569
562
  end
570
- end
571
563
 
572
- def centered_hendecagonal_pyramidal
573
- m = 11
574
- Enumerator.new do |y|
575
- (1..Float::INFINITY).each do |delta|
576
- y << (m * delta**3 + delta * (6 - m)) / 6
564
+ def centered_hendecagonal_pyramidal
565
+ m = 11
566
+ Enumerator.new do |y|
567
+ (1..Float::INFINITY).each do |delta|
568
+ y << (m * delta**3 + delta * (6 - m)) / 6
569
+ end
577
570
  end
578
571
  end
579
- end
580
572
 
581
- def centered_dodecagonal_pyramidal
582
- m = 12
583
- Enumerator.new do |y|
584
- (1..Float::INFINITY).each do |delta|
585
- y << (m * delta**3 + delta * (6 - m)) / 6
573
+ def centered_dodecagonal_pyramidal
574
+ m = 12
575
+ Enumerator.new do |y|
576
+ (1..Float::INFINITY).each do |delta|
577
+ y << (m * delta**3 + delta * (6 - m)) / 6
578
+ end
586
579
  end
587
580
  end
588
- end
589
581
 
590
- def hexagonal_prism
591
- Enumerator.new do |y|
592
- (1..Float::INFINITY).each do |delta|
593
- y << delta * ( 3 * delta**2 - 3 * delta + 1)
582
+ def hexagonal_prism
583
+ Enumerator.new do |y|
584
+ (1..Float::INFINITY).each do |delta|
585
+ y << delta * (3 * delta**2 - 3 * delta + 1)
586
+ end
594
587
  end
595
588
  end
596
- end
597
589
 
598
- def mgonal_prism(m)
599
- Enumerator.new do |y|
600
- (1..Float::INFINITY).each do |delta|
601
- y << delta * (m * delta**2 - m * delta + 2) / 2
590
+ def mgonal_prism(m)
591
+ Enumerator.new do |y|
592
+ (1..Float::INFINITY).each do |delta|
593
+ y << delta * (m * delta**2 - m * delta + 2) / 2
594
+ end
602
595
  end
603
596
  end
604
- end
605
597
 
606
- def generalized_mgonal_pyramidal(m, left_index = 0)
607
- Enumerator.new do |y|
608
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
609
- y << (delta * (delta + 1) * ((m - 2) * delta - m + 5 )) / 6
598
+ def generalized_mgonal_pyramidal(m, left_index = 0)
599
+ Enumerator.new do |y|
600
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
601
+ y << (delta * (delta + 1) * ((m - 2) * delta - m + 5)) / 6
602
+ end
610
603
  end
611
604
  end
612
- end
613
605
 
614
- def generalized_pentagonal_pyramidal(left_index = 0)
615
- m = 5
616
- Enumerator.new do |y|
617
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
618
- y << (delta * (delta + 1) * ((m - 2) * delta - m + 5 )) / 6
606
+ def generalized_pentagonal_pyramidal(left_index = 0)
607
+ m = 5
608
+ Enumerator.new do |y|
609
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
610
+ y << (delta * (delta + 1) * ((m - 2) * delta - m + 5)) / 6
611
+ end
619
612
  end
620
613
  end
621
- end
622
614
 
623
- def generalized_hexagonal_pyramidal(left_index = 0)
624
- m = 6
625
- Enumerator.new do |y|
626
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
627
- y << (delta * (delta + 1) * ((m - 2) * delta - m + 5 )) / 6
615
+ def generalized_hexagonal_pyramidal(left_index = 0)
616
+ m = 6
617
+ Enumerator.new do |y|
618
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
619
+ y << (delta * (delta + 1) * ((m - 2) * delta - m + 5)) / 6
620
+ end
628
621
  end
629
622
  end
630
- end
631
623
 
632
- def generalized_cubic(left_index = 0)
633
- Enumerator.new do |y|
634
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
635
- y << delta**3
624
+ def generalized_cubic(left_index = 0)
625
+ Enumerator.new do |y|
626
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
627
+ y << delta**3
628
+ end
636
629
  end
637
630
  end
638
- end
639
631
 
640
- def generalized_octahedral(left_index = 0)
641
- Enumerator.new do |y|
642
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
643
- y << (2 * delta**2 + 1) * delta / 3
632
+ def generalized_octahedral(left_index = 0)
633
+ Enumerator.new do |y|
634
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
635
+ y << (2 * delta**2 + 1) * delta / 3
636
+ end
644
637
  end
645
638
  end
646
- end
647
639
 
648
- def generalized_icosahedral(left_index = 0)
649
- Enumerator.new do |y|
650
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
651
- y << ( 5 * delta**2 - 5 * delta + 2 ) * delta / 2
640
+ def generalized_icosahedral(left_index = 0)
641
+ Enumerator.new do |y|
642
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
643
+ y << (5 * delta**2 - 5 * delta + 2) * delta / 2
644
+ end
652
645
  end
653
646
  end
654
- end
655
647
 
656
- def generalized_dodecahedral(left_index = 0)
657
- Enumerator.new do |y|
658
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
659
- y << (9 * delta**2 - 9 * delta + 2) * delta / 2
648
+ def generalized_dodecahedral(left_index = 0)
649
+ Enumerator.new do |y|
650
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
651
+ y << (9 * delta**2 - 9 * delta + 2) * delta / 2
652
+ end
660
653
  end
661
654
  end
662
- end
663
655
 
664
- def generalized_centered_cube(left_index = 0)
665
- Enumerator.new do |y|
666
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
667
- y << (2 * delta - 1) * (delta**2 - delta + 1)
656
+ def generalized_centered_cube(left_index = 0)
657
+ Enumerator.new do |y|
658
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
659
+ y << (2 * delta - 1) * (delta**2 - delta + 1)
660
+ end
668
661
  end
669
662
  end
670
- end
671
663
 
672
- def generalized_centered_tetrahedron(left_index = 0)
673
- Enumerator.new do |y|
674
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
675
- y << (2 * delta - 1) * (delta**2 - delta + 3) / 3
664
+ def generalized_centered_tetrahedron(left_index = 0)
665
+ Enumerator.new do |y|
666
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
667
+ y << (2 * delta - 1) * (delta**2 - delta + 3) / 3
668
+ end
676
669
  end
677
670
  end
678
- end
679
671
 
680
- def generalized_centered_square_pyramid(left_index = 0)
681
- Enumerator.new do |y|
682
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
683
- y << ((2 * delta - 1) * (delta**2 - delta + 2)) / 2
672
+ def generalized_centered_square_pyramid(left_index = 0)
673
+ Enumerator.new do |y|
674
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
675
+ y << ((2 * delta - 1) * (delta**2 - delta + 2)) / 2
676
+ end
684
677
  end
685
678
  end
686
- end
687
679
 
688
- def generalized_rhombic_dodecahedral(left_index = 0)
689
- Enumerator.new do |y|
690
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
691
- y << delta**4 - (delta - 1)**4
680
+ def generalized_rhombic_dodecahedral(left_index = 0)
681
+ Enumerator.new do |y|
682
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
683
+ y << delta**4 - (delta - 1)**4
684
+ end
692
685
  end
693
686
  end
694
- end
695
687
 
696
- def generalized_centered_mgonal_pyramidal(m, left_index = 0)
697
- Enumerator.new do |y|
698
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
699
- y << (m * delta**3 + delta * (6 - m)) / 6
688
+ def generalized_centered_mgonal_pyramidal(m, left_index = 0)
689
+ Enumerator.new do |y|
690
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
691
+ y << (m * delta**3 + delta * (6 - m)) / 6
692
+ end
700
693
  end
701
694
  end
702
- end
703
695
 
704
- def generalized_mgonal_prism(m, left_index = 0)
705
- Enumerator.new do |y|
706
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
707
- y << delta * (m * delta**2 - m * delta + 2) / 2
696
+ def generalized_mgonal_prism(m, left_index = 0)
697
+ Enumerator.new do |y|
698
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
699
+ y << delta * (m * delta**2 - m * delta + 2) / 2
700
+ end
708
701
  end
709
702
  end
710
- end
711
703
 
712
- def generalized_hexagonal_prism(left_index = 0)
713
- Enumerator.new do |y|
714
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
715
- y << delta * (3 * delta**2 - 3 * delta + 1)
704
+ def generalized_hexagonal_prism(left_index = 0)
705
+ Enumerator.new do |y|
706
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
707
+ y << delta * (3 * delta**2 - 3 * delta + 1)
708
+ end
716
709
  end
717
710
  end
718
711
  end
719
-
720
712
  end