All Projects → leftaroundabout → linearmap-family

leftaroundabout / linearmap-family

Licence: GPL-3.0 license
Purely-functional, coordinate-free linear algebra

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to linearmap-family

Introduction-to-Python-Numerical-Analysis-for-Engineers-and-Scientist
Introduction to Python: Numerical Analysis for Engineers and Scientist. In 2017, Python became the world's most popular programming language. This course covers the basic syntax, linear algebra, plotting, and more to prepare students for solving numerical problems with Python.
Stars: ✭ 110 (+400%)
Mutual labels:  linear-algebra
fflas-ffpack
FFLAS-FFPACK - Finite Field Linear Algebra Subroutines / Package
Stars: ✭ 44 (+100%)
Mutual labels:  linear-algebra
pbdML
No description or website provided.
Stars: ✭ 13 (-40.91%)
Mutual labels:  linear-algebra
numphp
PHP tools for matrix computation
Stars: ✭ 25 (+13.64%)
Mutual labels:  linear-algebra
sympiler
Sympiler is a Code Generator for Transforming Sparse Matrix Codes
Stars: ✭ 32 (+45.45%)
Mutual labels:  linear-algebra
pyGameMath
Math library for game programming in python.
Stars: ✭ 20 (-9.09%)
Mutual labels:  linear-algebra
qdldl
A free LDL factorisation routine
Stars: ✭ 54 (+145.45%)
Mutual labels:  linear-algebra
saddle
SADDLE: Scala Data Library
Stars: ✭ 23 (+4.55%)
Mutual labels:  linear-algebra
LAML
A stand-alone pure Java library for linear algebra and machine learning
Stars: ✭ 15 (-31.82%)
Mutual labels:  linear-algebra
Undergraduate-in-Statistics
Using Computer with your Statistics Major Course
Stars: ✭ 57 (+159.09%)
Mutual labels:  linear-algebra
Tensor
A library and extension that provides objects for scientific computing in PHP.
Stars: ✭ 146 (+563.64%)
Mutual labels:  linear-algebra
blaze tensor
3D Tensors for Blaze (https://bitbucket.org/blaze-lib/blaze)
Stars: ✭ 29 (+31.82%)
Mutual labels:  linear-algebra
start-machine-learning
A complete guide to start and improve in machine learning (ML), artificial intelligence (AI) in 2022 without ANY background in the field and stay up-to-date with the latest news and state-of-the-art techniques!
Stars: ✭ 3,066 (+13836.36%)
Mutual labels:  linear-algebra
mfi
Modern Fortran Interfaces to BLAS and LAPACK
Stars: ✭ 31 (+40.91%)
Mutual labels:  linear-algebra
hicma
HiCMA: Hierarchical Computations on Manycore Architectures
Stars: ✭ 21 (-4.55%)
Mutual labels:  linear-algebra
lubeck
High level linear algebra library for Dlang
Stars: ✭ 57 (+159.09%)
Mutual labels:  linear-algebra
zalgebra
Linear algebra library for games and real-time graphics.
Stars: ✭ 129 (+486.36%)
Mutual labels:  linear-algebra
Learn-Machine-Learning-in-3-month
No description or website provided.
Stars: ✭ 35 (+59.09%)
Mutual labels:  linear-algebra
float
Single precision (float) matrices for R.
Stars: ✭ 41 (+86.36%)
Mutual labels:  linear-algebra
fml
Fused Matrix Library
Stars: ✭ 24 (+9.09%)
Mutual labels:  linear-algebra

Build Status

This project has two goals:

To give Haskell a competitive, native linear algebra library

That is, a library that supports:

  1. Basic vector operations ✓
  2. Efficient linear maps ✓
  3. Solving linear equations
  4. Inversion of finite-dimensional, linear isomorphisms (full-rank matrices) ✓
  5. Least-squares solution to under/overdetermined problems (?)
  6. Fast iterative methods (for large sparse systems, e.g. conjugate gradient) ✗
  7. Eigenvalue problems ✓
  8. Singular value decomposition ✗

At the moment, the only Haskell libraries that offer all of that appear to be hmatrix and eigen, which use bindings to the GSL (C) and Eigen (C++) libraries.

  • Eigen is a great project that uses the C++ template system for both an elegant interface and nice optimisations. However, this interface doesn't really translate that nicely over to Haskell. The C interface layer necessary forgets much of the template niceties.
  • GSL is extremely comprehensive and well-suited for binding to other languages, in particular dynamic languages. However, it's a bit of a messy big collection of all kind of algorithms, and not exactly the fastest library, which adds to the general overhead of calling to external code with C-marshalled memory.

To get rid of those pesky matrices

Linear algebra isn't really about matrices. Vectors aren't really arrays of numbers.

What LA is really about are points in vector spaces, and ultimately geometric relations between them. And many interesting spaces aren't even finite-dimensional.

Regardless of whether matrices are used for the internal operations – and in fact, it's not so clear if this is always a good idea! – matrices shouldn't dominate the API of a linear algebra library. Haskell has managed to bring a lot innovation to the world of programming languages. It can nicely work with infinite, lazy data structures. Hopefully it can also make a bit of a revolution in the field of linear algebra!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].