# Bottleneck 1.2.0

Release date: 2016-10-20

This release is a complete rewrite of Bottleneck.

## Port to C

- Bottleneck is now written in C

- Cython is no longer a dependency

- Source tarball size reduced by 80%

- Build time reduced by 66%

- Install size reduced by 45%

## Redesign

- Besides porting to C, much of bottleneck has been redesigned to be simpler and faster. For example, bottleneck now uses its own N-dimensional array iterators, reducing function call overhead.

## New features

- The new function bench_detailed runs a detailed performance benchmark on a single bottleneck function.

- Bottleneck can be installed on systems that do not yet have NumPy installed. Previously that only worked on some systems.

## Beware

- Functions partsort and argpartsort have been renamed to partition and argpartition to match NumPy. Additionally the meaning of the input arguments have changed: `bn.partsort(a, n)()` is now equivalent to `bn.partition(a, kth=n-1)()`. Similarly for bn.argpartition.

- The keyword for array input has been changed from arr to a in all functions. It now matches NumPy.

## Thanks

- Moritz E. Beber: continuous integration with AppVeyor

- Christoph Gohlke: Windows compatibility

- Jennifer Olsen: comments and suggestions

- A special thanks to the Cython developers. The quickest way to appreciate their work is to remove Cython from your project. It is not easy.

## Contributors