Commits

Bryan O'Sullivan  committed 30d90bc

Shave off another 6ns for negative integers with quotRem

  • Participants
  • Parent commits b1d2b51

Comments (0)

Files changed (1)

File Data/Text/Lazy/Builder/Int.hs

 {-# INLINE decimal' #-}
 decimal' p i
     | i < 0 = if p i
-              then let j = -(i `quot` 10)
-                       !n = countDigits j
+              then let (q, r) = (-i) `quotRem` 10
+                       !n = countDigits q
                    in writeN (n + 2) $ \marr off -> do
                        unsafeWrite marr off minus
-                       posDecimal marr (off+1) n j
-                       unsafeWrite marr (off+n+1) (i2w (-(i `rem` 10)))
+                       posDecimal marr (off+1) n q
+                       unsafeWrite marr (off+n+1) (i2w r)
               else let j = -i
                        !n = countDigits j
                    in writeN (n + 1) $ \marr off ->