OUxInfo is a high-performance Shannon entropy estimator for Python, powered by a C++ backend. It is designed for fast and scalable entropy estimation, particularly for causal inference.
Features
- Fast Shannon entropy estimator (C++ backend)
- Python interface via pybind11
- Information-theoretic quantities for causal inference (e.g., transfer entropy, backward transfer entropy, information flow)
Installation
Requirements
- Python >= 3.10 (3.12 recommended)
- GCC >= 11 (>= 13 recommended)
- OpenMP support (-fopenmp)
Install via pip
- PyPI
$ pip install ouxinfo
- Clone this repository and
$ pip install .
Dependencies
Python packages (installed automatically via pip)
- pybind11
- numpy
- scipy
- matplotlib
- joblib
- tqdm
C++ dependencies
- Boost C++ Libraries (Boost Software License, included in this repository)
- nanoflann (BSD License, included in this repository)
Usage (example)
import numpy as np
from ouxinfo import shannon_entropy
x = np.random.normal(0.e0, 1.e0, 10000)
H = shannon_entropy(x.reshape(-1,1), k=5)
Related Publication
This repository contains the implementation used in the following publication:
Jun Hatayama, Kento Tanaka, and Toshinori Kouchi. "Nonlinear causal relationship between separation bubbles and reflected shock wave in shock wave/turbulent boundary layer interaction based on information theory." Computers & Fluids (2026): 107016.
@article{hatayama2026nonlinear,
title={Nonlinear causal relationship between separation bubbles and reflected shock wave in shock wave/turbulent boundary layer interaction based on information theory},
author={Hatayama, Jun and Tanaka, Kento and Kouchi, Toshinori},
journal={Computers \& Fluids},
pages={107016},
year={2026},
publisher={Elsevier}
}
The repository was made publicly available after publication to improve reproducibility. However, this version may differ slightly from the version used in the paper.
License
This project is released under MIT license.
Third-party licenses
This project depends on the following libraries;
nanoflann (BSD License)
- Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
- Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
- Copyright 2011-2025 Jose Luis Blanco (joseluisblancoc@gmail.com).
Redistribution and use in source and binary forms are permitted under the BSD License.
Full text:
third_party/nanoflann/LICENSE.
Boost C++ Libraries (Boost Software License 1.0)
- Copyright John Maddock 2006, 2007.
- Copyright Paul A. Bristow 2006, 2007, 2009, 2010.
Use, modification and distribution are subject to the
Boost Software License, Version 1.0. Full text:
third_party/boost/LICENSE_1_0.txtor a copy at http://www.boost.org/LICENSE_1_0.txt
Boost is bundled in third_party/boost/ and nanoflann in third_party/nanoflann/;
both are used automatically during build.
pybind11 (BSD License)
Used for Python bindings.
NumPy, SciPy, Matplotlib, Numba
These libraries are installed via pip and are subject to their respective licenses.
Validation Dataset Acknowledgement
The validation dataset included in this repository is based on data provided by: SURD We gratefully acknowledge the authors for making the dataset publicly available under the MIT License.
AI-Assisted Development
Development during 2025 was primarily conducted by the project owners.
Starting in 2026, the project expanded its contributor base and introduced AI-assisted "vibe coding" workflows using Claude Code.
To maintain transparency, we aim to clearly distinguish which parts of the codebase and development workflow involve AI-generated content or AI-assisted modifications. In addition, as part of our effort to share practical knowledge on AI-assisted development in the community, we provide Claude Code plan files under ./docs/plans.
Metadata
Release files for ouxinfo 1.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ouxinfo-1.1.3.tar.gz | 1.8 MB | Without provenance | Details for ouxinfo-1.1.3.tar.gz |
Release files / ouxinfo-1.1.3.tar.gz
| Download URL | ouxinfo-1.1.3.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35180890072d7307b938f43b7e3605fca255b4f5a8cf1bc1cef3a9921d65924e
|
|
BLAKE2b-256 checksum How to use checksums |
a68a28e8ea97c111da8753e5bf050d23afd99f4754402f3c268e28da3744dbf4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.15
|
Security for ouxinfo 1.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.