linearmap-category: Native, complete-ish, matrix-free linear algebra.
The term numerical linear algebra is often used almost synonymous with matrix modifications. However, what's interesting for most applications are really just points in some vector space and linear mappings between them, not matrices (which represent points or mappings, but inherently depend on a particular choice of basis / coordinate system).
This library implements the crucial LA operations like solving linear equations and eigenvalue problems, without requiring that the vectors are represented in some particular basis. This appoach offers: 1. conceptual elegance (only operations that are actually geometrically sensible will typecheck – this is far stronger than just confirming that the dimensions match, as some other libraries do) 2. opportunity to type tensors more expressively. E.g. instead of having a tensor with many dimensions that can easily be confused, one can have e.g. a space of images and take the tensor product with a linear batch space, etc.. 3. it opens up optimisation possibilities: the vectors can be unboxed, use dedicated sparse compression, possibly carry out the computations on accelerated hardware (GPU etc.). The spaces can in principle even be infinite-dimensional (e.g. function spaces).
The linear algebra algorithms in this package only require the vectors to support fundamental operations like addition, scalar products, double-dual-space coercion and tensor products. These are expressed by a hierarchy of type classes, none of which requires a basis representation. Basis representations are optional to allow storage in matrix-based backends, but this too is done in a way that allows e.g. taking the tensor product of a lazy function space with a static-dimensional matrix space with a low-dimensional channels space, and then only the inner dimensions will be stored in a packed format.
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
singletons3 | Whether to use a version of the singletons package after its split in a core- and base part | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- linearmap-category-0.6.0.1.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.2.0.0, 0.3.0.1, 0.3.2.0, 0.3.4.0, 0.3.5.0, 0.4.0.0, 0.4.0.1, 0.4.1.0, 0.4.2.0, 0.4.3.0, 0.5.0.0, 0.5.0.1, 0.6.0.0, 0.6.0.1 |
---|---|
Dependencies | base (>=4.8 && <5), call-stack (<0.5), constrained-categories (>=0.3 && <0.5), containers (<0.7), data-default-class (<0.2), free-vector-spaces (>=0.1.4 && <0.3), ghc-typelits-natnormalise (>=0.7 && <0.8), hashable (<1.5), ieee754 (>=0.7 && <0.9), lens (<5.3), linear (<1.23), manifolds-core (>=0.6.1.0 && <0.7), MemoTrie (<0.7), QuickCheck (>=2.11 && <2.15), semigroups (<0.21), singletons (>=2.7 && <3.3), singletons-base (>=3.0 && <3.3), tagged (<0.9), template-haskell (>=2.12 && <2.21), th-abstraction (>=0.4 && <0.6), transformers (<0.6), type-natural (>=1.0 && <1.4), vector (>=0.12 && <0.14), vector-space (>=0.11 && <0.18) [details] |
License | GPL-3.0-only |
Author | Justus Sagemüller |
Maintainer | (@) jsag $ hvl.no |
Revised | Revision 1 made by leftaroundabout at 2023-05-21T17:28:46Z |
Category | Math |
Home page | https://github.com/leftaroundabout/linearmap-family |
Uploaded | by leftaroundabout at 2023-05-20T14:17:45Z |
Distributions | |
Reverse Dependencies | 4 direct, 1 indirect [details] |
Downloads | 6287 total (53 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |