eigen
Version 2.1.2 revision 2 uploaded by OlegSidorkin.
Package meta
- Synopsis
- Eigen C++ library (linear algebra: matrices, vectors, numerical solvers).
- Description
This module provides Haskell binding for Eigen C++ library.
- "Eigen is versatile."
- * It supports all matrix sizes, from small fixed-size matrices to arbitrarily large dense matrices, and even sparse matrices. * It supports all standard numeric types, including std::complex, integers, and is easily extensible to custom numeric types. * It supports various matrix decompositions and geometry features. * Its ecosystem of unsupported modules provides many specialized features such as non-linear optimization, matrix functions, a polynomial solver, FFT, and much more.
- "Eigen is fast."
- * Expression templates allow to intelligently remove temporaries and enable lazy evaluation, when that is appropriate. * Explicit vectorization is performed for SSE 234, ARM NEON, and AltiVec instruction sets, with graceful fallback to non-vectorized code. * Fixed-size matrices are fully optimized: dynamic memory allocation is avoided, and the loops are unrolled when that makes sense. * For large matrices, special attention is paid to cache-friendliness.
- "Eigen is reliable."
- * Algorithms are carefully selected for reliability. Reliability trade-offs are clearly documented and extremely safe decompositions are available. * Eigen is thoroughly tested through its own test suite (over 500 executables), the standard BLAS test suite, and parts of the LAPACK test suite.
- "Eigen is elegant."
- * The API is extremely clean and expressive while feeling natural to C++ programmers, thanks to expression templates. * Implementing an algorithm on top of Eigen feels like just copying pseudocode.
- "Eigen has good compiler support"
- as we run our test suite against many compilers to guarantee reliability and work around any compiler bugs. Eigen also is standard C++98 and maintains very reasonable compilation times.
Eigen is licensed under the MPL2, which is a simple weak copyleft license. Common questions about the MPL2 are answered in the official MPL2 FAQ at http://www.mozilla.org/MPL/2.0/FAQ.html.
Note that currently, a few features in Eigen rely on third-party code licensed under the LGPL: SimplicialCholesky, AMD ordering, and constrained_cg. Such features are explicitly disabled by compiling Eigen with the EIGEN_MPL2_ONLY preprocessor symbol defined.
Virtually any software may use Eigen. For example, closed-source software may use Eigen without having to disclose its own source code. Many proprietary and closed-source software projects are using Eigen right now, as well as many BSD-licensed projects.
Package documentation is based or replicate original Eigen documentation.
- Author
- Oleg Sidorkin <oleg.sidorkin@gmail.com>
- Bug reports
- n/a
- Category
- Data, Math, Algebra, Statistics, Algorithms, Numeric
- Copyright
- (c) 2013-2015, Oleg Sidorkin
- Homepage
- https://github.com/osidorkin/haskell-eigen
- Maintainer
- Oleg Sidorkin <oleg.sidorkin@gmail.com>
- Package URL
- n/a
- Stability
- n/a