@@ -14,8 +14,12 @@ Base.similar(A::ArrayPartition, dims::Tuple) = ArrayPartition((similar.(A.x))...
1414Base. similar {T} (A:: ArrayPartition , :: Type{T} ) = ArrayPartition (similar .(A. x, T)... )
1515Base. similar {T} (A:: ArrayPartition , :: Type{T} , dims:: Tuple ) = ArrayPartition (similar .(A. x, T, dims)... )
1616
17- Base. copy (A:: ArrayPartition ) = Base. similar (A)
1817Base. zeros (A:: ArrayPartition ) = ArrayPartition ((zeros (x) for x in A. x). .. )
18+ Base. zeros (A:: ArrayPartition , dims:: Tuple ) = ArrayPartition ((zeros .(A. x)). .. ) # Ignore dims / indices since it's a vector
19+ Base. zeros {T} (A:: ArrayPartition , :: Type{T} ) = ArrayPartition (zeros .(A. x, T)... )
20+ Base. zeros {T} (A:: ArrayPartition , :: Type{T} , dims:: Tuple ) = ArrayPartition (zeros .(A. x, T, dims)... )
21+
22+ Base. copy (A:: ArrayPartition ) = Base. similar (A)
1923Base. eltype (A:: ArrayPartition ) = eltype (A. x[1 ])
2024
2125# Special to work with units
7276recursive_one (A:: ArrayPartition ) = recursive_one (first (A. x))
7377recursive_mean (A:: ArrayPartition ) = mean ((recursive_mean (x) for x in A. x))
7478Base. zero (A:: ArrayPartition ) = zero (first (A. x))
75- Base. first (A:: ArrayPartition ) = first (A. x)
79+ Base. first (A:: ArrayPartition ) = first (first ( A. x) )
7680
7781Base. start (A:: ArrayPartition ) = start (chain (A. x... ))
7882Base. next (A:: ArrayPartition ,state) = next (chain (A. x... ),state)
9195Base. summary (A:: ArrayPartition ) = string (typeof (A), " with arrays:" )
9296Base. show (io:: IO ,A:: ArrayPartition ) = (Base. show .(io,A. x); nothing )
9397Base. display (A:: ArrayPartition ) = (println (summary (A));display .(A. x);nothing )
98+ Base. display (io:: IO ,A:: ArrayPartition ) = (println (summary (A));display .(io,A. x);nothing )
9499
95100add_idxs (x,expr) = expr
96101add_idxs {T<:ArrayPartition} (:: Type{T} ,expr) = :($ (expr). x[i])
0 commit comments