Esempio n. 1
0
        public void gfmul256()
        {
            for (var i = 0; i < SampleSize; i++)
            {
                var v1 = Random.BitVector8();
                var v2 = Random.BitVector8();
                var p1 = Gf256.mul(v1, v2);
                var p2 = Gf256.mul((byte)v1, (byte)v2);
                var p4 = Gf256.mul_ref(v1, v2);

                Claim.eq(p1, p2);
                Claim.eq(p1, p4);
            }
        }
Esempio n. 2
0
        public void permrev_8x8()
        {
            for(var i= 0; i<SampleSize; i++)
            {
                //Creates an "exchange" matrix
                var perm = Perm.Identity(n8).Reverse();
                var mat = perm.ToBitMatrix();

                var v1 = Random.BitVector8();
                var v2 = mat * v1;
                var v3 = v1.Replicate();
                v3.Reverse();
                Claim.eq(v3,v2);
            }
        }
Esempio n. 3
0
        void dot8_check()
        {
            for (var i = 0; i < SampleSize; i++)
            {
                var x = Random.BitVector8();
                var y = Random.BitVector8();
                var a = x % y;
                var b = ModProd(x, y);
                Claim.yea(a == b);

                var zx = x.ToGeneric();
                var zy = y.ToGeneric();
                var c  = zx % zy;
                Claim.yea(a == c);
            }
        }
Esempio n. 4
0
        public void bmv_8x8()
        {
            for (var sample = 0; sample < SampleSize; sample++)
            {
                var m  = Random.BitMatrix8();
                var c  = Random.BitVector8();
                var z1 = m * c;
                var z2 = BitVector8.Alloc();
                for (var i = 0; i < m.RowCount; i++)
                {
                    var r = m.RowVector(i);
                    z2[i] = r % c;
                }

                Claim.yea(z1 == z2);
            }
        }
Esempio n. 5
0
        public void bvrank_8()
        {
            void Test()
            {
                var x   = Random.BitVector8();
                var pos = Random.Next(1, 6);

                var actual = x.Rank(pos);
                var expect = 0u;

                for (var i = 0; i <= pos; i++)
                {
                    expect += (x[i] ? 1u : 0u);
                }
                Claim.eq(expect, actual);
            }

            Verify(Test);
        }