CHANGES
=======

1.17.0
------

* Add typing support (#45)
* Add optional arguments to remap\_from\_array functions (#46)

1.16.2
------

* perf+fix: faster simple case return + fix inverse
* test: check for renumber misordering
* fix(unique): ensure output of unique\_via\_renumber is sorted

1.16.1
------

* fix: exclude floating point and column length != 2

1.16.0
------

* test: add a more stringent random test
* fix(unique): unique\_via\_sort returns proper data width
* fix(unique): axis=0, ndim=2 works for higher data widths
* fix(unique): edge case for uint64 range
* fix(unique): handle floating point
* test: make sure fastremap.unique matches np.unique
* test: sanity check that axis=0 works
* perf: accelerate special case of np.unique(x, axis=0) where x.ndim=2
* feat: add indices
* feat+test: add widen\_dtype and narrow\_dtype
* docs: show how to use "indices"

1.15.2
------

* install: restrict to py39+
* ci: exclude py38 from build
* ci: remove py38 as it is EOL
* ci: update runners
* test: add python3.13
* ci: upgrade to upload-artifact v4

1.15.1
------

* ci: use artifact v3
* ci: bump cibuildwheel for py313
* ci: add setuptools
* ci: incorrect reference to requirements\_dev.txt
* ci: rename main -> master to trigger test process
* refactor: remove old obsolete test file
* ci: add automated testing through GHA

1.15.0
------

* docs: remove travis badge
* refactor: clean up repo and put source files in "src" dir
* ci: add arm64 and x86\_64 to macos build
* perf: add return\_inverse to fr.unique
* perf(unique/array): avoid two operations for return\_index
* feat: point\_cloud supports 2d images

1.14.2
------

* install: bump python to 3.8, add cnp.import\_array()
* ci: re-add macos, remove travis, appveyor
* ci: use numpy without qualification
* ci: properly specify numpy 2.0 and use working artifact uploader
* ci: switch to compiling with numpy 2.0
* ci: use non-buggy version of cibuildwheel
* refactor: remove COUNT\_T
* redesign: remove \_\_version\_\_ attribute
* perf: reduce memory usage during finaly copy for unique\_via\_sort
* fix: unique supports large arrays for the counts
* fix: accurate unique counts for large arrays
* build: more modernizations

1.14.1
------

* build: temporarily exclude macos until ecosystem fixes itself
* chore: ignore fastremap.cpp
* chore: ignore fastremap.cpp
* build: update for py312
* build: update build

1.14.0
------

* release(1.14.0): adds tobytes function
* docs: add README info and docstring
* docs: add tobytes example
* feat: bulk tobytes (#35)

1.13.5
------

* release(1.13.5): updated build for py311

1.13.4
------

* release(1.13.4): easier installation
* Delayed numpy import during setup (#33)
* fix: handle all LP64 platforms generically (#32)

1.13.3
------

* release(1.13.3): rerelease of binaries

1.13.2
------

* release(1.13.2): (inverse\_)component\_map accepts non-aligned inputs
* fix: component\_map and inverse\_component\_map accept non-aligned inputs

1.13.1
------

* fixtest: elements in inv\_component\_map are now sorted
* release(1.13.1): unique accepts lists, inverse\_component\_map uniq vals
* feat: unique accepts lists
* fix: remove duplicates from inverse\_component\_map
* build: update build system with aarch64 and py310

1.13.0
------

* release(1.13.0): using improved map for faster renumber, remap, more
* perf: switch to ska::flat\_hash\_map instead of std::unordered\_map (#30)

1.12.2
------

* release(1.12.2): release binaries with broader numpy ABI compat
* chore: use oldest-supported-numpy when building wheels

1.12.1
------

* release(1.12.1): unique accepts empty arrays
* fix: fastremap.unique doesn't accept empty arrays

1.12.0
------

* release(1.12.0): new point\_cloud and foreground functions
* feat(point\_cloud): new point\_cloud and foreground functions (#28)
* fix(renumber): preserve\_zero=False w/ arrays starting with 0

1.11.4
------

* release(1.11.4): fixes issue with inverse\_component\_map
* chore: update changelog
* chore: support only py36 - py39
* chore: drop py27 from build
* fix(inverse\_component\_map): not checking component for continue cond

1.11.2
------

* release(1.11.2): fix numpy deprecation of np.bool
* fix: further fix numpy deprecation of np.bool
* chore: fix numpy 1.20 deprecation of np.bool in favor of bool
* chore: update setup.cfg

1.11.1
------

* release(1.11.1): python39 support
* chore: make build\_linux.sh script generic
* chore: add updated build system
* fix: pbr couldn't see git repo

1.11.0
------

* release(1.11.0): unique(..., return\_index=True) now accelerated
* feat(unique): adds return\_index to high performance paths (#25)
* chore: add .dockerignore
* chore: update ChangeLog, tox.ini

1.10.2
------

* release(1.10.2): fixed bug in remap
* fix: remap was not handling missing labels correctly (#23)
* Revert "feat: adds argminmax, argmin, argmax, ravel\_index (#22)"
* feat: adds argminmax, argmin, argmax, ravel\_index (#22)
* chore: update changelog
* chore: adds tox

1.10.1
------

* release(1.10.1): faster renumber and by proxy unique in some circumstances
* chore: add tox.ini
* perf: faster renumber by using unordered\_map (#21)

1.10.0
------

* release(1.10.0): adds component\_map and inverse\_component\_map
* fix: should use int instead of uint
* test: abort appveyor early if a test fails
* fix: test for renumber dying on uint64 assertion
* fix: remove 'build.cmd' as we are not supporting 3.3 or 3.4
* chore: add appveyor.yml
* docs: show how to use component\_map and inverse\_component\_map
* feat: add components\_map and inverse\_components\_map
* Update README.md

1.9.2
-----

* release(1.9.2): fixed performance issue with fastremap.unique
* perf: faster unique\_va\_array

1.9.1
-----

* release(1.9.1): ipt handles 64-bit addressable arrays
* fix: support 64-bit addressable volumes for IPT

1.9.0
-----

* release(1.9.0): adds unique, minmax, refit, fit\_dtype, pixel\_pairs
* chore: add py3.8 to dockerfile
* feat: unique, minmax, refit, fit\_dtype, pixel\_pairs (#20)

1.8.0
-----

* release(1.8.0): faster remap and mask operators
* perf: faster remap and mask operators (#19)

1.7.0
-----

* feat: add support for single precision complex numbers to IPT (#17)
* docs: move "all available functions" higher

1.6.2
-----

* release(1.6.2): mask\_except can accept maximum unsigned values
* fix: mask\_except can use maximum values for unsigned ints
* install: add -stdlib=libc++ for mac builds (#14)

1.6.1
-----

* release(1.6.1): much faster renumber
* perf: much faster renumber (#10)

1.6.0
-----

* release: 1.6.0
* feat: add mask\_except (complement of mask) (#9)

1.5.2
-----

* release: Version 1.5.2
*  perf: use unordered\_map to prevent any possibility of python interaction (#7)

1.5.1
-----

* release: version 1.5.1
* perf: faster fastremap.remap (#6)

1.5.0
-----

* chore: bump version to 1.5.0
* feat: add mask function
* docs: update changelog

1.4.1
-----

* chore: bump version to 1.4.1

1.4.0
-----

* chore: bump version to 1.4.0
* feat: n-dimensional remap support (#5)
* docs: example for renumber's in\_place=True parameter
* Update README.md

1.3.0
-----

* chore: bump version to 1.3.0
* feat+perf: add in\_place argument to renumber
* perf: remove memory copy for bool to uint8 in renumber
* perf: use stride tricks to avoid copies in renumber

1.2.2
-----

* fix: renumber was broken due to incomplete boolean logic
* docs: updating documentation

1.2.1
-----

* chore: bump version to 1.2.1
* docs: update in-place description in README example

1.2.0
-----

* chore: drop py34 support
* chore: version 1.2.0
* feat: 2D, 3D, 4D rectangular in-place transposition (#3)
* refactor: use fused types to reduce code duplication (#4)

1.1.0
-----

* docs: add authors, changelog
* chore: bump version to 1.1.0
* feat: faster in place transpose for symmetric 2d and 3d matricies. (#2)

1.0.1
-----

* chore: bump version to 1.0.1
* test: test multiple data types for remap
* fix: segmentation fault when calling "help(fastremap)"
* Update README.md
* docs: discuss numpy version compatibility with binaries
* docs: showed that renumber returns a tuple
* docs: added PyPI badge

1.0.0
-----

* feat: added \_\_version\_\_ to pyx file
* docs: more love
* docs: added function description to remap\_from\_array\_kv and remap\_from\_array
* docs: grammar fix
* docs: described the problem that fastremap solves
* fix: needed to install pytest for Travis CI
* docs: installation and usage
* refactor: move fastremap.remap higher in the file
* test: Travis CI automated testing
* test: cover more datatypes, add remap 1d test
* test: 2d and 3d renumber
* test: add 1d renumber tests w/ dtype support
* wip: creating fastremap library
* Initial commit
