vector: Efficient Arrays

[ bsd3, data, data-structures, library ] [ Propose Tags ]

An efficient implementation of Int-indexed arrays (both mutable and immutable), with a powerful loop fusion optimization framework .

It is structured as follows:

Data.Vector
Boxed vectors of arbitrary types.
Data.Vector.Unboxed
Unboxed vectors with an adaptive representation based on data type families.
Data.Vector.Storable
Unboxed vectors of Storable types.
Data.Vector.Primitive
Unboxed vectors of primitive types as defined by the primitive package. Data.Vector.Unboxed is more flexible at no performance cost.
Data.Vector.Generic
Generic interface to the vector types.

There is also a (draft) tutorial on common uses of vector.

Please use the project trac to submit bug reports and feature requests.

Changes in version 0.7.1

  • New functions: iterateN, splitAt

  • New monadic operations: generateM, sequence, foldM_ and variants

  • New functions for copying potentially overlapping arrays: move, unsafeMove

  • Specialisations of various monadic operations for primitive monads

  • Unsafe casts for Storable vectors

  • Efficiency improvements

Changes in version 0.7.0.1

  • Dependency on package ghc removed

Changes in version 0.7

  • New functions for freezing, copying and thawing vectors: freeze, thaw, unsafeThaw and clone

  • newWith and newUnsafeWith on mutable vectors replaced by replicate

  • New function: concat

  • New function for safe indexing: (!?)

  • Monoid instances for all vector types

  • Significant recycling and fusion improvements

  • Bug fixes

  • Support for GHC 7.0

Flags

Automatic Flags
NameDescriptionDefault
boundschecks

Enable bounds checking

Enabled
unsafechecks

Enable bounds checking in unsafe operations at the cost of a significant performance penalty

Disabled
internalchecks

Enable internal consistency checks at the cost of a significant performance penalty

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Versions [RSS] 0.1, 0.2, 0.3, 0.3.1, 0.4, 0.4.1, 0.4.2, 0.5, 0.6, 0.6.0.1, 0.6.0.2, 0.7, 0.7.0.1, 0.7.1, 0.8, 0.9, 0.9.1, 0.10, 0.10.0.1, 0.10.9.0, 0.10.9.1, 0.10.9.2, 0.10.9.3, 0.10.10.0, 0.10.11.0, 0.10.12.0, 0.10.12.1, 0.10.12.2, 0.10.12.3, 0.11.0.0, 0.12.0.0, 0.12.0.1, 0.12.0.2, 0.12.0.3, 0.12.1.0, 0.12.1.1, 0.12.1.2, 0.12.2.0, 0.12.3.0, 0.12.3.1, 0.13.0.0 (info)
Change log Changelog
Dependencies base (>=4 && <5), primitive (>=0.3.1 && <0.4) [details]
License BSD-3-Clause
Copyright (c) Roman Leshchinskiy 2008-2011
Author Roman Leshchinskiy <rl@cse.unsw.edu.au>
Maintainer Roman Leshchinskiy <rl@cse.unsw.edu.au>
Category Data, Data Structures
Home page http://code.haskell.org/vector
Bug tracker http://trac.haskell.org/vector
Uploaded by RomanLeshchinskiy at 2011-06-18T22:48:41Z
Distributions Arch:0.13.0.0, Debian:0.12.1.2, Fedora:0.12.3.1, FreeBSD:0.10.12.3, LTSHaskell:0.12.3.1, NixOS:0.12.3.1, Stackage:0.12.3.1, openSUSE:0.12.3.1
Downloads 408929 total (466 in the last 30 days)
Rating 2.75 (votes: 11) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]