{-# LANGUAGE ExplicitNamespaces #-} {-# LANGUAGE PatternSynonyms #-} module Data.Array.Nested ( -- * Ranked arrays Ranked(Ranked), ListR(ZR, (:::)), IxR(.., ZIR, (:.:)), IIxR, ShR(.., ZSR, (:$:)), IShR, rshape, rrank, rsize, rindex, rindexPartial, rgenerate, rsumOuter1, rsumAllPrim, rtranspose, rappend, rconcat, rscalar, rfromVector, rtoVector, runScalar, remptyArray, rrerank, rreplicate, rreplicateScal, rfromListOuter, rfromList1, rfromList1Prim, rtoListOuter, rtoList1, rfromListLinear, rfromListPrimLinear, rtoListLinear, rslice, rrev1, rreshape, rflatten, riota, rminIndexPrim, rmaxIndexPrim, rdot1Inner, rdot, rnest, runNest, -- ** Lifting orthotope operations to 'Ranked' arrays rlift, rlift2, -- ** Conversions rtoXArrayPrim, rfromXArrayPrim, rcastToShaped, rtoMixed, rfromOrthotope, rtoOrthotope, -- * Shaped arrays Shaped(Shaped), ListS(ZS, (::$)), IxS(.., ZIS, (:.$)), IIxS, ShS(.., ZSS, (:$$)), KnownShS(..), sshape, srank, ssize, sindex, sindexPartial, sgenerate, ssumOuter1, ssumAllPrim, stranspose, sappend, sscalar, sfromVector, stoVector, sunScalar, -- TODO: sconcat? What should its type be? semptyArray, srerank, sreplicate, sreplicateScal, sfromListOuter, sfromList1, sfromList1Prim, stoListOuter, stoList1, sfromListLinear, sfromListPrimLinear, stoListLinear, sslice, srev1, sreshape, sflatten, siota, sminIndexPrim, smaxIndexPrim, sdot1Inner, sdot, snest, sunNest, -- ** Lifting orthotope operations to 'Shaped' arrays slift, slift2, -- ** Conversions stoXArrayPrim, sfromXArrayPrim, stoRanked, stoMixed, sfromOrthotope, stoOrthotope, -- * Mixed arrays Mixed, IxX(.., ZIX, (:.%)), IIxX, ShX(.., ZSX, (:$%)), KnownShX(..), StaticShX(.., ZKX, (:!%)), SMayNat(..), mshape, mrank, msize, mindex, mindexPartial, mgenerate, msumOuter1, msumAllPrim, mtranspose, mappend, mconcat, mscalar, mfromVector, mtoVector, munScalar, memptyArray, mrerank, mreplicate, mreplicateScal, mfromListOuter, mfromList1, mfromList1Prim, mtoListOuter, mtoList1, mfromListLinear, mfromListPrimLinear, mtoListLinear, mslice, mrev1, mreshape, mflatten, miota, mminIndexPrim, mmaxIndexPrim, mdot1Inner, mdot, mnest, munNest, -- ** Lifting orthotope operations to 'Mixed' arrays mlift, mlift2, -- ** Conversions mtoXArrayPrim, mfromXArrayPrim, mtoRanked, mcastToShaped, -- * Array elements Elt, PrimElt, Primitive(..), KnownElt, -- * Further utilities / re-exports type (++), Storable, SNat, pattern SNat, pattern SZ, pattern SS, Perm(..), IsPermutation, KnownPerm(..), NumElt, FloatElt, Rank, Product, Replicate, MapJust, ) where import Prelude hiding (mappend, mconcat) import Data.Array.Mixed.Internal.Arith import Data.Array.Mixed.Permutation import Data.Array.Mixed.Shape import Data.Array.Mixed.Types import Data.Array.Nested.Internal.Convert import Data.Array.Nested.Internal.Mixed import Data.Array.Nested.Internal.Ranked import Data.Array.Nested.Internal.Shape import Data.Array.Nested.Internal.Shaped import Foreign.Storable import GHC.TypeLits