pygram11

Simple and fast histogramming in Python accelerated with OpenMP.

MIT License

Downloads
3.6K
Stars
28
Committers
2
pygram11 - 0.13.2 Latest Release

Published by douglasdavis almost 2 years ago

  • Use scikit-build-core for packaging system
  • Bump mp11 version
pygram11 - 0.13.1

Published by douglasdavis about 2 years ago

  • Add support for Windows
pygram11 - 0.13.0

Published by douglasdavis about 2 years ago

  • Project now uses scikit-build
pygram11 - 0.12.2

Published by douglasdavis over 2 years ago

  • Bug fix: variance calculation for weighted histograms with density=True.
  • Bump pygram11 and boost/mp11
pygram11 - 0.12.1

Published by douglasdavis about 3 years ago

  • Bump pybind11 to 2.8.0
  • Add wheels for Python 3.10
  • Drop support for Python 3.6
pygram11 - 0.12.0

Published by douglasdavis over 3 years ago

  • OpenMP configuration redesigned.
    • constants have been removed in favor of new pygram11.config module.
    • Decorators and context managers added to control toggling OpenMP thresholds
      • pygram11.without_omp decorator
      • pygram11.with_omp decorator
      • pygram11.disable_omp context manager
      • pygram11.force_omp context manager
    • See the documentation for more
  • New keyword argument added to histogramming functions (cons_var) for returning variance instead of standard error.
pygram11 - 0.11.2

Published by douglasdavis over 3 years ago

Renamed internal Python files hist.py and misc.py to _hist.py and _misc.py, respectively.

The contents of these modules are brought in to the main pygram11 module namespace by imports in __init__.py (the submodules themselves are not meant to be part of the public API). This avoids tab completions of pygram11.hi<tab> yielding pygram11.hist when we actually want pygram11.histogram.

pygram11 - 0.11.1

Published by douglasdavis over 3 years ago

Two convenience functions added to the pygram11 namespace:

  • bin_centers: returns an array representing the the center of histogram bins given a total number of bins and an axis range or given existing bin edges.
  • bin_edges: returns an array representing bin edges given a total number of bins and an axis range.
pygram11 - 0.11.0

Published by douglasdavis over 3 years ago

  • API change: functions calls with weights=None now return None as the second return. Previously the uncertainty was returned (which is just the square-root of the bin heights); now users can take the square-root themselves, and the back-end does not waste cycles tracking the uncertainty since it's trivial for unweighted histograms.
  • More types are supported without conversions (previously np.float64 and np.float32 were the only supported array types, and we converted non-floating point input). Now signed and unsigned integer inputs (both 64 and 32 bit) are supported.
    • If unsupported array types are used TypeError is now raised. This library prioritizes performance; hidden performance hits are explicitly avoided.
  • Configurable thresholds have been introduced to configure when OpenMP acceleration is used (described in the documentation).
  • The back-end was refactored with some help from boost::mp11 to aid in adding more type support without introducing more boilerplate. We now vendor boost::mp11 as a submodule.
  • Bumped the vendored pybind11 submodule to v2.6.2.
  • C++14 now required to build from source.
  • Added Apple Silicon support for Python 3.9 with libomp from Homebrew installed at /opt/homebrew.
  • Documentation improvements
  • Renamed master branch to main.
pygram11 - 0.11.0rc1

Published by douglasdavis over 3 years ago

First release candidate for 0.11.0

pygram11 - 0.10.3

Published by douglasdavis about 4 years ago

  • Fix GitHub action to make sure pybind11 submodule is checked out for source distribution creation.
pygram11 - 0.10.2

Published by douglasdavis about 4 years ago

  • Vendor pybind11 2.6 series.
  • Some changes to backend types (std::size_t -> pybind11::ssize_t for sizes) (https://github.com/pybind/pybind11/pull/2293)
  • Improvements to CI/CD: using cibuildwheel to build wheels.
  • Python 3.9 is now tested and compatible wheels are built.
pygram11 - 0.10.2rc1

Published by douglasdavis about 4 years ago

Test new release triggering wheel builds.

pygram11 - 0.10.1

Published by douglasdavis about 4 years ago

  • Fix setup.py for building binaries for conda-forge.
  • Bump NumPy requirement to >=1.16 (see NEP 29)
pygram11 - 0.10.0

Published by douglasdavis over 4 years ago

Renamed internal Python module from histogram to hist. This avoids a clash with the module function of the same name. Some IDE features were confused.

pygram11 - 0.9.1

Published by douglasdavis over 4 years ago

Fixes issue with MANIFEST.in (a header was missing) to build from source.

pygram11 - 0.9.0

Published by douglasdavis over 4 years ago

  • Repository reorganized to use PEP 517
  • Python API moved outside of __init__.py to histogram.py, functions are imported in __init__.py
pygram11 - 0.8.2

Published by douglasdavis over 4 years ago

  • Remove requirement on specific NumPy version (it's not required to build, only to use).
  • Large improvements to documentation.
pygram11 - 0.8.1

Published by douglasdavis over 4 years ago

  • Bump the bundled pybind11 version to 2.5.0.
  • Renamed some backend files.
pygram11 - 0.8.0

Published by douglasdavis over 4 years ago

Public API changes:

  • Remove previously deprecated omp function argument

Backend changed:

  • moved 1D backend back to pybind11 (template flexibility)
  • parallelization cutoffs consistently at array size of 5000 for all calculations
  • all non-floating point inputs are converted

Other:

  • Improved tests