Metadata-Version: 2.4
Name: symm-learning
Version: 0.4.1
Summary: Library of torch modules and utilities of equivariant/invariant learning
Author-email: Daniel Felipe Ordoñez Apraez <daniels.ordonez@gmail.com>
License: MIT License
        
        Copyright (c) 2026 Daniel Felipe Ordonez Apraez
        
        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.
License-File: LICENSE
Requires-Python: >=3.8
Requires-Dist: escnn
Requires-Dist: torch
Provides-Extra: dev
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pydata-sphinx-theme; (python_version >= '3.11') and extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-xdist; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: sphinx-autobuild; (python_version >= '3.11') and extra == 'dev'
Requires-Dist: sphinx-autodoc-typehints; (python_version >= '3.11') and extra == 'dev'
Requires-Dist: sphinx>=8; (python_version >= '3.11') and extra == 'dev'
Requires-Dist: tqdm; extra == 'dev'
Description-Content-Type: text/markdown

# Symmetric Learning

[![PyPI version](https://img.shields.io/pypi/v/symm-learning.svg?logo=pypi)](https://pypi.org/project/symm-learning/)
[![Python Version](https://img.shields.io/badge/python-3.8%20--%203.12-blue?logo=pypy&logoColor=white)](https://github.com/Danfoa/symmetric_learning/actions/workflows/tests.yaml)
[![Docs](https://img.shields.io/github/actions/workflow/status/Danfoa/symmetric_learning/docs.yaml?branch=main&logo=readthedocs&logoColor=white&label=Docs)](https://danfoa.github.io/symmetric_learning/)

**Symmetric Learning** is a torch-based machine learning library tailored to optimization problems featuring symmetry priors. It provides equivariant neural network modules, models, and utilities for leveraging group symmetries in data.

## Package Structure

- [Neural Networks (nn)](https://danfoa.github.io/symmetric_learning/nn.html): Equivariant neural network layers including linear, convolutional, normalization, and attention modules.
- [Models (models)](https://danfoa.github.io/symmetric_learning/models.html): Ready-to-use equivarint architectures such as equivariant MLPs, Transformers, and CNN encoders.
- [Linear Algebra (linalg)](https://danfoa.github.io/symmetric_learning/linalg.html): Linear algebra utilities for symmetric vector spaces, including equivariant least squares solutions, projections to invariant subspaces, and more.
- [Symmetry-aware Statistics (stats)](https://danfoa.github.io/symmetric_learning/stats.html): Mean, variance, and covariance for symmetric random variables.
- [Representation Theory (representation_theory)](https://danfoa.github.io/symmetric_learning/representation_theory.html): Representation theory utils, enabling de isotypic decomposition of group representations, intuitive management of the degrees of freedom of equivariant linear maps, orthogonal projections to the space of equivariant linear maps, and more.

## Installation

```bash
pip install symm-learning
# or
git clone https://github.com/Danfoa/symmetric_learning
cd symmetric_learning
pip install -e .
```

## Documentation

Documentation is published per branch:

- `main` (stable): [https://danfoa.github.io/symmetric_learning/](https://danfoa.github.io/symmetric_learning/)
- `devel`: [https://danfoa.github.io/symmetric_learning/devel/](https://danfoa.github.io/symmetric_learning/devel/)

## Citation

If you use `symm-learning` in research, please cite:

```bibtex
@software{ordonez_apraez_symmetric_learning,
  author  = {Ordonez Apraez, Daniel Felipe},
  title   = {Symmetric Learning},
  year    = {2026},
  url     = {https://github.com/Danfoa/symmetric_learning}
}
```

## License

This project is released under the MIT License. See `LICENSE`.
