Skip to content

Commit c8dd8ad

Browse files
authored
Backport 14333ea to 1.10 (#580)
1 parent 8c84b8c commit c8dd8ad

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
@@ -1239,13 +1239,16 @@ function vcat(X1::_SparseConcatGroup, X::_SparseConcatGroup...)
12391239
end
12401240
return Base.typed_vcat(Base.promote_eltype(X1, X...), X1, X...)
12411241
end
1242-
function hvcat(rows::Tuple{Vararg{Int}}, X1::_SparseConcatGroup, X::_SparseConcatGroup...)
1242+
function hvcat_internal(rows::Tuple{Vararg{Int}}, X1::_SparseConcatGroup, X::_SparseConcatGroup...)
12431243
if anysparse(X1) || anysparse(X...)
12441244
vcat(_hvcat_rows(rows, X1, X...)...)
12451245
else
12461246
Base.typed_hvcat(Base.promote_eltypeof(X1, X...), rows, X1, X...)
12471247
end
12481248
end
1249+
function hvcat(rows::Tuple{Vararg{Int}}, X1::_SparseConcatGroup, X::_SparseConcatGroup...)
1250+
return hvcat_internal(rows, X1, X...)
1251+
end
12491252
function _hvcat_rows((row1, rows...)::Tuple{Vararg{Int}}, X::_SparseConcatGroup...)
12501253
if row1 0
12511254
throw(ArgumentError("length of block row must be positive, got $row1"))
@@ -1266,9 +1269,8 @@ hcat(n1::Number, ns::Vararg{Number}) = invoke(hcat, Tuple{Vararg{Number}}, n1, n
12661269
vcat(n1::Number, ns::Vararg{Number}) = invoke(vcat, Tuple{Vararg{Number}}, n1, ns...)
12671270
hcat(n1::N, ns::Vararg{N}) where {N<:Number} = invoke(hcat, Tuple{Vararg{N}}, n1, ns...)
12681271
vcat(n1::N, ns::Vararg{N}) where {N<:Number} = invoke(vcat, Tuple{Vararg{N}}, n1, ns...)
1269-
hvcat(rows::Tuple{Vararg{Int}}, n1::Number, ns::Vararg{Number}) = invoke(hvcat, Tuple{typeof(rows), Vararg{Number}}, rows, n1, ns...)
1270-
hvcat(rows::Tuple{Vararg{Int}}, n1::N, ns::Vararg{N}) where {N<:Number} = invoke(hvcat, Tuple{typeof(rows), Vararg{N}}, rows, n1, ns...)
1271-
1272+
hvcat(rows::Tuple{Vararg{Int}}, n1::Number, ns::Vararg{Number}) = hvcat_internal(rows, n1, ns...)
1273+
hvcat(rows::Tuple{Vararg{Int}}, n1::N, ns::Vararg{N}) where {N<:Number} = hvcat_internal(rows, n1, ns...)
12721274

12731275
# make sure UniformScaling objects are converted to sparse matrices for concatenation
12741276
promote_to_array_type(A::Tuple{Vararg{Union{_SparseConcatGroup,UniformScaling}}}) = anysparse(A...) ? SparseMatrixCSC : Matrix

0 commit comments

Comments
 (0)