Skip to content

Commit d68f3df

Browse files
committed
fix typos, remove obsolete code
1 parent 4ad06cf commit d68f3df

File tree

1 file changed

+16
-28
lines changed

1 file changed

+16
-28
lines changed

src/fillmap.jl

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
struct FillMap{T} <: LinearMaps.LinearMap{T}
2-
value::T
2+
λ::T
33
size::Dims{2}
44
end
55

@@ -9,51 +9,39 @@ MulStyle(A::FillMap) = FiveArg()
99
LinearAlgebra.issymmetric(A::FillMap) = A.size[1] == A.size[2]
1010
LinearAlgebra.ishermitian(A::FillMap) = isreal(A) && A.size[1] == A.size[2]
1111
LinearAlgebra.isposdef(A::FillMap) = false
12-
Base.:(==)(A::FillMap, B::FillMap) = A.value == B.value && A.size == B.size
12+
Base.:(==)(A::FillMap, B::FillMap) = A.λ == B.λ && A.size == B.size
1313

14-
LinearAlgebra.adjoint(A::FillMap) = FillMap(adjoint(value), revert(A.size))
15-
LinearAlgebra.transpose(A::FillMap) = FillMap(transpose(value), revert(A.size))
14+
LinearAlgebra.adjoint(A::FillMap) = FillMap(adjoint(A.λ), revert(A.size))
15+
LinearAlgebra.transpose(A::FillMap) = FillMap(transpose(A.λ), revert(A.size))
1616

17-
function LinearMaps.A_mul_B!(y::AbstractVecOrMat, A::FillMap, x::AbstractVector)
18-
checkbounds(y, A, x)
19-
if iszero(A.value)
20-
fill!(y, zero(eltype(y)))
21-
else
22-
temp = sum(x)
23-
fill!(y, A.value*temp)
24-
end
25-
return y
17+
function _unsafe_mul!(y::AbstractVecOrMat, A::FillMap, x::AbstractVector)
18+
return fill!(y, iszero(A.λ) ? zero(eltype(y)) : A.λ*sum(x))
2619
end
2720

28-
Base.@propagate_inbounds function mul!(y::AbstractVecOrMat, A::FillMap, x::AbstractVector, α::Number, β::Number)
29-
@boundscheck checkbounds(y, A, x)
21+
function _unsafe_mul!(y::AbstractVecOrMat, A::FillMap, x::AbstractVector, α::Number, β::Number)
3022
if iszero(α)
3123
!isone(β) && rmul!(y, β)
3224
return y
3325
else
34-
temp = sum(x)*α
26+
temp = A.λ * sum(x) * α
3527
if iszero(β)
36-
y .+= temp
28+
y .= temp
3729
elseif isone(β)
38-
y .= y .+ temp
30+
y .+= temp
3931
else
40-
y .= y.*β .+ temp
32+
y .= y .* β .+ temp
4133
end
4234
return y
4335
end
4436

45-
Base.:(+)(A::FillMap, B::FillMap) = A.size == B.size ? FillMap(A.value + B.value, A.size) : throw(DimensionMismatch())
46-
Base.:(-)(A::FillMap, B::FillMap) = A.size == B.size ? FillMap(A.value - B.value, A.size) : throw(DimensionMismatch())
47-
Base.:(*)(λ::Number, A::FillMap) = FillMap*A.value, size(A))
48-
Base.:(*)(A::FillMap, λ::Number) = FillMap(A.value*λ, size(A))
49-
Base.:(*)(J::UniformScaling, A::FillMap) = FillMap(J.λ*A.value, size(A))
50-
Base.:(*)(A::FillMap, J::UniformScaling) = FillMap(A.value*J.λ, size(A))
51-
Base.:(*)(J::LinearMaps.UniformScalingMap, A::FillMap) = FillMap(J.λ*A.value, size(A))
52-
Base.:(*)(A::FillMap, J::LinearMaps.UniformScalingMap) = FillMap(A.value*J.λ, size(A))
37+
Base.:(+)(A::FillMap, B::FillMap) = A.size == B.size ? FillMap(A.λ + B.λ, A.size) : throw(DimensionMismatch())
38+
Base.:(-)(A::FillMap) = FillMap(-A.λ, A.size)
39+
Base.:(*)(λ::Number, A::FillMap) = FillMap* A.λ, size(A))
40+
Base.:(*)(A::FillMap, λ::Number) = FillMap(A.λ * λ, size(A))
5341

5442
function Base.:(*)(A::FillMap, B::FillMap)
5543
mA, nA = size(A)
5644
mB, nB = size(B)
5745
nA != mB && throw(DimensionMismatch())
58-
return FillMap(A.value*B.value*nA, (mA, nB))
46+
return FillMap(A.λ*B.λ*nA, (mA, nB))
5947
end

0 commit comments

Comments
 (0)