Skip to content

Commit 4c9c925

Browse files
committed
rename fastdensesparse -> fastdensesparsemul
1 parent 1c3b59a commit 4c9c925

2 files changed

Lines changed: 28 additions & 28 deletions

File tree

src/ThreadedDenseSparseMul.jl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@ import SparseArrays
44
import SparseArrays: SparseMatrixCSC, SparseVector, nonzeroinds, nonzeros, findnz
55
import Polyester: @batch
66

7-
export fastdensesparse!, fastdensesparse_threaded!
8-
export fastdensesparse_outer!, fastdensesparse_outer_threaded!
7+
export fastdensesparsemul!, fastdensesparsemul_threaded!
8+
export fastdensesparsemul_outer!, fastdensesparsemul_outer_threaded!
99

1010
const VecOrView{T} = Union{Vector{T}, SubArray{T, 1, Matrix{T}}}
1111
const MatOrView{T} = Union{Matrix{T}, SubArray{T, 2, Matrix{T}}}
1212

1313
"""
14-
fastdensesparse!(C, A, B, α, β)
14+
fastdensesparsemul!(C, A, B, α, β)
1515
1616
BLAS like interface, computing `C .= β*C + α*A*B`, but way faster than Base would.
1717
18-
Also see `fastdensesparse_threaded!` for a multi-threaded version using `Polyester.jl`.
18+
Also see `fastdensesparsemul_threaded!` for a multi-threaded version using `Polyester.jl`.
1919
"""
20-
function fastdensesparse!(C::MatOrView{T}, A::MatOrView{T}, B::SparseMatrixCSC{T}, α::Number, β::Number) where T
20+
function fastdensesparsemul!(C::MatOrView{T}, A::MatOrView{T}, B::SparseMatrixCSC{T}, α::Number, β::Number) where T
2121
for j in axes(B, 2)
2222
C[:, j] .*= β
2323
C[:, j] .+= A *.*B[:, j])
@@ -26,12 +26,12 @@ function fastdensesparse!(C::MatOrView{T}, A::MatOrView{T}, B::SparseMatrixCSC{T
2626
end
2727

2828
"""
29-
fastdensesparse!(C, A, B, α, β)
29+
fastdensesparsemul!(C, A, B, α, β)
3030
3131
Threaded, BLAS like interface, computing `C .= β*C + α*A*B`, but way faster than Base would.
32-
Also see `fastdensesparse!` for a single-threaded version.
32+
Also see `fastdensesparsemul!` for a single-threaded version.
3333
"""
34-
function fastdensesparse_threaded!(C::MatOrView{T}, A::MatOrView{T}, B::SparseMatrixCSC{T}, α::Number, β::Number) where T
34+
function fastdensesparsemul_threaded!(C::MatOrView{T}, A::MatOrView{T}, B::SparseMatrixCSC{T}, α::Number, β::Number) where T
3535
@batch for j in axes(B, 2)
3636
C[:, j] .*= β
3737
C[:, j] .+= A *.*B[:, j])
@@ -40,27 +40,27 @@ function fastdensesparse_threaded!(C::MatOrView{T}, A::MatOrView{T}, B::SparseMa
4040
end
4141

4242
"""
43-
fastdensesparse_outer!(C, a, b, α, β)
43+
fastdensesparsemul_outer!(C, a, b, α, β)
4444
4545
Fast outer product when computing `C .= β*C + α * a*b'`, but way faster than Base would.
4646
- `a` is a dense vector (or view), `b` is a sparse vector, `C` is a dense matrix (or view).
47-
Also see `fastdensesparse_outer_threaded!` for a multi-threaded version using `Polyester.jl`.
47+
Also see `fastdensesparsemul_outer_threaded!` for a multi-threaded version using `Polyester.jl`.
4848
"""
49-
function fastdensesparse_outer!(C::MatOrView{T}, a::VecOrView{T}, b::SparseVector{T}, α::Number, β::Number) where T
49+
function fastdensesparsemul_outer!(C::MatOrView{T}, a::VecOrView{T}, b::SparseVector{T}, α::Number, β::Number) where T
5050
C[:, nonzeroinds(b)] .*= β
5151
C[:, nonzeroinds(b)] .+= a *.*nonzeros(b))'
5252
return C
5353
end
5454

5555
"""
56-
fastdensesparse_outer_threaded!(C, a, b, α, β)
56+
fastdensesparsemul_outer_threaded!(C, a, b, α, β)
5757
5858
Threaded, fast outer product when computing `C .= β*C + α * a*b'`, but way faster than Base would, using `Polyester.jl`.
5959
- `a` is a dense vector (or view), `b` is a sparse vector, `C` is a dense matrix (or view).
6060
61-
Also see `fastdensesparse_outer!` for a single-threaded version.
61+
Also see `fastdensesparsemul_outer!` for a single-threaded version.
6262
"""
63-
function fastdensesparse_outer_threaded!(C::MatOrView{T}, a::VecOrView{T}, b::SparseVector{T}, α::Number, β::Number) where T
63+
function fastdensesparsemul_outer_threaded!(C::MatOrView{T}, a::VecOrView{T}, b::SparseVector{T}, α::Number, β::Number) where T
6464
inds = nonzeroinds(b)
6565
nzs = nonzeros(b)
6666
@batch for i in axes(nzs, 1)

test/runtests.jl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Profile
55

66

77
@testset "Compare with equivalent dense mul" begin
8-
@testset "fastdensesparse" begin
8+
@testset "fastdensesparsemul" begin
99
@testset for trial in 1:10
1010
lhs = rand(500, 1000);
1111
rhs = sprand(1000, 10_000, 0.1);
@@ -14,26 +14,26 @@ import Profile
1414

1515
buf = similar(baseline)
1616

17-
fastdensesparse!(buf, lhs, rhs, 1, 0)
17+
fastdensesparsemul!(buf, lhs, rhs, 1, 0)
1818
@test buf baseline
19-
fastdensesparse!(buf, lhs, rhs, -1, 0)
20-
fastdensesparse_threaded!(buf, lhs, rhs, 1, 0)
19+
fastdensesparsemul!(buf, lhs, rhs, -1, 0)
20+
fastdensesparsemul_threaded!(buf, lhs, rhs, 1, 0)
2121
@test buf baseline
2222

2323

2424
# test @view interface and \beta \neq 0
2525
inds = collect(3:5:100)
2626
baseline[inds, :] .+= 2.5 * @view(lhs[inds, :]) * Matrix(rhs);
2727

28-
fastdensesparse!(@view(buf[inds, :]), @view(lhs[inds, :]), rhs, 2.5, 1)
28+
fastdensesparsemul!(@view(buf[inds, :]), @view(lhs[inds, :]), rhs, 2.5, 1)
2929
@test buf baseline rtol=sqrt(eps(eltype(baseline)))
30-
fastdensesparse!(@view(buf[inds, :]), @view(lhs[inds, :]), rhs, -2.5, 1)
31-
fastdensesparse_threaded!(@view(buf[inds, :]), @view(lhs[inds, :]), rhs, 2.5, 1)
30+
fastdensesparsemul!(@view(buf[inds, :]), @view(lhs[inds, :]), rhs, -2.5, 1)
31+
fastdensesparsemul_threaded!(@view(buf[inds, :]), @view(lhs[inds, :]), rhs, 2.5, 1)
3232
@test buf baseline rtol=sqrt(eps(eltype(baseline)))
3333
end
3434
end
3535

36-
@testset "fastdensesparse_outer" begin
36+
@testset "fastdensesparsemul_outer" begin
3737
@testset for trial in 1:10
3838
lhs = rand(500, 1000);
3939
rhs = sprand(1000, 10_000, 0.1);
@@ -43,18 +43,18 @@ import Profile
4343

4444
buf = similar(baseline)
4545

46-
fastdensesparse_outer!(buf, @view(lhs[:, k]), rhs[k, :], 1, 0)
46+
fastdensesparsemul_outer!(buf, @view(lhs[:, k]), rhs[k, :], 1, 0)
4747
@test buf baseline
48-
fastdensesparse_outer!(buf, @view(lhs[:, k]), rhs[k, :], -1, 0)
49-
fastdensesparse_outer_threaded!(buf, @view(lhs[:, k]), rhs[k, :], 1, 0)
48+
fastdensesparsemul_outer!(buf, @view(lhs[:, k]), rhs[k, :], -1, 0)
49+
fastdensesparsemul_outer_threaded!(buf, @view(lhs[:, k]), rhs[k, :], 1, 0)
5050
@test buf baseline
5151

5252
baseline .+= 2.5 * lhs[:, (k+1):(k+1)] * Matrix(rhs)[(k+1):(k+1), :];
5353

54-
fastdensesparse_outer!(buf, lhs[:, k+1], rhs[k+1, :], 2.5, 1)
54+
fastdensesparsemul_outer!(buf, lhs[:, k+1], rhs[k+1, :], 2.5, 1)
5555
@test buf baseline
56-
fastdensesparse_outer!(buf, lhs[:, k+1], rhs[k+1, :], -2.5, 1)
57-
fastdensesparse_outer_threaded!(buf, lhs[:, k+1], rhs[k+1, :], 2.5, 1)
56+
fastdensesparsemul_outer!(buf, lhs[:, k+1], rhs[k+1, :], -2.5, 1)
57+
fastdensesparsemul_outer_threaded!(buf, lhs[:, k+1], rhs[k+1, :], 2.5, 1)
5858
@test buf baseline
5959
end
6060
end

0 commit comments

Comments
 (0)