Defactoring: Difference between revisions

Cmloegcmluin (talk | contribs)
add performance experiment information for smith vs column hermite defactoring
Cmloegcmluin (talk | contribs)
reorganize
Line 164: Line 164:
### include the L-shape work-through example
### include the L-shape work-through example


=== other stuff to report ===
== canonical comma-bases ==
 
DCF is not only for mappings. Comma-bases — the duals of mappings — may also be put into DCF, as long as they are first antitransposed<ref>See a discussion of the antitranspose here: https://en.xen.wiki/w/User:Cmloegcmluin/Sandbox#null-space</ref>, and then antitransposed again at the end, or in other words, you sandwich the defactoring and HNF operations between antitransposes.
 
DCF is arguably even more important for comma-bases than it is for mappings, because enfactored mappings at least have clear musical meaning, while enfactored comma-bases are little but a wellspring of confusion. In other words, {{map|24 38 56}} may not be a true temperament, but it still represents a temperoid and an EDO. However, {{
 
== other stuff to report ==
 
=== criteria ===


### talk about the criteria, like has to be integer, full-rank
### talk about the criteria, like has to be integer, full-rank
Line 173: Line 181:
* '''preserves genuine unit-fraction-of-an-prime periods''': at first glance, when a pivot is not equal to 1, it might trigger you to think that the mapping is enfactored. But temperaments can legitimately have generators that divide primes evenly, such as 5-limit Blackwood, {{vector|{{map|5 8 0}} {{map|0 0 1}}}}, which divides the octave into 5 parts.<ref>Any form that enforces pivots all be 1's would fail this criteria.</ref>
* '''preserves genuine unit-fraction-of-an-prime periods''': at first glance, when a pivot is not equal to 1, it might trigger you to think that the mapping is enfactored. But temperaments can legitimately have generators that divide primes evenly, such as 5-limit Blackwood, {{vector|{{map|5 8 0}} {{map|0 0 1}}}}, which divides the octave into 5 parts.<ref>Any form that enforces pivots all be 1's would fail this criteria.</ref>


=== sum-and-difference defactoring ===
=== relationship between various matrix echelon forms ===
 
### explain our failed attempt at the sum-and-difference (SAD) defactoring... I think I can nab it mostly out of that message to Joe
 
=== illustrative examples ===
 
### show the examples we tried, like in the big defactoring table
 
== canonical comma-bases ==
 
DCF is not only for mappings. Comma-bases — the duals of mappings — may also be put into DCF, as long as they are first antitransposed<ref>See a discussion of the antitranspose here: https://en.xen.wiki/w/User:Cmloegcmluin/Sandbox#null-space</ref>, and then antitransposed again at the end, or in other words, you sandwich the defactoring and HNF operations between antitransposes.
 
DCF is arguably even more important for comma-bases than it is for mappings, because enfactored mappings at least have clear musical meaning, while enfactored comma-bases are little but a wellspring of confusion. In other words, {{map|24 38 56}} may not be a true temperament, but it still represents a temperoid and an EDO. However, {{
 
== relationship between various matrix echelon forms ==


There are several well-known echelon forms for matrices that predate DCF. Let's review them and their properties.
There are several well-known echelon forms for matrices that predate DCF. Let's review them and their properties.
=== list of forms ===


The most general form, with the fewest constraints, is simply called '''[https://en.wikipedia.org/wiki/Row_echelon_form Row Echelon Form]''', or '''REF'''. Its only constraint is ''echelon<ref>The name "echelon" is a French word for a military troop formation with a similar triangular shape.</ref> form'': each row's pivot, or first nonzero entry, is strictly to the right of the preceding row's pivot. This single constraint is fairly weak, and therefore REF does not produce a unique representation. This constraint is shared by every matrix form discussed here.
The most general form, with the fewest constraints, is simply called '''[https://en.wikipedia.org/wiki/Row_echelon_form Row Echelon Form]''', or '''REF'''. Its only constraint is ''echelon<ref>The name "echelon" is a French word for a military troop formation with a similar triangular shape.</ref> form'': each row's pivot, or first nonzero entry, is strictly to the right of the preceding row's pivot. This single constraint is fairly weak, and therefore REF does not produce a unique representation. This constraint is shared by every matrix form discussed here.
Line 362: Line 354:
* But now if we look at the RREF of this mapping with this HNF, we have to divide rows until all pivots are 1. So that second row would be changed to {{map|0 1 <span><math>\frac12</math></span>}}. So now RREF won't match IRREF, because it contains a noninteger. The only way to prevent this would be if a pivot of the HNF was not 1, but still every entry in that row was evenly divisible by that value, such as {{vector|{{map|1 1 0}} {{map|0 2 4}}}}. But now that row is enfactored by its pivot's value.
* But now if we look at the RREF of this mapping with this HNF, we have to divide rows until all pivots are 1. So that second row would be changed to {{map|0 1 <span><math>\frac12</math></span>}}. So now RREF won't match IRREF, because it contains a noninteger. The only way to prevent this would be if a pivot of the HNF was not 1, but still every entry in that row was evenly divisible by that value, such as {{vector|{{map|1 1 0}} {{map|0 2 4}}}}. But now that row is enfactored by its pivot's value.
* If the mapping is enfactored, that is the case when the HNF ≠ DCF.
* If the mapping is enfactored, that is the case when the HNF ≠ DCF.
=== illustrative examples ===
### show the examples we tried, like in the big defactoring table
=== generator size manipulation ===
Initially Dave and I considered using the proposal of a new standard RTT mapping form as an opportunity to include everything and the kitchen sink — in this case, to additionally massage generator sizes to fit a desirable rubric. We ultimately decided no, because it was too much, and rabbit-hole ###
=== sum-and-difference defactoring ===
### explain our failed attempt at the sum-and-difference (SAD) defactoring... I think I can nab it mostly out of that message to Joe