Skip to content

Releases: andykee/prtools

v2.0.0

03 May 04:39

Choose a tag to compare

Breaking changes

  • Add support for the Python array API standard
  • Deprecate prtools.use() function. See array API support for details
  • Standardize use of mode argument for defining whether array indices are absolute or relative to the array center. This change affects the following functions:
    • centroid()
    • shift()
    • crop()
  • Standardize use of indexing argument, always defaulting to array (ij) indexing
  • subarray() has been renamed crop()
  • shift() argument mode has been renamed to extend

New functionality

  • New morphology module including the following functions:
    • binary_dilation()
    • binary_erosion()
    • binary_opening()
    • binary_closing()
  • New teng() function for computing the Tenengrad metric
  • New nanrms() and nanpv() functions

Minor updates

  • The following functions now support the axis argument:
    • fftconv()
    • gauss_blur()
    • pixelate()
  • Redefine JaxOptimizeResult as a namedtuple
  • Documentation updates
  • Increase test coverage

v1.4.2

06 Jan 18:49

Choose a tag to compare

  • Resolve #11
  • Work around JAX ConcretizationTypeError originating in _dftcore()

v1.4.1

05 Jan 19:21

Choose a tag to compare

  • dft2 and idft2 now support calculating the 2D DFT of 3D arrays along an arbitrary axis
  • Improved interface to convolution and filtering functions

v1.4.0

02 Dec 05:14

Choose a tag to compare

  • New convolution and filtering functions
  • Zernike functions now support Noll, fringe, and ANSI ordering schemes
  • jax.lbfgs() now accepts optional arguments that are passed through to the objective function being optimized

v1.3.2

22 Jun 21:14

Choose a tag to compare

  • prtools is now importable without JAX
  • jax.lbfgs() now accepts a callback function
  • jax.lbfgs() returns a JaxOptimizeResult object
  • Performance improvements
  • Testing and documentation updates

v1.3.1

07 May 18:53

Choose a tag to compare

  • New use() function for selecting which numerical backend prtools uses. NumPy and JAX are now supported, with NumPy being the default.
  • New API for sparse matrix utilities: dense(), full(), and index()
  • rescale() now supports differential (row, col) scaling
  • Rewrite medfix() to avoid use of numpy.stride_tricks.as_strided(), which is not JAX-compatible
  • Provide better control over how shift()extends arrays when input is shifted outside of its boundaries
  • Minor bugfixes and documentation updates

v1.3.0

05 May 18:55
41ff7ab

Choose a tag to compare

Withdrawn due to packaging error

v1.2.1

27 Nov 17:27

Choose a tag to compare

New functions:

  • find_wrapped - Attempt to find phase wrapping using gradient edge detection while automatically ignoring large gradients at mask edges
  • subarray - Extract a contiguous subarray from a larger array.

v1.2.0

17 Apr 18:03

Choose a tag to compare

  • Update sparse tools
  • Roll back zernike_coordinates() shift attribute change introduced in v1.1.1.

v1.1.1

08 Apr 22:45

Choose a tag to compare

  • Expose zernike_coordinates() in public API
  • Minor bugfixes