Example #1
0
        public void DoublePrecisionExp(double x)
        {
            var         exp    = Math.Exp(x);
            BigRational lower  = Math.BitDecrement(exp);
            BigRational upper  = Math.BitIncrement(exp);
            BigRational actual = BigRational.Exp(x, 500);

            Assert.True(actual < upper);
            Assert.True(actual > lower);
        }
Example #2
0
        public void ExpTaylorExpansion(int numerator, int denominator)
        {
            var power = new BigRational(numerator, denominator);

            Assert.AreEqual(
                new BigRational(0),
                BigRational.Exp(power, 0));
            Assert.AreEqual(
                new BigRational(1),
                BigRational.Exp(power, 1));
            Assert.AreEqual(
                1 + power,
                BigRational.Exp(power, 2));
            Assert.AreEqual(
                1 + power,
                BigRational.Exp(power, 2));
            Assert.AreEqual(
                1 + power + ((power * power) / 2),
                BigRational.Exp(power, 3));
            Assert.AreEqual(
                1 + power + ((power * power) / 2) + ((power * power * power) / 6),
                BigRational.Exp(power, 4));
        }
Example #3
0
 public void NegativeTermsExp()
 {
     Assert.Throws <ArgumentException>(
         () => BigRational.Exp(1, -1));
 }