Skip to content

Commit 14333ea

Browse files
authored
Break recursion (#579)
1 parent 07cf4a6 commit 14333ea

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/sparsevector.jl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1277,13 +1277,16 @@ function vcat(X1::_SparseConcatGroup, X::_SparseConcatGroup...)
12771277
end
12781278
return Base.typed_vcat(Base.promote_eltype(X1, X...), X1, X...)
12791279
end
1280-
function hvcat(rows::Tuple{Vararg{Int}}, X1::_SparseConcatGroup, X::_SparseConcatGroup...)
1280+
function hvcat_internal(rows::Tuple{Vararg{Int}}, X1::_SparseConcatGroup, X::_SparseConcatGroup...)
12811281
if anysparse(X1) || anysparse(X...)
12821282
vcat(_hvcat_rows(rows, X1, X...)...)
12831283
else
12841284
Base.typed_hvcat(Base.promote_eltypeof(X1, X...), rows, X1, X...)
12851285
end
12861286
end
1287+
function hvcat(rows::Tuple{Vararg{Int}}, X1::_SparseConcatGroup, X::_SparseConcatGroup...)
1288+
return hvcat_internal(rows, X1, X...)
1289+
end
12871290
function _hvcat_rows((row1, rows...)::Tuple{Vararg{Int}}, X::_SparseConcatGroup...)
12881291
if row1 0
12891292
throw(ArgumentError("length of block row must be positive, got $row1"))
@@ -1304,9 +1307,8 @@ hcat(n1::Number, ns::Vararg{Number}) = invoke(hcat, Tuple{Vararg{Number}}, n1, n
13041307
vcat(n1::Number, ns::Vararg{Number}) = invoke(vcat, Tuple{Vararg{Number}}, n1, ns...)
13051308
hcat(n1::N, ns::Vararg{N}) where {N<:Number} = invoke(hcat, Tuple{Vararg{N}}, n1, ns...)
13061309
vcat(n1::N, ns::Vararg{N}) where {N<:Number} = invoke(vcat, Tuple{Vararg{N}}, n1, ns...)
1307-
hvcat(rows::Tuple{Vararg{Int}}, n1::Number, ns::Vararg{Number}) = invoke(hvcat, Tuple{typeof(rows), Vararg{Number}}, rows, n1, ns...)
1308-
hvcat(rows::Tuple{Vararg{Int}}, n1::N, ns::Vararg{N}) where {N<:Number} = invoke(hvcat, Tuple{typeof(rows), Vararg{N}}, rows, n1, ns...)
1309-
1310+
hvcat(rows::Tuple{Vararg{Int}}, n1::Number, ns::Vararg{Number}) = hvcat_internal(rows, n1, ns...)
1311+
hvcat(rows::Tuple{Vararg{Int}}, n1::N, ns::Vararg{N}) where {N<:Number} = hvcat_internal(rows, n1, ns...)
13101312

13111313
### Efficient repetition of sparse vectors
13121314

0 commit comments

Comments
 (0)