vectorsized alternatives and similar packages
Based on the "vector" category.
Alternatively, view vectorsized alternatives based on common mentions on social networks and blogs.

vector
An efficient implementation of Intindexed arrays (both mutable and immutable), with a powerful loop optimisation framework . 
vectorspace
Vector & affine spaces, linear maps, and derivatives 
vectorthunbox
Deriver for unboxed vectors using Template Haskell 
vectorbinaryinstances
Instances for the Haskell Binary class, for the types defined in the popular vector package. 
vectorspacepoints
A type for points, as distinct from vectors. 
vectorfunctorlazy
vectors supporting lazy fmap application; asymptotically faster in some cases 
vectorspacemap
vectorspace operations for finite maps using Data.Map
Static code analysis for 29 languages.
Do you think we are missing an alternative of vectorsized or a related project?
README
vectorsized
This package exports a newtype tagging the vectors from the vector
package with a typelevel natural representing their size. It also exports
functions from vector
whose size can be determined ahead of time,
appropriately retyped.
Currently, we provide sizetagged versions of the following:
Data.Vector.Vector
, inData.Vector.Sized
Data.Vector.Generic.Vector
, inData.Vector.Generic.Sized
Data.Vector.Storable.Vector
, inData.Vector.Storable.Sized
Data.Vector.Unboxed.Vector
, inData.Vector.Unboxed.Sized
We also provide mutable versions of each of the above. Additionally, we include functions for converting to and from 'unsized' vectors and lists, using CPSstyle existentials.
The code in this package is based on the initial work by Ben Gamari in a PR for
vulkan
.
How is this different to fixedvector
?
This package is fairly similar to fixedvector
, as both libraries are
designed to provide vectors of statically known length. However, the
implementations used are different, with different tradeoffs. vectorsized
uses a newtype wrapper around vectors from vector
, and is thus able to
handle vectors of arbitrary length. However, this approach requires us to carry
a runtime representation of length, which is a significant memory overhead for
small vectors. fixedvector
instead defines all functions as manipulations
of Churchencoded product types of the form ∀r. (a → a → r) → r
(for 2D
vectors), allowing it to work for both arbitrary product types (like data V2 a
= V2 a a
) and opaque lengthparameterized vectors. However, as a consequence
of this implementation choice, fixedvector
cannot handle vectors whose size
exceeds tens of elements.