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

#apocalyptic_numbersObject



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

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

#binomial_coefficient_k_dimensional_hypertetrahedron(k) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 47

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



55
56
57
58
59
60
61
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 55

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

#carmichael_numbersObject



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

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

#centered_biquadraticObject



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

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



505
506
507
508
509
510
511
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 505

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



449
450
451
452
453
454
455
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 449

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

#cuban_numbersObject Also known as: cuban_prime_numbers



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

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

#eight_dimensional_hyperoctahedronObject



169
170
171
172
173
174
175
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 169

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



433
434
435
436
437
438
439
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 433

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



545
546
547
548
549
550
551
552
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 545

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



489
490
491
492
493
494
495
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 489

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



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

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



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

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



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

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

#five_dimensional_hyperoctahedronObject



145
146
147
148
149
150
151
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 145

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



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

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



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

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



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

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



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

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



307
308
309
310
311
312
313
314
315
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 307

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



265
266
267
268
269
270
271
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 265

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



281
282
283
284
285
286
287
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 281

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



273
274
275
276
277
278
279
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 273

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



241
242
243
244
245
246
247
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 241

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



233
234
235
236
237
238
239
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 233

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



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

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



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

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



257
258
259
260
261
262
263
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 257

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



249
250
251
252
253
254
255
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 249

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



225
226
227
228
229
230
231
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 225

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



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

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



579
580
581
582
583
584
585
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 579

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



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

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



623
624
625
626
627
628
629
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 623

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



595
596
597
598
599
600
601
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 595

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



647
648
649
650
651
652
653
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 647

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



688
689
690
691
692
693
694
695
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 688

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



665
666
667
668
669
670
671
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 665

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



587
588
589
590
591
592
593
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 587

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



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

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



571
572
573
574
575
576
577
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 571

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



639
640
641
642
643
644
645
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 639

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



697
698
699
700
701
702
703
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 697

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



563
564
565
566
567
568
569
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 563

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



631
632
633
634
635
636
637
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 631

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



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

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



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

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



89
90
91
92
93
94
95
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 89

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



425
426
427
428
429
430
431
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 425

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



536
537
538
539
540
541
542
543
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 536

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



481
482
483
484
485
486
487
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 481

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



63
64
65
66
67
68
69
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 63

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



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

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



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

def 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

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



289
290
291
292
293
294
295
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 289

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



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

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



177
178
179
180
181
182
183
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 177

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

#pell_numbersObject



738
739
740
741
742
743
744
745
746
747
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 738

def pell_numbers
  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



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

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

#quartan_numbersObject



730
731
732
733
734
735
736
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 730

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

#seven_dimensional_hyperoctahedronObject



161
162
163
164
165
166
167
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 161

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



441
442
443
444
445
446
447
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 441

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



554
555
556
557
558
559
560
561
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 554

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



497
498
499
500
501
502
503
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 497

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



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

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



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

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



81
82
83
84
85
86
87
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 81

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

#six_dimensional_hyperoctahedronObject



153
154
155
156
157
158
159
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 153

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



39
40
41
42
43
44
45
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 39

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



357
358
359
360
361
362
363
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 357

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



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

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



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

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



365
366
367
368
369
370
371
372
373
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 365

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_numbers(infty = false) ⇒ Object

rubocop:disable Style/OptionalBooleanParameter



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

def stern_prime_numbers(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_numbers(delta)
      y << num_seq unless num_seq.nil?
    end
  end
end

#ten_dimensional_hyperoctahedronObject

rubocop:disable Metrics/AbcSize



185
186
187
188
189
190
191
# File 'lib/figurate_numbers/multidimensional_figurate_numbers.rb', line 185

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