Data.Text.Internal.Unsafe.Shift

Copyright (c) Bryan O'Sullivan 2009
License BSD-style
Maintainer [email protected]
Stability experimental
Portability GHC
Safe Haskell None
Language Haskell2010

Description

Warning: this is an internal module, and does not have a stable API or name. Functions in this module may not check or enforce preconditions expected by public modules. Use at your own risk!

Fast, unchecked bit shifting functions.

class UnsafeShift a where Source

This is a workaround for poor optimisation in GHC 6.8.2. It fails to notice constant-width shifts, and adds a test and branch to every shift. This imposes about a 10% performance hit.

These functions are undefined when the amount being shifted by is greater than the size in bits of a machine Int#.

Methods

shiftL :: a -> Int -> a Source

shiftR :: a -> Int -> a Source

Instances
Instances details
UnsafeShift Int
Instance details

Defined in Data.Text.Internal.Unsafe.Shift

Methods

shiftL :: Int -> Int -> Int Source

shiftR :: Int -> Int -> Int Source

UnsafeShift Word16
Instance details

Defined in Data.Text.Internal.Unsafe.Shift

Methods

shiftL :: Word16 -> Int -> Word16 Source

shiftR :: Word16 -> Int -> Word16 Source

UnsafeShift Word32
Instance details

Defined in Data.Text.Internal.Unsafe.Shift

Methods

shiftL :: Word32 -> Int -> Word32 Source

shiftR :: Word32 -> Int -> Word32 Source

UnsafeShift Word64
Instance details

Defined in Data.Text.Internal.Unsafe.Shift

Methods

shiftL :: Word64 -> Int -> Word64 Source

shiftR :: Word64 -> Int -> Word64 Source

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/text-1.2.3.2/Data-Text-Internal-Unsafe-Shift.html