Skip to content

Commit a32f3ae

Browse files
committed
Last fixes
1 parent 657f4fc commit a32f3ae

File tree

2 files changed

+0
-57
lines changed

2 files changed

+0
-57
lines changed

Project.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ OhMyThreads = "0.8.0"
3838
PackageExtensionCompat = "1"
3939
Random = "1"
4040
ScopedValues = "1.3.0"
41-
SparseArrays = "1"
4241
Strided = "2"
4342
TensorKitSectors = "0.1.4, 0.2"
4443
TensorOperations = "5.1"

src/tensors/factorizations/factorizations.jl

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -62,66 +62,10 @@ end
6262
#------------------------------------------------------------------------------------------
6363
const RealOrComplexFloat = Union{AbstractFloat,Complex{<:AbstractFloat}}
6464

65-
# DiagonalTensorMap
66-
# -----------------
67-
function leftorth!(d::DiagonalTensorMap; alg=QR(), kwargs...)
68-
@assert alg isa Union{QR,QL}
69-
return one(d), d # TODO: this is only correct for `alg = QR()` or `alg = QL()`
70-
end
71-
function rightorth!(d::DiagonalTensorMap; alg=LQ(), kwargs...)
72-
@assert alg isa Union{LQ,RQ}
73-
return d, one(d) # TODO: this is only correct for `alg = LQ()` or `alg = RQ()`
74-
end
75-
leftnull!(d::DiagonalTensorMap; kwargs...) = leftnull!(TensorMap(d); kwargs...)
76-
rightnull!(d::DiagonalTensorMap; kwargs...) = rightnull!(TensorMap(d); kwargs...)
77-
78-
function tsvd!(d::DiagonalTensorMap; trunc=NoTruncation(), p::Real=2, alg=SDD())
79-
return _tsvd!(d, alg, trunc, p)
80-
end
81-
82-
# helper function
83-
function _compute_svddata!(d::DiagonalTensorMap, alg::Union{SVD,SDD})
84-
InnerProductStyle(d) === EuclideanInnerProduct() || throw_invalid_innerproduct(:tsvd!)
85-
I = sectortype(d)
86-
dims = SectorDict{I,Int}()
87-
generator = Base.Iterators.map(blocks(d)) do (c, b)
88-
lb = length(b.diag)
89-
U = zerovector!(similar(b.diag, lb, lb))
90-
V = zerovector!(similar(b.diag, lb, lb))
91-
p = sortperm(b.diag; by=abs, rev=true)
92-
for (i, pi) in enumerate(p)
93-
U[pi, i] = safesign(b.diag[pi])
94-
V[i, pi] = 1
95-
end
96-
Σ = abs.(view(b.diag, p))
97-
dims[c] = lb
98-
return c => (U, Σ, V)
99-
end
100-
SVDdata = SectorDict(generator)
101-
return SVDdata, dims
102-
end
103-
104-
eig!(d::DiagonalTensorMap) = d, one(d)
105-
eigh!(d::DiagonalTensorMap{<:Real}) = d, one(d)
106-
eigh!(d::DiagonalTensorMap{<:Complex}) = DiagonalTensorMap(real(d.data), d.domain), one(d)
107-
108-
function LinearAlgebra.svdvals(d::DiagonalTensorMap)
109-
return SectorDict(c => LinearAlgebra.svdvals(b) for (c, b) in blocks(d))
110-
end
111-
function LinearAlgebra.eigvals(d::DiagonalTensorMap)
112-
return SectorDict(c => LinearAlgebra.eigvals(b) for (c, b) in blocks(d))
113-
end
114-
115-
function LinearAlgebra.cond(d::DiagonalTensorMap, p::Real=2)
116-
return LinearAlgebra.cond(Diagonal(d.data), p)
117-
end
118-
11965
#------------------------------#
12066
# LinearAlgebra overloads
12167
#------------------------------#
122-
#LinearAlgebra.svdvals(t::AbstractTensorMap) = diagview(svd_vals(t))
12368
LinearAlgebra.svdvals!(t::AbstractTensorMap) = diagview(svd_vals!(t))
124-
#LinearAlgebra.eigvals(t::AbstractTensorMap) = diagview(eig_vals(t))
12569
LinearAlgebra.eigvals!(t::AbstractTensorMap; kwargs...) = diagview(eig_vals!(t))
12670

12771
#--------------------------------------------------#

0 commit comments

Comments
 (0)