@@ -70,8 +70,7 @@ function autocov!(
7070 m = length (lags)
7171 length (r) == m || throw (DimensionMismatch ())
7272 check_lags (lx, lags)
73- z .= x
74- demean && z .= z .- mean (z)
73+ demean ? z .= x .- mean (x) : copyto! (z, x)
7574 for k = 1 : m # foreach lag value
7675 r[k] = _autodot (z, lx, lags[k]) / lx
7776 end
@@ -529,7 +528,7 @@ crosscor(x::AbstractVecOrMat, y::AbstractVecOrMat; demean::Bool=true) =
529528#
530529# ######################################
531530
532- function pacf_regress! (r:: AbstractMatrix , X:: AbstractMatrix , lags:: IntegerVector , mk:: Integer )
531+ function pacf_regress! (r:: AbstractMatrix , X:: AbstractMatrix , lags:: AbstractVector{<:Integer} , mk:: Integer )
533532 lx = size (X, 1 )
534533 tmpX = ones (eltype (X), lx, mk + 1 )
535534 for j = 1 : size (X,2 )
@@ -547,7 +546,7 @@ function pacf_regress!(r::AbstractMatrix, X::AbstractMatrix, lags::IntegerVector
547546 r
548547end
549548
550- function pacf_yulewalker! (r:: AbstractMatrix , X:: AbstractMatrix , lags:: IntegerVector , mk:: Integer )
549+ function pacf_yulewalker! (r:: AbstractMatrix , X:: AbstractMatrix , lags:: AbstractVector{<:Integer} , mk:: Integer )
551550 p = Vector {eltype(X)} (undef, mk)
552551 y = Vector {eltype(X)} (undef, mk)
553552 for j = 1 : size (X,2 )
@@ -572,7 +571,7 @@ using the Yule-Walker equations.
572571
573572`r` must be a matrix of size `(length(lags), size(x, 2))`.
574573"""
575- function pacf! (r:: AbstractMatrix , X:: AbstractMatrix , lags:: IntegerVector ; method:: Symbol = :regression )
574+ function pacf! (r:: AbstractMatrix , X:: AbstractMatrix , lags:: AbstractVector{<:Integer} ; method:: Symbol = :regression )
576575 lx = size (X, 1 )
577576 m = length (lags)
578577 minlag, maxlag = extrema (lags)
@@ -603,11 +602,11 @@ If `x` is a vector, return a vector of the same length as `lags`.
603602If `x` is a matrix, return a matrix of size `(length(lags), size(x, 2))`,
604603where each column in the result corresponds to a column in `x`.
605604"""
606- function pacf (X:: AbstractMatrix , lags:: IntegerVector ; method:: Symbol = :regression )
605+ function pacf (X:: AbstractMatrix , lags:: AbstractVector{<:Integer} ; method:: Symbol = :regression )
607606 out = Matrix {float(eltype(X))} (undef, length (lags), size (X,2 ))
608607 pacf! (out, float (X), lags; method= method)
609608end
610609
611- function pacf (x:: AbstractVector , lags:: IntegerVector ; method:: Symbol = :regression )
610+ function pacf (x:: AbstractVector , lags:: AbstractVector{<:Integer} ; method:: Symbol = :regression )
612611 vec (pacf (reshape (x, length (x), 1 ), lags, method= method))
613612end
0 commit comments