[U]5      !"#$%&'()*+,-./01234 non-portable experimentalEdward Kmett <ekmett@gmail.com>None Key i j6 logically orders the keys as if the bits of the keys i and j = were interleaved. This is equivalent to storing the keys in " Morton Order". Key 100 200 ^. _1100Key 100 200 ^. _2200 Swaps the key components around swap (Key 100 200) Key 200 100>compare the position of the most significant bit of two words  compares 4 7EQ compares 7 9LT compares 9 7GT a b returns 52 when the position of the most significant bit of a9 is less than the position of the most signficant bit of b. lts 4 10Truelts 4 7Falselts 7 8True a b returns 52 when the position of the most significant bit of aE is less than or equal to the position of the most signficant bit of b. les 4 10Trueles 4 7Trueles 7 4Trueles 10 4False a b returns 52 when the position of the most significant bit of a8 is equal to the position of the most signficant bit of b. eqs 4 7Trueeqs 4 8Falseeqs 7 4Trueeqs 8 4False   a b returns 52 when the position of the most significant bit of a< is not equal to the position of the most signficant bit of b. nes 4 7Falsenes 4 8Truenes 7 4Falsenes 8 4True   a b returns 52 when the position of the most significant bit of a? is greater than to the position of the most signficant bit of b. gts 4 10Falsegts 4 7Falsegts 7 4Falsegts 10 4True   a b returns 52 when the position of the most significant bit of aH is greater than or equal to the position of the most signficant bit of b. ges 4 10Falseges 4 7Trueges 7 4Trueges 10 4True 6789:;<=   6789:;None >?@ABCDEFGHIJKLMNOPQRS    >?@ABCDEFGHIJKLMNOPQRS non-portable experimentalEdward Kmett <ekmett@gmail.com>None 1Bootstrapped _catenable_ non-empty pairing heaps \Append two heaps where we know every key in the first occurs before every key in the second 8head $ singleton (Key 1 1) 1 `fby` singleton (Key 2 2) 2 (Key 1 1,1)"Interleave two heaps making a new  8head $ singleton (Key 1 1) 1 `mix` singleton (Key 2 2) 2 (Key 1 1,1)head $ singleton (Key 1 1) 1 (Key 1 1,1)tail $ singleton (Key 1 1) 1Nothingsingleton (Key 1 1) 1Heap (Key 1 1) 1 [] [] []Build a % from a jumbled up list of elements. Build a K from an list of elements that must be in strictly ascending Morton order.  Convert a  into a T@ folding together values with identical keys using the supplied  addition operator.  Convert a  into a T@ folding together values with identical keys using the supplied F addition operator that is allowed to return a sparse 0, by returning U. This is an internal @ fusion combinator used to multiply on the right by a singleton / value pair. This is an internal @ fusion combinator used to multiply on the right by a singleton / value pair. VWXYZ[\]^_`abc  VZYXW[\]^_`abc non-portable experimentalEdward Kmett <ekmett@gmail.com>NonedThe state for T fusion that is used by !. )This form permits cancellative addition. RThis is the internal stream fusion combinator used to merge streams for addition. )This form permits cancellative addition. !RThis is the internal stream fusion combinator used to merge streams for addition. defghi ! !! dihgfe ! non-portable experimentalEdward Kmett <ekmett@gmail.com>None%(Return whether or not the element is 0. It may be okay to never return 5 , but you won't be ; able to thin spurious zeroes introduced into your matrix. &?Remove results that are equal to zero from a simpler function. When used with addWith or  multiplyWith's additive argument 2 this can help retain the sparsity of the matrix. '*Add two matrices. By default this assumes % can  possibly return 5 after an addition. For some ! ring-like structures, this doesn't hold. There you can  use:    ' = 3 (j) By default this will use   ' = k l & (j) (Convert from a  to a m. :If addition of non-zero valus in your ring-like structure % cannot yield zero, then you can use    ( =  (j) #instead of the default definition:   ( =  l & (j) )>bundle up the matrix in a form suitable for vector-algorithms *Access the keys of a matrix +Access the keys of a matrix ,Build a sparse matrix. -Transpose a matrix . singleton; makes a matrix with a singleton value at a given location /ident n makes an n x n identity matrix ident 4:fromList [(Key 0 0,1),(Key 1 1,1),(Key 2 2,1),(Key 3 3,1)]0The empty matrix empty :: Mat Int fromList []13Count the number of non-zero entries in the matrix size (ident 4)42null (empty :: Mat Int)Truen assuming l <= h . Returns h if the predicate is never True over [l..h) 3_Merge two matrices where the indices coincide into a new matrix. This provides for generalized T addition, but where the summation of two non-zero entries is necessarily non-zero. k_Merge two matrices where the indices coincide into a new matrix. This provides for generalized  addition. Return U for zero. 4QMultiply two matrices using the specified multiplication and addition operation. '"#$%&'()*+o,-./012npq3k4rstuvwxyz{|}~"#$%&'()*+,-./01234"#,.-/012$%&'(34)*+""#$%&'()*+o,-./012npq3k4rstuvwxyz{|}~       !"#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnXopqXrstWuvwxyz{|}~ sparse-0.7Sparse.Matrix.Internal.KeySparse.Matrix.Internal.VectoredSparse.Matrix.Internal.HeapSparse.Matrix.Internal.Fusion Sparse.Matrixvector-0.10.0.1Data.Vector.Unboxed.BaseVectorMVectorKeyswapcomparesltsleseqsnesgtsges V_Complex MV_ComplexVectoredVecHeapfbymixheadtail singletonfromList fromAscListstreamHeapWithstreamHeapWith0timesSingletonsingletonTimesmergeStreamsWith0mergeStreamsWithMatEq0isZerononZeroaddMatsaddHeap_Matkeysvalues transposeidentemptysizenulladdWith multiplyWithghc-prim GHC.TypesTrue$fVectorVectorKey$fMVectorMVectorKey $fUnboxKey$fField2KeyKeyab$fField1KeyKeyab$fOrdKeyV_KeyMV_Key$fVectoredComplex$fMonoidV_Complex $fEqV_Complex$fReadV_Complex$fShowV_Complex$fVectorV_ComplexComplex$fMVectorMV_ComplexComplex$fVectoredInteger$fVectoredWord64$fVectoredWord32$fVectoredWord16$fVectoredWord8$fVectoredWord $fVectoredKey$fVectoredInt64$fVectoredInt32$fVectoredInt16$fVectoredInt8 $fVectoredInt$fVectoredFloat$fVectoredDouble $fVectored()!Data.Vector.Fusion.Stream.MonadicStreambase Data.MaybeNothing HeapStateFinishedFinalReadyStartfbyspopspop$fTraversableWithIndexKeyHeap$fTraversableHeap$fFoldableWithIndexKeyHeap$fFoldableHeap$fFunctorWithIndexKeyHeap $fFunctorHeap MergeState MergeStartMergeRightEndedMergeLeftEndedMergeRMergeLGHC.Num+addWith0GHC.Base$Data.Vector.Fusion.StreamsearcheachVsplit1split2$fNumMat$fEq0Mat $fVectoredMat $fIxedfMat$fContainsfMat$fEachfMatMatab $fNFDataMat $fReadMat $fShowMat $fEq0Complex $fEq0Double $fEq0Float $fEq0Integer $fEq0Word$fEq0Int