Crystalla is a Numerical Methods library for the Crystal programming language. It binds to LAPACK and looks to Numpy for API and design ideas.
It currently only works on OS X.
Add this to your application's shard.yml:
dependencies:
crystalla:
github: mverzilli/crystallarequire "crystalla"
# Matrixes are created from column arrays
m = Crystalla::Matrix.columns [[1.0, 2.0], [3.0, 4.0]]
puts "This is how M looks now: "
puts m
puts
puts "This is M's inverse (note it's inverted in place): "
m.invert!
puts mOutput:
This is how M looks now:
Matrix[[ 1, 3 ],
[ 2, 4 ]]
This is M's inverse (note it's inverted in place):
Matrix[[ -2, 1.5 ],
[ 1, -0.5 ]]
- Load matrices from space separated plain text files.
- Create constant matrices.
- Add rows at an arbitrary position (non-destructive).
- Compare two matrices value-by-value: exact match or closeness (given absolute and relative epsilon values).
- Invert matrices (destructive).
- Solve linear equations systems.
- Singular Value Decomposition.
Currently it only supports development and usage on OS X, but it should be almost trivial to support Linux distros.
- Fork it ( https://github.com/mverzilli/crystalla/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- @mverzilli(https://github.com/mverzilli) Martin Verzilli - creator, maintainer