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); } }
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); } }
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); } }
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); } }
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); }