From e134ef952eaafa60cc5e501400ee07a01e16cfa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20A=2E=20S=2E=20Silva?= Date: Mon, 1 Nov 2021 00:22:50 -0300 Subject: [PATCH 1/2] solve unecessary use of inv function --- src/transforms/eigenanalysis.jl | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/transforms/eigenanalysis.jl b/src/transforms/eigenanalysis.jl index 91a13f4f..2db9b9ad 100644 --- a/src/transforms/eigenanalysis.jl +++ b/src/transforms/eigenanalysis.jl @@ -36,15 +36,21 @@ function pcaproj(λ, V) end function drsproj(λ, V) - Λ = Diagonal(sqrt.(λ)) - S = V * inv(Λ) - S, inv(S) + λₛ = sqrt.(λ) + Λᵢ = Diagonal(1 ./ λₛ) + Λₛ = Diagonal(λₛ) + S = V * Λᵢ + Sᵢ = Λₛ * transpose(V) + S, Sᵢ end function sdsproj(λ, V) - Λ = Diagonal(sqrt.(λ)) - S = V * inv(Λ) * transpose(V) - S, inv(S) + λₛ = sqrt.(λ) + Λᵢ = Diagonal(1 ./ λₛ) + Λₛ = Diagonal(λₛ) + S = V * Λᵢ * transpose(V) + Sᵢ = V * Λₛ * transpose(V) + S, Sᵢ end function matrices(transform::EigenAnalysis, λ, V) From 087534c689e815539395cd9b59b3175ac533b5a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20A=2E=20S=2E=20Silva?= Date: Mon, 1 Nov 2021 10:11:11 -0300 Subject: [PATCH 2/2] use inv in \Lambda --- src/transforms/eigenanalysis.jl | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/transforms/eigenanalysis.jl b/src/transforms/eigenanalysis.jl index 2db9b9ad..9701b899 100644 --- a/src/transforms/eigenanalysis.jl +++ b/src/transforms/eigenanalysis.jl @@ -36,21 +36,17 @@ function pcaproj(λ, V) end function drsproj(λ, V) - λₛ = sqrt.(λ) - Λᵢ = Diagonal(1 ./ λₛ) - Λₛ = Diagonal(λₛ) - S = V * Λᵢ - Sᵢ = Λₛ * transpose(V) - S, Sᵢ + Λ = Diagonal(sqrt.(λ)) + S = V * inv(Λ) + S⁻¹ = Λ * transpose(V) + S, S⁻¹ end function sdsproj(λ, V) - λₛ = sqrt.(λ) - Λᵢ = Diagonal(1 ./ λₛ) - Λₛ = Diagonal(λₛ) - S = V * Λᵢ * transpose(V) - Sᵢ = V * Λₛ * transpose(V) - S, Sᵢ + Λ = Diagonal(sqrt.(λ)) + S = V * inv(Λ) * transpose(V) + S⁻¹ = V * Λ * transpose(V) + S, S⁻¹ end function matrices(transform::EigenAnalysis, λ, V)