User:Ganaram inukshuk/TAMNAMS Extension: Difference between revisions

Ganaram inukshuk (talk | contribs)
Tags: Mobile edit Mobile web edit Advanced mobile edit
Ganaram inukshuk (talk | contribs)
Line 70: Line 70:


=== Finding the ancestor of a descendant mos ''x''L ''y''s ===
=== Finding the ancestor of a descendant mos ''x''L ''y''s ===
For a mos ''x''L ''y''s, perform the following algorithm to find a familiar descendant with target note count ''n'' or less:
For a mos ''x''L ''y''s, perform the following algorithm to find a familiar ancestor with target note count ''n'' or less:


#Let ''z'' and ''w'' be the number of large and small steps of the parent mos to be found. Assign to ''z'' and ''w'' the values ''x'' and ''y'' respectively.
#Let ''z'' and ''w'' be the number of large and small steps of the parent mos to be found. Assign to ''z'' and ''w'' the values ''x'' and ''y'' respectively.
#Let ''m1'' be assigned the value of max(''z'', ''w'') and ''m2'' the value of min(''z'', ''w'').
#Let ''m1'' be assigned the value of max(''z'', ''w'') and ''m2'' the value of min(''z'', ''w'').
#Assign to ''z'' the value ''m2'' and ''w'' the value ''m1''-''m2''.
#Assign to ''z'' the value ''m2'' and ''w'' the value ''m1''-''m2''.
#If ''z''+''w'' is less than or equal to ''n'', then the parent mos is ''z''L ''w''s. If not, repeat the process starting at step 2.
#If ''z''+''w'' is less than or equal to ''n'', then the ancestor mos is ''z''L ''w''s. If not, repeat the process starting at step 2.


=== Finding an ancestor's step ratio that produces a descandant mos ''x''L ''y''s ===
=== Finding an ancestor's step ratio that produces a descandant mos ''x''L ''y''s ===
For a mos xL ys, perform the following algorithm to find the step ratio for a descendant mos zL ws with target note count n or less:
#Let ''z'' and ''w'' be the number of large and small steps of the parent mos to be found. Let ''U'' and ''V'' be two chunks, that is the number of L's and s's from the descendant that make up the large and small step sizes of the ancestor.
##Assign to ''z'' and ''w'' the values ''x'' and ''y'' respectively.
##Assign to U the vector { uL, us } = { 1, 0 } and V to the vector { vL, vs } = { 0, 1 }.
#Let ''m1'' be assigned the value of max(''z'', ''w'') and ''m2'' the value of min(''z'', ''w'').
##If w > z, then add V to U. Otherwise, assign to a temporary vector Utemp the value of U, add V to U, and assign to V the value of Utemp.
#Assign to ''z'' the value ''m2'' and ''w'' the value ''m1''-''m2''.
#If ''z''+''w'' is less than or equal to ''n'', then the ancestor mos is ''z''L ''w''s. The step ratio range for the ancestor mos ranges from (uL+ us):(vL+ vs) to uL:vL. If z+w is not less than or equal to n, repeat the process starting at step 2.


== Names for mosses with more than 10 notes ==
== Names for mosses with more than 10 notes ==