Ejemplo n.º 1
0
        void add_check <T>()
            where T : unmanaged
        {
            var asmop = AsmOps.Add <T>();

            for (var i = 0; i < SampleSize; i++)
            {
                var a      = Random.Next <T>();
                var b      = Random.Next <T>();
                var expect = gmath.add(a, b);
                var actual = asmop(a, b);
                Claim.eq(expect, actual);
            }
        }
Ejemplo n.º 2
0
        void add_bench <T>(SystemCounter subject = default, SystemCounter compare = default)
            where T : unmanaged
        {
            var last  = default(T);
            var asmop = AsmOps.Add <T>();

            for (var i = 0; i < OpCount; i++)
            {
                var a = Random.Next <T>();
                var b = Random.Next <T>();
                subject.Start();
                last = asmop(a, b);
                subject.Stop();

                compare.Start();
                last = gmath.add(a, b);
                compare.Stop();
            }

            Benchmark($"add{moniker<T>()}_asm", subject);
            Benchmark($"add{moniker<T>()}", compare);
        }
Ejemplo n.º 3
0
 public void add64f_check()
 => VerifyOp(AsmOps.Add <double>(), fmath.add);
Ejemplo n.º 4
0
 public void add64u_check()
 => VerifyOp(AsmOps.Add <ulong>(), math.add);
Ejemplo n.º 5
0
 public void add32u_check()
 => VerifyOp(AsmOps.Add <uint>(), math.add);
Ejemplo n.º 6
0
 public void add16u_check()
 => VerifyOp(AsmOps.Add <ushort>(), math.add);
Ejemplo n.º 7
0
 public void add8u_check()
 => VerifyOp(AsmOps.Add <byte>(), math.add);