Git Product home page Git Product logo

scirust's Introduction

SciRust

Scientific computing library written in Rust programming language.

The objective is to design a generic library which can be used as a backbone for scientific computing.

Current emphasis is less on performance and more on providing a comprehensive API.

Build Status Gitter

Current areas of focus

  • Fundamental algebraic structures
  • Matrices
  • Linear algebra
  • Statistics
  • Signal processing

A discussion group is setup at SciRust Google Group.

Features

General

  • Pure Rust implementation
  • Focus on generic programming
  • Extensive unit tests for all features
  • Column major implementation

Matrices

  • Generic matrix class supporting various data-types (u8, i8, u16, i16, ... , f32, f64, Complex32, Complex64)
  • Views over parts of matrices
  • Comprehensive support for operations on matrices.
  • Views over sub-matrices with similar operations.
  • Special support for triangular matrices.

Linear algebra

  • Solving systems of linear equations
  • LDU factorization
  • Rank, Determinant, Inverse

About Rust and Building the project

If you are unfamiliar with Rust, you are recommended to go through The Rust Programming Language Book.

The library can be built and used using Cargo which is the official dependency management and build tool for Rust.

Working with matrices requires a lot of low level code. As a user of the library, we expect that you won't have to write the low level code yourself. If you are reading or debugging through the source code of the library, you would see a lot of low level code. Good knowledge of Rust help you sail through them. Check out topics like:

The library code is full of unit tests. These unit tests serve multiple purposes

  • Making sure that the functions work as advertised.
  • Extensively testing those functions which use unsafe and low level features of Rust.
  • Learning about how to use the library features.

If you haven't read already, please familiarize yourself with Unit Testing in Rust. Writing unit tests will help you write better and more reliable code.

scirust's People

Contributors

shailesh1729 avatar dbalchev avatar achanda avatar sean1708 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.