v4.0.0
RecursiveArrayTools v4.0.0
RecursiveArrayTools v4.0.0
Breaking Changes
AbstractVectorOfArray{T, N, A}now subtypesAbstractArray{T, N}. Linear indexingA[i]returns theith element in column-major order (previously returned theith inner array). UseA.u[i]orA[:, i]for the old behavior.length(A)returnsprod(size(A))(total elements), notlength(A.u)(number of inner arrays). Uselength(A.u)for the old behavior.iterate(A)iterates over scalar elements, not inner arrays. UseA.ufor column-wise iteration.map(f, A)maps over elements, not inner arrays. Usemap(f, A.u)for the old behavior.- Ragged arrays:
size(A)reports maximum size; out-of-bounds elements return zero (sparse interpretation). Non-zero-padded ragged arrays are available viausing RecursiveArrayToolsRaggedArrays. DiffEqArrayhas newinterpanddensefields (new type parameterI).- Optimized
any/allforArrayPartitionmoved toRecursiveArrayToolsArrayPartitionAnyAllsubpackage to avoid invalidations. Required for GPU arrays.
New Features
DiffEqArraycallable interface:da(t),da(t; idxs=1),da(t, Val{1})for interpolation.- Dense plotting:
plot(da)withdenseplot=truegenerates smooth interpolated curves. - Full-featured plot recipe with
idxs, phase plots,tspan,plotdensity,plotat. RaggedVectorOfArrayandRaggedDiffEqArrayinRecursiveArrayToolsRaggedArrayssublibrary for non-zero-padded ragged arrays.- CUDA extension for
CuArray(::AbstractVectorOfArray)disambiguation. - Plotting helpers exported for SciMLBase delegation:
interpret_vars,diffeq_to_arrays,solplot_vecs_and_labels.
Merged pull requests:
- BREAKING: Make AbstractVectorOfArray <: AbstractArray (#547) (@ChrisRackauckas-Claude)