@@ -33,9 +33,9 @@ second_axis(::ComponentVector) = FlatAxis()
33
33
34
34
# Are all these methods necessary?
35
35
# TODO : See what we can reduce down to without getting ambiguity errors
36
- Base. vcat (x:: ComponentVector , y:: AbstractVector ) = vcat (getdata (x), y)
37
- Base. vcat (x:: AbstractVector , y:: ComponentVector ) = vcat (x, getdata (y))
38
- function Base. vcat (x:: ComponentVector , y:: ComponentVector )
36
+ Base. vcat (x:: ComponentVector{<:Number} , y:: AbstractVector{<:Number} ) = vcat (getdata (x), y)
37
+ Base. vcat (x:: AbstractVector{<:Number} , y:: ComponentVector{<:Number} ) = vcat (x, getdata (y))
38
+ function Base. vcat (x:: ComponentVector{<:Number} , y:: ComponentVector{<:Number} )
39
39
if reduce ((accum, key) -> accum || (key in keys (x)), keys (y); init= false )
40
40
return vcat (getdata (x), getdata (y))
41
41
else
@@ -46,7 +46,7 @@ function Base.vcat(x::ComponentVector, y::ComponentVector)
46
46
return ComponentArray (vcat (data_x, data_y), Axis ((;idxmap_x... , idxmap_y... )))
47
47
end
48
48
end
49
- function Base. vcat (x:: AbstractComponentVecOrMat , y:: AbstractComponentVecOrMat )
49
+ function Base. vcat (x:: AbstractComponentVecOrMat{<:Number} , y:: AbstractComponentVecOrMat{<:Number} )
50
50
ax_x, ax_y = getindex .(getaxes .((x, y)), 1 )
51
51
if reduce ((accum, key) -> accum || (key in keys (ax_x)), keys (ax_y); init= false ) || getaxes (x)[2 : end ] != getaxes (y)[2 : end ]
52
52
return vcat (getdata (x), getdata (y))
@@ -57,10 +57,10 @@ function Base.vcat(x::AbstractComponentVecOrMat, y::AbstractComponentVecOrMat)
57
57
return ComponentArray (vcat (data_x, data_y), Axis ((;idxmap_x... , idxmap_y... )), getaxes (x)[2 : end ]. .. )
58
58
end
59
59
end
60
- Base. vcat (x:: CV... ) where {CV<: AdjOrTransComponentArray } = ComponentArray (reduce (vcat, map (y-> getdata (y. parent)' , x)), getaxes (x[1 ]))
61
- Base. vcat (x:: ComponentVector , args... ) = vcat (getdata (x), getdata .(args)... )
62
- Base. vcat (x:: ComponentVector , args:: Vararg{Union{Number, UniformScaling, AbstractVecOrMat}} ) = vcat (getdata (x), getdata .(args)... )
63
- Base. vcat (x:: ComponentVector , args:: Vararg{AbstractVector{T}, N} ) where {T,N} = vcat (getdata (x), getdata .(args)... )
60
+ Base. vcat (x:: CV... ) where {CV<: AdjOrTransComponentArray{<:Number} } = ComponentArray (reduce (vcat, map (y-> getdata (y. parent)' , x)), getaxes (x[1 ]))
61
+ Base. vcat (x:: ComponentVector{<:Number} , args... ) = vcat (getdata (x), getdata .(args)... )
62
+ Base. vcat (x:: ComponentVector{<:Number} , args:: Vararg{Union{Number, UniformScaling, AbstractVecOrMat{<:Number} }} ) = vcat (getdata (x), getdata .(args)... )
63
+ Base. vcat (x:: ComponentVector{<:Number} , args:: Vararg{AbstractVector{T}, N} ) where {T<: Number ,N} = vcat (getdata (x), getdata .(args)... )
64
64
65
65
function Base. hvcat (row_lengths:: NTuple{N,Int} , xs:: Vararg{AbstractComponentVecOrMat} ) where {N}
66
66
i = 1
147
147
Base. stride (x:: ComponentArray , k) = stride (getdata (x), k)
148
148
Base. stride (x:: ComponentArray , k:: Int64 ) = stride (getdata (x), k)
149
149
150
- ArrayInterface. parent_type (:: Type{ComponentArray{T,N,A,Axes}} ) where {T,N,A,Axes} = A
150
+ ArrayInterface. parent_type (:: Type{ComponentArray{T,N,A,Axes}} ) where {T,N,A,Axes} = A
0 commit comments