@@ -161,87 +161,45 @@ 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)
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))
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)
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 (i -> (@inbounds (z = (v[i] - m); z * z * z * wv[i])), eachindex (v))
180+ return s/ sum (wv)
202181end
203182
204183function _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
184+ s = sum (x-> (z = x- m; abs2 (z* z)), v)
185+ return s/ length (v)
212186end
213187
214188function _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)
189+ s = sum (i -> (@inbounds (z = (v[i] - m); abs2 (z * z) * wv[i])), eachindex (v))
190+ return s/ sum (wv)
222191end
223192
224193function _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
194+ s = sum (x -> (x - m)^ k, v)
195+ return s/ length (v)
232196end
233197
234198function _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)
199+ s = sum (i -> (@inbounds (z = (v[i] - m); z^ k * wv[i])), eachindex (v))
200+ return s/ sum (wv)
242201end
243202
244-
245203"""
246204 moment(v, k, [wv::AbstractWeights], m=mean(v))
247205
0 commit comments