Skip to content

Commit 2f88b17

Browse files
committed
Start on updates for TK 0.16 and MAK 0.6
1 parent e50cc9f commit 2f88b17

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

Project.toml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ HalfIntegers = "1.6.0"
3434
KrylovKit = "0.8.3, 0.9.2, 0.10"
3535
LinearAlgebra = "1.6"
3636
LoggingExtras = "~1.0"
37-
MatrixAlgebraKit = "0.5.0"
37+
MatrixAlgebraKit = "0.6.0"
3838
OhMyThreads = "0.7, 0.8"
3939
OptimKit = "0.3.1, 0.4"
4040
Pkg = "1"
4141
Plots = "1.40"
4242
Printf = "1"
4343
Random = "1"
4444
RecipesBase = "1.1"
45-
TensorKit = "0.15.1"
45+
TensorKit = "0.16.0"
4646
TensorKitManifolds = "0.7"
4747
TensorOperations = "5"
4848
Test = "1"
@@ -60,3 +60,6 @@ TestExtras = "5ed8adda-3752-4e41-b88a-e8b09835ee3a"
6060

6161
[targets]
6262
test = ["Aqua", "Pkg", "Test", "TestExtras", "Plots", "Combinatorics"]
63+
64+
[sources]
65+
TensorKitManifolds = {url="https://github.com/Jutho/TensorKitManifolds.jl", rev="main"}

src/utility/utility.jl

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -153,26 +153,34 @@ end
153153
# temporary workaround for the fact that left_orth and right_orth are poorly designed:
154154
function _left_orth!(t; alg::MatrixAlgebraKit.AbstractAlgorithm, trunc::MatrixAlgebraKit.TruncationStrategy = notrunc())
155155
if alg isa LAPACK_HouseholderQR
156-
return left_orth!(t; kind = :qr, alg_qr = alg, trunc)
156+
left_orth_alg = MatrixAlgebraKit.select_algorithm(left_orth!, t, Val(:qr); alg.kwargs...)
157+
return left_orth!(t, left_orth_alg)
157158
elseif alg isa LAPACK_HouseholderLQ
158-
return left_orth!(t; kind = :qr, alg_qr = LAPACK_HouseholderQR(; alg.kwargs...), trunc)
159+
left_orth_alg = MatrixAlgebraKit.select_algorithm(left_orth!, t, Val(:qr); alg.kwargs...)
160+
return left_orth!(t, left_orth_alg)
159161
elseif alg isa PolarViaSVD
160-
return left_orth!(t; kind = :polar, alg_polar = alg, trunc)
162+
left_orth_alg = MatrixAlgebraKit.select_algorithm(left_orth!, t, Val(:polar); alg.kwargs...)
163+
return left_orth!(t, left_orth_alg)
161164
elseif alg isa LAPACK_SVDAlgorithm
162-
return left_orth!(t; kind = :svd, alg_svd = alg, trunc)
165+
left_orth_alg = MatrixAlgebraKit.select_algorithm(left_orth!, t, Val(:svd); trunc, alg.kwargs...)
166+
return left_orth!(t, left_orth_alg)
163167
else
164168
error(lazy"unkown algorithm $alg")
165169
end
166170
end
167171
function _right_orth!(t; alg::MatrixAlgebraKit.AbstractAlgorithm, trunc::TruncationStrategy = notrunc())
168172
if alg isa LAPACK_HouseholderLQ
169-
return right_orth!(t; kind = :lq, alg_lq = alg, trunc)
173+
right_orth_alg = MatrixAlgebraKit.select_algorithm(right_orth!, t, Val(:lq); alg.kwargs...)
174+
return right_orth!(t, right_orth_alg)
170175
elseif alg isa LAPACK_HouseholderQR
171-
return right_orth!(t; kind = :lq, alg_lq = LAPACK_HouseholderLQ(; alg.kwargs...), trunc)
176+
right_orth_alg = MatrixAlgebraKit.select_algorithm(right_orth!, t, Val(:lq); alg.kwargs...)
177+
return right_orth!(t, right_orth_alg)
172178
elseif alg isa PolarViaSVD
173-
return right_orth!(t; kind = :polar, alg_polar = alg, trunc)
179+
right_orth_alg = MatrixAlgebraKit.select_algorithm(right_orth!, t, Val(:polar); alg.kwargs...)
180+
return right_orth!(t, right_orth_alg)
174181
elseif alg isa LAPACK_SVDAlgorithm
175-
return right_orth!(t; kind = :svd, alg_svd = alg, trunc)
182+
right_orth_alg = MatrixAlgebraKit.select_algorithm(right_orth!, t, Val(:svd); trunc, alg.kwargs...)
183+
return right_orth!(t, right_orth_alg)
176184
else
177185
error(lazy"unkown algorithm $alg")
178186
end

0 commit comments

Comments
 (0)