A complete generator of infinite sequences of figurate numbers
Project description
FigurateNum
FigurateNum is a set of figurate number generators based on the book Figurate Numbers (2012) by Michel Deza and Elena Deza.
FigurateNum generates the following types of infinite sequences:
- 20 sequences of plane figurate numbers
- 38 sequences of space figurate numbers
- 18 sequences of multidimensional figurate numbers
What is the purpose of FigurateNum?
FigurateNum facilitates the discovery of new patterns among sequences and enables various numerical calculations in mathematical projects and related endeavors. It can be integrated with other software to visualize the geometric objects described. Moreover, it serves as a valuable companion to the book!
How to install?
pip install figuratenum
- It is advisable to use a virtual environment.
How to import figuratenum?
import figuratenum as fgn
How to use?
>>> seq = fgn.hyperdodecahedral_numbers()
>>> first = next(seq)
>>> second = next(seq)
>>> third = next(seq)
>>> fourth = next(seq)
>>> print(first, second, third, fourth)
1 600 4983 19468
You could get a list of numbers using a loop:
>>> generator = fgn.k_dimensional_centered_hypertetrahedron_numbers(21)
>>> sequence = []
>>> for _ in range(1, 15):
>>> next_num = next(generator)
>>> sequence.append(next_num)
>>> print(sequence)
[1, 23, 276, 2300, 14950, 80730, 376740, 1560780, 5852925, 20160075, 64512240, 193536720, 548354040, 1476337800]
Equivalently, using the array module:
import array as arr_num
>>> generator = fgn.aztec_diamond_numbers()
>>> sequence = arr_num.array('i')
>>> for _ in range(1, 15):
>>> next_num = next(generator)
>>> sequence.append(next_num)
>>> print(sequence)
array('i', [4, 12, 24, 40, 60, 84, 112, 144, 180, 220, 264, 312, 364, 420])
Plane figurate numbers
polygonal_numbers
triangular_numbers
triangular_numbers
square_numbers
pentagonal_numbers
hexagonal_numbers
heptagonal_numbers
octagonal_numbers
nonagonal_numbers
decagonal_numbers
hendecagonal_numbers
dodecagonal_numbers
tridecagonal_numbers
tetradecagonal_numbers
pentadecagonal_numbers
hexadecagonal_numbers
heptadecagonal_numbers
octadecagonal_numbers
nonadecagonal_numbers
icosagonal_numbers
icosihenagonal_numbers
icosidigonal_numbers
icositrigonal_numbers
icositetragonal_numbers
icosipentagonal_numbers
icosihexagonal_numbers
icosiheptagonal_numbers
icosioctagonal_numbers
icosinonagonal_numbers
triacontagonal_numbers
centered_triangular_numbers
centered_square_numbers
=diamond numbers
centered_pentagonal_numbers
centered_hexagonal_numbers
centered_heptagonal_numbers
centered_octagonal_numbers
centered_nonagonal_numbers
centered_decagonal_numbers
centered_hendecagonal_numbers
centered_dodecagonal_numbers
=star_numbers
centered_tridecagonal_numbers
centered_tetradecagonal_numbers
centered_pentadecagonal_numbers
centered_hexadecagonal_numbers
centered_heptadecagonal_numbers
centered_octadecagonal_numbers
centered_nonadecagonal_numbers
centered_icosagonal_numbers
centered_icosihenagonal_numbers
centered_icosidigonal_numbers
centered_icositrigonal_numbers
centered_icositetragonal_numbers
centered_icosipentagonal_numbers
centered_icosihexagonal_numbers
centered_icosiheptagonal_numbers
centered_icosioctagonal_numbers
centered_icosinonagonal_numbers
centered_triacontagonal_numbers
centered_mgonal_numbers
pronic_numbers
=heteromecic_numbers = oblong_numbers
polite_numbers
impolite_numbers
cross_numbers
aztec_diamond_numbers
polygram_numbers(m)
=centered_star_polygonal_numbers(m)
pentagram_numbers
gnomic_numbers
truncated_triangular_numbers
truncated_square_numbers
truncated_pronic_numbers
truncated_centered_pol_numbers(m)
=truncated_centered_pol_numbers(m)
truncated_centered_hexagonal_numbers
=truncated_hex_numbers
generalized_mgonal_numbers(m, start_numb)
generalized_centered_pol_numbers(m, start_numb)
generalized_pronic_numbers(start_numb)
Space figurate numbers
m_pyramidal_numbers(m)
cubic_numbers
tetrahedral_numbers
octahedral_numbers
dodecahedral_numbers
icosahedral_numbers
truncated_tetrahedral_numbers
truncated_cubic_numbers
truncated_octahedral_numbers
stella_octangula_numbers
centered_cube_numbers
rhombic_dodecahedral_numbers
hauy_rhombic_dodecahedral_numbers
centered_tetrahedron_numbers
=centered_tetrahedral_numbers
centered_square_pyramid_numbers
=centered_pyramid_numbers
centered_mgonal_pyramid_numbers(m)
centered_octahedron_numbers
centered_icosahedron_numbers
=centered_cuboctahedron_numbers
centered_dodecahedron_numbers
centered_truncated_tetrahedron_numbers
centered_truncated_cube_numbers
centered_truncated_octahedron_numbers
centered_mgonal_pyramidal_numbers(m)
centered_hexagonal_pyramidal_numbers
=hex_pyramidal_numbers
hexagonal_prism_numbers
mgonal_prism_numbers(m)
generalized_mgonal_pyramidal_numbers(m, start_num)
generalized_cubic_numbers(start_num)
generalized_octahedral_numbers(start_num)
generalized_icosahedral_numbers(start_num)
generalized_dodecahedral_numbers(start_num)
generalized_centered_cube_numbers(start_num)
generalized_centered_tetrahedron_numbers(start_num)
generalized_centered_square_pyramid_numbers(start_num)
generalized_rhombic_dodecahedral_numbers(start_num)
generalized_centered_mgonal_pyramidal_numbers(m, start_num)
generalized_mgonal_prism_numbers(m, start_num)
generalized_hexagonal_prism_numbers(start_num)
Multidimensional figurate numbers
pentatope_numbers
=hypertetrahedral_numbers
=triangulotriangular_numbers
k_dimensional_hypertetrahedron_numbers(k)
=k_hypertetrahedron_numbers(k)
=regular_k_polytopic_numbers(k)
=figurate_numbers_of_order_k(k)
biquadratic_numbers
k_dimensional_hypercube_numbers(k)
=k_hypercube_numbers(k)
hyperoctahedral_numbers
=hexadecachoron_numbers
=four_cross_polytope_numbers
=four_orthoplex_numbers
hypericosahedral_numbers
=tetraplex_numbers
=polytetrahedron_numbers
=hexacosichoron_numbers
hyperdodecahedral_numbers
=hecatonicosachoron_numbers
=dodecaplex_numbers
=polydodecahedron_numbers
polyoctahedral_numbers
=icositetrachoron_numbers
=octaplex_numbers
=hyperdiamond_numbers
k_dimensional_hyperoctahedron_numbers(k)
=k_cross_polytope_numbers(k)
four_dimensional_mgonal_pyramidal_numbers(m)
=mgonal_pyramidal_numbers_of_the_second_order
k_dimensional_mgonal_pyramidal_numbers(k, m)
=mgonal_pyramidal_numbers_of_the_k_2_th_order(k, m)
centered_biquadratic_numbers
k_dimensional_centered_hypercube_numbers(k)
centered_polytope_numbers
k_dimensional_centered_hypertetrahedron_numbers(k)
centered_hyperoctahedral_numbers
=orthoplex_numbers
nexus_numbers
k_dimensional_centered_hyperoctahedron_numbers(k)
Contributing
FigurateNumber is currently under development, and we warmly invite your contributions. Just fork the project and then submit a pull request:
- Sequences from Chapters 1, 2, and 3 of the book
- New sequences not included in the book: If you have new sequences, please provide the source.
- Tests, documentation and errata in the book
When making commits, please use the following conventional prefixes to indicate the nature of the changes: feat
, refactor
, fix
, docs
, and test
.
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file figuratenum-0.5.0.tar.gz
.
File metadata
- Download URL: figuratenum-0.5.0.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f149cf7f59e6df90e03cc1edb642243f8a459fbd82b6eff4474f35c3326cfdba |
|
MD5 | 1d63c5a310f4d99833d8edf13e9faa35 |
|
BLAKE2b-256 | ca775c3c22902075903d00a38dd7f0bbfcfd06c3a37326b09a7b1b96e164f6e5 |
File details
Details for the file figuratenum-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: figuratenum-0.5.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b72b0c96bf4e6949cdd7c6bf3147690e848114b2250556facec9bdefbd8bec89 |
|
MD5 | 783024b763508b1129efb80474daa9c8 |
|
BLAKE2b-256 | be2482f44e44b0e4ad64ee86ecdd6013653466fe996d322baeb5864394c9dae7 |