Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.6%) to scientific vocabulary
Keywords
Repository
Numerical Lie-theory in C++ and Python.
Basic Info
Statistics
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
- Releases: 11
Topics
Metadata Files
README.md
Lielab
C++ code for numerical algorithms and processes defined on Lie-type domains, including Lie algebras and Lie groups. Also fully usable from Python with a set of wrappers.
User Installation
Source code and prebuilt binaries are available on various artifact hosting websites. Try these pre-built binaries first.
Python
Install Lielab with pip
pip install lielab
C++
Add Lielab to another project by adding it to the conanfile.txt and include with
```
include
```
Alternatively, the header files can be included directly into other projects. Eigen must be made available in this case.
Developer Installation
Conan
Assuming Python is installed to your system already, the following block will generate the binary file for the Lielab Python bindings
conan build . -o with_python=True
This will build the pyd file required for Python, and also skip building the pure C++ test cases. The Python wrapper can then be installed with
cd python
pip install -e .
CMake
Lielab is template header-only and the only other hard requirement is Eigen. The easiest way to make this available is installing it through Conan. This allows you to build and run Lielab with a minimal set of requirements. But building straight from the CMakeLists is also possible. Pybind11, Catch2, and Eigen3 targets need to be made available. This can be done from another CMakeLists. Alternatively, acquire these codes yourself, add them to the /include/ folder, and uncomment the following lines from the top level Lielab CMakeLists
add_subdirectory(include/Catch2)
add_subdirectory(include/Eigen3)
add_subdirectory(include/pybind11)
from the top level Lielab CMakeLists. Then, build the tools as usual with CMake
cmake .. -DLIELAB_BUILD_TESTS=False
cmake --build . --target cppLielab
This will build the pyd file required for Python, and also skip building the pure C++ test cases. The Python wrapper can then be installed with
cd python
pip install -e .
Citation
Find this repo useful?
@misc{Lielab,
author = {Sparapany, Michael J.},
title = {Lielab: Numerical Lie-theory in C++ and Python},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/sandialabs/lielab}}
}
Dev Note
Using the Lielab Pybind11 wrapper to communicate to a heavier weight C++ code also using Lielab can be a very effective way at developing relatively performant C++ code while still retaining the usability of Python. When doing this, error messages thrown can be very unhelpful. The most common one may look like:
```
$ python myexample.py
Traceback (most recent call last):
File "myexample.py", line
Invoked with:
This error is thrown when calling some C++ code from a Python package and passing Lielab objects as an argument.
Fix
Make sure both the C++ binary and the Lielab Python wrapper are compiled with the same CMake flags. Often times this error is caused when the Lielab Python wrapper was compiled as a Release, or -DCMAKE_BUILD_TYPE=Release and the other C++ code was compiled as a Debug, or -DCMAKE_BUILD_TYPE=Debug. Both need to be set to either Release or Debug. Only release versions of Lielab are included on PyPi so you may be required to compile your own set of Pybind11 wrappers for easier debugging.
As a rule of thumb, do not use the pre-compiled versions of Python Lielab if you intend to link it to another C++ project. Compile both the C++ project and Python Lielab using the same platform and compiler to minimize issues like this.
Owner
- Name: Sandia National Laboratories
- Login: sandialabs
- Kind: organization
- Location: United States
- Website: https://software.sandia.gov
- Repositories: 123
- Profile: https://github.com/sandialabs
Exceptional service in the national interest.
Citation (CITATION.cff)
cff-version: 1.2.0
title: Lielab
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- orcid: 'https://orcid.org/0000-0003-3202-0615'
affiliation: Sandia National Laboratories
given-names: Michael J.
family-names: Sparapany
email: mjspara@sandia.gov
repository-code: 'https://github.com/sandialabs/Lielab'
license: MIT
version: 0.4.1
date-released: '2024-09-29'
GitHub Events
Total
- Release event: 1
- Watch event: 1
- Delete event: 3
- Push event: 21
- Pull request event: 10
- Create event: 4
Last Year
- Release event: 1
- Watch event: 1
- Delete event: 3
- Push event: 21
- Pull request event: 10
- Create event: 4
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- msparapa (4)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 4,965 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 11
- Total maintainers: 1
pypi.org: lielab
Lielab is a Python-wrapped C++ library implementing various objects and routines for numerical finite-dimensional Lie-theory.
- Homepage: https://github.com/sandialabs/Lielab
- Documentation: https://lielab.readthedocs.io/
- License: mit
-
Latest release: 0.4.2
published about 1 year ago
Rankings
Maintainers (1)
Dependencies
- numpy >=1.16.3
- pytest * development