コード例 #1
0
ファイル: DdRealAdd.cs プロジェクト: rzikm/NetQD
 private static DdReal Add_Norm(DdReal left, DdReal right)
 {
     (double s1, double s2) = MathHelper.TwoSum(left.High, right.High);
     (double t1, double t2) = MathHelper.TwoSum(left.High, right.High);
     s2      += t1;
     (s1, s2) = MathHelper.QuickTwoSum(s1, s2);
     s2      += t2;
     return(MathHelper.QuickTwoSumD(s1, s2));
 }
コード例 #2
0
            private void DoTest(DdReal left, DdReal right,
                                Func <QdReal, QdReal, QdReal> expected,
                                Func <QdReal, DdReal, QdReal> opLeft,
                                Func <DdReal, QdReal, QdReal> opRight,
                                Func <QdReal, QdReal, QdReal> methBoth,
                                Func <QdReal, DdReal, QdReal> methLeft,
                                Func <QdReal, QdReal, QdReal> methSloppy
                                )
            {
                var expect = expected(left, right);

                Assert.Equal(expect[0], opLeft(left, right)[0]);
                Assert.Equal(expect[0], opRight(left, right)[0]);
                Assert.Equal(expect[0], methBoth(left, right)[0]);
                Assert.Equal(expect[0], methLeft(left, right)[0]);
                Assert.Equal(expect[0], methSloppy(left, right)[0]);
            }
コード例 #3
0
 public DdReal Current()
 {
     return(DdReal.Add(a, b));
 }
コード例 #4
0
ファイル: ConversionTests.cs プロジェクト: rzikm/NetQD
 public QdRealConversionData() : base(v => new QdReal(v))
 {
     // also check conversions between QdReal and DdReal
     Add(QdReal.One, typeof(DdReal), DdReal.One);
     Add((QdReal)DdReal.Divide(1, 7), typeof(DdReal), DdReal.Divide(1, 7));
 }