Exemplo n.º 1
0
        public void bitpart_32x4_bench()
        {
            var         opcount = RoundCount * CycleCount;
            var         sw      = stopwatch(false);
            var         opname  = $"bitpart_32x4";
            var         count   = (int)Part32x4.Count;
            Span <byte> dst     = stackalloc byte[count];

            for (var k = 0; k < opcount; k++)
            {
                var x = Random.Next <uint>();
                sw.Start();
                BitParts.part32x4(x, dst);
                sw.Stop();
            }

            Collect((opcount, sw, opname));
        }
Exemplo n.º 2
0
        public void bitpart_32x4()
        {
            var         count = (int)Part32x4.Count;
            var         width = (int)Part32x4.Width;
            Span <byte> dst   = stackalloc byte[count];

            for (var sample = 0; sample < SampleSize; sample++)
            {
                var x = Random.Next <uint>();
                BitParts.part32x4(x, dst);
                Span <byte> dstRef = stackalloc byte[count];
                part32x4_ref(x, dstRef);
                var xbs     = x.ToBitString();
                var bsparts = xbs.Partition(width).Map(bs => bs.ToBitVector(n8));
                for (var i = 0; i < count; i++)
                {
                    Claim.eq(bsparts[i], dst[i].ToBitVector());
                    Claim.eq(bsparts[i], dstRef[i].ToBitVector());
                }
            }
        }