Repository : ssh://darcs.haskell.org//srv/darcs/packages/containers On branch : master
http://hackage.haskell.org/trac/ghc/changeset/e076b33f4cee3f657b5bdc5bf6f5a4c9e249d00c >--------------------------------------------------------------- commit e076b33f4cee3f657b5bdc5bf6f5a4c9e249d00c Author: Milan Straka <[email protected]> Date: Sat Nov 19 10:54:06 2011 +0100 Improve performance of folds. We use wordsize-dependent implementation for GHC, for both 32-bit and 64-bit architectures. It is based on fast constant-time implementation of indexOfTheOnlyBit, which computes index of the only bit set in a word, suggested by Edward Kmett. Using that we can enumerate indexes of 1 bits, in the order from LSB to MSB. That results in fast foldl implementations. Foldr implementations bit-reverse the word and then iterate from the LSB to MSB using accumulator. That is faster then either not using accumulator or iterating from MSB to LSB. Data/IntSet.hs | 189 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 146 insertions(+), 43 deletions(-) Diff suppressed because of size. To see it, use: git show e076b33f4cee3f657b5bdc5bf6f5a4c9e249d00c _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
