Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 5 additions & 11 deletions src/NaNMath.jl
Original file line number Diff line number Diff line change
Expand Up @@ -214,18 +214,12 @@ Returns a tuple of the arithmetic mean of all elements in the array, ignoring Na
and the number of non-NaN values in the array.
"""
function mean_count(x::AbstractArray{T}) where T<:AbstractFloat
sum = convert(eltype(x), NaN)
z = zero(eltype(x))
sum = z
count = 0
for i in x
if !isnan(i)
if isnan(sum)
sum = i
count = 1
else
sum += i
count += 1
end
end
@simd for i in x
count += ifelse(isnan(i), 0, 1)
sum += ifelse(isnan(i), z, i)
end
result = sum / count
return (result, count)
Expand Down