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,627 +1,653 @@
1
- module PlaneFigurateNumbers
2
- extend self
1
+ module FigurateNumbers
2
+ # Module containing methods for generating 2D figurate number sequences.
3
+ module PlaneFigurateNumbers # rubocop:disable Metrics/ModuleLength
4
+ extend self
3
5
 
4
- def polygonal(m)
5
- Enumerator.new do |y|
6
- (1..Float::INFINITY).each do |delta|
7
- y << ((m - 2) * delta**2 - (m - 4) * delta) / 2
6
+ def polygonal(m)
7
+ Enumerator.new do |y|
8
+ (1..Float::INFINITY).each do |delta|
9
+ y << ((m - 2) * delta**2 - (m - 4) * delta) / 2
10
+ end
8
11
  end
9
12
  end
10
- end
11
13
 
12
- def triangular
13
- Enumerator.new do |y|
14
- (1..Float::INFINITY).each do |delta|
15
- y << (delta**2 + delta) / 2
14
+ def triangular
15
+ Enumerator.new do |y|
16
+ (1..Float::INFINITY).each do |delta|
17
+ y << (delta**2 + delta) / 2
18
+ end
16
19
  end
17
20
  end
18
- end
19
21
 
20
- def square
21
- Enumerator.new do |y|
22
- (1..Float::INFINITY).each do |delta|
23
- y << (2 * delta**2) / 2
22
+ def square
23
+ Enumerator.new do |y|
24
+ (1..Float::INFINITY).each do |delta|
25
+ y << (2 * delta**2) / 2
26
+ end
24
27
  end
25
28
  end
26
- end
27
29
 
28
- def pentagonal
29
- Enumerator.new do |y|
30
- (1..Float::INFINITY).each do |delta|
31
- y << (3 * delta**2 - delta) / 2
30
+ def pentagonal
31
+ Enumerator.new do |y|
32
+ (1..Float::INFINITY).each do |delta|
33
+ y << (3 * delta**2 - delta) / 2
34
+ end
32
35
  end
33
36
  end
34
- end
35
37
 
36
- def hexagonal
37
- Enumerator.new do |y|
38
- (1..Float::INFINITY).each do |delta|
39
- y << (4 * delta**2 - 2 * delta) / 2
38
+ def hexagonal
39
+ Enumerator.new do |y|
40
+ (1..Float::INFINITY).each do |delta|
41
+ y << (4 * delta**2 - 2 * delta) / 2
42
+ end
40
43
  end
41
44
  end
42
- end
43
45
 
44
- def heptagonal
45
- Enumerator.new do |y|
46
- (1..Float::INFINITY).each do |delta|
47
- y << (5 * delta**2 - 3 * delta) / 2
46
+ def heptagonal
47
+ Enumerator.new do |y|
48
+ (1..Float::INFINITY).each do |delta|
49
+ y << (5 * delta**2 - 3 * delta) / 2
50
+ end
48
51
  end
49
52
  end
50
- end
51
53
 
52
- def octagonal
53
- Enumerator.new do |y|
54
- (1..Float::INFINITY).each do |delta|
55
- y << (6 * delta**2 - 4 * delta) / 2
54
+ def octagonal
55
+ Enumerator.new do |y|
56
+ (1..Float::INFINITY).each do |delta|
57
+ y << (6 * delta**2 - 4 * delta) / 2
58
+ end
56
59
  end
57
60
  end
58
- end
59
61
 
60
- def nonagonal
61
- Enumerator.new do |y|
62
- (1..Float::INFINITY).each do |delta|
63
- y << (7 * delta**2 - 5 * delta) / 2
62
+ def nonagonal
63
+ Enumerator.new do |y|
64
+ (1..Float::INFINITY).each do |delta|
65
+ y << (7 * delta**2 - 5 * delta) / 2
66
+ end
64
67
  end
65
68
  end
66
- end
67
69
 
68
- def decagonal
69
- Enumerator.new do |y|
70
- (1..Float::INFINITY).each do |delta|
71
- y << (8 * delta**2 - 6 * delta) / 2
70
+ def decagonal
71
+ Enumerator.new do |y|
72
+ (1..Float::INFINITY).each do |delta|
73
+ y << (8 * delta**2 - 6 * delta) / 2
74
+ end
72
75
  end
73
76
  end
74
- end
75
77
 
76
- def hendecagonal
77
- Enumerator.new do |y|
78
- (1..Float::INFINITY).each do |delta|
79
- y << (9 * delta**2 - 7 * delta) / 2
78
+ def hendecagonal
79
+ Enumerator.new do |y|
80
+ (1..Float::INFINITY).each do |delta|
81
+ y << (9 * delta**2 - 7 * delta) / 2
82
+ end
80
83
  end
81
84
  end
82
- end
83
85
 
84
- def dodecagonal
85
- Enumerator.new do |y|
86
- (1..Float::INFINITY).each do |delta|
87
- y << (10 * delta**2 - 8 * delta) / 2
86
+ def dodecagonal
87
+ Enumerator.new do |y|
88
+ (1..Float::INFINITY).each do |delta|
89
+ y << (10 * delta**2 - 8 * delta) / 2
90
+ end
88
91
  end
89
92
  end
90
- end
91
93
 
92
- def tridecagonal
93
- Enumerator.new do |y|
94
- (1..Float::INFINITY).each do |delta|
95
- y << (11 * delta**2 - 9 * delta) / 2
94
+ def tridecagonal
95
+ Enumerator.new do |y|
96
+ (1..Float::INFINITY).each do |delta|
97
+ y << (11 * delta**2 - 9 * delta) / 2
98
+ end
96
99
  end
97
100
  end
98
- end
99
101
 
100
- def tetradecagonal
101
- Enumerator.new do |y|
102
- (1..Float::INFINITY).each do |delta|
103
- y << (12 * delta**2 - 10 * delta) / 2
102
+ def tetradecagonal
103
+ Enumerator.new do |y|
104
+ (1..Float::INFINITY).each do |delta|
105
+ y << (12 * delta**2 - 10 * delta) / 2
106
+ end
104
107
  end
105
108
  end
106
- end
107
109
 
108
- def pentadecagonal
109
- Enumerator.new do |y|
110
- (1..Float::INFINITY).each do |delta|
111
- y << (13 * delta**2 - 11 * delta) / 2
110
+ def pentadecagonal
111
+ Enumerator.new do |y|
112
+ (1..Float::INFINITY).each do |delta|
113
+ y << (13 * delta**2 - 11 * delta) / 2
114
+ end
112
115
  end
113
116
  end
114
- end
115
117
 
116
- def hexadecagonal
117
- Enumerator.new do |y|
118
- (1..Float::INFINITY).each do |delta|
119
- y << (14 * delta**2 - 12 * delta) / 2
118
+ def hexadecagonal
119
+ Enumerator.new do |y|
120
+ (1..Float::INFINITY).each do |delta|
121
+ y << (14 * delta**2 - 12 * delta) / 2
122
+ end
120
123
  end
121
124
  end
122
- end
123
125
 
124
- def heptadecagonal
125
- Enumerator.new do |y|
126
- (1..Float::INFINITY).each do |delta|
127
- y << (15 * delta**2 - 13 * delta) / 2
126
+ def heptadecagonal
127
+ Enumerator.new do |y|
128
+ (1..Float::INFINITY).each do |delta|
129
+ y << (15 * delta**2 - 13 * delta) / 2
130
+ end
128
131
  end
129
132
  end
130
- end
131
133
 
132
- def octadecagonal
133
- Enumerator.new do |y|
134
- (1..Float::INFINITY).each do |delta|
135
- y << (16 * delta**2 - 14 * delta) / 2
134
+ def octadecagonal
135
+ Enumerator.new do |y|
136
+ (1..Float::INFINITY).each do |delta|
137
+ y << (16 * delta**2 - 14 * delta) / 2
138
+ end
136
139
  end
137
140
  end
138
- end
139
141
 
140
- def nonadecagonal
141
- Enumerator.new do |y|
142
- (1..Float::INFINITY).each do |delta|
143
- y << (17 * delta**2 - 15 * delta) / 2
142
+ def nonadecagonal
143
+ Enumerator.new do |y|
144
+ (1..Float::INFINITY).each do |delta|
145
+ y << (17 * delta**2 - 15 * delta) / 2
146
+ end
144
147
  end
145
148
  end
146
- end
147
149
 
148
- def icosagonal
149
- Enumerator.new do |y|
150
- (1..Float::INFINITY).each do |delta|
151
- y << (18 * delta**2 - 16 * delta) / 2
150
+ def icosagonal
151
+ Enumerator.new do |y|
152
+ (1..Float::INFINITY).each do |delta|
153
+ y << (18 * delta**2 - 16 * delta) / 2
154
+ end
152
155
  end
153
156
  end
154
- end
155
157
 
156
- def icosihenagonal
157
- Enumerator.new do |y|
158
- (1..Float::INFINITY).each do |delta|
159
- y << (19 * delta**2 - 17 * delta) / 2
158
+ def icosihenagonal
159
+ Enumerator.new do |y|
160
+ (1..Float::INFINITY).each do |delta|
161
+ y << (19 * delta**2 - 17 * delta) / 2
162
+ end
160
163
  end
161
164
  end
162
- end
163
165
 
164
- def icosidigonal
165
- Enumerator.new do |y|
166
- (1..Float::INFINITY).each do |delta|
167
- y << (20 * delta**2 - 18 * delta) / 2
166
+ def icosidigonal
167
+ Enumerator.new do |y|
168
+ (1..Float::INFINITY).each do |delta|
169
+ y << (20 * delta**2 - 18 * delta) / 2
170
+ end
168
171
  end
169
172
  end
170
- end
171
173
 
172
- def icositrigonal
173
- Enumerator.new do |y|
174
- (1..Float::INFINITY).each do |delta|
175
- y << (21 * delta**2 - 19 * delta) / 2
174
+ def icositrigonal
175
+ Enumerator.new do |y|
176
+ (1..Float::INFINITY).each do |delta|
177
+ y << (21 * delta**2 - 19 * delta) / 2
178
+ end
176
179
  end
177
180
  end
178
- end
179
181
 
180
- def icositetragonal
181
- Enumerator.new do |y|
182
- (1..Float::INFINITY).each do |delta|
183
- y << (22 * delta**2 - 20 * delta) / 2
182
+ def icositetragonal
183
+ Enumerator.new do |y|
184
+ (1..Float::INFINITY).each do |delta|
185
+ y << (22 * delta**2 - 20 * delta) / 2
186
+ end
184
187
  end
185
188
  end
186
- end
187
189
 
188
- def icosipentagonal
189
- Enumerator.new do |y|
190
- (1..Float::INFINITY).each do |delta|
191
- y << (23 * delta**2 - 21 * delta) / 2
190
+ def icosipentagonal
191
+ Enumerator.new do |y|
192
+ (1..Float::INFINITY).each do |delta|
193
+ y << (23 * delta**2 - 21 * delta) / 2
194
+ end
192
195
  end
193
196
  end
194
- end
195
197
 
196
- def icosihexagonal
197
- Enumerator.new do |y|
198
- (1..Float::INFINITY).each do |delta|
199
- y << (24 * delta**2 - 22 * delta) / 2
198
+ def icosihexagonal
199
+ Enumerator.new do |y|
200
+ (1..Float::INFINITY).each do |delta|
201
+ y << (24 * delta**2 - 22 * delta) / 2
202
+ end
200
203
  end
201
204
  end
202
- end
203
205
 
204
- def icosiheptagonal
205
- Enumerator.new do |y|
206
- (1..Float::INFINITY).each do |delta|
207
- y << (25 * delta**2 - 23 * delta) / 2
206
+ def icosiheptagonal
207
+ Enumerator.new do |y|
208
+ (1..Float::INFINITY).each do |delta|
209
+ y << (25 * delta**2 - 23 * delta) / 2
210
+ end
208
211
  end
209
212
  end
210
- end
211
213
 
212
- def icosioctagonal
213
- Enumerator.new do |y|
214
- (1..Float::INFINITY).each do |delta|
215
- y << (26 * delta**2 - 24 * delta) / 2
214
+ def icosioctagonal
215
+ Enumerator.new do |y|
216
+ (1..Float::INFINITY).each do |delta|
217
+ y << (26 * delta**2 - 24 * delta) / 2
218
+ end
216
219
  end
217
220
  end
218
- end
219
221
 
220
- def icosinonagonal
221
- Enumerator.new do |y|
222
- (1..Float::INFINITY).each do |delta|
223
- y << (27 * delta**2 - 25 * delta) / 2
222
+ def icosinonagonal
223
+ Enumerator.new do |y|
224
+ (1..Float::INFINITY).each do |delta|
225
+ y << (27 * delta**2 - 25 * delta) / 2
226
+ end
224
227
  end
225
228
  end
226
- end
227
229
 
228
- def triacontagonal
229
- Enumerator.new do |y|
230
- (1..Float::INFINITY).each do |delta|
231
- y << (28 * delta**2 - 26 * delta) / 2
230
+ def triacontagonal
231
+ Enumerator.new do |y|
232
+ (1..Float::INFINITY).each do |delta|
233
+ y << (28 * delta**2 - 26 * delta) / 2
234
+ end
232
235
  end
233
236
  end
234
- end
235
237
 
236
- def centered_triangular
237
- Enumerator.new do |y|
238
- (1..Float::INFINITY).each do |delta|
239
- y << (3 * delta**2 - 3 * delta + 2) / 2
238
+ def centered_triangular
239
+ Enumerator.new do |y|
240
+ (1..Float::INFINITY).each do |delta|
241
+ y << (3 * delta**2 - 3 * delta + 2) / 2
242
+ end
240
243
  end
241
244
  end
242
- end
243
245
 
244
- def centered_square
245
- Enumerator.new do |y|
246
- (1..Float::INFINITY).each do |delta|
247
- y << 2 * delta**2 - 2 * delta + 1
246
+ def centered_square
247
+ Enumerator.new do |y|
248
+ (1..Float::INFINITY).each do |delta|
249
+ y << 2 * delta**2 - 2 * delta + 1
250
+ end
248
251
  end
249
252
  end
250
- end
251
253
 
252
- alias_method :diamond, :centered_square
254
+ alias diamond centered_square
253
255
 
254
- def centered_pentagonal
255
- Enumerator.new do |y|
256
- (1..Float::INFINITY).each do |delta|
257
- y << (5 * delta**2 - 5 * delta + 2) / 2
256
+ def centered_pentagonal
257
+ Enumerator.new do |y|
258
+ (1..Float::INFINITY).each do |delta|
259
+ y << (5 * delta**2 - 5 * delta + 2) / 2
260
+ end
258
261
  end
259
262
  end
260
- end
261
263
 
262
- def centered_hexagonal
263
- Enumerator.new do |y|
264
- (1..Float::INFINITY).each do |delta|
265
- y << 3 * delta**2 - 3 * delta + 1
264
+ def centered_hexagonal
265
+ Enumerator.new do |y|
266
+ (1..Float::INFINITY).each do |delta|
267
+ y << 3 * delta**2 - 3 * delta + 1
268
+ end
266
269
  end
267
270
  end
268
- end
269
271
 
270
- def centered_heptagonal
271
- Enumerator.new do |y|
272
- (1..Float::INFINITY).each do |delta|
273
- y << (7 * delta**2 - 7 * delta + 2) / 2
272
+ def centered_heptagonal
273
+ Enumerator.new do |y|
274
+ (1..Float::INFINITY).each do |delta|
275
+ y << (7 * delta**2 - 7 * delta + 2) / 2
276
+ end
274
277
  end
275
278
  end
276
- end
277
279
 
278
- def centered_octagonal
279
- Enumerator.new do |y|
280
- (1..Float::INFINITY).each do |delta|
281
- y << 4 * delta**2 - 4 * delta + 1
280
+ def centered_octagonal
281
+ Enumerator.new do |y|
282
+ (1..Float::INFINITY).each do |delta|
283
+ y << 4 * delta**2 - 4 * delta + 1
284
+ end
282
285
  end
283
286
  end
284
- end
285
287
 
286
- def centered_nonagonal
287
- Enumerator.new do |y|
288
- (1..Float::INFINITY).each do |delta|
289
- y << (9 * delta**2 - 9 * delta + 2) / 2
288
+ def centered_nonagonal
289
+ Enumerator.new do |y|
290
+ (1..Float::INFINITY).each do |delta|
291
+ y << (9 * delta**2 - 9 * delta + 2) / 2
292
+ end
290
293
  end
291
294
  end
292
- end
293
295
 
294
- def centered_decagonal
295
- Enumerator.new do |y|
296
- (1..Float::INFINITY).each do |delta|
297
- y << 5 * delta**2 - 5 * delta + 1
296
+ def centered_decagonal
297
+ Enumerator.new do |y|
298
+ (1..Float::INFINITY).each do |delta|
299
+ y << 5 * delta**2 - 5 * delta + 1
300
+ end
298
301
  end
299
302
  end
300
- end
301
303
 
302
- def centered_hendecagonal
303
- Enumerator.new do |y|
304
- (1..Float::INFINITY).each do |delta|
305
- y << (11 * delta**2 - 11 * delta + 2) / 2
304
+ def centered_hendecagonal
305
+ Enumerator.new do |y|
306
+ (1..Float::INFINITY).each do |delta|
307
+ y << (11 * delta**2 - 11 * delta + 2) / 2
308
+ end
306
309
  end
307
310
  end
308
- end
309
311
 
310
- def centered_dodecagonal
311
- Enumerator.new do |y|
312
- (1..Float::INFINITY).each do |delta|
313
- y << 6 * delta**2 - 6 * delta + 1
312
+ def centered_dodecagonal
313
+ Enumerator.new do |y|
314
+ (1..Float::INFINITY).each do |delta|
315
+ y << 6 * delta**2 - 6 * delta + 1
316
+ end
314
317
  end
315
318
  end
316
- end
317
319
 
318
- alias_method :star, :centered_dodecagonal
320
+ alias star centered_dodecagonal
319
321
 
320
- def centered_tridecagonal
321
- Enumerator.new do |y|
322
- (1..Float::INFINITY).each do |delta|
323
- y << (13 * delta**2 - 13 * delta + 2) / 2
322
+ def centered_tridecagonal
323
+ Enumerator.new do |y|
324
+ (1..Float::INFINITY).each do |delta|
325
+ y << (13 * delta**2 - 13 * delta + 2) / 2
326
+ end
324
327
  end
325
328
  end
326
- end
327
329
 
328
- def centered_tetradecagonal
329
- Enumerator.new do |y|
330
- (1..Float::INFINITY).each do |delta|
331
- y << 7 * delta**2 - 7 * delta + 1
330
+ def centered_tetradecagonal
331
+ Enumerator.new do |y|
332
+ (1..Float::INFINITY).each do |delta|
333
+ y << 7 * delta**2 - 7 * delta + 1
334
+ end
332
335
  end
333
336
  end
334
- end
335
337
 
336
- def centered_pentadecagonal
337
- Enumerator.new do |y|
338
- (1..Float::INFINITY).each do |delta|
339
- y << (15 * delta**2 - 15 * delta + 2) / 2
338
+ def centered_pentadecagonal
339
+ Enumerator.new do |y|
340
+ (1..Float::INFINITY).each do |delta|
341
+ y << (15 * delta**2 - 15 * delta + 2) / 2
342
+ end
340
343
  end
341
344
  end
342
- end
343
345
 
344
- def centered_hexadecagonal
345
- Enumerator.new do |y|
346
- (1..Float::INFINITY).each do |delta|
347
- y << 8 * delta**2 - 8 * delta + 1
346
+ def centered_hexadecagonal
347
+ Enumerator.new do |y|
348
+ (1..Float::INFINITY).each do |delta|
349
+ y << 8 * delta**2 - 8 * delta + 1
350
+ end
348
351
  end
349
352
  end
350
- end
351
353
 
352
- def centered_heptadecagonal
353
- Enumerator.new do |y|
354
- (1..Float::INFINITY).each do |delta|
355
- y << (17 * delta**2 - 17 * delta + 2) / 2
354
+ def centered_heptadecagonal
355
+ Enumerator.new do |y|
356
+ (1..Float::INFINITY).each do |delta|
357
+ y << (17 * delta**2 - 17 * delta + 2) / 2
358
+ end
356
359
  end
357
360
  end
358
- end
359
361
 
360
- def centered_octadecagonal
361
- Enumerator.new do |y|
362
- (1..Float::INFINITY).each do |delta|
363
- y << 9 * delta**2 - 9 * delta + 1
362
+ def centered_octadecagonal
363
+ Enumerator.new do |y|
364
+ (1..Float::INFINITY).each do |delta|
365
+ y << 9 * delta**2 - 9 * delta + 1
366
+ end
364
367
  end
365
368
  end
366
- end
367
369
 
368
- def centered_nonadecagonal
369
- Enumerator.new do |y|
370
- (1..Float::INFINITY).each do |delta|
371
- y << (19 * delta**2 - 19 * delta + 2) / 2
370
+ def centered_nonadecagonal
371
+ Enumerator.new do |y|
372
+ (1..Float::INFINITY).each do |delta|
373
+ y << (19 * delta**2 - 19 * delta + 2) / 2
374
+ end
372
375
  end
373
376
  end
374
- end
375
377
 
376
- def centered_icosagonal
377
- Enumerator.new do |y|
378
- (1..Float::INFINITY).each do |delta|
379
- y << 10 * delta**2 - 10 * delta + 1
378
+ def centered_icosagonal
379
+ Enumerator.new do |y|
380
+ (1..Float::INFINITY).each do |delta|
381
+ y << 10 * delta**2 - 10 * delta + 1
382
+ end
380
383
  end
381
384
  end
382
- end
383
385
 
384
- def centered_icosihenagonal
385
- Enumerator.new do |y|
386
- (1..Float::INFINITY).each do |delta|
387
- y << (21 * delta**2 - 21 * delta + 2) / 2
386
+ def centered_icosihenagonal
387
+ Enumerator.new do |y|
388
+ (1..Float::INFINITY).each do |delta|
389
+ y << (21 * delta**2 - 21 * delta + 2) / 2
390
+ end
388
391
  end
389
392
  end
390
- end
391
393
 
392
- def centered_icosidigonal
393
- Enumerator.new do |y|
394
- (1..Float::INFINITY).each do |delta|
395
- y << 11 * delta**2 - 11 * delta + 1
394
+ def centered_icosidigonal
395
+ Enumerator.new do |y|
396
+ (1..Float::INFINITY).each do |delta|
397
+ y << 11 * delta**2 - 11 * delta + 1
398
+ end
396
399
  end
397
400
  end
398
- end
399
401
 
400
- def centered_icositrigonal
401
- Enumerator.new do |y|
402
- (1..Float::INFINITY).each do |delta|
403
- y << (23 * delta**2 - 23 * delta + 2) / 2
402
+ def centered_icositrigonal
403
+ Enumerator.new do |y|
404
+ (1..Float::INFINITY).each do |delta|
405
+ y << (23 * delta**2 - 23 * delta + 2) / 2
406
+ end
404
407
  end
405
408
  end
406
- end
407
409
 
408
- def centered_icositetragonal
409
- Enumerator.new do |y|
410
- (1..Float::INFINITY).each do |delta|
411
- y << 12 * delta**2 - 12 * delta + 1
410
+ def centered_icositetragonal
411
+ Enumerator.new do |y|
412
+ (1..Float::INFINITY).each do |delta|
413
+ y << 12 * delta**2 - 12 * delta + 1
414
+ end
412
415
  end
413
416
  end
414
- end
415
417
 
416
- def centered_icosipentagonal
417
- Enumerator.new do |y|
418
- (1..Float::INFINITY).each do |delta|
419
- y << (25 * delta**2 - 25 * delta + 2) / 2
418
+ def centered_icosipentagonal
419
+ Enumerator.new do |y|
420
+ (1..Float::INFINITY).each do |delta|
421
+ y << (25 * delta**2 - 25 * delta + 2) / 2
422
+ end
420
423
  end
421
424
  end
422
- end
423
425
 
424
- def centered_icosihexagonal
425
- Enumerator.new do |y|
426
- (1..Float::INFINITY).each do |delta|
427
- y << (13 * delta**2 - 13 * delta + 1)
426
+ def centered_icosihexagonal
427
+ Enumerator.new do |y|
428
+ (1..Float::INFINITY).each do |delta|
429
+ y << (13 * delta**2 - 13 * delta + 1)
430
+ end
428
431
  end
429
432
  end
430
- end
431
433
 
432
- def centered_icosiheptagonal
433
- Enumerator.new do |y|
434
- (1..Float::INFINITY).each do |delta|
435
- y << (27 * delta**2 - 27 * delta + 2) / 2
434
+ def centered_icosiheptagonal
435
+ Enumerator.new do |y|
436
+ (1..Float::INFINITY).each do |delta|
437
+ y << (27 * delta**2 - 27 * delta + 2) / 2
438
+ end
436
439
  end
437
440
  end
438
- end
439
441
 
440
- def centered_icosioctagonal
441
- Enumerator.new do |y|
442
- (1..Float::INFINITY).each do |delta|
443
- y << (14 * delta**2 - 14 * delta + 1)
442
+ def centered_icosioctagonal
443
+ Enumerator.new do |y|
444
+ (1..Float::INFINITY).each do |delta|
445
+ y << (14 * delta**2 - 14 * delta + 1)
446
+ end
444
447
  end
445
448
  end
446
- end
447
449
 
448
- def centered_icosinonagonal
449
- Enumerator.new do |y|
450
- (1..Float::INFINITY).each do |delta|
451
- y << (29 * delta**2 - 29 * delta + 2) / 2
450
+ def centered_icosinonagonal
451
+ Enumerator.new do |y|
452
+ (1..Float::INFINITY).each do |delta|
453
+ y << (29 * delta**2 - 29 * delta + 2) / 2
454
+ end
452
455
  end
453
456
  end
454
- end
455
457
 
456
- def centered_triacontagonal
457
- Enumerator.new do |y|
458
- (1..Float::INFINITY).each do |delta|
459
- y << (15 * delta**2 - 15 * delta + 1)
458
+ def centered_triacontagonal
459
+ Enumerator.new do |y|
460
+ (1..Float::INFINITY).each do |delta|
461
+ y << (15 * delta**2 - 15 * delta + 1)
462
+ end
460
463
  end
461
464
  end
462
- end
463
465
 
464
- def centered_mgonal(m)
465
- Enumerator.new do |y|
466
- (1..Float::INFINITY).each do |delta|
467
- y << (m * delta**2 - m * delta + 2) / 2
466
+ def centered_mgonal(m)
467
+ Enumerator.new do |y|
468
+ (1..Float::INFINITY).each do |delta|
469
+ y << (m * delta**2 - m * delta + 2) / 2
470
+ end
468
471
  end
469
472
  end
470
- end
471
473
 
472
- def pronic
473
- (1..Float::INFINITY).lazy.collect { |delta| delta * (delta + 1) }
474
- end
474
+ def pronic
475
+ Enumerator.new do |y|
476
+ (1..Float::INFINITY).each do |delta|
477
+ y << delta * (delta + 1)
478
+ end
479
+ end
480
+ end
475
481
 
476
- alias_method :heteromecic, :pronic
477
- alias_method :oblong, :pronic
482
+ alias heteromecic pronic
483
+ alias oblong pronic
478
484
 
479
- def polite
480
- (1..Float::INFINITY).lazy.collect { |delta| delta + Math.log((delta + Math.log(delta, 2)), 2).floor }
481
- end
485
+ def polite
486
+ Enumerator.new do |y|
487
+ (1..Float::INFINITY).each do |delta|
488
+ y << delta + Math.log(delta + Math.log(delta, 2), 2).floor
489
+ end
490
+ end
491
+ end
482
492
 
483
- def impolite
484
- (0..Float::INFINITY).lazy.collect { |delta| 2**delta }
485
- end
493
+ def impolite
494
+ Enumerator.new do |y|
495
+ (0..Float::INFINITY).each do |delta|
496
+ y << 2**delta
497
+ end
498
+ end
499
+ end
486
500
 
487
- def cross
488
- (1..Float::INFINITY).lazy.collect { |delta| 4 * delta - 3 }
489
- end
501
+ def cross
502
+ Enumerator.new do |y|
503
+ (1..Float::INFINITY).each do |delta|
504
+ y << 4 * delta - 3
505
+ end
506
+ end
507
+ end
490
508
 
491
- def aztec_diamond
492
- (1..Float::INFINITY).lazy.collect { |delta| (2 * delta) * (delta + 1) }
493
- end
509
+ def aztec_diamond
510
+ Enumerator.new do |y|
511
+ (1..Float::INFINITY).each do |delta|
512
+ y << (2 * delta) * (delta + 1)
513
+ end
514
+ end
515
+ end
494
516
 
495
- def polygram(m)
496
- Enumerator.new do |y|
497
- (1..Float::INFINITY).each do |delta|
498
- y << m * delta**2 - m * delta + 1
517
+ def polygram(m)
518
+ Enumerator.new do |y|
519
+ (1..Float::INFINITY).each do |delta|
520
+ y << m * delta**2 - m * delta + 1
521
+ end
499
522
  end
500
523
  end
501
- end
502
524
 
503
- alias_method :centered_star_polygonal, :polygram
525
+ alias centered_star_polygonal polygram
504
526
 
505
- def pentagram
506
- Enumerator.new do |y|
507
- (1..Float::INFINITY).each do |delta|
508
- y << 5 * delta**2 - 5 * delta + 1
527
+ def pentagram
528
+ Enumerator.new do |y|
529
+ (1..Float::INFINITY).each do |delta|
530
+ y << 5 * delta**2 - 5 * delta + 1
531
+ end
509
532
  end
510
533
  end
511
- end
512
534
 
513
- def gnomic
514
- (1..Float::INFINITY).lazy.collect { |delta| 2 * delta - 1 }
515
- end
535
+ def gnomic
536
+ Enumerator.new do |y|
537
+ (1..Float::INFINITY).each do |delta|
538
+ y << 2 * delta - 1
539
+ end
540
+ end
541
+ end
516
542
 
517
- def truncated_triangular
518
- Enumerator.new do |y|
519
- (1..Float::INFINITY).each do |delta|
520
- y << (3 * delta**2) - (3 * delta) + 1
543
+ def truncated_triangular
544
+ Enumerator.new do |y|
545
+ (1..Float::INFINITY).each do |delta|
546
+ y << (3 * delta**2) - (3 * delta) + 1
547
+ end
521
548
  end
522
549
  end
523
- end
524
550
 
525
- def truncated_square
526
- Enumerator.new do |y|
527
- (1..Float::INFINITY).each do |delta|
528
- y << (7 * delta**2) - (10 * delta) + 4
551
+ def truncated_square
552
+ Enumerator.new do |y|
553
+ (1..Float::INFINITY).each do |delta|
554
+ y << (7 * delta**2) - (10 * delta) + 4
555
+ end
529
556
  end
530
557
  end
531
- end
532
558
 
533
- def truncated_pronic
534
- Enumerator.new do |y|
535
- (1..Float::INFINITY).each do |delta|
536
- y << (7 * delta**2) - (7 * delta) + 2
559
+ def truncated_pronic
560
+ Enumerator.new do |y|
561
+ (1..Float::INFINITY).each do |delta|
562
+ y << (7 * delta**2) - (7 * delta) + 2
563
+ end
537
564
  end
538
565
  end
539
- end
540
566
 
541
- def truncated_centered_pol(m)
542
- Enumerator.new do |y|
543
- (1..Float::INFINITY).each do |delta|
544
- y << 1 + (m * (7 * delta**2 - 11 * delta + 4)) / 2
567
+ def truncated_centered_pol(m)
568
+ Enumerator.new do |y|
569
+ (1..Float::INFINITY).each do |delta|
570
+ y << 1 + (m * (7 * delta**2 - 11 * delta + 4)) / 2
571
+ end
545
572
  end
546
573
  end
547
- end
548
574
 
549
- alias_method :truncated_centered_mgonal, :truncated_centered_pol
575
+ alias truncated_centered_mgonal truncated_centered_pol
550
576
 
551
- def truncated_centered_triangular
552
- Enumerator.new do |y|
553
- (1..Float::INFINITY).each do |delta|
554
- y << (21 * delta**2 - 33 * delta) / 2 + 7
577
+ def truncated_centered_triangular
578
+ Enumerator.new do |y|
579
+ (1..Float::INFINITY).each do |delta|
580
+ y << (21 * delta**2 - 33 * delta) / 2 + 7
581
+ end
555
582
  end
556
583
  end
557
- end
558
584
 
559
- def truncated_centered_square
560
- Enumerator.new do |y|
561
- (1..Float::INFINITY).each do |delta|
562
- y << 14 * delta**2 - 22 * delta + 9
585
+ def truncated_centered_square
586
+ Enumerator.new do |y|
587
+ (1..Float::INFINITY).each do |delta|
588
+ y << 14 * delta**2 - 22 * delta + 9
589
+ end
563
590
  end
564
591
  end
565
- end
566
592
 
567
- def truncated_centered_pentagonal
568
- Enumerator.new do |y|
569
- (1..Float::INFINITY).each do |delta|
570
- y << (35 * delta**2 - 55 * delta) / 2 + 11
593
+ def truncated_centered_pentagonal
594
+ Enumerator.new do |y|
595
+ (1..Float::INFINITY).each do |delta|
596
+ y << (35 * delta**2 - 55 * delta) / 2 + 11
597
+ end
571
598
  end
572
599
  end
573
- end
574
600
 
575
- def truncated_centered_hexagonal
576
- Enumerator.new do |y|
577
- (1..Float::INFINITY).each do |delta|
578
- y << 21 * delta**2 - 33 * delta + 13
601
+ def truncated_centered_hexagonal
602
+ Enumerator.new do |y|
603
+ (1..Float::INFINITY).each do |delta|
604
+ y << 21 * delta**2 - 33 * delta + 13
605
+ end
579
606
  end
580
607
  end
581
- end
582
608
 
583
- alias_method :truncated_hex, :truncated_centered_hexagonal
609
+ alias truncated_hex truncated_centered_hexagonal
584
610
 
585
- def generalized_mgonal(m, left_index = 0)
586
- Enumerator.new do |y|
587
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
588
- y << (delta * ((m - 2) * delta - m + 4)) / 2
611
+ def generalized_mgonal(m, left_index = 0)
612
+ Enumerator.new do |y|
613
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
614
+ y << (delta * ((m - 2) * delta - m + 4)) / 2
615
+ end
589
616
  end
590
617
  end
591
- end
592
618
 
593
- def generalized_pentagonal(left_index = 0)
594
- m = 5
595
- Enumerator.new do |y|
596
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
597
- y << (delta * ((m - 2) * delta - m + 4)) / 2
619
+ def generalized_pentagonal(left_index = 0)
620
+ m = 5
621
+ Enumerator.new do |y|
622
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
623
+ y << (delta * ((m - 2) * delta - m + 4)) / 2
624
+ end
598
625
  end
599
626
  end
600
- end
601
627
 
602
- def generalized_hexagonal(left_index = 0)
603
- m = 6
604
- Enumerator.new do |y|
605
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
606
- y << (delta * ((m - 2) * delta - m + 4)) / 2
628
+ def generalized_hexagonal(left_index = 0)
629
+ m = 6
630
+ Enumerator.new do |y|
631
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
632
+ y << (delta * ((m - 2) * delta - m + 4)) / 2
633
+ end
607
634
  end
608
635
  end
609
- end
610
636
 
611
- def generalized_centered_pol(m, left_index = 0)
612
- Enumerator.new do |y|
613
- ((-1 * left_index)..Float::INFINITY).each do |delta|
614
- y << (m * delta**2 - m * delta + 2) / 2
637
+ def generalized_centered_pol(m, left_index = 0)
638
+ Enumerator.new do |y|
639
+ ((-1 * left_index)..Float::INFINITY).each do |delta|
640
+ y << (m * delta**2 - m * delta + 2) / 2
641
+ end
615
642
  end
616
643
  end
617
- end
618
644
 
619
- def generalized_pronic(left_index = 0)
620
- Enumerator.new do |y|
621
- ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
622
- y << delta * (delta + 1)
645
+ def generalized_pronic(left_index = 0)
646
+ Enumerator.new do |y|
647
+ ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
648
+ y << delta * (delta + 1)
649
+ end
623
650
  end
624
651
  end
625
652
  end
626
-
627
653
  end