Skip to content

Latest commit

 

History

History
38 lines (30 loc) · 1.79 KB

README.md

File metadata and controls

38 lines (30 loc) · 1.79 KB

RNum

A pure Rust mathematics library; based on symbols; compile time computations; natural syntax; zero-cost.

Abstract

In the realm of scientific computing, current languages exhibit critical limitations. Python, while intuitive and flexible, suffers from inherent slowness. C, though fast, lacks the high-level abstractions necessary for fluid coding. MATLAB, despite its power, is quirky and proprietary.

RNum aims to merge Python's fluency, C's speed, and MATLAB's capabilities using Rust's potential. Leveraging Rust's package manager, Cargo, RNum ensures reproducible environments. This endeavor builds on previous efforts, learning from the paths others have taken.

Built for flexibility, RNum utilizes a symbolic approach where users initially define a 'Function' and then manipulate it using a functional interface before evaluation. This approach enables RNum to leverage Rust's macro and build system, solving operations at compile time, while supporting inputs (and eventually outputs) in a Mathematica-like syntax or even LaTeX. All zero-cost!

Machine Learning

Taking a symbolic approach when doing machine learning might have some advantages. Possibly:

  • Faster model runtimes on CPU
  • Near perfectly trimmed models
    • More efficient models
    • Models with smaller size
  • Complete transparency
    • More obviously see what the model is doing on a granular level
    • Be able to very easily track changes in the model

We are currently exploring how viable this approach is. Dont fear! Rnum will still be useful for mathematical computing if it cannot be applied effectively to an AI use case.

Pre-Alpha

Rnum is under active development, and still in a very early stage. If you have any suggestions, would like to contribute, or would sponsor the project please reach out to a maintainer!