@@ -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