Skip to main content

PyPI version Downloads DOI Docs

OUxInfo

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.

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. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Boost is now bundled in the third_party/ directory and is 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ouxinfo-1.1.1.tar.gz (1.8 MB view details)

Uploaded Source

File details

Details for the file ouxinfo-1.1.1.tar.gz.

File metadata

  • Download URL: ouxinfo-1.1.1.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for ouxinfo-1.1.1.tar.gz
Algorithm Hash digest
SHA256 3202a72215cf1bcba6a55a2a82e2d6d4cdda275f085fe3d7e47d0144b98cbf4c
MD5 6fc64eb50167c663e36406b5097cad77
BLAKE2b-256 47680ec87f5f4c382366d7f3c3c783279d9a131408835738229f5f161d41aebb

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.3

1 file

1.1.2

1 file

This release

1.1.1 This release

1 file

1.1.0

1 file

1.0.1

1 file

1.0.0

1 file

0.1.4

1 file

0.1.3

1 file

0.1.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page