Skip to content

Commit 394fec2

Browse files
committed
Add back support for null space
1 parent cb52828 commit 394fec2

File tree

3 files changed

+44
-24
lines changed

3 files changed

+44
-24
lines changed

src/fillarrays/matrixalgebrakit.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,3 +148,19 @@ for f in [:left_orth!, :right_orth!]
148148
end
149149
end
150150
end
151+
152+
for f in [:left_null!, :right_null!]
153+
_f = Symbol(:_, f)
154+
@eval begin
155+
function _initialize_output(::typeof($f), a::Eye)
156+
return a
157+
end
158+
function $_f(a::Eye, F)
159+
return F
160+
end
161+
162+
function MatrixAlgebraKit.$f(a::EyeEye, F; kwargs...)
163+
return throw(MethodError($f, (a, F)))
164+
end
165+
end
166+
end

src/matrixalgebrakit.jl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,13 +180,17 @@ for f in [:left_orth!, :right_orth!]
180180
end
181181

182182
for f in [:left_null!, :right_null!]
183+
_f = Symbol(:_, f)
183184
@eval begin
184185
function MatrixAlgebraKit.initialize_output(::typeof($f), a::KroneckerMatrix)
185186
return _initialize_output($f, a.a) _initialize_output($f, a.b)
186187
end
188+
function $_f(a::AbstractMatrix, F; kwargs...)
189+
return $f(a, F; kwargs...)
190+
end
187191
function MatrixAlgebraKit.$f(a::KroneckerMatrix, F; kwargs1=(;), kwargs2=(;), kwargs...)
188-
$f(a.a, F.a; kwargs..., kwargs1...)
189-
$f(a.b, F.b; kwargs..., kwargs2...)
192+
$_f(a.a, F.a; kwargs..., kwargs1...)
193+
$_f(a.b, F.b; kwargs..., kwargs2...)
190194
return F
191195
end
192196
end

test/test_fillarrays_matrixalgebrakit.jl

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -245,31 +245,31 @@ herm(a) = parent(hermitianpart(a))
245245
@test arguments(d, 2) isa Ones{real(elt)}
246246
end
247247

248-
## # left_null
249-
## a = Eye(3, 3) ⊗ randn(3, 3)
250-
## n = @constinferred left_null(a)
251-
## @test norm(n' * a) ≈ 0
252-
## @test arguments(n, 1) isa Eye
248+
# left_null
249+
a = Eye(3, 3) randn(3, 3)
250+
n = @constinferred left_null(a)
251+
@test norm(n' * a) 0
252+
@test arguments(n, 1) isa Eye
253253

254-
## a = randn(3, 3) ⊗ Eye(3, 3)
255-
## n = @constinferred left_null(a)
256-
## @test norm(n' * a) ≈ 0
257-
## @test arguments(n, 2) isa Eye
254+
a = randn(3, 3) Eye(3, 3)
255+
n = @constinferred left_null(a)
256+
@test norm(n' * a) 0
257+
@test arguments(n, 2) isa Eye
258258

259-
## a = Eye(3) ⊗ Eye(3)
260-
## @test_throws MethodError left_null(a)
259+
a = Eye(3) Eye(3)
260+
@test_throws MethodError left_null(a)
261261

262-
## # right_null
263-
## a = Eye(3) ⊗ randn(3, 3)
264-
## n = @constinferred right_null(a)
265-
## @test norm(a * n') ≈ 0
266-
## @test arguments(n, 1) isa Eye
262+
# right_null
263+
a = Eye(3) randn(3, 3)
264+
n = @constinferred right_null(a)
265+
@test norm(a * n') 0
266+
@test arguments(n, 1) isa Eye
267267

268-
## a = randn(3, 3) ⊗ Eye(3)
269-
## n = @constinferred right_null(a)
270-
## @test norm(a * n') ≈ 0
271-
## @test arguments(n, 2) isa Eye
268+
a = randn(3, 3) Eye(3)
269+
n = @constinferred right_null(a)
270+
@test norm(a * n') 0
271+
@test arguments(n, 2) isa Eye
272272

273-
## a = Eye(3) ⊗ Eye(3)
274-
## @test_throws MethodError right_null(a)
273+
a = Eye(3) Eye(3)
274+
@test_throws MethodError right_null(a)
275275
end

0 commit comments

Comments
 (0)