Skip to main content

limit_denominator

Function limit_denominator 

Source
pub fn limit_denominator(
    numerator: &BigInt,
    denominator: &BigInt,
    limit: &BigInt,
) -> Result<(BigInt, BigInt)>
Expand description

The fraction nearest numerator / denominator whose denominator is at most limit: Python’s Fraction.limit_denominator, which music21’s _preFracLimitDenominator copies. A fraction already within the limit comes back as it is.

use music21::common::numbertools::limit_denominator;
use num::BigInt;

let third = limit_denominator(&100_001.into(), &300_001.into(), &65535.into())?;
assert_eq!(third, (BigInt::from(1), BigInt::from(3)));

§Errors

A limit below one, which no denominator meets.