KaveIO / PhiK

Phi_K correlation analyzer library
Other
156 stars 28 forks source link

C++ implementation of Patefield algorithm and Python bindings #19

Closed RUrlus closed 3 years ago

RUrlus commented 3 years ago

This will significantly improve the speed of the hypergeometric method for simulation at the cost of requiring a C++ compiler. The package remains a simple pip install for all users except those on windows that don't work with conda.

RUrlus commented 3 years ago

The current branch requires that a C++ compiler with support for >=C++14 standard is present. This requirement can be prevented by building wheels with pre-compiled libs for the combination of platform and python ABI's.

This requires setting up multiplatform CI/CD

RUrlus commented 3 years ago

Changes

Three significant changes have been made:

Enhancements

The wheels are pushed to PyPi on tags. @mbaak See here on how to create and store the token

RUrlus commented 3 years ago

Failures to build the C++ extension are now caught in the setup and a version will be installed without the extension. If the extension is not present a NotImplemented error will be raised when the hypergeometric method is chosen.

A section has been added to the README explaining the above.