@@ -161,87 +161,57 @@ end
161161
162162# #### General central moment
163163function _moment2 (v:: AbstractArray{<:Real} , m:: Real ; corrected= false )
164- n = length (v)
165- s = 0.0
166- for i = 1 : n
167- @inbounds z = v[i] - m
168- s += z * z
169- end
170- varcorrection (n, corrected) * s
164+ s = sum (x-> abs2 (x- m), v, init= zero (m))
165+ return varcorrection (length (v), corrected) * s
171166end
172167
173168function _moment2 (v:: AbstractArray{<:Real} , wv:: AbstractWeights , m:: Real ; corrected= false )
174- n = length (v)
175- s = 0.0
176- for i = 1 : n
177- @inbounds z = v[i] - m
178- @inbounds s += (z * z) * wv[i]
179- end
180-
181- varcorrection (wv, corrected) * s
169+ s = sum (i -> (@inbounds abs2 (v[i] - m) * wv[i]), eachindex (v), init= zero (m))
170+ return varcorrection (wv, corrected) * s
182171end
183172
184173function _moment3 (v:: AbstractArray{<:Real} , m:: Real )
185- n = length (v)
186- s = 0.0
187- for i = 1 : n
188- @inbounds z = v[i] - m
189- s += z * z * z
190- end
191- s / n
174+ s = sum (x-> (x- m)^ 3 , v, init= zero (m))
175+ return s/ length (v)
192176end
193177
194178function _moment3 (v:: AbstractArray{<:Real} , wv:: AbstractWeights , m:: Real )
195- n = length (v)
196- s = 0.0
197- for i = 1 : n
198- @inbounds z = v[i] - m
199- @inbounds s += (z * z * z) * wv[i]
200- end
201- s / sum (wv)
179+ s = sum (
180+ i -> (@inbounds (z = (v[i] - m); z * z * z * wv[i])),
181+ eachindex (v),
182+ init= zero (m),
183+ )
184+ return s/ sum (wv)
202185end
203186
204187function _moment4 (v:: AbstractArray{<:Real} , m:: Real )
205- n = length (v)
206- s = 0.0
207- for i = 1 : n
208- @inbounds z = v[i] - m
209- s += abs2 (z * z)
210- end
211- s / n
188+ s = sum (x-> (z = x- m; abs2 (z* z)), v, init= zero (m))
189+ return s/ length (v)
212190end
213191
214192function _moment4 (v:: AbstractArray{<:Real} , wv:: AbstractWeights , m:: Real )
215- n = length (v)
216- s = 0.0
217- for i = 1 : n
218- @inbounds z = v[i] - m
219- @inbounds s += abs2 (z * z) * wv[i]
220- end
221- s / sum (wv)
193+ s = sum (
194+ i -> (@inbounds (z = (v[i] - m); abs2 (z * z) * wv[i])),
195+ eachindex (v),
196+ init= zero (m),
197+ )
198+ return s/ sum (wv)
222199end
223200
224201function _momentk (v:: AbstractArray{<:Real} , k:: Int , m:: Real )
225- n = length (v)
226- s = 0.0
227- for i = 1 : n
228- @inbounds z = v[i] - m
229- s += (z ^ k)
230- end
231- s / n
202+ s = sum (x -> (x - m)^ k, v, init= zero (m))
203+ return s/ length (v)
232204end
233205
234206function _momentk (v:: AbstractArray{<:Real} , k:: Int , wv:: AbstractWeights , m:: Real )
235- n = length (v)
236- s = 0.0
237- for i = 1 : n
238- @inbounds z = v[i] - m
239- @inbounds s += (z ^ k) * wv[i]
240- end
241- s / sum (wv)
207+ s = sum (
208+ i -> (@inbounds (z = (v[i] - m); z^ k * wv[i])),
209+ eachindex (v),
210+ init= zero (m),
211+ )
212+ return s/ sum (wv)
242213end
243214
244-
245215"""
246216 moment(v, k, [wv::AbstractWeights], m=mean(v))
247217
0 commit comments