Figurate-numbers is the most comprehensive and specialized module for figurate numbers written in Lua to date. It implements 235 infinite number sequences based on the remarkable book
Figurate Numbers by Elena Deza and Michel Deza, published in 2012.
This implementation uses coroutines in Lua to handle infinite sequences. It is intended for use in mathematical projects and with Sonic Pi.
Following the order of the book, the methods are divided into 3 types according to the spatial dimension (see complete list below):
- Plane figurate numbers implemented =
79 - Space figurate numbers implemented =
86 - Multidimensional figurate numbers implemented =
70
- TOTAL =
235infinite sequences of figurate numbers implemented.
- Note that
=means that you can call the same sequence with different names.
polygonal_numbers(m)triangular_numberssquare_numberspentagonal_numbershexagonal_numbersheptagonal_numbersoctagonal_numbersnonagonal_numbersdecagonal_numbershendecagonal_numbersdodecagonal_numberstridecagonal_numberstetradecagonal_numberspentadecagonal_numbershexadecagonal_numbersheptadecagonal_numbersoctadecagonal_numbersnonadecagonal_numbersicosagonal_numbersicosihenagonal_numbersicosidigonal_numbersicositrigonal_numbersicositetragonal_numbersicosipentagonal_numbersicosihexagonal_numbersicosiheptagonal_numbersicosioctagonal_numbersicosinonagonal_numberstriacontagonal_numberscentered_triangular_numberscentered_square_numbers = diamond_numbers (equality only by quantity)centered_pentagonal_numberscentered_hexagonal_numberscentered_heptagonal_numberscentered_octagonal_numberscentered_nonagonal_numberscentered_decagonal_numberscentered_hendecagonal_numberscentered_dodecagonal_numbers = star_numbers (equality only by quantity)centered_tridecagonal_numberscentered_tetradecagonal_numberscentered_pentadecagonal_numberscentered_hexadecagonal_numberscentered_heptadecagonal_numberscentered_octadecagonal_numberscentered_nonadecagonal_numberscentered_icosagonal_numberscentered_icosihenagonal_numberscentered_icosidigonal_numberscentered_icositrigonal_numberscentered_icositetragonal_numberscentered_icosipentagonal_numberscentered_icosihexagonal_numberscentered_icosiheptagonal_numberscentered_icosioctagonal_numberscentered_icosinonagonal_numberscentered_triacontagonal_numberscentered_mgonal_numbers(m)pronic_numbers = heteromecic_numbers = oblong_numberspolite_numbersimpolite_numberscross_numbersaztec_diamond_numberspolygram_numbers(m) = centered_star_polygonal_numbers(m)pentagram_numbersgnomic_numberstruncated_triangular_numberstruncated_square_numberstruncated_pronic_numberstruncated_centered_pol_numbers(m) = truncated_centered_mgonal_numbers(m)truncated_centered_triangular_numberstruncated_centered_square_numberstruncated_centered_pentagonal_numberstruncated_centered_hexagonal_numbers = truncated_hex_numbersgeneralized_mgonal_numbers(m, left_index = 0)generalized_pentagonal_numbers(left_index = 0)generalized_hexagonal_numbers(left_index = 0)generalized_centered_pol_numbers(m, left_index = 0)generalized_pronic_numbers(left_index = 0)
r_pyramidal_numbers(r)triangular_pyramidal_numbers = tetrahedral_numberssquare_pyramidal_numbers = pyramidal_numberspentagonal_pyramidal_numbershexagonal_pyramidal_numbersheptagonal_pyramidal_numbersoctagonal_pyramidal_numbersnonagonal_pyramidal_numbersdecagonal_pyramidal_numbershendecagonal_pyramidal_numbersdodecagonal_pyramidal_numberstridecagonal_pyramidal_numberstetradecagonal_pyramidal_numberspentadecagonal_pyramidal_numbershexadecagonal_pyramidal_numbersheptadecagonal_pyramidal_numbersoctadecagonal_pyramidal_numbersnonadecagonal_pyramidal_numbersicosagonal_pyramidal_numbersicosihenagonal_pyramidal_numbersicosidigonal_pyramidal_numbersicositrigonal_pyramidal_numbersicositetragonal_pyramidal_numbersicosipentagonal_pyramidal_numbersicosihexagonal_pyramidal_numbersicosiheptagonal_pyramidal_numbersicosioctagonal_pyramidal_numbersicosinonagonal_pyramidal_numberstriacontagonal_pyramidal_numberstriangular_tetrahedral_numbers [finite]triangular_square_pyramidal_numbers [finite]square_tetrahedral_numbers [finite]square_square_pyramidal_numbers [finite]tetrahedral_square_pyramidal_number [finite]cubic_numbers = perfect_cube_numbers != hex_pyramidal_numbers (equality only by quantity)tetrahedral_numbersoctahedral_numbersdodecahedral_numbersicosahedral_numberstruncated_tetrahedral_numberstruncated_cubic_numberstruncated_octahedral_numbersstella_octangula_numberscentered_cube_numbersrhombic_dodecahedral_numbershauy_rhombic_dodecahedral_numberscentered_tetrahedron_numbers = centered_tetrahedral_numberscentered_square_pyramid_numbers = centered_pyramid_numberscentered_mgonal_pyramid_numbers(m)centered_pentagonal_pyramid_numbers != centered_octahedron_numbers (equality only in quantity)centered_hexagonal_pyramid_numberscentered_heptagonal_pyramid_numberscentered_octagonal_pyramid_numberscentered_octahedron_numberscentered_icosahedron_numbers = centered_cuboctahedron_numberscentered_dodecahedron_numberscentered_truncated_tetrahedron_numberscentered_truncated_cube_numberscentered_truncated_octahedron_numberscentered_mgonal_pyramidal_numbers(m)centered_triangular_pyramidal_numberscentered_square_pyramidal_numberscentered_pentagonal_pyramidal_numberscentered_hexagonal_pyramidal_numbers = hex_pyramidal_numberscentered_heptagonal_pyramidal_numberscentered_octagonal_pyramidal_numberscentered_nonagonal_pyramidal_numberscentered_decagonal_pyramidal_numberscentered_hendecagonal_pyramidal_numberscentered_dodecagonal_pyramidal_numbershexagonal_prism_numbersmgonal_prism_numbers(m)generalized_mgonal_pyramidal_numbers(m, left_index = 0)generalized_pentagonal_pyramidal_numbers(left_index = 0)generalized_hexagonal_pyramidal_numbers(left_index = 0)generalized_cubic_numbers(left_index = 0)generalized_octahedral_numbers(left_index = 0)generalized_icosahedral_numbers(left_index = 0)generalized_dodecahedral_numbers(left_index = 0)generalized_centered_cube_numbers(left_index = 0)generalized_centered_tetrahedron_numbers(left_index = 0)generalized_centered_square_pyramid_numbers(left_index = 0)generalized_rhombic_dodecahedral_numbers(left_index = 0)generalized_centered_mgonal_pyramidal_numbers(m, left_index = 0)generalized_mgonal_prism_numbers(m, left_index = 0)generalized_hexagonal_prism_numbers(left_index = 0)
pentatope_numbers = hypertetrahedral_numbers = triangulotriangular_numbersk_dimensional_hypertetrahedron_numbers(k) = k_hypertetrahedron_numbers(k) = regular_k_polytopic_numbers(k) = figurate_numbers_of_order_k(k)five_dimensional_hypertetrahedron_numberssix_dimensional_hypertetrahedron_numbersbiquadratic_numbersk_dimensional_hypercube_numbers(k) = k_hypercube_numbers(k)five_dimensional_hypercube_numberssix_dimensional_hypercube_numbershyperoctahedral_numbers = hexadecachoron_numbers = four_cross_polytope_numbers = four_orthoplex_numbershypericosahedral_numbers = tetraplex_numbers = polytetrahedron_numbers = hexacosichoron_numbershyperdodecahedral_numbers = hecatonicosachoron_numbers = dodecaplex_numbers = polydodecahedron_numberspolyoctahedral_numbers = icositetrachoron_numbers = octaplex_numbers = hyperdiamond_numbersfour_dimensional_hyperoctahedron_numbersfive_dimensional_hyperoctahedron_numberssix_dimensional_hyperoctahedron_numbersseven_dimensional_hyperoctahedron_numberseight_dimensional_hyperoctahedron_numbersnine_dimensional_hyperoctahedron_numbersten_dimensional_hyperoctahedron_numbersk_dimensional_hyperoctahedron_numbers(k) = k_cross_polytope_numbers(k)four_dimensional_mgonal_pyramidal_numbers(m) = mgonal_pyramidal_numbers_of_the_second_order(m)four_dimensional_square_pyramidal_numbersfour_dimensional_pentagonal_pyramidal_numbersfour_dimensional_hexagonal_pyramidal_numbersfour_dimensional_heptagonal_pyramidal_numbersfour_dimensional_octagonal_pyramidal_numbersfour_dimensional_nonagonal_pyramidal_numbersfour_dimensional_decagonal_pyramidal_numbersfour_dimensional_hendecagonal_pyramidal_numbersfour_dimensional_dodecagonal_pyramidal_numbersk_dimensional_mgonal_pyramidal_numbers(k, m) = mgonal_pyramidal_numbers_of_the_k_2_th_order(k, m)five_dimensional_mgonal_pyramidal_numbers(m)five_dimensional_square_pyramidal_numbersfive_dimensional_pentagonal_pyramidal_numbersfive_dimensional_hexagonal_pyramidal_numbersfive_dimensional_heptagonal_pyramidal_numbersfive_dimensional_octagonal_pyramidal_numberssix_dimensional_mgonal_pyramidal_numbers(m)six_dimensional_square_pyramidal_numberssix_dimensional_pentagonal_pyramidal_numberssix_dimensional_hexagonal_pyramidal_numberssix_dimensional_heptagonal_pyramidal_numberssix_dimensional_octagonal_pyramidal_numberscentered_biquadratic_numbersk_dimensional_centered_hypercube_numbers(k)five_dimensional_centered_hypercube_numberssix_dimensional_centered_hypercube_numberscentered_polytope_numbersk_dimensional_centered_hypertetrahedron_numbers(k)five_dimensional_centered_hypertetrahedron_numbers(k)six_dimensional_centered_hypertetrahedron_numbers(k)centered_hyperoctahedral_numbers = orthoplex_numbersnexus_numbers(k)k_dimensional_centered_hyperoctahedron_numbers(k)five_dimensional_centered_hyperoctahedron_numberssix_dimensional_centered_hyperoctahedron_numbersgeneralized_pentatope_numbers(left_index = 0)generalized_k_dimensional_hypertetrahedron_numbers(k = 5, left_index = 0)generalized_biquadratic_numbers(left_index = 0)generalized_k_dimensional_hypercube_numbers(k = 5, left_index = 0)generalized_hyperoctahedral_numbers(left_index = 0)generalized_k_dimensional_hyperoctahedron_numbers(k = 5, left_index = 0) [even or odd dimension only changes sign]generalized_hyperdodecahedral_numbers(left_index = 0)generalized_hypericosahedral_numbers(left_index = 0)generalized_polyoctahedral_numbers(left_index = 0)generalized_k_dimensional_mgonal_pyramidal_numbers(k, m, left_index = 0)generalized_k_dimensional_centered_hypercube_numbers(k, left_index = 0)generalized_k_dimensional_centered_hypertetrahedron_numbers(k, left_index = 0)[provisional symmetry]generalized_k_dimensional_centered_hyperoctahedron_numbers(k, left_index = 0)[provisional symmetry]generalized_nexus_numbers(k, left_index = 0) [even or odd dimension only changes sign]
Certain sequences mentioned above may necessitate the use of external libraries to maintain precision when working with very large figurate numbers. Without such libraries, there is a risk of precision loss due to the limitations of the environment's standard number representations.
Furthermore, some tests have been intentionally restricted for now to prevent issues arising from the handling of these large values.
