array is:package
Not on Stackage, so not searched.
Builders for arrays
Lists of chunks
Lists of chunks. This is similar to the Cons List provided by
Data.List, but it is more useful as a target for a builder
since the chunks are cache coherent.
Not on Stackage, so not searched.
A simple interpreter for arrayForth, the language used on GreenArrays chips.
Not on Stackage, so not searched.
Extra foreign primops for primitive arrays
Not on Stackage, so not searched.
Haskell bindings to the ArrayFire general-purpose GPU library
Not on Stackage, so not searched.
Memory-efficient ArrayList implementation
Not on Stackage, so not searched.
IsList instances of Array for OverloadedLists extension
Documentation not found, so not searched.
Memoization combinators using arrays for finite sub-domains of functions
Not on Stackage, so not searched.
Primitive functions for updating many elements in mutable arrays at once
Not on Stackage, so not searched.
Unboxed references, dynamic arrays and more
Arrays where the index type is a function of the shape type
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
Shape example types are:
- Range: Allow dynamic choice of lower and upper array
bounds such as in the Arrays from the array 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 like Word cannot represent -1
and thus cannot encode an empty range starting with index
0.
- ZeroBased, OneBased: Arrays with fixed lower bound,
either 0 or 1, respectively.
- Cyclic: Indices with wrap-around semantics.
- Zero, (): Arrays with fixed size 0 or 1,
respectively.
- Enumeration: Arrays with indices like LT,
EQ, GT and a shape of fixed size.
- NestedTuple: Arrays with shapes that are compatible to
nested tuples like (a,(a,a)) and indices like fst
and fst.snd.
- (::+): The Append type constructor allows to respresent
block arrays, e.g. block matrices. It also allows to represent
non-empty arrays via ()::+sh.
- Set: Use an arbitrary ordered set as index set.
- Map: Concatenate a set of shapes. In a higher dimensional
array it can be used for block matrices with a dynamic number of
blocks but block sizes of the same shape type.
- Triangular: A 2D array with the shape of a lower or upper
triangular matrix.
- Simplex: Simplices of any dimension, where the dimension
is encoded in the type. An index is a tuple of monotonic ordered
sub-indices.
- Square: A 2D array where both dimensions always have
equal size.
- Cube: A 3D array where all three dimensions always have
equal size.
- Tagged: Statically distinguish shapes and indices that
are isomorphic.
With our
Array type you can perform
- Fast Linear Algebra using the packages comfort-blas and
lapack. The lapack package defines even more fancy
shapes like tall rectangular matrices, triangular matrices and banded
matrices.
- Fast Fourier Transforms using the package
comfort-fftw
- Fast Linear Programming using the packages comfort-glpk,
coinor-clp, highs-lp
- Efficient Array Processing via LLVM Just-In-Time code generation
using the package knead.
See also
comfort-graph for a Graph data structure, with
non-Int node identifiers and flexible edge types.
Not on Stackage, so not searched.
Efficient multidimensional arrays
A library that can be used for multiple Ord a => a -> b transformations.
A library that can be used as a case ... of construction
replacement for various cases. Since the 0.2.0.0 version also uses the
cuckoo hashtables in the respective module. Since the 0.3.0.0 version
the hashing functionality moved to the separate package
mmsyn2-hashable.
A C-compatible array library.
A C-compatible array library.
Provides both an immutable and mutable (in the IO monad) interface.
Includes utilities for multi-dimensional arrays, slicing and norms.
Memory is 16-byte aligned by default to enable use of vector
instructions.
Compatibility layer for Data.Array.Byte
Compatibility layer for
Data.Array.Byte, providing boxed
wrappers for
ByteArray# and
MutableByteArray# and
relevant instances for GHC < 9.4. Include it into your Cabal file:
build-depends: base
if impl(ghc < 9.4)
build-depends: data-array-byte
and then
import Data.Array.Byte unconditionally.
Not on Stackage, so not searched.
A library to work with the basic Ukrainian phonetics and syllable segmentation.
Not on Stackage, so not searched.
Permutations and universal set related functions for the phonetic-languages series
Not on Stackage, so not searched.
Pretty-printing for primitive arrays
Additional shape types for the comfort-array package
Some extra array shape types additional to the ones in the
comfort-array package. These require some more package
dependencies and use type-encoded natural numbers.
- Static.ZeroBased: Like Shape.ZeroBased but with
type-encoded number as size.
- Simplex: Simplices of any dimension, where the dimension
is encoded in the type. Only a private module for demonstration.
Production-ready implementation in comfort-array.
Multi-dimensional arrays.
This package provides an interface into the
numhask API, and
both type- and value-level shape manipulation routines.
Usage
>>> {-# LANGUAGE RebindableSyntax #-}
>>> import NumHask.Prelude
>>> import NumHask.Array
In situations where shape is only known at runtime, a clear module
configuration is:
>>> import NumHask.Array.Shape
>>> import qualified NumHask.Array.Fixed as F
>>> import qualified NumHask.Array.Dynamic as D
Not on Stackage, so not searched.
Constraints to filter the needed permutations
Not on Stackage, so not searched.
Common functionality for 'with-tuples' and old version of properties.
Not on Stackage, so not searched.
Prepares Ukrainian text to be used as a PhLADiPreLiO text
Helper modules for CArray wrappers to BLAS and LAPACK
Netlib is a collection of packages for efficient numeric linear
algebra. Most prominent parts of Netlib are BLAS and LAPACK. These
packages contain functions for matrix computations, solution of
simultaneous linear equations and eigenvalue problems.
This package provides definitions shared by the packages
blas-carray and lapack-carray.