Skip to content

Latest commit

 

History

History
79 lines (52 loc) · 4.35 KB

README.md

File metadata and controls

79 lines (52 loc) · 4.35 KB

PyPI PyPI - License PyPI - Python Version Discord PyPI - Downloads C++ Version


Build (Windows)

Build (Linux)

Build (MacOS)

Wheels

Documentation Status


What is LibRapid?

LibRapid is a high performance Array library, supporting a wide range of optimised calculations which can be performed on the CPU or GPU (via CUDA). All calculations are vectorised with SIMD instructions and are run on multiple threads (if necessary) to make them as fast as possible on any given machine.

There are also a wide range of helper functions and classes to aid the development of your own project.

LibRapid is highly templated, meaning it can conform to exactly your needs with minimal compile-times and even support for custom datatypes.

Current Development Stage

At the current point in time, LibRapid C++ is under rapid development by me (pencilcaseman).

I am currently doing my A-Levels and do not have time to work on the library as much as I would like, so if you or someone you know might be willing to support the development of the library, feel free to create a pull request or chat to us on Discord. Any help is greatly appreciated!

Future Plans

My goal for LibRapid is to develop the C++ interface further, at least initially. At some point I want to add Python and Javascript interfaces (in that order) to increase the range of people who can benefit from the library, but the most important thing is the performance of the underlying C++ code.

External Dependencies

LibRapid has a few external dependencies to improve functionality and performance. Some of these are optional, and can be included with a CMake option. The following is a list of the external dependencies and their purpose:

  • Required
    • fmt - Advanced string formatting
    • scnlib - Advanced string parsing
    • thread-pool - Thread pool for parallel execution
  • Optional
    • OpenMP - Multi-threading library
    • CUDA - GPU computing library
    • mpfr - Arbitrary precision numbers (integer, real, rational)
    • Vc - SIMD library

Star History

Star History Chart

Support

Thanks to JetBrains for providing LibRapid with free licenses for their amazing tools!

JetBrains