Esempio n. 1
0
        private static void Test2()
        {
            Rational r0 = new Rational(25, 24);
            Rational r1 = new Rational(81, 80);
            Rational r2 = new Rational(128, 125);

            Debug.Print("{0}", new Rational(45, 32) * r1.Power(-1)); // 25/18
        }
Esempio n. 2
0
        public static Rational MakeNarrow(Rational r, Rational b)
        {
            if (r.GetHighPrimeIndex() == b.GetHighPrimeIndex())
            {
                return(r);                                                // can't narrow on same prime level
            }
            double r_ = r.ToDouble();
            double b_ = b.ToDouble();
            double l  = Math.Log(r_, b_); // e.g. 1.58 for {3, 2}
            Pow    e  = (Pow)(l + 0.25);  // something between Floor and Round

            r /= b.Power(e);
            return(r);
        }