public void DoubleToStringTest()
        {
            var number = 12.375;
            var bits   = Double754.DoubleToString(number);

            Assert.AreEqual("1.5468750000000000 * 2^(3)", bits);
        }
        public void ZeroTest()
        {
            var number         = 0.0;
            var doubleToString = Double754.DoubleToString(number);

            Assert.AreEqual("0.0000000000000000 * 2^(-1022)", doubleToString);
        }
        public void MinusOneTest()
        {
            var number         = -1.0;
            var doubleToString = Double754.DoubleToString(number);

            Assert.AreEqual("-1.0000000000000000 * 2^(0)", doubleToString);
        }
        public void SmallTwoTest()
        {
            var number         = 1.600000000000001;
            var doubleToString = Double754.DoubleToString(number);

            Assert.AreEqual("1.6000000000000010 * 2^(0)", doubleToString);
        }
        public void NotANumberTest()
        {
            var number = double.NaN;

            Assert.IsTrue(double.IsNaN(number));
            var doubleToString = Double754.DoubleToString(number);

            Assert.AreEqual("-1.5000000000000000 * 2^(1024)", doubleToString);
        }
        public void NotANumberTest()
        {
            var number = double.NaN;

            Assert.IsTrue(double.IsNaN(number));
            var gama = Double754.FastInvSqrtDouble(number);

            Assert.AreEqual(1.1299430132959441E+154, gama);
        }
        public void PositiveInfinityTest()
        {
            var number = double.PositiveInfinity;

            Assert.IsTrue(double.IsInfinity(number));
            var gama = Double754.FastInvSqrtDouble(number);

            Assert.AreEqual(7.2178092426191764E-155, gama);
        }
        public void LargestNormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x7FEF_FFFF_FFFF_FFFFL);

            Assert.AreEqual(1.7976931348623157E+308, number);
            var gama = Double754.FastInvSqrtDouble(number);

            Assert.AreEqual(7.2178092426191773E-155, gama);
        }
        public void Sqrt2Test()
        {
            var number = 2.0;

            Assert.AreEqual("1.0000000000000000 * 2^(1)", Double754.DoubleToString(number));
            var gama = Double754.FastInvSqrtDouble(number);

            Assert.AreEqual(0.7071067811, gama, 0.011);
        }
        public void SqrtHalfTest()
        {
            var number = 0.5;

            Assert.AreEqual("1.0000000000000000 * 2^(-1)", Double754.DoubleToString(number));
            var gama = Double754.FastInvSqrtDouble(number);

            Assert.AreEqual(1.414213562, gama, 0.022);
        }
        public void SmallestNormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x0010_0000_0000_0000L);

            Assert.AreEqual(2.2250738585072014E-308, number);
            var gama = Double754.FastInvSqrtDouble(number);

            Assert.AreEqual(6.4877030621011327E+153, gama);
        }
        public void LargestDenormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x000F_FFFF_FFFF_FFFFL);

            Assert.AreEqual(2.2250738585072009E-308, number);
            var gama = Double754.FastInvSqrtDouble(number);

            Assert.AreEqual(6.4877030621011334E+153, gama);
        }
Exemple #13
0
        public void SmallestDenormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x0000_0000_0000_0001L);

            Assert.AreEqual(4.9406564584124654E-324, number);
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(1.1027156771079482E-154, gama);
        }
Exemple #14
0
        public void NotANumberTest()
        {
            var number = double.NaN;

            Assert.IsTrue(double.IsNaN(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(9.1625715882794302E-155, gama);
        }
        public void SmallestDenormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x0000_0000_0000_0001L);

            Assert.AreEqual(4.9406564584124654E-324, number);
            var gama = Double754.FastInvSqrtDouble(number);

            Assert.AreEqual(9.6234541417166161E+153, gama);
        }
Exemple #16
0
        public void LargestNormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x7FEF_FFFF_FFFF_FFFFL);

            Assert.AreEqual(1.7976931348623157E+308, number);
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(1.3263673994695691E+154, gama);
        }
Exemple #17
0
        public void PositiveInfinityTest()
        {
            var number = double.PositiveInfinity;

            Assert.IsTrue(double.IsInfinity(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(1.3263673994695693E+154, gama);
        }
Exemple #18
0
        public void Sqrt16Test()
        {
            var number = 16.0;

            Assert.AreEqual("1.0000000000000000 * 2^(4)", Double754.DoubleToString(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(4.0, gama, 0.0431);
        }
Exemple #19
0
        public void Sqrt256Test()
        {
            var number = 256.0;

            Assert.AreEqual("1.0000000000000000 * 2^(8)", Double754.DoubleToString(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(16.0, gama, 0.173);
        }
Exemple #20
0
        public void Sqrt2Test()
        {
            var number = 2.0;

            Assert.AreEqual("1.0000000000000000 * 2^(1)", Double754.DoubleToString(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(1.4142135623730950488016887242097, gama, 0.0643);
        }
Exemple #21
0
        public void Sqrt4Test()
        {
            var number = 4.0;

            Assert.AreEqual("1.0000000000000000 * 2^(2)", Double754.DoubleToString(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(2.0, gama, 0.0216);
        }
Exemple #22
0
        public void SqrtHalfTest()
        {
            var number = 0.5;

            Assert.AreEqual("1.0000000000000000 * 2^(-1)", Double754.DoubleToString(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(0.70710678118654752440084436210485, gama, 0.0322);
        }
Exemple #23
0
        public void Sqrt1Test()
        {
            var number = 1.0;

            Assert.AreEqual("1.0000000000000000 * 2^(0)", Double754.DoubleToString(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(1.0, gama, 0.0108);
        }
Exemple #24
0
        public void SqrtOneSixteenthTest()
        {
            var number = 0.0625;

            Assert.AreEqual("1.0000000000000000 * 2^(-4)", Double754.DoubleToString(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(0.25, gama, 0.00269);
        }
Exemple #25
0
        public void SqrtQuarterTest()
        {
            var number = 0.25;

            Assert.AreEqual("1.0000000000000000 * 2^(-2)", Double754.DoubleToString(number));
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(0.5, gama, 0.00538);
        }
Exemple #26
0
        public void SmallestNormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x0010_0000_0000_0000L);

            Assert.AreEqual(2.2250738585072014E-308, number);
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(1.4756327136679585E-154, gama);
        }
Exemple #27
0
        public void LargestDenormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x000F_FFFF_FFFF_FFFFL);

            Assert.AreEqual(2.2250738585072009E-308, number);
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(1.4756327136679584E-154, gama);
        }
Exemple #28
0
        public void MiddleDenormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x0008_0000_0000_0000L);

            Assert.AreEqual(1.1125369292536007E-308, number);
            var gama = Double754.FastSqrtDouble(number);

            Assert.AreEqual(1.2891741953879534E-154, gama);
        }
        public void MiddleDenormalizedNumberSqrt()
        {
            var number = BitConverter.Int64BitsToDouble(0x0008_0000_0000_0000L);

            Assert.AreEqual(1.1125369292536007E-308, number);
            var gama = Double754.FastInvSqrtDouble(number);

            Assert.AreEqual(7.9474781504737915E+153, gama);
        }
Exemple #30
0
        public void LargestDenormalizedNumber()
        {
            var number = BitConverter.Int64BitsToDouble(0x000F_FFFF_FFFF_FFFFL);

            Assert.IsFalse(double.IsNormal(number));
            Assert.AreEqual(2.2250738585072009E-308d, number);
            var doubleToString = Double754.DoubleToString(number);

            Assert.AreEqual("0.9999999999999998 * 2^(-1022)", doubleToString);
        }