@@ -26,9 +26,16 @@ const SA_F64 = SA{Float64}
26
26
@inline similar_type (:: Type{SA} , :: Size{S} ) where {S} = SArray{Tuple{S... }}
27
27
@inline similar_type (:: Type{SA{T}} , :: Size{S} ) where {T,S} = SArray{Tuple{S... }, T}
28
28
29
- @inline Base. getindex (sa:: Type{<:SA} , xs... ) = similar_type (sa, Size (length (xs)))(xs)
30
- @inline Base. typed_vcat (sa:: Type{<:SA} , xs:: Number... ) = similar_type (sa, Size (length (xs)))(xs)
31
- @inline Base. typed_hcat (sa:: Type{<:SA} , xs:: Number... ) = similar_type (sa, Size (1 ,length (xs)))(xs)
29
+ # These definitions are duplicated to avoid matching `sa === Union{}` in the
30
+ # neater-looking alternative `sa::Type{<:SA}`.
31
+ @inline Base. getindex (sa:: Type{SA} , xs... ) = similar_type (sa, Size (length (xs)))(xs)
32
+ @inline Base. getindex (sa:: Type{SA{T}} , xs... ) where T = similar_type (sa, Size (length (xs)))(xs)
33
+
34
+ @inline Base. typed_vcat (sa:: Type{SA} , xs:: Number... ) = similar_type (sa, Size (length (xs)))(xs)
35
+ @inline Base. typed_vcat (sa:: Type{SA{T}} , xs:: Number... ) where T = similar_type (sa, Size (length (xs)))(xs)
36
+
37
+ @inline Base. typed_hcat (sa:: Type{SA} , xs:: Number... ) = similar_type (sa, Size (1 ,length (xs)))(xs)
38
+ @inline Base. typed_hcat (sa:: Type{SA{T}} , xs:: Number... ) where T = similar_type (sa, Size (1 ,length (xs)))(xs)
32
39
33
40
Base. @pure function _SA_hvcat_transposed_size (rows)
34
41
M = rows[1 ]
@@ -40,7 +47,7 @@ Base.@pure function _SA_hvcat_transposed_size(rows)
40
47
Size (M, length (rows))
41
48
end
42
49
43
- @inline function Base . typed_hvcat (sa:: Type{<:SA} , rows:: Dims , xs:: Number... )
50
+ @inline function _SA_typed_hvcat (sa, rows, xs)
44
51
msize = _SA_hvcat_transposed_size (rows)
45
52
if msize === nothing
46
53
throw (ArgumentError (" SA[...] matrix rows of length $rows are inconsistent" ))
49
56
transpose (similar_type (sa, msize)(xs))
50
57
end
51
58
59
+ @inline Base. typed_hvcat (sa:: Type{SA} , rows:: Dims , xs:: Number... ) = _SA_typed_hvcat (sa, rows, xs)
60
+ @inline Base. typed_hvcat (sa:: Type{SA{T}} , rows:: Dims , xs:: Number... ) where T = _SA_typed_hvcat (sa, rows, xs)
61
+
0 commit comments