Example #1
0
        public void TestRoot()
        {
            DoTest(1.9216, 1.301, 2, 5, 2, 0);
            DoTest(-1.4567, 0.6121, 4, 9, 5, 2);
            DoTest(29, 190, 29, 190, 1, 0);

            void DoTest(double expectedR, double expectedI, double r, double i, int deg, int k)
            {
                var c = Complex.Root(new Complex(r, i), deg, k);

                AreDoublesEqual(expectedR, c.Re);
                AreDoublesEqual(expectedI, c.Im);
            }
        }
Example #2
0
        public void ComplexRoot()
        {
            var expected = new Complex(2, 11.0 / 12.0 * System.Math.PI, Representation.Polar);

            var resultIsInArray = false;
            var roots           = c8.Root(3);

            foreach (var root in roots)
            {
                if (root == expected)
                {
                    resultIsInArray = true;
                    break;
                }
            }

            Assert.IsTrue(resultIsInArray);
        }
        public void CanComputeRoot()
        {
            var a = new Complex(1.19209289550780998537e-7, 1.19209289550780998537e-7);
            var b = new Complex(1.19209289550780998537e-7, 1.19209289550780998537e-7);

            AssertHelpers.AlmostEqual(new Complex(0.0, 0.0), a.Root(b), 15);
            a = new Complex(0.0, -1.19209289550780998537e-7);
            b = new Complex(0.0, 0.5);
            AssertHelpers.AlmostEqual(new Complex(0.038550761943650161, 0.019526430428319544), a.Root(b), 15);
            a = new Complex(0.0, 0.5);
            b = new Complex(0.0, -0.5);
            AssertHelpers.AlmostEqual(new Complex(0.007927894711475968, -0.042480480425152213), a.Root(b), 15);
            a = new Complex(0.0, -0.5);
            b = new Complex(0.0, 1.0);
            AssertHelpers.AlmostEqual(new Complex(0.15990905692806806, 0.13282699942462053), a.Root(b), 15);
            a = new Complex(0.0, 2.0);
            b = new Complex(0.0, -2.0);
            AssertHelpers.AlmostEqual(new Complex(0.42882900629436788, 0.15487175246424678), a.Root(b), 15);
            a = new Complex(0.0, -8.388608e6);
            b = new Complex(1.19209289550780998537e-7, 0.0);
            AssertHelpers.AlmostEqual(new Complex(double.PositiveInfinity, double.NegativeInfinity), a.Root(b), 15);
        }
Example #4
0
 public ComplexValue Root(ComplexValue rootexponent)
 {
     return(new ComplexValue(_dataValue.Root(rootexponent.Value)));
 }
Example #5
0
        public void CanComputeRoot()
        {
            var a = new Complex(0.0, -1.19209289550780998537e-7);
            var b = new Complex(0.0, 0.5);
            AssertHelpers.AlmostEqualRelative(new Complex(0.038550761943650161, 0.019526430428319544), a.Root(b), 13);
            a = new Complex(0.0, 0.5);
            b = new Complex(0.0, -0.5);
            AssertHelpers.AlmostEqualRelative(new Complex(0.007927894711475968, -0.042480480425152213), a.Root(b), 13);
            a = new Complex(0.0, -0.5);
            b = new Complex(0.0, 1.0);
            AssertHelpers.AlmostEqualRelative(new Complex(0.15990905692806806, 0.13282699942462053), a.Root(b), 13);
            a = new Complex(0.0, 2.0);
            b = new Complex(0.0, -2.0);
            AssertHelpers.AlmostEqualRelative(new Complex(0.42882900629436788, 0.15487175246424678), a.Root(b), 13);

            //a = new Complex(1.19209289550780998537e-7, 1.19209289550780998537e-7);
            //b = new Complex(1.19209289550780998537e-7, 1.19209289550780998537e-7);
            //AssertHelpers.AlmostEqual(new Complex(0.0, 0.0), a.Root(b), 15);
            a = new Complex(0.0, -8.388608e6);
            b = new Complex(1.19209289550780998537e-7, 0.0);
            AssertHelpers.AlmostEqualRelative(new Complex(double.PositiveInfinity, double.NegativeInfinity), a.Root(b), 14);
        }