private static FractionalNumber Create(int numerator, int denumerator) { FractionalNumber n = new FractionalNumber(); int gcd = Utils.GreatestCommonDivisor(Math.Abs(numerator), Math.Abs(denumerator)); int sign = Math.Sign(denumerator); n.Numerator = numerator / gcd * sign; n.Denominator = denumerator / gcd * sign; return(n); }
public static FractionalNumber operator -(int f2, FractionalNumber f1) { FractionalNumber n = new FractionalNumber(); int numerator = f2 * f1.Denominator - f1.Numerator; n.Numerator = numerator; n.Denominator = f1.Denominator; return(n); }
public FractionalNumber(int numerator, int denumerator) { if (denumerator == 0) { throw new DivideByZeroException(); } if (numerator == 0) { Numerator = 0; Denominator = 1; return; } FractionalNumber n = Create(numerator, denumerator); Numerator = n.Numerator; Denominator = n.Denominator; }
public FractionalNumber(FractionalNumber n) { Numerator = n.Numerator; Denominator = n.Denominator; }
public static FractionalNumber LineInterpolation(FractionalNumber first, FractionalNumber last, FractionalNumber coef) { return((first > last) ? coef * first + (1 - coef) * last : coef *last + (1 - coef) * first); }