@@ -109,30 +109,37 @@ function hadi1992(multivariateData::AbstractMatrix{Float64}; alpha = 0.05)
109109 basic_subset = []
110110 sorted_mah1 = []
111111
112+ Cb = zeros (Float64, p)
113+ Sb = zeros (Float64, p, p)
114+ newSb = zeros (Float64, p, p)
115+
116+ msm3 = zeros (Float64, n, n)
117+ msm4 = zeros (Float64, n, n)
118+
112119 while r < n
113120 cnpr = 1 + (r / (n - p))^ 2.0
114121 basic_subset_indices = ordering_indices_mah1[1 : r]
115122 basic_subset = multivariateData[basic_subset_indices, :]
116- Cb = applyColumns (mean, basic_subset)
117- Sb = cov (basic_subset)
123+ Cb . = applyColumns (mean, basic_subset)
124+ Sb . = cov (basic_subset)
118125
119126 r += 1
120127 cfactor = cnpr * sqrt (sort (mah1)[h]) / chi_50_quantile
121128 if det (cfactor * Sb) == 0
122129 @info " singular Sb case"
123- newSb = hadi1992_handle_singularity (cfactor * Sb)
130+ newSb . = hadi1992_handle_singularity (cfactor * Sb)
124131
125- msm3 = mahalanobisSquaredMatrix (multivariateData, meanvector = Cb, covmatrix = newSb,)
132+ msm3 . = mahalanobisSquaredMatrix (multivariateData, meanvector = Cb, covmatrix = newSb,)
126133 @assert ! isnothing (msm3)
127134
128- mah1 = diag (msm3)
135+ mah1 . = diag (msm3)
129136
130137 ordering_indices_mah1 = sortperm (mah1)
131138 basic_subset_indices = ordering_indices_mah1[1 : r]
132139 else
133- msm4 = mahalanobisSquaredMatrix (multivariateData, meanvector = Cb, covmatrix = (cfactor * Sb))
140+ msm4 . = mahalanobisSquaredMatrix (multivariateData, meanvector = Cb, covmatrix = (cfactor * Sb))
134141 @assert ! isnothing (msm4)
135- mah1 = diag (msm4)
142+ mah1 . = diag (msm4)
136143 ordering_indices_mah1 = sortperm (mah1)
137144 basic_subset_indices = ordering_indices_mah1[1 : r]
138145 end
0 commit comments