Example #1
0
        public void CanComputePower()
        {
            var a = new Complex32(1.19209289550780998537e-7f, 1.19209289550780998537e-7f);
            var b = new Complex32(1.19209289550780998537e-7f, 1.19209289550780998537e-7f);

            AssertHelpers.AlmostEqual(
                new Complex32(9.99998047207974718744e-1f, -1.76553541154378695012e-6f), a.Power(b), 7);
            a = new Complex32(0.0f, 1.19209289550780998537e-7f);
            b = new Complex32(0.0f, -1.19209289550780998537e-7f);
            AssertHelpers.AlmostEqual(new Complex32(1.00000018725172576491f, 1.90048076369011843105e-6f), a.Power(b), 7);
            a = new Complex32(0.0f, -1.19209289550780998537e-7f);
            b = new Complex32(0.0f, 0.5f);
            AssertHelpers.AlmostEqual(new Complex32(-2.56488189382693049636e-1f, -2.17823120666116144959f), a.Power(b), 6);
            a = new Complex32(0.0f, 0.5f);
            b = new Complex32(0.0f, -0.5f);
            AssertHelpers.AlmostEqual(new Complex32(2.06287223508090495171f, 7.45007062179724087859e-1f), a.Power(b), 7);
            a = new Complex32(0.0f, -0.5f);
            b = new Complex32(0.0f, 1.0f);
            AssertHelpers.AlmostEqual(new Complex32(3.70040633557002510874f, -3.07370876701949232239f), a.Power(b), 7);
            a = new Complex32(0.0f, 2.0f);
            b = new Complex32(0.0f, -2.0f);
            AssertHelpers.AlmostEqual(new Complex32(4.24532146387429353891f, -2.27479427903521192648e1f), a.Power(b), 6);
            a = new Complex32(0.0f, -8.388608e6f);
            b = new Complex32(1.19209289550780998537e-7f, 0.0f);
            AssertHelpers.AlmostEqual(new Complex32(1.00000190048219620166f, -1.87253870018168043834e-7f), a.Power(b), 7);
            a = new Complex32(0.0f, 0.0f);
            b = new Complex32(0.0f, 0.0f);
            AssertHelpers.AlmostEqual(new Complex32(1.0f, 0.0f), a.Power(b), 7);
            a = new Complex32(0.0f, 0.0f);
            b = new Complex32(1.0f, 0.0f);
            AssertHelpers.AlmostEqual(new Complex32(0.0f, 0.0f), a.Power(b), 7);
            a = new Complex32(0.0f, 0.0f);
            b = new Complex32(-1.0f, 0.0f);
            AssertHelpers.AlmostEqual(new Complex32(float.PositiveInfinity, 0.0f), a.Power(b), 7);
            a = new Complex32(0.0f, 0.0f);
            b = new Complex32(-1.0f, 1.0f);
            AssertHelpers.AlmostEqual(new Complex32(float.PositiveInfinity, float.PositiveInfinity), a.Power(b), 7);
            a = new Complex32(0.0f, 0.0f);
            b = new Complex32(0.0f, 1.0f);
            AssertEx.That(() => a.Power(b).IsNaN());
        }
 public void CanComputePower()
 {
     var a = new Complex32(1.19209289550780998537e-7f, 1.19209289550780998537e-7f);
     var b = new Complex32(1.19209289550780998537e-7f, 1.19209289550780998537e-7f);
     AssertHelpers.AlmostEqual(
         new Complex32(9.99998047207974718744e-1f, -1.76553541154378695012e-6f), a.Power(b), 7);
     a = new Complex32(0.0f, 1.19209289550780998537e-7f);
     b = new Complex32(0.0f, -1.19209289550780998537e-7f);
     AssertHelpers.AlmostEqual(new Complex32(1.00000018725172576491f, 1.90048076369011843105e-6f), a.Power(b), 7);
     a = new Complex32(0.0f, -1.19209289550780998537e-7f);
     b = new Complex32(0.0f, 0.5f);
     AssertHelpers.AlmostEqual(new Complex32(-2.56488189382693049636e-1f, -2.17823120666116144959f), a.Power(b), 6);
     a = new Complex32(0.0f, 0.5f);
     b = new Complex32(0.0f, -0.5f);
     AssertHelpers.AlmostEqual(new Complex32(2.06287223508090495171f, 7.45007062179724087859e-1f), a.Power(b), 7);
     a = new Complex32(0.0f, -0.5f);
     b = new Complex32(0.0f, 1.0f);
     AssertHelpers.AlmostEqual(new Complex32(3.70040633557002510874f, -3.07370876701949232239f), a.Power(b), 7);
     a = new Complex32(0.0f, 2.0f);
     b = new Complex32(0.0f, -2.0f);
     AssertHelpers.AlmostEqual(new Complex32(4.24532146387429353891f, -2.27479427903521192648e1f), a.Power(b), 6);
     a = new Complex32(0.0f, -8.388608e6f);
     b = new Complex32(1.19209289550780998537e-7f, 0.0f);
     AssertHelpers.AlmostEqual(new Complex32(1.00000190048219620166f, -1.87253870018168043834e-7f), a.Power(b), 7);
     a = new Complex32(0.0f, 0.0f);
     b = new Complex32(0.0f, 0.0f);
     AssertHelpers.AlmostEqual(new Complex32(1.0f, 0.0f), a.Power(b), 7);
     a = new Complex32(0.0f, 0.0f);
     b = new Complex32(1.0f, 0.0f);
     AssertHelpers.AlmostEqual(new Complex32(0.0f, 0.0f), a.Power(b), 7);
     a = new Complex32(0.0f, 0.0f);
     b = new Complex32(-1.0f, 0.0f);
     AssertHelpers.AlmostEqual(new Complex32(float.PositiveInfinity, 0.0f), a.Power(b), 7);
     a = new Complex32(0.0f, 0.0f);
     b = new Complex32(-1.0f, 1.0f);
     AssertHelpers.AlmostEqual(new Complex32(float.PositiveInfinity, float.PositiveInfinity), a.Power(b), 7);
     a = new Complex32(0.0f, 0.0f);
     b = new Complex32(0.0f, 1.0f);
     AssertEx.That(() => a.Power(b).IsNaN());
 }