Home

Awesome

BitInformation.jl

CI DOI

BitInformation.jl is a package for bitwise information analysis and manipulation in Julia arrays. Based on counting the occurrences of bits in floats (or generally any bits type) across various dimensions, this package calculates quantities like the bitwise real information content, the mutual information, the redundancy or preserved information between arrays. From v0.5 onwards masked arrays are also supported.

For bitwise manipulation, BitInformation.jl also implements various rounding modes (IEEE round,shave,set_one, etc.) efficiently with bitwise operations for any number of bits. E.g. round(x,i) implements IEEE's round to nearest tie-to-even for any float retaining i mantissa bits. Furthermore, transormations like XOR-delta, bittranspose (aka bit shuffle), or signed/biased exponents are implemented.

If you'd like to propose changes, or contribute in any form create a pull request or raise an issue. Contributions are highly appreciated!

Functionality

For an overview of the functionality and explanation see the documentation.

Installation

BitInformation.jl is registered in the Julia Registry, so just do

julia>] add BitInformation

where ] opens the package manager. The latest version is automatically installed.

Funding

This project is funded by the Copernicus Programme through the ECMWF summer of weather code 2020 and 2021

Reference

If you use this package, please cite the following publication

M Klöwer, M Razinger, JJ Dominguez, PD Düben and TN Palmer, 2021. Compressing atmospheric data into its real information content. Nature Computational Science 1, 713–724. 10.1038/s43588-021-00156-2