Skip to content

Commit deff84c

Browse files
use ShortByteString to hold zeros and named 'primBBounded word64Dec'
1 parent 6e18c46 commit deff84c

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

Data/ByteString/Builder/RealFloat.hs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,12 @@ module Data.ByteString.Builder.RealFloat
7070
, generic
7171
) where
7272

73-
import Data.ByteString.Builder.Internal (Builder, byteString)
73+
import Data.ByteString.Builder.Internal (Builder, shortByteString)
7474
import qualified Data.ByteString.Builder.RealFloat.Internal as R
75-
import qualified Data.ByteString.Char8 as BC
7675
import qualified Data.ByteString.Builder.RealFloat.F2S as RF
7776
import qualified Data.ByteString.Builder.RealFloat.D2S as RD
7877
import qualified Data.ByteString.Builder.Prim as BP
78+
import qualified Data.ByteString.Short as BS
7979
import GHC.Float (roundTo)
8080
import GHC.Word (Word64)
8181
import GHC.Show (intToDigit)
@@ -265,18 +265,18 @@ showStandard m e prec =
265265
| e <= 0
266266
-> string7 "0."
267267
<> zeros (-e)
268-
<> BP.primBounded BP.word64Dec m
268+
<> buildDigits m
269269
| e >= olength
270-
-> BP.primBounded BP.word64Dec m
270+
-> buildDigits m
271271
<> zeros (e - olength)
272272
<> string7 ".0"
273273
| otherwise -> let
274274
wholeDigits = m `div` (10 ^ (olength - e))
275275
fractDigits = m `mod` (10 ^ (olength - e))
276-
in BP.primBounded BP.word64Dec wholeDigits
276+
in buildDigits wholeDigits
277277
<> char7 '.'
278278
<> zeros (olength - e - R.decimalLength17 fractDigits)
279-
<> BP.primBounded BP.word64Dec fractDigits
279+
<> buildDigits fractDigits
280280
Just p
281281
| e >= 0 ->
282282
let (ei, is') = roundTo 10 (p' + e) ds
@@ -296,5 +296,6 @@ showStandard m e prec =
296296
ds = digits m
297297
digitsToBuilder = fmap (char7 . intToDigit)
298298

299-
zeros n = byteString $ BC.take n $ BC.replicate 308 '0'
299+
zeros n = shortByteString $ BS.take n $ BS.replicate 308 48
300300
olength = R.decimalLength17 m
301+
buildDigits = BP.primBounded BP.word64Dec

0 commit comments

Comments
 (0)