comfort-array: Arrays where the index type is a function of the shape type
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
Arrays from the basic array
package are already very powerful
compared with arrays in other languages.
They may have any number of dimensions, are type safe
and defined in a uniform way using the Ix class
with free choice of the lower bounds (0, 1, or whatever you like).
This package goes one step further: The shape and the index type are different, but the index type is a type function of the shape type. This offers much more flexibility and type safety.
Some examples are:
Range
: Allow dynamic choice of lower and upper array bounds such as in theArray
s from thearray
package. You can combine it with other shapes in other dimensions. It allows you to describe the bounds of each dimension individually.Shifted
: Describe array bounds by start index and length. It is sometimes more natural to use these parameters. E.g. a non-negative index type likeWord
cannot represent-1
and thus cannot encode an empty range starting with index0
.Square
: An 2D array where both dimensions always have equal size.ZeroBased, OneBased
: Arrays with fixed lower bound, either 0 or 1, respectively.(:+:)
: The Append type constructor allows to respresent block arrays, e.g. block matrices.Arrays with indices like
LT
,EQ
,GT
and dummy shape.
The lapack
package defines even more fancy shapes
like tall rectangular matrices, triangular matrices and banded matrices.
Properties
Versions | 0.0, 0.0.1, 0.0.1.1, 0.1, 0.1.1, 0.1.2, 0.2, 0.2, 0.3, 0.3.1, 0.4, 0.4.1, 0.5, 0.5.1, 0.5.1.1, 0.5.2, 0.5.2.1, 0.5.2.2, 0.5.2.3, 0.5.3, 0.5.4, 0.5.4.1, 0.5.4.2, 0.5.5 |
---|---|
Change log | Changes.md |
Dependencies | base (>=4.5 && <5), deepseq (>=1.3 && <1.5), guarded-allocation (>=0.0 && <0.1), non-empty (>=0.3 && <0.4), primitive (>=0.6.4 && <0.7), QuickCheck (>=2 && <3), storable-record (>=0.0.1 && <0.1), transformers (>=0.3 && <0.6), utility-ht (>=0.0.10 && <0.1) [details] |
License | BSD-3-Clause |
Author | Henning Thielemann <haskell@henning-thielemann.de> |
Maintainer | Henning Thielemann <haskell@henning-thielemann.de> |
Category | Data Structures |
Home page | http://hub.darcs.net/thielema/comfort-array/ |
Source repo | this: darcs get http://hub.darcs.net/thielema/comfort-array/ --tag 0.2 head: darcs get http://hub.darcs.net/thielema/comfort-array/ |
Uploaded | by HenningThielemann at 2019-01-05T10:11:21Z |
Modules
[Index] [Quick Jump]
Downloads
- comfort-array-0.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees