ug_UV      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU =VWXYZ[\]^_`%Querying scalar type representations  - ab+All scalar element types implement Eq, Ord & Enum cde(Bounded element types implement Bounded fgh$Numeric element types implement Num & Real ijk3Non-numeric types supported in array computations. lmnopq6Floating-point types supported in array computations. rstuvScalar type representation  - 0Integral types supported in array computations. wxyz{|}~ Scalar types  ------------- Reified dictionaries  - Extract reified dictionaries  - Showing type names  - S VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<VWWXYYZ[[\]]^__`aabdccdegffghjiijkponmllmnopqutsrrstuv~}|{zyxwwxyz{|}~ Mutable array representation Immutable array representation >Safe combination of creating and fast freezing of array data.  LGeneralised array index, which may index only in a subset of the dimensions  of a shape. Slice representation  - 8Class of slice representations (which are nested pairs) Index representation  - 8Class of index representations (which are nested pairs) +Shorthand for common shape representations Arrays  ------- FRepresentation type for multi-dimensional arrays for array processing K If device and host memory are separate, arrays will be transferred to the J device when necessary (if possible asynchronously and in parallel with L other tasks) and cached on the device if sufficient memory is available. Array indexing 1Create an array from its representation function  1 !Indices as n-tuples "#Shape constraints and indexing  - Shape elements $%&'()!Shorthand for common shape types *Vectors +Scalars ,Surface arrays  --------------- .Multi-dimensional arrays for array processing -."Surface types (tuples of scalars) $ ---------------------------------- 6Identifier for entire dimensions in slice descriptors /.Representation change for array element types 0 ---------------------------------------------- Type representation mapping The idea is to use '()' and '(,)'* as type-level nil and snoc to construct  snoc-lists of types. 9Convert surface array representation to the internal one 9Convert internal array representation to the surface one Yield an array's shape Array indexing 0 Convert an  to an accelerated array. 1#Convert an accelerated array to an  2KConvert a list (with elements in row-major order) to an accelerated array. 3;Convert an accelerated array to a list in row-major order. / !"#$%&'()*+,-./0123/  !"#"#$%&'()*+,-.//0123IPrimitive scalar operations Primitive GPU constants )Expression without free scalar variables KOpen expressions using de Bruijn indices for variables ranging over tuples G of scalars and arrays of tuples. All code, except Cond, is evaluated 6 eagerly. N-tuples are represented as nested pairs.     'Function without free scalar variables  Function abstraction -Closed array expression aka an array program @Collective array computations parametrised over array variables % represented with de Bruijn indices. J We have no fold, only scan which returns the fold result and scan array. L We assume that the code generator is clever enough to eliminate any dead 4 code, when only one of the two values is needed. @ Scalar functions and expressions embedded in well-formed array I computations cannot contain free scalar variable indices. The latter J cannot be bound in array computations, and hence, cannot appear in any  well-formed program. D The let-form is used to represent the sharing discovered by common J subexpression elimination as well as to control evaluation order. (We M need to hoist array expressions out of scalar expressions - they occur in 8 scalar indexing and in determining an arrays shape.)  !"I      !"I!          "!!" #$%&'()*+,-.Show instances  ---------------  G/1Conversion from HOAS to de Bruijn expression AST  - 01423456789:;5<=>?@ABCDEFGHI2Conversion from HOAS to de Bruijn computation AST  - @Convert an array expression with given array environment layout J"Convert a closed array expression KL:Convert an open expression with given environment layouts M5Convert an expression closed wrt to scalar variables NConvert a closed expression OConvert a unary functions PConvert a binary functions Q9Smart constructors to construct representation AST forms ; --------------------------------------------------------- RS5Smart constructors to construct HOAS AST expressions 7 ----------------------------------------------------- 6TUVWXYZ[\]^_`abcdefghijklmnopqr<423456789:;5<=>?@ABCDEFGHJNS6TUVWXYZ[\]^_`abcdefghijklmnopqr<4 ;:9876543223456789:;5 HGFEDCBA@?>=<<=>?@ABCDEFGHJNS6TUVWXYZ[\]^_`abcdefghijklmnopqr>stu7vwxyz{|}~777  89:;<=>?@ABCDEFGHIJKLMNOPQRS45689:;<=>?@ABCDEFGHIJKLMNOPQRS89:;<=>?@ABCDEFGHIJKLMNOPQRSTUU  !"#$%&'()*+,-./012345689:;<=>?@ABCDEFGHIJKLMNOPQRSTUU ,+*-!"#./ )('&%$UT012354689:<;=>?@ABCDEFGHILKJMNOPQRSTU      !"!#!$!%!&!'!(!)!*!+!,!-!./0123456789:;<=>?@ABBCDEF G H IJ K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e fghijklmnopqrstuvwxyz{|}~01234567f>?;<=@@Xf@YXGH              ! " # $ % & '          (            ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  accelerate-0.5.0.0Data.Array.Accelerate!Data.Array.Accelerate.InterpreterData.Array.Accelerate.Type Data.Array.Accelerate.Array.Data*Data.Array.Accelerate.Array.Representation#Data.Array.Accelerate.Array.Delayed!Data.Array.Accelerate.Array.SugarData.Array.Accelerate.ASTData.Array.Accelerate.PrettyData.Array.Accelerate.SmartData.Array.Accelerate.DebugData.Array.Accelerate.Languageghc-primGHC.BoolBool GHC.TypesCharDoubleFloatIntbaseGHC.IntInt8Int16Int32Int64GHC.WordWordWord8Word16Word32Word64Foreign.C.TypesCCharCSCharCUCharCShortCUShortCIntCUIntCLongCULongCLLongCULLongCFloatCDoubleArraysSliceIxSliceCoSliceSliceDim sliceIndexIxdimsizeDIM5DIM4DIM3DIM2DIM1DIM0VectorScalarArrayElemAll fromIArraytoIArrayfromListtoListExpAccconstantrunuseunitreshape replicateslicezipmapzipWithscanfoldpermute backpermute?!shape==*/=*<*>=*>*<=*maxmin&&*||*not boolToIntignore indexArray arrayShapeIsScalar scalarType IsBounded boundedTypeIsNumnumTypeIsNonNum nonNumType IsFloating floatingType IsIntegral integralType ScalarTypeNonNumScalarType NumScalarType BoundedTypeNonNumBoundedTypeIntegralBoundedTypeNumTypeFloatingNumTypeIntegralNumType NonNumType TypeCUChar TypeCSChar TypeCCharTypeCharTypeBool FloatingType TypeCDouble TypeCFloat TypeDouble TypeFloat IntegralType TypeCULLong TypeCLLong TypeCULong TypeCLong TypeCUIntTypeCInt TypeCUShort TypeCShort TypeWord64 TypeWord32 TypeWord16 TypeWord8TypeWord TypeInt64 TypeInt32 TypeInt16TypeInt8TypeInt NonNumDict FloatingDict IntegralDict integralDict floatingDict nonNumDict$fShowIntegralType ArrayElemindexArrayData newArrayData readArrayDatawriteArrayDataunsafeFreezeArrayData GArrayDataMutableArrayData ArrayData runArrayData SliceIndex SliceFixedSliceAllSliceNil intersectindexiter rangeToShape shapeToRangenewArray DelayableDelayeddelayforce DelayedPair DelayedArrayshapeDArepfDA DelayedUnit ArraysRepr fromArraystoArrays SliceIxConvconvertSliceIndex FromShapeRepr FromShapeBaseShape ShapeBasefromElemtoElem fromElem'toElem' ElemRepr'ElemRepr fromArraytoArray array-0.3.0.1Data.Array.BaseIArrayPrimFun PrimBoolToInt PrimIntFloatPrimTruncFloatIntPrimRoundFloatIntPrimChrPrimOrdPrimLNotPrimLOrPrimLAndPrimMinPrimMaxPrimNEqPrimEqPrimGtEqPrimLtEqPrimGtPrimLt PrimRecipPrimFDivPrimBNotPrimBXorPrimBOrPrimBAndPrimModPrimIDivPrimRemPrimQuotPrimSigPrimAbsPrimNegPrimMulPrimSubPrimAdd PrimConstPrimPi PrimMaxBound PrimMinBoundOpenExp IndexScalarPrimAppCondSndFstPairConstVarFunOpenFunLamBodyOpenAcc BackpermutePermuteScanFoldZipWithMapIndex ReplicateReshapeUnitUseAvarLet2LetIdxSuccIdxZeroIdx prettyAcc prettyArrOpprettyAccParens prettyFun prettyExp prettyTuple prettyConst prettyPrim prettyArraynoParensidxToInt $fShowOpenAccLayout PushLayout EmptyLayoutTagSndArrayFstArrayconvertOpenAcc convertAccprjIdxconvertOpenExp convertExpconvertClosedExp convertFun1 convertFun2mkIndex mkReplicateunpair mkMinBound mkMaxBoundmkPimkAddmkSubmkMulmkNegmkAbsmkSigmkQuotmkRemmkIDivmkModmkBAndmkBOrmkBXormkBNotmkFDivmkRecipmkLtmkGtmkLtEqmkGtEqmkEqmkNEqmkMaxmkMinmkLAndmkLOrmkLNot mkBoolToIntValPushEmptyprj evalOpenAccevalAccunitOp reshapeOp replicateOpindexOpmapOp zipWithOpfoldOpscanOp permuteOp backpermuteOp evalOpenFunevalFun evalOpenExpevalExp evalPrimConstevalPrimevalPairevalFstevalSndevalLAndevalLOrevalLNotevalOrdevalChrevalRoundFloatIntevalTruncFloatInt evalIntFloat evalBoolToInt evalMinBound evalMaxBoundevalPievalAddevalSubevalMulevalNegevalAbsevalSigevalQuotevalRemevalIDivevalModevalBAndevalBOrevalBXorevalBNotevalFDiv evalRecipevalLtevalGtevalLtEqevalGtEqevalEqevalNEqevalMaxevalMindumpAccdumpExp