Skip to content

Commit 6d169a0

Browse files
committed
Add float and double division benchmakrs
1 parent 9e87713 commit 6d169a0

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

src/commonMain/kotlin/microBenchmarks/ArithmeticBenchmark.kt

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,92 @@ class ArithmeticBenchmark {
6363
}
6464
return j
6565
}
66+
67+
@Benchmark
68+
fun float_division(): Float {
69+
var i = 1
70+
var j = 1f
71+
while (i < BENCHMARK_SIZE) {
72+
j += (i shl 1234).toFloat() / i / j / i / j / i / j
73+
i++
74+
}
75+
return j
76+
}
77+
78+
@Benchmark
79+
fun float_division_constant(): Float {
80+
var i = 1
81+
var j = 1f
82+
while (i < BENCHMARK_SIZE) {
83+
j += (i shl 1234).toFloat() / 42 / i / 42 / j / 42 / i
84+
i++
85+
}
86+
return j
87+
}
88+
89+
@Benchmark
90+
fun float_reminder(): Float {
91+
var i = 1
92+
var j = 1f
93+
while (i < BENCHMARK_SIZE) {
94+
j += (i shl 1234).toFloat() % i % j % i % j % i % j
95+
i++
96+
}
97+
return j
98+
}
99+
100+
@Benchmark
101+
fun float_reminder_constant(): Float {
102+
var i = 1
103+
var j = 1f
104+
while (i < BENCHMARK_SIZE) {
105+
j += (i shl 1234).toFloat() % 42 % i % 42 % j % 42 % i
106+
i++
107+
}
108+
return j
109+
}
110+
111+
@Benchmark
112+
fun double_division(): Float {
113+
var i = 1
114+
var j = 1.0
115+
while (i < BENCHMARK_SIZE) {
116+
j += (i shl 1234).toFloat() / i / j / i / j / i / j
117+
i++
118+
}
119+
return j
120+
}
121+
122+
@Benchmark
123+
fun double_division_constant(): Double {
124+
var i = 1
125+
var j = 1.0
126+
while (i < BENCHMARK_SIZE) {
127+
j += (i shl 1234).toDouble() / 42 / i / 42 / j / 42 / i
128+
i++
129+
}
130+
return j
131+
}
132+
133+
@Benchmark
134+
fun double_reminder(): Double {
135+
var i = 1
136+
var j = 1.0
137+
while (i < BENCHMARK_SIZE) {
138+
j += (i shl 1234).toDouble() % i % j % i % j % i % j
139+
i++
140+
}
141+
return j
142+
}
143+
144+
@Benchmark
145+
fun double_reminder_constant(): Double {
146+
var i = 1
147+
var j = 1.0
148+
while (i < BENCHMARK_SIZE) {
149+
j += (i shl 1234).toDouble() % 42 % i % 42 % j % 42 % i
150+
i++
151+
}
152+
return j
153+
}
66154
}

0 commit comments

Comments
 (0)