dimensions-2.0.0.0: src/Numeric/Dimensions.hs
-----------------------------------------------------------------------------
-- |
-- Module : Numeric.Dimensions
-- Copyright : (c) Artem Chirkin
-- License : BSD3
--
--
-- Provides a set of data types to define and traverse through multiple dimensions.
-- The core types are `Dims ds` and `Idxs ds`,
-- which fix dimension sizes at compile time.
--
-- Higher indices go first, i.e. assumed enumeration
-- is i = i1*n1*n2*...*n(k-1) + ... + i(k-2)*n1*n2 + i(k-1)*n1 + ik
-- This corresponds to row-first layout of matrices and multidimenional arrays.
--
-----------------------------------------------------------------------------
module Numeric.Dimensions
( module Numeric.Dimensions.Dim
, module Numeric.Dimensions.Idx
, module Data.Type.List
, module Data.Constraint
) where
import Data.Constraint ((:-) (..), Dict (..), mapDict, (\\))
import Data.Type.List
import Numeric.Dimensions.Dim
import Numeric.Dimensions.Idx