Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 26 additions & 13 deletions src/generic.jl
Original file line number Diff line number Diff line change
Expand Up @@ -202,24 +202,37 @@
generic_mul!(C, s, X, alpha, beta)
@inline function _lscale_add!(C::AbstractArray, s::Number, X::AbstractArray, alpha::Number, beta::Number)
if axes(C) == axes(X)
if isone(alpha)
if iszero(beta)
@. C = s * X
else
@. C = s * X + C * beta
end
else
if iszero(beta)
@. C = s * X * alpha
else
@. C = s * X * alpha + C * beta
end
end
iszero(alpha) && return _rmul_or_fill!(C, beta)
_lscale_add_nonzeroalpha!(C, s, X, alpha, beta)

Check warning on line 206 in src/generic.jl

View check run for this annotation

Codecov / codecov/patch

src/generic.jl#L205-L206

Added lines #L205 - L206 were not covered by tests
else
generic_mul!(C, s, X, alpha, beta)
end
return C
end
function _lscale_add_nonzeroalpha!(C::AbstractArray, s::Number, X::AbstractArray, alpha::Number, beta::Number)
if isone(alpha)
if iszero(beta)
@. C = s * X

Check warning on line 215 in src/generic.jl

View check run for this annotation

Codecov / codecov/patch

src/generic.jl#L212-L215

Added lines #L212 - L215 were not covered by tests
else
@. C = s * X + C * beta

Check warning on line 217 in src/generic.jl

View check run for this annotation

Codecov / codecov/patch

src/generic.jl#L217

Added line #L217 was not covered by tests
end
else
if iszero(beta)
@. C = s * X * alpha

Check warning on line 221 in src/generic.jl

View check run for this annotation

Codecov / codecov/patch

src/generic.jl#L220-L221

Added lines #L220 - L221 were not covered by tests
else
@. C = s * X * alpha + C * beta

Check warning on line 223 in src/generic.jl

View check run for this annotation

Codecov / codecov/patch

src/generic.jl#L223

Added line #L223 was not covered by tests
end
end
C

Check warning on line 226 in src/generic.jl

View check run for this annotation

Codecov / codecov/patch

src/generic.jl#L226

Added line #L226 was not covered by tests
end
function _lscale_add_nonzeroalpha!(C::AbstractArray, s::Number, X::AbstractArray, alpha::Bool, beta::Number)
if iszero(beta)
@. C = s * X

Check warning on line 230 in src/generic.jl

View check run for this annotation

Codecov / codecov/patch

src/generic.jl#L228-L230

Added lines #L228 - L230 were not covered by tests
else
@. C = s * X + C * beta

Check warning on line 232 in src/generic.jl

View check run for this annotation

Codecov / codecov/patch

src/generic.jl#L232

Added line #L232 was not covered by tests
end
C

Check warning on line 234 in src/generic.jl

View check run for this annotation

Codecov / codecov/patch

src/generic.jl#L234

Added line #L234 was not covered by tests
end
@inline mul!(C::AbstractArray, X::AbstractArray, s::Number, alpha::Number, beta::Number) =
_rscale_add!(C, X, s, alpha, beta)

Expand Down