CHANGES
=======

2.2.0
-----

* feat: edt.each — extract individual dts rapidly (#42)
* chore: update changelog

2.1.3
-----

* release(2.1.3): fixes an off-by-one error
* test: check to make sure this error doesn't come back
* fix: off-by-one error when comparing last label of column

2.1.2
-----

* release(2.1.2): fixes overflow from ambiguous cast on MVCC
* build: try with statement
* build: try a different way of writing package dir
* build: try package-dir
* build: drop unsupported skips
* build: try different strategy to get to python subdir
* build: add GHA builds again
* fix: large array NaN on Windows (#39)
* install: make sure windows builds in release mode (#38)

2.1.1
-----

* release(2.1.1): recompile binaries against oldest-supported-numpy
* chore: set numpy builds to oldest-supported-numpy

2.1.0
-----

* release(2.1.0): experimental voxel\_graph feature
* feat: edt with voxel connectivity graph (#28)

2.0.5
-----

* release(2.0.5): fixes np.bool deprecation warnings
* fix: remove deprecation warning for np.bool in guts of edt.pyx (#33)
* chore: try without cibuildwheel
* chore: try github actions

2.0.4
-----

* release(2.0.4): support py39 on Windows via AppVeyor
* chore: support for py39 on Windows
* chore: update travis to drop py27 py35
* chore: update build system for m1 and py36+

2.0.3
-----

* release(2.0.3): fixes segfault caused by small anisotropies
* fix: resolves logic around infinities (#30)
* docs: whitespace change to get appveyor to run

2.0.2
-----

* chore: update artifacts path
* chore: don't change directory twice
* chore: try changing directory in appveyor
* chore: build system modernization
* release(2.0.2): python3.9 support
* docs: new figure useful for understanding multi-label strategy
* install: get py35 to compile on MacOS

2.0.1
-----

* release(2.0.1): support huge arrays
* chore: copy new version of cpp to cpp folder
* refactor: change C-style casts to C++ style casts
* fix: try using long int instead of int in key locations (#24)
* docs: updated benchmark with 2.0.0 version
* redesign(BREAKING): auto-detect C or F order unless specified (#22)
* chore: update changelog
* fix: Markdown compatibilities with PyPI changes

1.4.0
-----

* release(1.4.0): faster y and z passes
* perf: ensure sequential access during envelope computation (#20)
* fix: compiler warnings about unused captured variables
* fix: forgot to copy threadpool.h to cpp dir
* test: add py38 to travis; switch py37-dev to py37
* fix+test: adjust travis to accomodate requirements\_dev.txt
* chore: add python3.8 binary support
* docs: add reference to Rein van den Boomgaard's earlier work
* chore: update ChangeLog
* docs: remove duplicate text
* docs: stop dunking on scipy's anisotropy handling
* chore: cleanup Trove classifiers

1.3.2
-----

* chore: set content type to markdown for PyPI
* release: 1.3.2
* chore: update changelog
* fix: voxel computation overflowing
* fix: test.py -> automated\_test.py

1.3.1
-----

* release: 1.3.1 -- Last version didn't include threadpool.h for py27
* chore: add threadpool.h to MANIFEST.in

1.3.0
-----

* release: 1.3.0 - parallel and memory improvements
* docs: move example to the top of README
* perf: remove last memory spike in edt3d (#14)
* feat: parallel implementation  (#13)
* fix: compiler warnings about an uninitialized pointer
* perf: remove one of two memory spikes at end

1.2.4
-----

* release: version 1.2.4
* fix: high anisotropy causes defects (#12)
* docs: explain factoring trick
* docs: discuss memory fragmentation
* chore: remove binary support for python3.4

1.2.3
-----

* fix: ensure contiguous memory is fed to C++ routines
* docs: added SNEMI3D benchmark to README.md

1.2.2
-----

* fix: numpy arrays should be acceptable as anisotropy values

1.2.1
-----

* docs: Authors file
* docs: added some comparisons to scipy
* fix: ensure scipy version downloaded for 2.7
* fix: memory leak in squared\_edt\_1d\_parabolic
* docs: Updated pip installation for binaries
* docs: updated edt movie

1.2.0
-----

* feat: add docker build for "manylinux" binaries
* chore: bump version of Cython bindings to 1.2.0
* docs: updated ChangeLog
* docs: new order parameter for C vs Fortran order
* test: py37 now supported on Travis-CI (#9)
* fix: C vs. Fortran Order Issues
* test: test 2D lopsided anisotropy
* fix: multi-segment logic not properly accounting for left border

1.1.4
-----

* perf: handle anisotropy more efficiently by reducing multiplications
* docs: added derivation of anisotropic interception eqn
* fix: int vs size\_t warnings

1.1.3
-----

* fix: parabolic intercept not accounting for anisotropy

1.1.2
-----

* perf: made previous fix cheaper
* fix: unsafe reading during write phase
* Improve performance of binary EDT on black pixels (#6)

1.1.0
-----

* docs: added black\_border to README
* feat: black\_border parameter (#4)
* perf: speed up processing of black regions
* docs: minor help text updates
* Update README.md
* Add files via upload

1.0.6
-----

* docs: include License in manifest
* fix: handle C vs Fortran order arrays properly

1.0.5
-----

* fix: memory leak
* docs: added Mejister et al to comment
* Update README.md
* Update README.md
* docs: added PyPI package installation instructions

1.0.4
-----

* fix: add edt.hpp to MANIFEST.in to ensure packaging

1.0.3
-----

* fix: change edt.hpp from cpp dir to python dir
* chore: copy edt.hpp from cpp to python

1.0.2
-----

* test: made 3D test more stringent
* fix: 3D edt had wrong dimension order
* test: updated 3d cpp test to be more precise
* fix: tried to be too clever and screwed up the intercept calculation
* fix: boolean specialization of edt3dsq now actually selected
* fix: boolean specialization of edt2dsq now actually selected

1.0.1
-----

* chore: update setup.cfg
* docs: add PyPI badge

1.0.0
-----

* chore: setup for pypi distribution
* docs: mention fast sweep method for performance improvments
* docs: added info about boolean arrays in python
* fix: supported bool numpy array types
* docs: fixed bug in C++ example
* docs: updated C++ docs for binary\_edt
* feat: added edt::binary\_edt to C++
* docs: replaced 'et al' with actual author list in references
* fix: Python2.7 compatibility
* fix: point travis to right test file
* docs: added travis build indicator
* test: added travis support
* docs: adjusted C++ namespace description
* Update README.md
* Update README.md
* Update README.md
* docs: updated image link
* docs: added image of labeled cube
* docs: revised text and included reference to I. Bitter
* docs: added help info to edt.pyx
* docs: described bool\* speedup
* perf: accelerated binary images (denoted with a bool\* datatype)
* test: added tests for all uint types. floats seem to be failing
* docs: added reference for Meijister et al
* test: added simple 3d tests
* fix: last < n-1 => last < n
* fix: algorithm now correctly handles label transitions
* fix: more gracefully handle missing anisotropy
* test: figuring out this failing test
* fix: \_edt2dsq was not using the multi segment parabolic
* docs: forgot to put template invocations in
* feat: broke out cpp namespaces pyedt and edt to accomodate both usages
* docs: added links to papers
* docs: discussed use cases
* docs: documented envelope modification
* docs: described FH modification
* docs: documented changes to RP algo
* docs: description of basic EDT implementation w/o modifications
* docs: added references
* docs: how to use and some motivation
* fix: compilation error
* feat: working python edt
* chore: moved cpp and python into seperate dirs
* feat: multi-segment EDT for 3d
* feat: added edt and edtsq for 2d and 3d
* fix: 2d and 3d EDT are now computing correctly
* fix: corrected mistake in parabolic EDT
* fix: allocation error in 1d testing
* fix: problems with handling zero in 1d multi-seg
* feat: 3d EDT working
* feat: 2D EDT working for single seg id
* feat: squared\_edt\_1d\_multi\_seg working
* Initial commit
