@@ -81,55 +81,20 @@ for f! in
8181 :eigh_trunc! , :right_orth! , :left_orth! ,
8282 )
8383 @eval function MAK. $f! (d:: DiagonalTensorMap , F, alg:: DiagonalAlgorithm )
84- MAK. check_input ($ f!, d, F, alg)
8584 $ f! (_repack_diagonal (d), _repack_diagonal .(F), alg)
8685 return F
8786 end
8887end
8988
90- for f! in (:qr_full! , :qr_compact! )
91- @eval function MAK. check_input (
92- :: typeof ($ f!), d:: AbstractTensorMap , QR, :: DiagonalAlgorithm
93- )
94- Q, R = QR
95- @assert d isa DiagonalTensorMap
96- @assert Q isa DiagonalTensorMap && R isa DiagonalTensorMap
97- @check_scalar Q d
98- @check_scalar R d
99- @check_space (Q, space (d))
100- @check_space (R, space (d))
101-
102- return nothing
103- end
104- end
105-
106- for f! in (:lq_full! , :lq_compact! )
107- @eval function MAK. check_input (
108- :: typeof ($ f!), d:: AbstractTensorMap , LQ, :: DiagonalAlgorithm
109- )
110- L, Q = LQ
111- @assert d isa DiagonalTensorMap
112- @assert Q isa DiagonalTensorMap && L isa DiagonalTensorMap
113- @check_scalar Q d
114- @check_scalar L d
115- @check_space (Q, space (d))
116- @check_space (L, space (d))
117-
118- return nothing
119- end
120- end
121-
12289# disambiguate
12390function MAK. svd_compact! (t:: AbstractTensorMap , USVᴴ, alg:: DiagonalAlgorithm )
12491 return svd_full! (t, USVᴴ, alg)
12592end
12693
12794# f_vals
12895# ------
129-
13096for f! in (:eig_vals! , :eigh_vals! , :svd_vals! )
13197 @eval function MAK. $f! (d:: AbstractTensorMap , V, alg:: DiagonalAlgorithm )
132- MAK. check_input ($ f!, d, V, alg)
13398 $ f! (_repack_diagonal (d), diagview (_repack_diagonal (V)), alg)
13499 return V
135100 end
@@ -140,64 +105,3 @@ for f! in (:eig_vals!, :eigh_vals!, :svd_vals!)
140105 return DiagonalTensorMap (data, d. domain)
141106 end
142107end
143-
144- function MAK. check_input (:: typeof (eig_full!), t:: AbstractTensorMap , DV, :: DiagonalAlgorithm )
145- domain (t) == codomain (t) ||
146- throw (ArgumentError (" Eigenvalue decomposition requires square input tensor" ))
147-
148- D, V = DV
149-
150- @assert D isa DiagonalTensorMap
151- @assert V isa AbstractTensorMap
152-
153- # scalartype checks
154- @check_scalar D t
155- @check_scalar V t
156-
157- # space checks
158- @check_space D space (t)
159- @check_space V space (t)
160-
161- return nothing
162- end
163-
164- function MAK. check_input (:: typeof (eigh_full!), t:: AbstractTensorMap , DV, :: DiagonalAlgorithm )
165- domain (t) == codomain (t) ||
166- throw (ArgumentError (" Eigenvalue decomposition requires square input tensor" ))
167-
168- D, V = DV
169-
170- @assert D isa DiagonalTensorMap
171- @assert V isa AbstractTensorMap
172-
173- # scalartype checks
174- @check_scalar D t real
175- @check_scalar V t
176-
177- # space checks
178- @check_space D space (t)
179- @check_space V space (t)
180-
181- return nothing
182- end
183-
184- function MAK. check_input (:: typeof (eig_vals!), t:: AbstractTensorMap , D, :: DiagonalAlgorithm )
185- @assert D isa DiagonalTensorMap
186- @check_scalar D t
187- @check_space D space (t)
188- return nothing
189- end
190-
191- function MAK. check_input (:: typeof (eigh_vals!), t:: AbstractTensorMap , D, :: DiagonalAlgorithm )
192- @assert D isa DiagonalTensorMap
193- @check_scalar D t real
194- @check_space D space (t)
195- return nothing
196- end
197-
198- function MAK. check_input (:: typeof (svd_vals!), t:: AbstractTensorMap , D, :: DiagonalAlgorithm )
199- @assert D isa DiagonalTensorMap
200- @check_scalar D t real
201- @check_space D space (t)
202- return nothing
203- end
0 commit comments