-
Notifications
You must be signed in to change notification settings - Fork 0
/
kvadratsum.fsx
115 lines (101 loc) · 5.79 KB
/
kvadratsum.fsx
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#r "hashtable.dll"
// Create a random stream of data for testing purposes
let rnd = System.Random(1337)
// I want the stream to consists of uint64 * uint64 tuples
let n = 500000
let stream = Array.init<uint64*uint64> n (fun idx -> (uint64(rnd.Next(1,4096)),uint64(rnd.Next(1, 100))))
let kvadratsum (table : highspeedhashing.HashTable.table) stream =
for (x, v) in stream do
let squared = v * v
highspeedhashing.HashTable.increment table x squared
let mmptable = highspeedhashing.HashTable.constructMMP 4
let mstable = highspeedhashing.HashTable.constructMS 4
let runtest n idrange (table : highspeedhashing.HashTable.table) =
let stream = Array.init<uint64*uint64> n (fun idx ->
(uint64(rnd.Next(1,idrange)),uint64(rnd.Next(1, 100))))
kvadratsum table stream
let stopwatch = System.Diagnostics.Stopwatch.StartNew()
kvadratsum table stream
stopwatch.Stop()
printfn "N: %A Elapsed: %f" n stopwatch.Elapsed.TotalMilliseconds
printfn "LIST SIZE TEST"
printfn "Multiply Mod Prime PERFORMANCE"
runtest 128 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 256 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 512 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 1024 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 2048 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 4096 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 8192 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 16384 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 65536 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 131072 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 262144 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 256 (highspeedhashing.HashTable.constructMMP 8)
printfn "Multiply Shift PERFORMANCE"
runtest 128 256 (highspeedhashing.HashTable.constructMS 8)
runtest 256 256 (highspeedhashing.HashTable.constructMS 8)
runtest 512 256 (highspeedhashing.HashTable.constructMS 8)
runtest 1024 256 (highspeedhashing.HashTable.constructMS 8)
runtest 2048 256 (highspeedhashing.HashTable.constructMS 8)
runtest 4096 256 (highspeedhashing.HashTable.constructMS 8)
runtest 8192 256 (highspeedhashing.HashTable.constructMS 8)
runtest 16384 256 (highspeedhashing.HashTable.constructMS 8)
runtest 65536 256 (highspeedhashing.HashTable.constructMS 8)
runtest 131072 256 (highspeedhashing.HashTable.constructMS 8)
runtest 262144 256 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 256 (highspeedhashing.HashTable.constructMS 8)
printfn "ID RANGE TEST"
printfn "Multiply Mod Prime PERFORMANCE"
runtest 1048576 128 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 256 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 512 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 1024 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 2048 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 4096 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 8192 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 16384 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 65536 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 131072 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 262144 (highspeedhashing.HashTable.constructMMP 8)
runtest 1048576 1048576 (highspeedhashing.HashTable.constructMMP 8)
printfn "Multiply Shift PERFORMANCE"
runtest 1048576 128 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 256 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 512 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 1024 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 2048 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 4096 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 8192 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 16384 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 65536 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 131072 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 262144 (highspeedhashing.HashTable.constructMS 8)
runtest 1048576 1048576 (highspeedhashing.HashTable.constructMS 8)
printfn "ID RANGE TEST WITH LARGER HASH TABLE"
printfn "Multiply Mod Prime PERFORMANCE"
runtest 1048576 128 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 256 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 512 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 1024 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 2048 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 4096 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 8192 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 16384 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 65536 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 131072 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 262144 (highspeedhashing.HashTable.constructMMP 16)
runtest 1048576 1048576 (highspeedhashing.HashTable.constructMMP 16)
printfn "Multiply Shift PERFORMANCE"
runtest 1048576 128 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 256 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 512 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 1024 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 2048 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 4096 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 8192 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 16384 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 65536 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 131072 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 262144 (highspeedhashing.HashTable.constructMS 16)
runtest 1048576 1048576 (highspeedhashing.HashTable.constructMS 16)