# Third-Party Software Attributions

This document lists third-party software components used by or incorporated into Archimedes.

## Incorporated/Modified Code

### JAX
- **Source**: https://github.com/google/jax
- **License**: Apache License 2.0
- **Files**: `_core/_function/_control_flow.py`, `tree/_flatten_util.py`, `tree/_registry.py`, `tree/_tree_util.py`, `test/test_tree.py`
- **Description**: Some aspects of PyTree and control flow functionality

### Flax
- **Source**: https://github.com/google/flax
- **License**: Apache License 2.0
- **Files**: `tree/struct.py`
- **Description**: PyTree functionality derived from Flax `struct` implementation

### pybaum
- **Source**: https://github.com/OpenSourceEconomics/pybaum
- **License**: MIT License
- **Files**: `test/test_tree.py`
- **Description**: Unit test utilities

### NumPy
- **Source**: https://numpy.org/
- **License**: NumPy license
- **Files**: `_core/_array_ops/_array_function.py`, `_core/_array_ops/_array_ops.py`, `_core/_array_ops/_array_ufunc.py`
- **Description**: Some array API implementations

## Key Dependencies

### CasADi
- **Source**: https://web.casadi.org/
- **License**: LGPL 3.0
- **Description**: Core symbolic computation engine
- **Notable sub-dependencies**: IPOPT (EPL), SUNDIALS (BSD 3-Clause)

### NumPy
- **Source**: https://numpy.org/
- **License**: NumPy license
- **Description**: Numerical computing foundation