Metadata-Version: 2.3
Name: BayesFlux
Version: 0.8
Summary: Bayesian Fast Linear algebra sUbspace eXtraction in JAX
Author: Joshua Chen, Michael Brennan, Thomas O'Leary-Roseberry
Author-email: Joshua Chen <joshuawchen@icloud.com>, Michael Brennan <mcbrenn@mit.edu>, Thomas O'Leary-Roseberry <tom.olearyroseberry@utexas.edu>
License: MIT License
         
         Copyright (c) 2025 Joshua Chen
         
         Permission is hereby granted, free of charge, to any person obtaining a copy
         of this software and associated documentation files (the "Software"), to deal
         in the Software without restriction, including without limitation the rights
         to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         copies of the Software, and to permit persons to whom the Software is
         furnished to do so, subject to the following conditions:
         
         The above copyright notice and this permission notice shall be included in all
         copies or substantial portions of the Software.
         
         THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         SOFTWARE.
Requires-Dist: jax
Requires-Dist: jaxlib
Requires-Dist: randlax>=0.3.2
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: flake8-pyproject ; extra == 'dev'
Requires-Dist: hickle ; extra == 'hippylib'
Requires-Dist: hippylib>=3.1.0 ; extra == 'hippylib'
Requires-Python: >=3.9
Project-URL: Homepage, https://github.com/joshuawchen/BayesFlux
Project-URL: Repository, https://github.com/joshuawchen/BayesFlux
Provides-Extra: dev
Provides-Extra: hippylib
Description-Content-Type: text/markdown

# BayesFlux

BayesFlux is a JAX Python package that provides Fast Linear algebra sUbspace eXtraction for Bayesian inverse problems built off https://github.com/joshuawchen/randLAX.

## Features

- Active Subspace for parameter dimension reduction
- Informative Output Subspace for data dimension reduction

## Installation

### Core Installation (JAX-only functionality)

You can install the core BayesFlux package using pip:

    pip install bayesflux

This installs the JAX-based functionality only and does not require Fenics or hippylib.

### Installation with hippylib Support (Requires Fenics)

Some BayesFlux functionality depends on hippylib, which requires Fenics 2019.1.

Fenics has system-level dependencies and cannot be reliably installed via pip alone.
You must first create a conda environment.

Step 1 — Create a Fenics environment

    conda create -n fenics-2019.1_env -c conda-forge fenics==2019.1.0
    conda activate fenics-2019.1_env

Step 2 — Install BayesFlux with the hippylib extra

    pip install bayesflux[hippylib]

This installs:
- hippylib
- hickle
- bayesflux

Make sure the conda environment is activated before running pip install.

## For Developers

If your software depends on BayesFlux with hippylib functionality, declare the dependency in your pyproject.toml as:

    dependencies = [
        "bayesflux[hippylib]>=<minimum_version>"
    ]

However, your users must still create the Fenics conda environment before installing your software:

    conda create -n fenics-2019.1_env -c conda-forge fenics==2019.1.0
    conda activate fenics-2019.1_env
    pip install your_package

Important: pip cannot install Fenics. Any software depending on bayesflux[hippylib] must document the required conda environment setup.

## Requirements

- Python 3.9+
