stdlib: Add Array.average
This commit is contained in:
@@ -1804,6 +1804,164 @@ public inline fun <T, R> Array<out T>.map(transform: (T) -> R): List<R> {
|
|||||||
return mapTo(ArrayList<R>(size), transform)
|
return mapTo(ArrayList<R>(size), transform)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun Array<out Byte>.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun Array<out Short>.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun Array<out Int>.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun Array<out Long>.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun Array<out Float>.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun Array<out Double>.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun ByteArray.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun ShortArray.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun IntArray.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun LongArray.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun FloatArray.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an average value of elements in the array.
|
||||||
|
*/
|
||||||
|
public fun DoubleArray.average(): Double {
|
||||||
|
var sum: Double = 0.0
|
||||||
|
var count: Int = 0
|
||||||
|
for (element in this) {
|
||||||
|
sum += element
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
return if (count == 0) Double.NaN else sum / count
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the sum of all elements in the array.
|
* Returns the sum of all elements in the array.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user