@@ -3,7 +3,7 @@ using LinearAlgebra
33import Random
44import Base: setindex
55
6- abstract type StaticVector{N, T} end
6+ abstract type StaticVector{N, T} <: AbstractVector{T} end
77function similar_type end
88
99struct StaticArrayStyle{T, AsConst} <: Broadcast.BroadcastStyle end
@@ -119,7 +119,7 @@ Base.BroadcastStyle(::Broadcast.BroadcastStyle, ::StaticArrayStyle{T, B}) where
119119# StaticArrayStyle{preffered_type, B1 || B2}()
120120
121121# If we don't inherit from AbstractVector we need this?
122- Base. broadcastable (x:: StaticVector ) = x
122+ # Base.broadcastable(x::StaticVector) = x
123123
124124# Required to avoid size missmatches between Array and StaticVector
125125function Broadcast. instantiate (bc:: Broadcast.Broadcasted{<: StaticArrayStyle{<: Any, true}} )
@@ -143,7 +143,9 @@ function Base.copy(bc::Broadcast.Broadcasted{StaticArrayStyle{T, false}}) where
143143 return T (broadcast (bc. f, args... ))
144144end
145145
146- Base. map (f, b:: StaticVector ) = similar_type (b)(map (f, b. data))
146+ Base. map (f, a:: StaticVector , args:: AbstractArray... ) = broadcast (f, a, args... )
147+ Base. map (f, a:: AbstractArray , b:: StaticVector , args:: AbstractArray... ) = broadcast (f, a, b, args... )
148+ Base. map (f, a:: StaticVector , b:: StaticVector , args:: AbstractArray... ) = broadcast (f, a, b, args... )
147149
148150function Random. rand (rng:: Random.AbstractRNG , :: Random.SamplerType{V} ) where V <: StaticVector{N,T} where {N, T}
149151 V (ntuple (i-> rand (rng, T), N))
0 commit comments