Skip to main content

No project description provided

Project description

immrax

immrax is a tool for interval analysis and mixed monotone reachability analysis in JAX.

Inclusion function transformations are composable with existing JAX transformations, allowing the use of Automatic Differentiation to learn relationships between inputs and outputs, as well as parallelization and GPU capabilities for quick, accurate reachable set estimation.

For more information, please see the full documentation.

Dependencies

immrax depends on the library pypoman, which internally uses pycddlib as a wrapper around the cdd library. For this wrapper to function properly, you must install cdd to your system. On Ubuntu, the relevant packages can be installed with

apt-get install -y libcdd-dev libgmp-dev

On Arch linux, you can use

pacman -S cddlib

Installation

Setting up a conda environment

We recommend installing JAX and immrax into a conda environment (miniconda).

conda create -n immrax python=3.12
conda activate immrax

Installing immrax

immrax is available as a package on PyPI and can be installed with pip.

pip install immrax

If you have cuda-enabled hardware you wish to utilize, please install the cuda optional dependency group.

...
pip install immrax[cuda]

To test if the installation process worked, run the compare.py example. The additional examples optional dependency group contains some dependencies needed for the more complex examples; be sure to also install it if you want to run the others.

cd examples
python compare.py

This should return the outputs of different inclusion functions as well as their runtimes.

Citation

If you find this library useful, please cite our paper with the following bibtex entry.

@article{immrax,
title = {immrax: A Parallelizable and Differentiable Toolbox for Interval Analysis and Mixed Monotone Reachability in {JAX}},
journal = {IFAC-PapersOnLine},
volume = {58},
number = {11},
pages = {75-80},
year = {2024},
note = {8th IFAC Conference on Analysis and Design of Hybrid Systems ADHS 2024},
issn = {2405-8963},
doi = {https://doi.org/10.1016/j.ifacol.2024.07.428},
url = {https://www.sciencedirect.com/science/article/pii/S2405896324005275},
author = {Akash Harapanahalli and Saber Jafarpour and Samuel Coogan},
keywords = {Interval analysis, Reachability analysis, Automatic differentiation, Parallel computation, Computational tools, Optimal control, Robust control},
abstract = {We present an implementation of interval analysis and mixed monotone interval reachability analysis as function transforms in Python, fully composable with the computational framework JAX. The resulting toolbox inherits several key features from JAX, including computational efficiency through Just-In-Time Compilation, GPU acceleration for quick parallelized computations, and Automatic Differentiability We demonstrate the toolbox’s performance on several case studies, including a reachability problem on a vehicle model controlled by a neural network, and a robust closed-loop optimal control problem for a swinging pendulum.}
}

Project details


Download files

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

Source Distribution

immrax-0.3.4.tar.gz (7.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

immrax-0.3.4-py2.py3-none-any.whl (388.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file immrax-0.3.4.tar.gz.

File metadata

  • Download URL: immrax-0.3.4.tar.gz
  • Upload date:
  • Size: 7.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for immrax-0.3.4.tar.gz
Algorithm Hash digest
SHA256 f5fa014832938e843a9b853adbddd55152510245fc2519fcfccc3b4ac80f1a6d
MD5 9f2527c2618d9c6bd6334c4a4cf30e27
BLAKE2b-256 9f9467554a2fa8b59e7aed08124a181f0b49d3e75a0645e6cc4009c18011355b

See more details on using hashes here.

File details

Details for the file immrax-0.3.4-py2.py3-none-any.whl.

File metadata

  • Download URL: immrax-0.3.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 388.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for immrax-0.3.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c1f221fd64f3039a4d893aeceed957a70adcba76fc57e8a462d58912fa879598
MD5 81306decb9805e9923ebb518e08ab7fe
BLAKE2b-256 02d901f63f764f50b8f4a31ead07c046635ce9b4601ca4aa6ad1f01d221dc466

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page