|
1 | | -using FillArrays: Eye |
| 1 | +using FillArrays: Eye, Ones |
2 | 2 | using KroneckerArrays: ⊗, arguments |
3 | 3 | using LinearAlgebra: Hermitian, I, diag, hermitianpart, norm |
4 | 4 | using MatrixAlgebraKit: |
|
154 | 154 | @test arguments(v, 2) isa Eye |
155 | 155 | end |
156 | 156 |
|
| 157 | + for f in (eig_vals, eigh_vals) |
| 158 | + a = Eye(3) ⊗ parent(hermitianpart(randn(3, 3))) |
| 159 | + d = @constinferred f(a) |
| 160 | + d′ = f(Matrix(a)) |
| 161 | + @test sort(Vector(d); by=abs) ≈ sort(d′; by=abs) |
| 162 | + @test arguments(d, 1) isa Ones |
| 163 | + @test arguments(d, 2) ≈ f(arguments(a, 2)) |
| 164 | + |
| 165 | + a = parent(hermitianpart(randn(3, 3))) ⊗ Eye(3) |
| 166 | + d = @constinferred f(a) |
| 167 | + d′ = f(Matrix(a)) |
| 168 | + @test sort(Vector(d); by=abs) ≈ sort(d′; by=abs) |
| 169 | + @test arguments(d, 2) isa Ones |
| 170 | + @test arguments(d, 1) ≈ f(arguments(a, 1)) |
| 171 | + |
| 172 | + a = Eye(3) ⊗ Eye(3) |
| 173 | + d = @constinferred f(a) |
| 174 | + @test d == Ones(3) ⊗ Ones(3) |
| 175 | + @test arguments(d, 1) isa Ones |
| 176 | + @test arguments(d, 2) isa Ones |
| 177 | + end |
| 178 | + |
157 | 179 | for f in ( |
158 | 180 | left_orth, left_polar, lq_compact, lq_full, qr_compact, qr_full, right_orth, right_polar |
159 | 181 | ) |
|
203 | 225 | @test arguments(s, 2) isa Eye |
204 | 226 | @test arguments(v, 2) isa Eye |
205 | 227 | end |
| 228 | + |
| 229 | + a = Eye(3) ⊗ randn(3, 3) |
| 230 | + d = @constinferred svd_vals(a) |
| 231 | + d′ = svd_vals(Matrix(a)) |
| 232 | + @test sort(Vector(d); by=abs) ≈ sort(d′; by=abs) |
| 233 | + @test arguments(d, 1) isa Ones |
| 234 | + @test arguments(d, 2) ≈ svd_vals(arguments(a, 2)) |
| 235 | + |
| 236 | + a = randn(3, 3) ⊗ Eye(3) |
| 237 | + d = @constinferred svd_vals(a) |
| 238 | + d′ = svd_vals(Matrix(a)) |
| 239 | + @test sort(Vector(d); by=abs) ≈ sort(d′; by=abs) |
| 240 | + @test arguments(d, 2) isa Ones |
| 241 | + @test arguments(d, 1) ≈ svd_vals(arguments(a, 1)) |
| 242 | + |
| 243 | + a = Eye(3) ⊗ Eye(3) |
| 244 | + d = @constinferred svd_vals(a) |
| 245 | + @test d == Ones(3) ⊗ Ones(3) |
| 246 | + @test arguments(d, 1) isa Ones |
| 247 | + @test arguments(d, 2) isa Ones |
206 | 248 | end |
0 commit comments