Skip to content

Commit cb6357a

Browse files
authored
add zero(::ColVecs) / zero(::RowVecs) definitions (#444)
1 parent c92f2e5 commit cb6357a

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "KernelFunctions"
22
uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392"
3-
version = "0.10.33"
3+
version = "0.10.34"
44

55
[deps]
66
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"

src/utils.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ Base.getindex(D::ColVecs, i) = ColVecs(view(D.X, :, i))
9393
Base.setindex!(D::ColVecs, v::AbstractVector, i) = setindex!(D.X, v, :, i)
9494

9595
Base.vcat(a::ColVecs, b::ColVecs) = ColVecs(hcat(a.X, b.X))
96+
Base.zero(x::ColVecs) = ColVecs(zero(x.X))
9697

9798
dim(x::ColVecs) = size(x.X, 1)
9899

@@ -163,6 +164,7 @@ Base.getindex(D::RowVecs, i) = RowVecs(view(D.X, i, :))
163164
Base.setindex!(D::RowVecs, v::AbstractVector, i) = setindex!(D.X, v, i, :)
164165

165166
Base.vcat(a::RowVecs, b::RowVecs) = RowVecs(vcat(a.X, b.X))
167+
Base.zero(x::RowVecs) = RowVecs(zero(x.X))
166168

167169
dim(x::RowVecs) = size(x.X, 2)
168170

test/utils.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,15 @@
1212
@test_throws ArgumentError vec_of_vecs(X; obsdim=0)
1313
@test_throws ArgumentError vec_of_vecs(X; obsdim=3)
1414
end
15+
1516
# Test Matrix data sets.
17+
function test_zero(DX::Union{ColVecs,RowVecs})
18+
zero_DX = zero(DX)
19+
@test all(iszero, zero_DX)
20+
@test zero_DX isa typeof(DX)
21+
@test size(zero_DX.X) == size(DX.X)
22+
end
23+
1624
@testset "ColVecs" begin
1725
DX = ColVecs(X)
1826
@test DX == DX
@@ -28,6 +36,7 @@
2836
DX[2] = v
2937
@test DX[2] == v
3038
@test X[:, 2] == v
39+
test_zero(DX)
3140

3241
Y = randn(rng, D, N + 1)
3342
DY = ColVecs(Y)
@@ -85,6 +94,7 @@
8594
DX[2] = w
8695
@test DX[2] == w
8796
@test X[2, :] == w
97+
test_zero(DX)
8898

8999
Y = randn(rng, D + 1, N)
90100
DY = RowVecs(Y)

0 commit comments

Comments
 (0)