Update readme

This commit is contained in:
Brendan Zabarauskas 2012-09-08 20:13:01 +10:00
parent 413a5ff047
commit 346cf73b07

View file

@ -1,18 +1,27 @@
# om3D: A Linear Algebra Library for Rust
# OMath: a linear algebra library written in Rust
Here's some linear algebra I've been working on. I've translated it over from my unpublished D library that I was using to teach myself 3D mathematics.
OMath (Odyssey Math) is linear algebra I've been working on to help teach myself 3D mathematics. Learning by doing, y'know. I've uploaded it in the hope that somebody might find it useful, you never know.
## Todo:
- Unittests: I have full unittest coverage on my D project so the algorithms should be correct, but this is definately top on my list.
- Matrix Inversion: ugh
- Matrix rotation
- Euler and Axial rotations
## Disclaimer:
I'm new to Rust and a novice at linear algebra. I also haven't written any unittests yet (although I plan to soon). I've almost certainly made mistakes, so use this at your own risk!
I'm new to Rust and a novice at linear algebra, so I may have made mistake, and I may not have done things in the most efficient way. So use this at your own risk!
At the time of writing (September 2012) the Rust language is still in a state of flux. There is a good chance that the code will be soon out of date.
## Why Rust?
I've been on the lookout for a nice system programming language for a while now because I'd like to work on real-time 3D without having to deal with the complexity and inelegance of C++.
Over the last few months I've spent some time playing with [D](http://dlang.org/). It has plenty of attractive qualities such as powerful compile-time generics, a friendly community on IRC and an aesthetically pleasing syntax. I do have concerns however that may cause me to shelve it for now. These include a lack of a defined mission, [performance issues with the GC](http://www.reddit.com/r/programming/comments/ze4cx/real_world_comparison_gc_vs_manual_memory/), and a lack of focus in the community in terms of creating a single solid compiler (there are currently three, DMD, GDC and LDC).
Over this time I've also been following [Rust](https://github.com/mozilla/rust/), a language currently under heavy development at Mozilla. It's built on LLVM, has a self-hosting compiler and has a clear mission: to be fast, concurrent and safe.
> It's like C++ grew up, went to grad school, started dating ML, and is sharing an office with Erlang.
There are downsides: the different pointer types are confusing at first, it still has those dreaded semicolons and it's missing some features I love (properties, default arguments, method overloading...). These are minor annoyances however, and the language as it stands feels really nice to work with. :)
~B☼