Module: FigurateNumbers::MultiDimensionalFigurateNumbers

Extended by:
MultiDimensionalFigurateNumbers
Included in:
FigurateNumbers, MultiDimensionalFigurateNumbers
Defined in:
lib/figurate_numbers/multidimensional_figurate_numbers.rb

Overview

Module containing methods for generating n-dimensional figurate number sequences.

Instance Method Summary collapse

Instance Method Details

#apocalypticObject



824
825
826
827
828
829
830
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 824

def apocalyptic
  Enumerator.new do |y|
    (157..Float::INFINITY).each do |delta|
      y << helper_apocalyptic(delta) unless helper_apocalyptic(delta).nil?
    end
  end
end

#binomial_coefficient_k_dimensional_hypertetrahedron(k) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 59

def binomial_coefficient_k_dimensional_hypertetrahedron(k)
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << Utils.binomial_coefficient(delta + (k - 1), k)
    end
  end
end

#biquadraticObject



67
68
69
70
71
72
73
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 67

def biquadratic
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**4
    end
  end
end

#carmichaelObject



779
780
781
782
783
784
785
786
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 779

def carmichael
  Enumerator.new do |y|
    (561..Float::INFINITY).each do |delta|
      num_seq = helper_carmichael(delta)
      y << num_seq unless num_seq.nil?
    end
  end
end

#centered_biquadraticObject



427
428
429
430
431
432
433
434
435
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 427

def centered_biquadratic
  Enumerator.new do |y|
    a = 0
    (1..Float::INFINITY).each do |delta|
      a += delta**4 - (delta - 2)**4
      y << a + 1
    end
  end
end

#centered_hyperoctahedralObject Also known as: orthoplex



517
518
519
520
521
522
523
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 517

def centered_hyperoctahedral
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (2 * delta**4 - 4 * delta**3 + 10 * delta**2 - 8 * delta + 3) / 3
    end
  end
end

#centered_polytopeObject



461
462
463
464
465
466
467
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 461

def centered_polytope
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (5 * delta**4 - 10 * delta**3 + 55 * delta**2 - 50 * delta + 24) / 24
    end
  end
end

#cubanObject Also known as: cuban_prime



719
720
721
722
723
724
725
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 719

def cuban
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta + 1)**3 - delta**3
    end
  end
end

#eight_dimensional_hyperoctahedronObject



181
182
183
184
185
186
187
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 181

def eight_dimensional_hyperoctahedron
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta**6 + 28 * delta**4 + 154 * delta**2 + 132) * delta**2 / 315
    end
  end
end

#five_dimensional_centered_hypercubeObject



445
446
447
448
449
450
451
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 445

def five_dimensional_centered_hypercube
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**5 + (delta - 1)**5
    end
  end
end

#five_dimensional_centered_hyperoctahedronObject



557
558
559
560
561
562
563
564
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 557

def five_dimensional_centered_hyperoctahedron
  Enumerator.new do |y|
    y << 1
    (1..Float::INFINITY).each do |n|
      y << ext_int_double_summation(5, n)
    end
  end
end

#five_dimensional_centered_hypertetrahedronObject



501
502
503
504
505
506
507
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 501

def five_dimensional_centered_hypertetrahedron
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |n|
      y << acc_helper_centered_hypertetrahedron(5, n)
    end
  end
end

#five_dimensional_heptagonal_pyramidalObject



349
350
351
352
353
354
355
356
357
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 349

def five_dimensional_heptagonal_pyramidal
  Enumerator.new do |y|
    k = 5
    m = 7
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#five_dimensional_hexagonal_pyramidalObject



339
340
341
342
343
344
345
346
347
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 339

def five_dimensional_hexagonal_pyramidal
  Enumerator.new do |y|
    k = 5
    m = 6
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#five_dimensional_hypercubeObject



85
86
87
88
89
90
91
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 85

def five_dimensional_hypercube
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**5
    end
  end
end

#five_dimensional_hyperoctahedronObject



157
158
159
160
161
162
163
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 157

def five_dimensional_hyperoctahedron
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta * (2 * delta**4 + 10 * delta**2 + 3) / 15
    end
  end
end

#five_dimensional_hypertetrahedronObject



43
44
45
46
47
48
49
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 43

def five_dimensional_hypertetrahedron
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << Utils.rising_factorial(delta, 5) / Utils.factorial_iter(5)
    end
  end
end

#five_dimensional_mgonal_pyramidal(m) ⇒ Object



311
312
313
314
315
316
317
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 311

def five_dimensional_mgonal_pyramidal(m)
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) * (delta + 3) *  ((m - 2) * delta - m + 7)) / 120
    end
  end
end

#five_dimensional_octagonal_pyramidalObject



359
360
361
362
363
364
365
366
367
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 359

def five_dimensional_octagonal_pyramidal
  Enumerator.new do |y|
    k = 5
    m = 8
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#five_dimensional_pentagonal_pyramidalObject



329
330
331
332
333
334
335
336
337
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 329

def five_dimensional_pentagonal_pyramidal
  Enumerator.new do |y|
    k = 5
    m = 5
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#five_dimensional_square_pyramidalObject



319
320
321
322
323
324
325
326
327
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 319

def five_dimensional_square_pyramidal
  Enumerator.new do |y|
    k = 5
    m = 4
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#four_dimensional_decagonal_pyramidalObject



277
278
279
280
281
282
283
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 277

def four_dimensional_decagonal_pyramidal
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((10 - 2) * delta - 10 + 6)) / 24
    end
  end
end

#four_dimensional_dodecagonal_pyramidalObject



293
294
295
296
297
298
299
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 293

def four_dimensional_dodecagonal_pyramidal
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((12 - 2) * delta - 12 + 6)) / 24
    end
  end
end

#four_dimensional_hendecagonal_pyramidalObject



285
286
287
288
289
290
291
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 285

def four_dimensional_hendecagonal_pyramidal
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((11 - 2) * delta - 11 + 6)) / 24
    end
  end
end

#four_dimensional_heptagonal_pyramidalObject



253
254
255
256
257
258
259
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 253

def four_dimensional_heptagonal_pyramidal
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((7 - 2) * delta - 7 + 6)) / 24
    end
  end
end

#four_dimensional_hexagonal_pyramidalObject



245
246
247
248
249
250
251
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 245

def four_dimensional_hexagonal_pyramidal
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((6 - 2) * delta - 6 + 6)) / 24
    end
  end
end

#four_dimensional_hyperoctahedronObject



149
150
151
152
153
154
155
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 149

def four_dimensional_hyperoctahedron
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**2 * (delta**2 + 2) / 3
    end
  end
end

#four_dimensional_mgonal_pyramidal(m) ⇒ Object Also known as: mgonal_pyramidal_numbers_of_the_second_order



219
220
221
222
223
224
225
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 219

def four_dimensional_mgonal_pyramidal(m)
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((m - 2) * delta - m + 6)) / 24
    end
  end
end

#four_dimensional_nonagonal_pyramidalObject



269
270
271
272
273
274
275
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 269

def four_dimensional_nonagonal_pyramidal
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((9 - 2) * delta - 9 + 6)) / 24
    end
  end
end

#four_dimensional_octagonal_pyramidalObject



261
262
263
264
265
266
267
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 261

def four_dimensional_octagonal_pyramidal
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((8 - 2) * delta - 8 + 6)) / 24
    end
  end
end

#four_dimensional_pentagonal_pyramidalObject



237
238
239
240
241
242
243
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 237

def four_dimensional_pentagonal_pyramidal
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((5 - 2) * delta - 5 + 6)) / 24
    end
  end
end

#four_dimensional_square_pyramidalObject



229
230
231
232
233
234
235
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 229

def four_dimensional_square_pyramidal
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) *  ((4 - 2) * delta - 4 + 6)) / 24
    end
  end
end

#generalized_biquadratic(left_index = 0) ⇒ Object



591
592
593
594
595
596
597
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 591

def generalized_biquadratic(left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << delta**4
    end
  end
end

#generalized_hyperdodecahedral(left_index = 0) ⇒ Object



627
628
629
630
631
632
633
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 627

def generalized_hyperdodecahedral(left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << (delta  * (261 * delta**3 - 504 * delta**2 + 283 * delta - 38)) / 2
    end
  end
end

#generalized_hypericosahedral(left_index = 0) ⇒ Object



635
636
637
638
639
640
641
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 635

def generalized_hypericosahedral(left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << (delta  * (145 * delta**3 - 280 * delta**2 + 179 * delta - 38)) / 6
    end
  end
end

#generalized_hyperoctahedral(left_index = 0) ⇒ Object



607
608
609
610
611
612
613
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 607

def generalized_hyperoctahedral(left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << (delta**2 * (delta**2 + 2)) / 3
    end
  end
end

#generalized_k_dimensional_centered_hypercube(k, left_index = 0) ⇒ Object



659
660
661
662
663
664
665
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 659

def generalized_k_dimensional_centered_hypercube(k, left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << delta**k + (delta - 1)**k
    end
  end
end

#generalized_k_dimensional_centered_hyperoctahedron(k, left_index = 0) ⇒ Object



700
701
702
703
704
705
706
707
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 700

def generalized_k_dimensional_centered_hyperoctahedron(k, left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |n|
      y << 1 if n == 1
      y << gen_ext_int_double_summation(k, n) if n != 0
    end
  end
end

#generalized_k_dimensional_centered_hypertetrahedron(k, left_index = 0) ⇒ Object



677
678
679
680
681
682
683
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 677

def generalized_k_dimensional_centered_hypertetrahedron(k, left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |n|
      y << gen_acc_helper_centered_hypertetrahedron(k, n)
    end
  end
end

#generalized_k_dimensional_hypercube(k = 5, left_index = 0) ⇒ Object



599
600
601
602
603
604
605
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 599

def generalized_k_dimensional_hypercube(k = 5, left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << delta**k
    end
  end
end

#generalized_k_dimensional_hyperoctahedron(k = 5, left_index = 0) ⇒ Object



615
616
617
618
619
620
621
622
623
624
625
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 615

def generalized_k_dimensional_hyperoctahedron(k = 5, left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      a = 0
      (0..(k - 1)).each do |i|
        a += Utils.binomial_coefficient(k - 1, i) * (Utils.rising_factorial(delta - i, k) / Utils.factorial_iter(k))
      end
      y << a
    end
  end
end

#generalized_k_dimensional_hypertetrahedron(k, left_index = 0) ⇒ Object



583
584
585
586
587
588
589
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 583

def generalized_k_dimensional_hypertetrahedron(k, left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << Utils.rising_factorial(delta, k) / Utils.factorial_iter(k)
    end
  end
end

#generalized_k_dimensional_mgonal_pyramidal(k, m, left_index = 0) ⇒ Object



651
652
653
654
655
656
657
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 651

def generalized_k_dimensional_mgonal_pyramidal(k, m, left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |n|
      y << (Utils.pseudo_pochhammer_function(n, k) * ((m - 2) * n - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#generalized_nexus(k, left_index = 0) ⇒ Object



709
710
711
712
713
714
715
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 709

def generalized_nexus(k, left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << (delta + 1)**(k + 1) - delta**(k + 1)
    end
  end
end

#generalized_pentatope(left_index = 0) ⇒ Object



575
576
577
578
579
580
581
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 575

def generalized_pentatope(left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << delta * (delta + 1) * (delta + 2) * (delta + 3) / 24
    end
  end
end

#generalized_polyoctahedral(left_index = 0) ⇒ Object



643
644
645
646
647
648
649
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 643

def generalized_polyoctahedral(left_index = 0)
  Enumerator.new do |y|
    ((-1 * left_index.abs)..Float::INFINITY).each do |delta|
      y << delta**2 * (3 * delta**2 - 4 * delta + 2)
    end
  end
end

#hyperdodecahedralObject Also known as: hecatonicosachoron, dodecaplex, polydodecahedron



125
126
127
128
129
130
131
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 125

def hyperdodecahedral
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta  * (261 * delta**3 - 504 * delta**2 + 283 * delta - 38)) / 2
    end
  end
end

#hypericosahedralObject Also known as: tetraplex, polytetrahedron, hexacosichoron



113
114
115
116
117
118
119
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 113

def hypericosahedral
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta  * (145 * delta**3 - 280 * delta**2 + 179 * delta - 38)) / 6
    end
  end
end

#hyperoctahedralObject Also known as: hexadecachoron, four_cross_polytope, four_orthoplex



101
102
103
104
105
106
107
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 101

def hyperoctahedral
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta**2 * (delta**2 + 2)) / 3
    end
  end
end

#k_dimensional_centered_hypercube(k) ⇒ Object



437
438
439
440
441
442
443
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 437

def k_dimensional_centered_hypercube(k)
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**k + (delta - 1)**k
    end
  end
end

#k_dimensional_centered_hyperoctahedron(k) ⇒ Object



548
549
550
551
552
553
554
555
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 548

def k_dimensional_centered_hyperoctahedron(k)
  Enumerator.new do |y|
    y << 1
    (1..Float::INFINITY).each do |n|
      y << ext_int_double_summation(k, n)
    end
  end
end

#k_dimensional_centered_hypertetrahedron(k) ⇒ Object



493
494
495
496
497
498
499
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 493

def k_dimensional_centered_hypertetrahedron(k)
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |n|
      y << acc_helper_centered_hypertetrahedron(k, n)
    end
  end
end

#k_dimensional_hypercube(k) ⇒ Object Also known as: k_hypercube



75
76
77
78
79
80
81
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 75

def k_dimensional_hypercube(k)
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**k
    end
  end
end

#k_dimensional_hyperoctahedron(k) ⇒ Object Also known as: k_cross_polytope



205
206
207
208
209
210
211
212
213
214
215
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 205

def k_dimensional_hyperoctahedron(k)
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      a = 0
      (0..(k - 1)).each do |i|
        a += Utils.binomial_coefficient(k - 1, i) * (Utils.rising_factorial(delta - i, k) / Utils.factorial_iter(k))
      end
      y << a
    end
  end
end

#k_dimensional_hypertetrahedron(k) ⇒ Object Also known as: k_hypertetrahedron, regular_k_polytopic, figurate_numbers_of_order_k



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 27

def k_dimensional_hypertetrahedron(k)
  Enumerator.new do |y|
    delta = 1
    bin_coeff = 1
    loop do
      y << bin_coeff
      bin_coeff = bin_coeff * (delta + k) / delta
      delta += 1
    end
  end
end

#k_dimensional_mgonal_pyramidal(k, m) ⇒ Object Also known as: mgonal_pyramidal_numbers_of_the_k_2_th_order



301
302
303
304
305
306
307
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 301

def k_dimensional_mgonal_pyramidal(k, m)
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |n|
      y << (Utils.pseudo_pochhammer_function(n, k) * ((m - 2) * n - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#nexus(k) ⇒ Object



527
528
529
530
531
532
533
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 527

def nexus(k)
  Enumerator.new do |y|
    (0..Float::INFINITY).each do |delta|
      y << (delta + 1)**(k + 1) - delta**(k + 1)
    end
  end
end

#nine_dimensional_hyperoctahedronObject

rubocop:disable Metrics/AbcSize



189
190
191
192
193
194
195
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 189

def nine_dimensional_hyperoctahedron # rubocop:disable Metrics/AbcSize
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (2 * delta**8 + 84 * delta**6 + 798 * delta**4 + 1636 * delta**2 + 315) * delta / 2835
    end
  end
end

#pellObject



750
751
752
753
754
755
756
757
758
759
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 750

def pell
  pell_numbers = [0, 1]
  Enumerator.new do |y|
    y << 0
    y << 1
    (2..Float::INFINITY).each do |delta|
      y << pell_numbers[delta] = 2 * pell_numbers[delta - 1] + pell_numbers[delta - 2]
    end
  end
end

#pentatopeObject Also known as: hypertetrahedral, triangulotriangular



8
9
10
11
12
13
14
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 8

def pentatope
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) * (delta + 3)) / 24
    end
  end
end

#polyoctahedralObject Also known as: icositetrachoron, octaplex, hyperdiamond



137
138
139
140
141
142
143
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 137

def polyoctahedral
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**2 * (3 * delta**2 - 4 * delta + 2)
    end
  end
end

#quartanObject



742
743
744
745
746
747
748
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 742

def quartan
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << helper_quartan(delta)[delta - 1]
    end
  end
end

#reference_of_book_k_dimensional_hypertetrahedron(k) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 19

def reference_of_book_k_dimensional_hypertetrahedron(k)
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << Utils.rising_factorial(delta, k) / Utils.factorial_iter(k)
    end
  end
end

#seven_dimensional_hyperoctahedronObject



173
174
175
176
177
178
179
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 173

def seven_dimensional_hyperoctahedron
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (4 * delta**6 + 70 * delta**4 + 196 * delta**2 + 45) * delta / 315
    end
  end
end

#six_dimensional_centered_hypercubeObject



453
454
455
456
457
458
459
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 453

def six_dimensional_centered_hypercube
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**6 + (delta - 1)**6
    end
  end
end

#six_dimensional_centered_hyperoctahedronObject



566
567
568
569
570
571
572
573
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 566

def six_dimensional_centered_hyperoctahedron
  Enumerator.new do |y|
    y << 1
    (1..Float::INFINITY).each do |n|
      y << ext_int_double_summation(6, n)
    end
  end
end

#six_dimensional_centered_hypertetrahedronObject



509
510
511
512
513
514
515
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 509

def six_dimensional_centered_hypertetrahedron
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |n|
      y << acc_helper_centered_hypertetrahedron(6, n)
    end
  end
end

#six_dimensional_heptagonal_pyramidalObject



407
408
409
410
411
412
413
414
415
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 407

def six_dimensional_heptagonal_pyramidal
  Enumerator.new do |y|
    k = 6
    m = 7
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#six_dimensional_hexagonal_pyramidalObject



397
398
399
400
401
402
403
404
405
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 397

def six_dimensional_hexagonal_pyramidal
  Enumerator.new do |y|
    k = 6
    m = 6
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#six_dimensional_hypercubeObject



93
94
95
96
97
98
99
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 93

def six_dimensional_hypercube
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**6
    end
  end
end

#six_dimensional_hyperoctahedronObject



165
166
167
168
169
170
171
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 165

def six_dimensional_hyperoctahedron
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << delta**2 * (2 * delta**4 + 20 * delta**2 + 23) / 45
    end
  end
end

#six_dimensional_hypertetrahedronObject



51
52
53
54
55
56
57
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 51

def six_dimensional_hypertetrahedron
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << Utils.rising_factorial(delta, 6) / Utils.factorial_iter(6)
    end
  end
end

#six_dimensional_mgonal_pyramidal(m) ⇒ Object

rubocop:disable Metrics/AbcSize



369
370
371
372
373
374
375
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 369

def six_dimensional_mgonal_pyramidal(m) # rubocop:disable Metrics/AbcSize
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (delta * (delta + 1) * (delta + 2) * (delta + 3) * (delta + 4) * ((m - 2) * delta - m + 8)) / 720
    end
  end
end

#six_dimensional_octagonal_pyramidalObject



417
418
419
420
421
422
423
424
425
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 417

def six_dimensional_octagonal_pyramidal
  Enumerator.new do |y|
    k = 6
    m = 8
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#six_dimensional_pentagonal_pyramidalObject



387
388
389
390
391
392
393
394
395
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 387

def six_dimensional_pentagonal_pyramidal
  Enumerator.new do |y|
    k = 6
    m = 5
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#six_dimensional_square_pyramidalObject



377
378
379
380
381
382
383
384
385
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 377

def six_dimensional_square_pyramidal
  Enumerator.new do |y|
    k = 6
    m = 4
    (1..Float::INFINITY).each do |delta|
      y << (Utils.pseudo_pochhammer_function(delta, k) * ((m - 2) * delta - m + k + 2)) / Utils.factorial_iter(k)
    end
  end
end

#stern_prime(infty = false) ⇒ Object

rubocop:disable Style/OptionalBooleanParameter



803
804
805
806
807
808
809
810
811
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 803

def stern_prime(infty = false) # rubocop:disable Style/OptionalBooleanParameter
  Enumerator.new do |y|
    max_term = infty == false ? 238 : float::INFINITY
    (1..max_term).each do |delta|
      num_seq = helper_stern_prime(delta)
      y << num_seq unless num_seq.nil?
    end
  end
end

#ten_dimensional_hyperoctahedronObject

rubocop:disable Metrics/AbcSize



197
198
199
200
201
202
203
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 197

def ten_dimensional_hyperoctahedron # rubocop:disable Metrics/AbcSize
  Enumerator.new do |y|
    (1..Float::INFINITY).each do |delta|
      y << (2 * delta**8 + 120 * delta**6 + 1806 * delta**4 + 7180 * delta**2 + 5067) * delta**2 / 14_175
    end
  end
end