fixed-vector
Generic vectors with statically known size.
LTS Haskell 22.33: | 1.2.3.0 |
Stackage Nightly 2024-09-07: | 1.2.3.0 |
Latest on Hackage: | 1.2.3.0 |
fixed-vector-1.2.3.0@sha256:818191fa5d6198d270a9ca42f547641ca6ad9fc425dc6e013d34737a905957ed,2739
Module documentation for 1.2.3.0
Generic library for vectors with statically known size. Implementation is based on http://unlines.wordpress.com/2010/11/15/generics-for-small-fixed-size-vectors/ Same functions could be used to work with both ADT based vector like
data Vec3 a = a a a
Tuples are vectors too:
sum (1,2,3)
6
Vectors which are represented internally by arrays are provided by library. Both boxed and unboxed arrays are supported.
Library is structured as follows:
Data.Vector.Fixed Generic API. It's suitable for both ADT-based vector like Complex and array-based ones.
Data.Vector.Fixed.Cont Continuation based vectors. Internally all functions use them.
Data.Vector.Fixed.Mutable Type classes for array-based implementation and API for working with mutable state.
Data.Vector.Fixed.Unboxed Unboxed vectors.
Data.Vector.Fixed.Boxed Boxed vector which can hold elements of any type.
Data.Vector.Fixed.Storable Unboxed vectors of Storable types.
Data.Vector.Fixed.Primitive Unboxed vectors based on pritimive package.
Changes
Changes in 1.2.3.0
-
Pattern
V1
added -
COMPLETE
pragmas added for patternsV1
,V2
,V3
,V4
Changes in 1.2.2.1
- Newtype
StorableViaFixed
for derivingStorable
instances added.
Changes in 1.2.1.1
- Fixed bug in
any
(#18)
Changes in 1.2.1.0
-
Support for GHC7.10 dropped.
-
Pattern synonyms
V2
,V3
,V4
added. -
replicate{,M}
andgenerate{,M}
added. -
Functions
mk6
,mk7
,mk8
added.
Changes in 1.2.0.0
Show
instance for data type now respect precedence.
Changes in 1.1.0.0
- GHC8.4 compatibility release. Semigroup instances added and semigroup dependency added for GHC7.10
Changes in 1.0.0.0
-
Vector length now expressed as GHC’s type level literals. Underlying implementation still uses Peano numbers to perform induction. This doesn’t change user facing API much. Notably
FlexibleInstances
andGADTs
/TypeFamiles
are now required to writeArity
constraint. -
Monad
constraint is relaxed toApplicative
where applicable. Duplicate functions are removed (sequence
&sequenceA
→sequence
, etc) -
Module
Data.Vector.Fixed.Monomorphic
is dropped. -
Construction of N-ary vectors reworked.
Make
type class is gone. -
Boxed arrays now use SmallArrays internally.
-
overlaps
is removed from API for mutable vectors. -
Data.Vector.Fixed.defaultRnf
is added. -
Data.Vector.Fixed.Mutable.lengthI
is dropped.
Changes in 0.9.0.0
-
Simplification of
Arity
type class. This change shouldn’t affect client code. -
Support for GHC < 7.8 is droppped.
-
Fixed bug in
any
.
Changes in 0.8.1.0
find
function added.
Changes in 0.8.0.0
-
NFData instances for all data type.
-
Storable instances for all data types and default implementation of Storable’s methods added.
-
{i,}zipWith3 and {i,}zipWithM_ added.
Changes in 0.7.0.3
- GHC 7.10 support
Changes in 0.7.0.0
-
Type level addition for unary numbers added
-
concat
function added -
More consistent naming for functions for working with
Fun
Changes in 0.6.4.0
- Isomorphism between Peano numbers and Nat added. (GHC >= 7.8)
Changes in 0.6.3.1
- Documentation fixes.
Changes in 0.6.3.0
- Left scans added.
Changes in 0.6.2.0
-
Vec1
type synonym for boxed/unboxed/etc. vectors added. -
Vector instance for Data.Typeable.Proxy (GHC >= 7.8)
Changes in 0.6.1.1
- GHC 7.8 support
Changes in 0.6.1.0
distribute
collect
and their monadic variants added.
Changes in 0.6.0.0
-
Data instance for all array-based vectors added.
-
Storable instance added for
Storable.Vec
. -
Monoid instances added for all vectors.
Changes in 0.5.1.0
- Zero-element vector
Empty'
is added.
Changes in 0.5.0.0
-
ContVec
now behaves like normal vector.Arity
type class is reworked. `Id’ data type is removed. -
Construction of vector reworked.
-
reverse
,snoc
,consV
,fold
andfoldMap
are added. -
Type changing maps and zips are added.
-
Vector indexing with type level numbers is added.
-
Twan van Laarhoven’s lens added. (
element
andelementTy
) -
Ord instances added to vector data types defined in the library.
Changes in 0.4.4.0
- Functor and Applicative instances are added to Id.
Changes in 0.4.3.0
- Typeable instance for S and Z added.
Changes in 0.4.2.0
-
1-tuple
Only
added. -
fromList'
and fromListM added. -
apply functions from Arity type class generalized.
Changes in 0.4.1.0
-
cons
function added. -
Getter for
Fun
data type added.
Changes in 0.4.0.0
-
Wrapper for monomorphics vectors is added.
-
VecList
is reimplemented as GADT and constructors are exported. -
Constructor of
ContVecT
is exported -
Empty
ContVecT
is implemented asempty
. -
Typeable, Foldable and Traversable instances are added where appropriate
Changes in 0.3.0.0
-
Vector type class definition is moved to the D.V.F.Cont module.
-
Indexing function restored.
-
unfoldr
added.
Changes in 0.2.0.0
-
Continuation-based vector added.
-
Right fold added.
-
tailWith, convertContinuation, and ! from Data.Vector.Fixed removed.
-
Vector instance for tuples added.
Changes in 0.1.2
-
imap, imapM, ifoldl, ifoldM, zipWithM, izipWithM functions are added.
-
VectorN type class added.
Changes in 0.1.1
- foldM and tailWith added. Type synonyms for numbers up to 6 are added. Fun is reexported from Data.Vector.Fixed.