Simplify min/max implementation

This commit is contained in:
Ilya Gorbunov
2020-05-22 01:10:05 +03:00
parent b4ba00ca36
commit d19f9ee0c5
5 changed files with 33 additions and 63 deletions
@@ -13084,11 +13084,9 @@ public inline fun CharArray.forEachIndexed(action: (index: Int, Char) -> Unit):
public fun Array<out Double>.max(): Double? {
if (isEmpty()) return null
var max = this[0]
if (max.isNaN()) return max
for (i in 1..lastIndex) {
val e = this[i]
if (e.isNaN()) return e
if (max < e) max = e
max = maxOf(max, e)
}
return max
}
@@ -13102,11 +13100,9 @@ public fun Array<out Double>.max(): Double? {
public fun Array<out Float>.max(): Float? {
if (isEmpty()) return null
var max = this[0]
if (max.isNaN()) return max
for (i in 1..lastIndex) {
val e = this[i]
if (e.isNaN()) return e
if (max < e) max = e
max = maxOf(max, e)
}
return max
}
@@ -13184,11 +13180,9 @@ public fun LongArray.max(): Long? {
public fun FloatArray.max(): Float? {
if (isEmpty()) return null
var max = this[0]
if (max.isNaN()) return max
for (i in 1..lastIndex) {
val e = this[i]
if (e.isNaN()) return e
if (max < e) max = e
max = maxOf(max, e)
}
return max
}
@@ -13201,11 +13195,9 @@ public fun FloatArray.max(): Float? {
public fun DoubleArray.max(): Double? {
if (isEmpty()) return null
var max = this[0]
if (max.isNaN()) return max
for (i in 1..lastIndex) {
val e = this[i]
if (e.isNaN()) return e
if (max < e) max = e
max = maxOf(max, e)
}
return max
}
@@ -15059,11 +15051,9 @@ public fun CharArray.maxWith(comparator: Comparator<in Char>): Char? {
public fun Array<out Double>.min(): Double? {
if (isEmpty()) return null
var min = this[0]
if (min.isNaN()) return min
for (i in 1..lastIndex) {
val e = this[i]
if (e.isNaN()) return e
if (min > e) min = e
min = minOf(min, e)
}
return min
}
@@ -15077,11 +15067,9 @@ public fun Array<out Double>.min(): Double? {
public fun Array<out Float>.min(): Float? {
if (isEmpty()) return null
var min = this[0]
if (min.isNaN()) return min
for (i in 1..lastIndex) {
val e = this[i]
if (e.isNaN()) return e
if (min > e) min = e
min = minOf(min, e)
}
return min
}
@@ -15159,11 +15147,9 @@ public fun LongArray.min(): Long? {
public fun FloatArray.min(): Float? {
if (isEmpty()) return null
var min = this[0]
if (min.isNaN()) return min
for (i in 1..lastIndex) {
val e = this[i]
if (e.isNaN()) return e
if (min > e) min = e
min = minOf(min, e)
}
return min
}
@@ -15176,11 +15162,9 @@ public fun FloatArray.min(): Float? {
public fun DoubleArray.min(): Double? {
if (isEmpty()) return null
var min = this[0]
if (min.isNaN()) return min
for (i in 1..lastIndex) {
val e = this[i]
if (e.isNaN()) return e
if (min > e) min = e
min = minOf(min, e)
}
return min
}
@@ -1729,11 +1729,9 @@ public fun Iterable<Double>.max(): Double? {
val iterator = iterator()
if (!iterator.hasNext()) return null
var max = iterator.next()
if (max.isNaN()) return max
while (iterator.hasNext()) {
val e = iterator.next()
if (e.isNaN()) return e
if (max < e) max = e
max = maxOf(max, e)
}
return max
}
@@ -1748,11 +1746,9 @@ public fun Iterable<Float>.max(): Float? {
val iterator = iterator()
if (!iterator.hasNext()) return null
var max = iterator.next()
if (max.isNaN()) return max
while (iterator.hasNext()) {
val e = iterator.next()
if (e.isNaN()) return e
if (max < e) max = e
max = maxOf(max, e)
}
return max
}
@@ -1993,11 +1989,9 @@ public fun Iterable<Double>.min(): Double? {
val iterator = iterator()
if (!iterator.hasNext()) return null
var min = iterator.next()
if (min.isNaN()) return min
while (iterator.hasNext()) {
val e = iterator.next()
if (e.isNaN()) return e
if (min > e) min = e
min = minOf(min, e)
}
return min
}
@@ -2012,11 +2006,9 @@ public fun Iterable<Float>.min(): Float? {
val iterator = iterator()
if (!iterator.hasNext()) return null
var min = iterator.next()
if (min.isNaN()) return min
while (iterator.hasNext()) {
val e = iterator.next()
if (e.isNaN()) return e
if (min > e) min = e
min = minOf(min, e)
}
return min
}
@@ -1178,11 +1178,9 @@ public fun Sequence<Double>.max(): Double? {
val iterator = iterator()
if (!iterator.hasNext()) return null
var max = iterator.next()
if (max.isNaN()) return max
while (iterator.hasNext()) {
val e = iterator.next()
if (e.isNaN()) return e
if (max < e) max = e
max = maxOf(max, e)
}
return max
}
@@ -1199,11 +1197,9 @@ public fun Sequence<Float>.max(): Float? {
val iterator = iterator()
if (!iterator.hasNext()) return null
var max = iterator.next()
if (max.isNaN()) return max
while (iterator.hasNext()) {
val e = iterator.next()
if (e.isNaN()) return e
if (max < e) max = e
max = maxOf(max, e)
}
return max
}
@@ -1468,11 +1464,9 @@ public fun Sequence<Double>.min(): Double? {
val iterator = iterator()
if (!iterator.hasNext()) return null
var min = iterator.next()
if (min.isNaN()) return min
while (iterator.hasNext()) {
val e = iterator.next()
if (e.isNaN()) return e
if (min > e) min = e
min = minOf(min, e)
}
return min
}
@@ -1489,11 +1483,9 @@ public fun Sequence<Float>.min(): Float? {
val iterator = iterator()
if (!iterator.hasNext()) return null
var min = iterator.next()
if (min.isNaN()) return min
while (iterator.hasNext()) {
val e = iterator.next()
if (e.isNaN()) return e
if (min > e) min = e
min = minOf(min, e)
}
return min
}