https://github.com/alexpof/d_2n_homometry
C and Python code for brute-force enumeration of homometric subsets of dihedral groups
https://github.com/alexpof/d_2n_homometry
brute-force c enumeration music-theory python3
Last synced: 5 months ago
JSON representation
C and Python code for brute-force enumeration of homometric subsets of dihedral groups
- Host: GitHub
- URL: https://github.com/alexpof/d_2n_homometry
- Owner: AlexPof
- Created: 2017-11-20T21:45:00.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-09-15T14:00:31.000Z (over 7 years ago)
- Last Synced: 2025-09-09T03:51:27.698Z (9 months ago)
- Topics: brute-force, c, enumeration, music-theory, python3
- Language: C
- Homepage:
- Size: 158 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# D_2n Homometry
C algorithm for brute-force enumeration of homometric sets in the dihedral groups D_2n
See the paper *Genuys G., Popoff A. (2017) Homometry in the Dihedral Groups: Lifting Sets from ℤn to Dn. In: Agustín-Aquino O., Lluis-Puebla E., Montiel M. (eds) Mathematics and Computation in Music. MCM 2017. Lecture Notes in Computer Science, vol 10527. Springer, Cham* for more theoretical information.
==========
Compile the C program with gcc and start:
>>> ./D2n_homomenumerate n p output_file
where
* *n* is an integer defining the order of the D_2n dihedral group
* *p* is an integer defining the cardinality of the subsets of D_2n to be
examined.
* *output_file* is the name of the output file to be written
For example:
>>> ./D2n_homomenumerate 12 5 output.txt
Use the python script to count the unique homometric n-uples:
>>> python D2n_homomcounts.py output.txt
With the above example:
>>> python D2n_homomcounts.py
# of left homometric subsets
2-uples: 8
3-uples: 2
# of simultaneous left and right homometric subsets
2-uples: 8
3-uples: 2
The zip file *partial_results.zip* contains a partial enumeration of subsets of cardinality *p* in the dihedral groups D_2n, for *p=4,5,6,7* and n from 8 to 18.