Pygram11 Versions Save

Simple and fast histogramming in Python accelerated with OpenMP.

0.13.2

1 year ago
  • Use scikit-build-core for packaging system
  • Bump mp11 version

0.13.1

1 year ago
  • Add support for Windows

0.13.0

1 year ago
  • Project now uses scikit-build

0.12.2

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

0.12.1

2 years ago
  • Bump pybind11 to 2.8.0
  • Add wheels for Python 3.10
  • Drop support for Python 3.6

0.12.0

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.

0.11.2

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.

0.11.1

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.

0.11.0

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.

0.11.0rc1

3 years ago

First release candidate for 0.11.0