Skip to content

Releases: emmt/StructuredArrays.jl

v0.2.22

14 Mar 22:30

Choose a tag to compare

StructuredArrays v0.2.22

Diff since v0.2.21

  • Operations on Cartesian meshes: multiplication or division by a scalar, adjust by adding/subtracting tuple of offsets.

  • New trait functions TypeUtils.step_type and TypeUtils.origin_type to retrieve the types of a mesh step and origin.

  • Optimize comparisons of uniform arrays via isequal, ==, and cmp.

  • Optimize mapping and broadcasting of functions for uniform arrays.

  • Use TypeUtils.@public to declare as public some documented but non-exported symbols.

Merged pull requests:

  • Bump codecov/codecov-action from 4 to 5 (#5) (@dependabot[bot])

v0.2.21

21 Feb 17:01

Choose a tag to compare

StructuredArrays v0.2.21

Diff since v0.2.20

  • Improved type inference for FastUniformArray.

v0.2.20

18 Feb 12:04

Choose a tag to compare

StructuredArrays v0.2.20

Diff since v0.2.19

  • Constructor FastUniformArray{T,N,V}(args...) can be used to build a fast uniform array whose elements are all equal to V. V isa T must hold.

v0.2.19

05 Dec 17:09

Choose a tag to compare

StructuredArrays v0.2.19

Diff since v0.2.18

Main changes:

  • New Cartesian meshes as callable (function-like) objects or as abstract arrays. These objects yields the Cartesian coordinates of the nodes of the mesh given their indices.

  • Array and OffsetArray may be called to convert a uniform or a structured array into a mutable array with the same axes.

Other changes:

  • For uniform arrays A, show(A) prints an expression that is valid Julia code.

  • Add OffsetArrays dependency so that similar(A,...) works as expected for structured arrays that may have offset axes. It yields an ordinary Array if it can be inferred from the types of the arguments that the resulting array has no offset axes and an OffsetArray otherwise.

  • Array shape parameters of type Base.OneTo are converted to their lengths.

  • Non-exported method StructuredArrays.shape can be used to retrieve the shape of an array.

  • Improved constructors for: speed and allocations (with @benchmark), type inference (with @code_warntype), and code clarity.

  • Speedup foreach for small tuples (≤ 32 entries) in Julia < 1.8.

  • Optimized reduction methods for uniform arrays (extrema, findmax, etc.) have been fixed to yield consistent results when axes have offsets. In particular, an AbstractUniformArray and an OffsetArray filled with the same value should yields comparable results.

v0.2.18

25 Sep 12:40

Choose a tag to compare

StructuredArrays v0.2.18

Diff since v0.2.17

  • Private methods to_dim, to_axis, to_size, and to_axes have been replaced by as_array_dim, as_array_axis, as_array_size, and as_array_axes provided by TypeUtils (version ≥ 1.4).

v0.2.17

10 Jun 06:53

Choose a tag to compare

StructuredArrays v0.2.17

Diff since v0.2.16

  • For a uniform or structured array A, copy(A) and deepcopy(A) simply yield A if it is immutable.
  • Axes specified as instances of Base.OneTo are stored by length.

v0.2.16

05 Jun 07:39

Choose a tag to compare

StructuredArrays v0.2.16

Diff since v0.2.15

  • Fix constructors for vector/matrix aliases of structured arrays.

v0.2.15

15 May 10:11

Choose a tag to compare

StructuredArrays v0.2.15

Diff since v0.2.14

  • Update compatibility for TypeUtils.

v0.2.14

30 Mar 08:29

Choose a tag to compare

StructuredArrays v0.2.14

Diff since v0.2.13

  • Optimize methods reverse and unique for uniform arrays.

  • Ordinal ranges may be used to define axes provided they have unit-step.

  • Axes of structured arrays may be specified as a mixture of integers (assumed to be dimension lengths) and integer-valued unit-ranges.

v0.2.13

25 Mar 15:12

Choose a tag to compare

StructuredArrays v0.2.13

Diff since v0.2.12

  • Optimize reductions operations minimum, maximum, extrema, all, any, sum, prod, count, findmin, and findmax for uniform arrays with syntax op([f=identity], A; dims=:) where op is the reduction operation, f is an optional function, A is a uniform array, and keyword dims is the list of dimensions over which to reduce (all by default). As a result, these operations are much faster for uniform arrays with a number of operations scaling as O(1) instead of O(length(A)).