Normal forms: Difference between revisions

Incorporate canonical form
+intro and place normal val list above normal interval list cuz it's simpler
Line 1: Line 1:
Since a [[regular temperament]] can be represented by multiple equivalent [[Vals and tuning space|val]] lists (aka [[mapping]]s) or [[Monzos and interval space|monzo]] lists (or comma lists), we have developed '''normal lists''' in order to uniquely identify each temperament.
== Introduction to Hermite normal form ==
== Introduction to Hermite normal form ==
An integral matrix is a matrix whose entries are all integers. An important normalized form for integral matrices is [[Wikipedia: Hermite normal form|Hermite normal form]], and by using Hermite normal form we may define normalized forms of lists of intervals or [[Monzos and interval space|monzos]] (aka comma lists) or lists of [[Vals and tuning space|vals]] (aka [[mapping]]s), the '''normal interval/monzo list''' and the '''normal val list'''.
An integral matrix is a matrix whose entries are all integers. An important normalized form for integral matrices is [[Wikipedia: Hermite normal form|Hermite normal form]], and by using Hermite normal form we may define normalized forms of lists of intervals or monzos (aka comma lists) or lists of vals, the '''normal interval/monzo list''' and the '''normal val list'''.


<!--
<!--
Line 18: Line 20:


There is some redundancy in the statement of these conditions, but that does no harm.
There is some redundancy in the statement of these conditions, but that does no harm.
== Normal val list ==
=== Hermite normal form ===
If L is a list of ''n'' vals, we may write it as an ''n''×''m'' matrix, where the rows of the matrix are the vals, and ''m'' = π (''p''), where ''p'' is the prime limit. To get the normal val list, we do the following:
# Hermite reduce the matrix for L
# Throw away all rows which consist of nothing but zeros, resulting in a ''k''×''m'' matrix
# Find the [[Wikipedia: Moore–Penrose pseudoinverse|Moore–Penrose pseudoinverse]] of the ''k''×''m'' matrix, and multiply this from the left by the row vector 1200·[1 log<sub>2</sub>3 log<sub>2</sub>5 … log<sub>2</sub>''p'']. If the ''i''-th entry in the result is negative, multiply the corresponding val by -1. Return the result.
The point of steps two and three is that now the vals on the list correspond to a list of generators which are all positive (written additively) or equivalently greater than 1 (written multiplicatively). Just as a normal comma list can be used to classify an [[abstract regular temperament]], so can a normal val list. The val list is what on [[Graham Breed]]'s [http://x31eq.com/temper/ web site] is called a "mapping", put into a canonical form. The "mapping" (though not the "Map to lattice") listed on temperament pages of this wiki are all normal val lists; an example would be [{{val| 1 0 -4 -13 }}, {{val| 0 1 4 10 }}], the normal val list for septimal meantone. Using this as input, the output is 1199.25¢, 1899.45¢ (tempered 2/1, tempered 3/1).
=== Canonical form ===
{{See also| Canonical form }}
The canonical form of the val list requires that the normal val list be defactored, therefore uniquely characterizing each temperament.


== Normal interval list ==
== Normal interval list ==
Line 46: Line 63:
=== Tenney-minimal form ===
=== Tenney-minimal form ===
In each temperament page on this wiki, however, the "comma lists" are not normal interval lists as defined above. Instead, it shows ratio-wise the simplest comma sequence sufficient to define the temperament, which may be called the Tenney-minimal form.
In each temperament page on this wiki, however, the "comma lists" are not normal interval lists as defined above. Instead, it shows ratio-wise the simplest comma sequence sufficient to define the temperament, which may be called the Tenney-minimal form.
== Normal val list ==
=== Hermite normal form ===
If L is a list of ''n'' vals, we may write it as an ''n''×''m'' matrix, where the rows of the matrix are the vals, and ''m'' = π (''p''), where ''p'' is the prime limit. To get the normal val list, we do the following:
# Hermite reduce the matrix for L
# Throw away all rows which consist of nothing but zeros, resulting in a ''k''×''m'' matrix
# Find the [[Wikipedia: Moore–Penrose pseudoinverse|Moore–Penrose pseudoinverse]] of the ''k''×''m'' matrix, and multiply this from the left by the row vector 1200·[1 log<sub>2</sub>3 log<sub>2</sub>5 … log<sub>2</sub>''p'']. If the ''i''-th entry in the result is negative, multiply the corresponding val by -1. Return the result.
The point of steps two and three is that now the vals on the list correspond to a list of generators which are all positive (written additively) or equivalently greater than 1 (written multiplicatively). Just as a normal comma list can be used to classify an [[abstract regular temperament]], so can a normal val list. The val list is what on [[Graham Breed]]'s [http://x31eq.com/temper/ web site] is called a "mapping", put into a canonical form. The "mapping" (though not the "Map to lattice") listed on temperament pages of this wiki are all normal val lists; an example would be [{{val| 1 0 -4 -13 }}, {{val| 0 1 4 10 }}], the normal val list for septimal meantone. Using this as input, the output is 1199.25¢, 1899.45¢ (tempered 2/1, tempered 3/1).
=== Canonical form ===
{{See also| Canonical form }}
The canonical form of the val list requires that the normal val list be defactored, therefore uniquely characterizing each temperament.


== Maple code ==
== Maple code ==
Line 205: Line 207:
[[Category:Regular temperament theory]]
[[Category:Regular temperament theory]]
[[Category:Math]]
[[Category:Math]]
{{Todo| add introduction }}
{{Todo| rework }}