-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmcl_bench_test.go
76 lines (62 loc) · 1.16 KB
/
mcl_bench_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package mcl
//import "fmt"
//#import "strings"
import "testing"
func BenchmarkG1mul(b *testing.B) {
var a Fr
var R, P G1
b.ResetTimer()
for i := 0; i < b.N; i++ {
b.StopTimer()
P.Random()
a.Random()
//var numOnes = strings.Count(a.GetString(2), "1")
//fmt.Printf("1s: %d\n", numOnes)
b.StartTimer()
G1Mul(&R, &P, &a)
}
}
func BenchmarkG2mul(b *testing.B) {
var a Fr
var R, P G2
b.ResetTimer()
for i := 0; i < b.N; i++ {
b.StopTimer()
P.Random()
a.Random()
b.StartTimer()
G2Mul(&R, &P, &a)
}
}
func BenchmarkPairing(b *testing.B) {
var e GT
var Q G1
var P G2
b.ResetTimer()
for i := 0; i < b.N; i++ {
b.StopTimer()
P.Random()
Q.Random()
b.StartTimer()
Pairing(&e, &Q, &P)
}
}
//
//func testVecPairing(t *testing.T) {
// N := 50
// g1Vec := make([]G1, N)
// g2Vec := make([]G2, N)
// var e1, e2 GT
// e1.SetInt64(1)
// for i := 0; i < N; i++ {
// g1Vec[0].HashAndMapTo([]byte("aa"))
// g2Vec[0].HashAndMapTo([]byte("aa"))
// Pairing(&e2, &g1Vec[i], &g2Vec[i])
// GTMul(&e1, &e1, &e2)
// }
// MillerLoopVec(&e2, g1Vec, g2Vec)
// FinalExp(&e2, &e2)
// if !e1.IsEqual(&e2) {
// t.Errorf("wrong MillerLoopVec")
// }
//}