utilSimplifyFraction

fnvoid utilSimplifyFraction(ref int numerator, ref int denominator, uint nTerms, uint threshold) nothrow

Calculates the simpler representation of numerator and denominator and update both values with the resulting simplified fraction.

Simplify a fraction using a simple continued fraction decomposition. The idea here is to convert fractions such as 333333/10000000 to 1/30 using 32 bit arithmetic only. The algorithm is not perfect and relies upon two arbitrary parameters to remove non-significative terms from the simple continued fraction decomposition. Using 8 and 333 for n_terms and threshold respectively seems to give nice results.

Parameters

numeratorFirst value as #gint
denominatorSecond value as #gint
nTermsnon-significative terms (typical value: 8)
thresholdthreshold (typical value: 333)