Repository navigation
Releases
Releases · boussoffara/fexact
v0.2.0
fexact is now written in Rust and built with maturin. Wherever the C
extension was correct, fexact returns the same p-values to the bit and the
same errors (checked on ~15k recorded cases), about twice as fast.
New
fexact_many(arrays, workspace=200000, hybrid=None, threads=None): p-values
of many tables, computed in parallel without the GIL. Raises
ValueError("table i: ...")for the first table that fails.fexact_simulate(array, samples=10000, seed=None, threads=None): Monte Carlo
p-value, like R'sfisher.test(simulate.p.value = TRUE). Multithreaded,
reproducible for a given seed whatever the number of threads, with no
workspace limit.- A Rust API (
fisher_exact,fisher_exact_many,fisher_simulated, and
compat::fexactwith the C signature).
Fixed
- Wrong p-values on wide tables: the C code's 32-bit path counts overflowed
silently, e.g.[[10, 6, 7] * 7, [5, 7, 9] * 7]gave 0.781 instead of
0.874 (and 0.329 instead of 0.929 with 30 columns). They are now exact
(checked against Monte Carlo simulation and R). - Tables with large margins that failed with "FEXACT error 501" (hash key
overflow), such as[[100000, 6, 7], [100000, 7, 9]], are now computed:
node keys are 64-bit. - Counts beyond 2^31 were silently wrapped to 32 bits (
2**32 + 5was read
as5). They are now read as 64-bit:fexactreportsOut of workspace.
for them, andfexact_simulatehandles them.
Changed
- Some tables that raised
ValueErrornow return p-values (see Fixed). - The error "bug negative key" is now "integer overflow in exact computation"
(R's message), raised only if a search key would overflow 64 bits. - Building from source needs a Rust toolchain; wheels are provided for Linux
(x86_64, aarch64), macOS (x86_64, arm64) and Windows (x64), for Python 3.9
and later. - The license metadata is
GPL-3.0-only(unchanged terms).
v0.2.0rc1
Release candidate for 0.2.0: the Rust port, fexact_many and fexact_simulate, and fixes for silent 32-bit overflows in the C code. See CHANGELOG.md and #80. Published to Test PyPI.
v0.0.10
What’s Changed
- 3.10 support
- minimum numpy version supported 1.22
👥 List of contributors
v0.0.9
What’s Changed
- add python 3.10 support, rename LICENSE.txt (#59) @boussoffara
⬆️ Dependencies updates
- ⬆️ Bump actions/download-artifact from 2 to 3 (#57) @dependabot
- ⬆️ Bump joerick/cibuildwheel from 2.8.0 to 2.8.1 (#58) @dependabot
- ⬆️ Bump joerick/cibuildwheel from 1.12.0 to 2.8.0 (#55) @dependabot
- ⬆️ Bump actions/setup-python from 2.2.2 to 4.1.0 (#56) @dependabot
- ⬆️ Bump release-drafter/release-drafter from 5.15.0 to 5.20.0 (#50) @dependabot
- ⬆️ Bump actions/upload-artifact from 2 to 3 (#47) @dependabot
- ⬆️ Bump actions/checkout from 2 to 3 (#42) @dependabot
👥 List of contributors
@boussoffara, @dependabot and @dependabot[bot]
v0.0.8
What’s Changed
🔧 Fixes & Refactoring
- LDSTEP too small fix (#23) @boussoffara
⬆️ Dependencies updates
- ⬆️ Bump joerick/cibuildwheel from 1.11.0 to 1.12.0 (#22) @dependabot
👥 List of contributors
@boussoffara, @dependabot, @dependabot[bot] and boussoffara
v0.0.7
What’s Changed
🚀 Features
- Out of space bug fix (#20) @boussoffara
🔧 Fixes & Refactoring
- Out of space bug fix (#20) @boussoffara
👥 List of contributors
v0.0.6
What’s Changed
- Bump version (#19) @boussoffara
🚀 Features
- better error handling (#18) @boussoffara
🔧 Fixes & Refactoring
- better error handling (#18) @boussoffara
⬆️ Dependencies updates
- ⬆️ Bump actions/setup-python from 2 to 2.2.2 (#15) @dependabot
- ⬆️ Bump actions/first-interaction from 1 to 1.1.0 (#17) @dependabot
👥 List of contributors
@boussoffara, @dependabot and @dependabot[bot]
v0.0.5
v0.0.4
What’s Changed
🚀 Features
- Workspace and hybrid param support (#13) @boussoffara
📝 Documentation
- Workspace and hybrid param support (#13) @boussoffara
- documentation README.md update (#12) @boussoffara
👥 List of contributors
Basic port
v0.0.3 Merge pull request #11 from boussoffara/dependabot/github_actions/act…