BSD-3-Clause licensed by Christian Hoener zu Siederdissen, 2011-2021
This version can be pinned in stack with:PrimitiveArray-0.10.1.1@sha256:0ac720b12a4b67a9f24778a64baad671c70f6bd3851a30739eac2ebf90b035b8,6782

Module documentation for 0.10.1.1

  • Data
    • Data.PrimitiveArray
      • Data.PrimitiveArray.Checked
      • Data.PrimitiveArray.Class
      • Data.PrimitiveArray.Dense
      • Data.PrimitiveArray.HashTable
      • Data.PrimitiveArray.Index
        • Data.PrimitiveArray.Index.BitSet0
        • Data.PrimitiveArray.Index.BitSet1
        • Data.PrimitiveArray.Index.BitSetClasses
        • Data.PrimitiveArray.Index.Class
        • Data.PrimitiveArray.Index.IOC
        • Data.PrimitiveArray.Index.Int
        • Data.PrimitiveArray.Index.PhantomInt
        • Data.PrimitiveArray.Index.Point
        • Data.PrimitiveArray.Index.Subword
        • Data.PrimitiveArray.Index.Unit
      • Data.PrimitiveArray.Sparse
        • Data.PrimitiveArray.Sparse.BinSearch
        • Data.PrimitiveArray.Sparse.IntBinSearch

github action: CI github action: hackage

PrimitiveArray

generalized Algebraic Dynamic Programming Homepage

PrimitiveArray provides operations on multi-dimensional arrays. Internally, the representation is based on the vector library, while the multi-dimensional indexing follows repa.

Primitive arrays are designed to be used together with ADPfusion.

Contact

Christian Hoener zu Siederdissen
Leipzig University, Leipzig, Germany
choener@bioinf.uni-leipzig.de
http://www.bioinf.uni-leipzig.de/~choener/

Changes

0.11.1.1

  • version bump on DPutils

0.10.1.0

  • introduction of @Data.PrimitiveArray.Sparse@ which uses different sparsification options. The default is @D.P.S.Search@ based on binary search.
  • All array operations, pure or mutable are now based on a single, unified class. Mostly because mutable operations go via a data family anyway.

0.10.0.0

  • Rewrote Data.PrimitiveArray.Dense to accept all vector types using one interface. This is a breaking change, since @Unboxed@ becomes @Dense Data.Vector.Unboxed.Vector@, but now @Dense v@ accepts any @v@ as underlying storage vector. Breaking occurs only at user sites where the actual vector type needs to be specified. This tends to be very localized.

0.9.1.1

  • OrderedBits version bump

0.9.1.0

  • Arbitrary instance(s), field lenses that are probably not a good idea (don’t use them!)

0.9.0.0

  • large-scale changes
  • associated data families for bounds

0.8.1.0

  • inclusion of Upperlimit data family to simplify declaration of upper limits

0.8.0.1

  • PointL delays inlining to phase 0 for table filling. This is part of the close-to-C optimization effort for linear languages.
  • disabling smallcheck until I fix how things are generated

0.8.0.0

  • renamed Interface (Iter) to Boundary (Boundary)
  • Typeable instances for Dense primitive arrays
  • EdgeBoundary index structure
  • changes and fixes to quickcheck/smallcheck
  • added ScoreMatrix module with simple score and distance matrix structure (requires log-domain)

0.7.2.0

  • JSONKey (To/From) for index types.

0.7.1.0

  • minor updates to dependencies
  • tasty framework
  • Subword/upper triangular indexing provided by DPutils

0.7.0.1

  • Data.PrimitiveArray.Checked to capture index out-of-bounds problems

0.7.0.0

  • vector <= 0.11 support; including compatibility layer
  • redesigned Index structures (for dealing with Inside/Outside/Complement)

0.6.1.1

  • Hashable instances for all index structures
  • Hashable instances for Unboxed and Boxed arrays. These require Hashable instances for vectors, which are not available by default

0.6.1.0

  • OrderedBits < 0.0.1
  • travis.yml update

0.6.0.0

  • moved primitive array classes to Data.PrimitiveArray.Class
  • added from / to lenses
  • Field1 .. Field6 lenses for indices (Z:.a:.b…) (with Z being Field0)
    • lens stuff currently commented out; aiming to have an extra package [lens is fairly heavy]
  • FillTables should work now (with PointL, Subword)
  • freezing of whole stacks of (Z:.mutarr:.mutarr:. …) tables
  • explicit ‘Shape Subword’; this allows for simpler code in a number of places and is especially useful for CYK-style algorithms that have a single-dimensional upper-triangular matrix.
  • rangeStream of Extshape is new and used by the FillTables module
  • Binary, Cereal, Aeson instances for indices and immutable tables
  • orphan instances of Binary, Cereal, Aeson for Z, and (:.)
  • topmostIndex returns the final index position for CYK-style (bottom to top) parsing
  • removed Data.Array.Repa.Index.Point (we have PointL, PointR in Points.hs)
  • added Data.Array.Repa.Index.Set (for sets with an interface, used by Hamiltonian path problems)
  • Data.Array.Repa.Index.Outside is now just a newtype wrapped around other Index types. We want to be able to say “a Subword, but for Outside algorithms”
  • travis-ci integration

0.5.4.0

  • actually implemented PointR

  • added the rather important strictness annotation for mutable arrays in .Zero

0.5.3.0

  • fixed vector-th-unbox problem