Comma basis: Difference between revisions

Cmloegcmluin (talk | contribs)
m link to basis
Cmloegcmluin (talk | contribs)
With respect to the mapping: correction re: transpose and anti-transpose
Line 13: Line 13:
Functions for finding the null-space of a matrix are readily available in many math libraries. All you need to do to get a comma basis for a mapping is to find the null-space. To learn more about finding the null-space, see [[Douglas_Blumeyer's_RTT_How-To#The_other_side_of_duality|here]].
Functions for finding the null-space of a matrix are readily available in many math libraries. All you need to do to get a comma basis for a mapping is to find the null-space. To learn more about finding the null-space, see [[Douglas_Blumeyer's_RTT_How-To#The_other_side_of_duality|here]].


To reverse the null-space operation, that is, to find a mapping from a comma basis, you can also use the null-space operation; the relationship between a matrix and its null-space essentially works both ways. However, math libraries' null-space operation is designed to work for mappings, and so if you want correct results, you must transform the basis for the null-space into a mapping-like form, perform the null-space operation, and then undo the initial transformation. This initial transformation you must do and undo is called the anti-transpose, which is just like the typical transpose of a matrix, except instead of reflecting the matrix's values across the main diagonal (starting from either the top-left or bottom-right corner), you reflect them across the anti-diagonal (starting from either the top-right or bottom-left corner). You can remember this because most mappings and comma bases have zeroes in the bottom-left corner, and you want to keep them there; some kind of transpose is necessary to convert the constituent comma vectors columns of the comma basis into rows as if they were constituent generator maps (rows) of a mapping, but a normal transpose of the comma basis would flip its zeroes into the top-right corner instead.
To reverse the null-space operation, that is, to find a mapping from a comma basis, you can also use the null-space operation; the relationship between a matrix and its null-space essentially works both ways.  
 
Some math libraries, such as [https://www.sagemath.org/ Sage], provide functions for both directions; in Sage, to go from a mapping to a comma basis, use <code>left_kernel()</code>, and to go from a comma basis to a mapping, use <code>right_kernel()</code>. In other math libraries, such as [https://www.wolfram.com/language/ Wolfram Language], the null-space operation <code>NullSpace[]</code> is primarily designed to work for mappings, and so if you want correct results, you must transform the basis for the null-space into a mapping-like form, perform the null-space operation, and then undo the initial transformation.  
 
This transformation that relates the two directions of null-space operations is called the '''transpose'''. It works by reflecting a matrix's values across its ''main'' diagonal, i.e. either the diagonal running from the top-left corner toward the bottom-right, or the diagonal running from the bottom-right corner toward the top-left.
 
However, transposing a comma basis, using a mapping-style null-space function, then transposing again, will return a mapping in a strange form, with all of its zeros in the top-right corner, rather than the bottom-left as is preferred. The solution for this problem is to use the '''anti-transpose''' instead of the transpose. This is the same you reflect the matrix's entries across its ''anti-''diagonal (starting from either the top-right or bottom-left corner).  
 
You can remember this because most mappings and comma bases have zeroes in the bottom-left corner, and you want to keep them there; some kind of transpose is necessary to convert the constituent comma vectors columns of the comma basis into rows as if they were constituent generator maps (rows) of a mapping, but a normal transpose of the comma basis would flip its zeroes into the top-right corner instead.


[[Category:Regular temperament theory]]
[[Category:Regular temperament theory]]