Beispiel #1
0
func BenchmarkBuilder(b *testing.B) {
	b.ReportAllocs()

	for i := 0; i < b.N; i++ {
		b := NewBuilder()
		lit := make([]*Robdd, 10)
		for j := range lit {
			lit[j] = b.NewLiteral(boolean.Var(j))
		}
		d1 := b.Apply(OpXor, lit[0], lit[1])
		d2 := b.Apply(OpOr, lit[2], lit[3])
		d3 := b.Apply(OpAnd, lit[4], lit[5])
		d4 := b.Apply(OpIff, lit[6], lit[7])
		d5 := b.Apply(OpImplies, lit[8], lit[9])

		d1 = b.Apply(OpXor, d1, d3)
		d2 = b.Apply(OpAnd, d2, d5)
		d3 = b.Apply(OpOr, d1, d4)
		d4 = b.Apply(OpImplies, d2, d3)
		d5 = b.Apply(OpIff, b.NewLiteral(boolean.Var(10)), d4)
	}
}