The goal of the project was to pick a langauge, determine its strengths, learn it, and write a small program to show off those strengths (cargo and concurrency in this case).
rust-matrix-project's Introduction
rust-matrix-project's People
Forkers
hedgehog1024rust-matrix-project's Issues
Panics are not documented
Matrix
operations all have assert!
s which are not documented, meaning it can cause unexpected panics for users of the library. Rust API guidelines says that panics should be properly documented.
[Feature] Inplace operations
This repo has implementations for addition and subtraction of matrices. However, all of them produce fresh new Matrix
even if we don't need operands afterwards. In order to have a way to reduce allocations, one should have way to reuses allocated memory and operate on it.
Consider switching matrix storage to Box<[i32]>
Matrix
requires owned dynamically sized storage. However, so far no matrix methods used Vec
's ability to dynamically change size. If you have no plans to add such methods in future, consider switching storing data to boxed slice. Compared to Vec
, it doesn't have methods to change it's size (which can prevent some errors) and it doesn't store additional usize
for capacity.
[Feature] Non-consuming scalar multiplication
There are impl Mul<i32> for Matrix
and impl Mul<Matrix> for i32
which forwards to first impl
. These methods take Matrix
by value. However, implementations of these methods requires only reference to Matrix
, so it should be possible to write impl<'a> Mul<i32> for &'a Matrix
and impl<'a> Mul<&'a Matrix> for i32
respectively.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.