User:Ganaram inukshuk/TAMNAMS Extension: Difference between revisions

Ganaram inukshuk (talk | contribs)
Ganaram inukshuk (talk | contribs)
 
Line 73: Line 73:


#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 ''m<sub>1</sub>'' be assigned the value of max(''z'', ''w'') and ''m<sub>2</sub>'' the value of min(''z'', ''w'').
#Assign to ''z'' the value ''m2'' and ''w'' the value ''m1''-''m2''.
#Assign to ''z'' the value ''m<sub>2</sub>'' and ''w'' the value ''m<sub>1</sub>''-''m<sub>2</sub>''.
#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.
#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.


Line 80: Line 80:
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:
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.
#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, vectors containing the amounts of L's and s's from xL ys that make up the ancestor mos's large and small steps.
##Assign to ''z'' and ''w'' the values ''x'' and ''y'' respectively.
##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 }.
##Assign to ''U'' the vector { ''u<sub>L</sub>'', ''u<sub>s</sub>'' } = { 1, 0 } and V to the vector { ''v<sub>L</sub>'', ''v<sub>s</sub>'' } = { 0, 1 }.
#Let ''m1'' be assigned the value of max(''z'', ''w'') and ''m2'' the value of min(''z'', ''w'').
#Let ''m<sub>1</sub>'' be assigned the value of max(''z'', ''w'') and ''m<sub>2</sub>'' 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.
##If w > z, then add ''V'' to ''U''. Otherwise, assign to a temporary vector ''U<sub>temp</sub>'' the value of ''U'', add ''V'' to ''U'', and assign to ''V'' the value of ''U<sub>temp</sub>''.
#Assign to ''z'' the value ''m2'' and ''w'' the value ''m1''-''m2''.
#Assign to ''z'' the value ''m<sub>2</sub>'' and ''w'' the value ''m<sub>1</sub>''-''m<sub>2</sub>''.
#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.
#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 ''z''L ''w''s is (''u<sub>L</sub>''+ ''u<sub>s</sub>''):(''v<sub>L</sub>''+ ''v<sub>Ls</sub>'') to ''u<sub>L</sub>'':''v<sub>s</sub>''. 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 ==