# HG changeset patch # User Paul Boddie # Date 1702575874 -3600 # Node ID b2c3c8e11f5c8d7c1a49f4e2ecc97c0b35ecb632 # Parent 7e6f353b0f8210d1aa0353ffa70ff4229c9e0019 Introduced more meaningful function names to match those used elsewhere. diff -r 7e6f353b0f82 -r b2c3c8e11f5c tools/dividers.py --- a/tools/dividers.py Sat Nov 18 16:23:00 2023 +0100 +++ b/tools/dividers.py Thu Dec 14 18:44:34 2023 +0100 @@ -3,11 +3,6 @@ from math import ceil, floor import sys -def method2(f, s): - r = f / s - scale = getscale(r) - return scale * r, scale - def is_integer(x): target = round(x) * 1000 #print x, target - 100, floor(x * 1000), target + 100 @@ -28,7 +23,12 @@ else: return 1 / part -def reduce(m, n, m_limit, n_limit): +def get_divider_operands(frequency, source_frequency): + ratio = float(frequency) / source_frequency + scale = getscale(ratio) + return scale * ratio, scale + +def reduce_divider_operands(m, n, m_limit, n_limit): while m > m_limit and n > n_limit and m > 1 and n > 1: m /= 2 n /= 2 @@ -42,8 +42,8 @@ if len(sys.argv) < 4: f, s = map(float, sys.argv[1:3]) - m, n = method2(f, s) - m, n = reduce(m, n, 0x200, 0x100000) + m, n = get_divider_operands(f, s) + m, n = reduce_divider_operands(m, n, 0x200, 0x100000) show(s, m, n) else: @@ -80,8 +80,8 @@ do1 = int(do / do0) if do0 * do1 == int(do): i = do * f - m, n = method2(i, s) - m, n = reduce(m, n, 0x3f, 0x3f) + m, n = get_divider_operands(i, s) + m, n = reduce_divider_operands(m, n, 0x3f, 0x3f) if m <= 0x3f and n <= 0x3f: show(i, m, n, "i") print "do =", do