From 6319dbe4970bced24bd8c65b1e73111b2f24edf5 Mon Sep 17 00:00:00 2001 From: Alex Arslan Date: Fri, 10 Feb 2023 12:51:21 -0800 Subject: [PATCH] Update for 1.6+ requirement --- src/influence.jl | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/influence.jl b/src/influence.jl index 27ed018c..57f0477b 100644 --- a/src/influence.jl +++ b/src/influence.jl @@ -4,23 +4,10 @@ StatsBase.leverage(model::LinPredModel) = _leverage(model, model.pp) -# TODO: Delete this once the minimum required Julia version is set to something recent -if VERSION >= v"1.3.0-DEV.94" - const _diagm = diagm -else - function _diagm(n::Integer, m::Integer, v::AbstractVector) - length(v) == min(n, m) || throw(DimensionMismatch()) - D = similar(v, (n, m)) - fill!(D, zero(eltype(D))) - copyto!(view(D, diagind(D)), v) - return D - end -end - function _leverage(_, pred::DensePredQR) Q = pred.qr.Q r = linpred_rank(pred) - y = _diagm(size(Q, 1), r, trues(r)) + y = diagm(size(Q, 1), r, trues(r)) Z = Q * y return vec(sum(abs2, Z; dims=1)) end @@ -37,7 +24,7 @@ function _leverage(model, pred::DensePredChol{<:Any,<:CholeskyPivoted}) if any(x -> isapprox(x, zero(x)), diag(C.L)) Q = qr!(X).Q r = rank(C) - y = _diagm(size(Q, 1), r, trues(r)) + y = diagm(size(Q, 1), r, trues(r)) X = Q * y else choldiv!(C, X)