lsm-tree-0.1.0.0: Log-structured merge-trees
Safe HaskellSafe-Inferred
LanguageGHC2021

Database.LSMTree.Internal.BitMath

Description

Some arithmetic implemented using bit operations

Valid for non-negative arguments.

Synopsis

Two

div2 :: Bits a => a -> a Source #

mod2 :: (Bits a, Num a) => a -> a Source #

mul2 :: Bits a => a -> a Source #

ceilDiv2 :: (Bits a, Num a) => a -> a Source #

Four

div4 :: Bits a => a -> a Source #

mod4 :: (Bits a, Num a) => a -> a Source #

mul4 :: Bits a => a -> a Source #

Eight

div8 :: Bits a => a -> a Source #

mod8 :: (Bits a, Num a) => a -> a Source #

mul8 :: Bits a => a -> a Source #

ceilDiv8 :: (Bits a, Num a) => a -> a Source #

Sixteen

div16 :: Bits a => a -> a Source #

mod16 :: (Bits a, Num a) => a -> a Source #

mul16 :: Bits a => a -> a Source #

32

div32 :: Bits a => a -> a Source #

mod32 :: (Bits a, Num a) => a -> a Source #

64

div64 :: Bits a => a -> a Source #

>>> map div64 [0 :: Word, 1, 63, 64, 65]
[0,0,0,1,1]

mod64 :: (Bits a, Num a) => a -> a Source #

>>> map mod64 [0 :: Word, 1, 63, 64, 65]
[0,1,63,0,1]

mul64 :: Bits a => a -> a Source #

ceilDiv64 :: (Bits a, Num a) => a -> a Source #

rounding up division

>>> map ceilDiv64 [0 :: Word, 1, 63, 64, 65]
[0,1,1,1,2]

4096, page size

divPageSize :: Bits a => a -> a Source #

Assumes pageSize = 4096.

modPageSize :: (Bits a, Num a) => a -> a Source #

Assumes pageSize = 4096.

mulPageSize :: Bits a => a -> a Source #

Assumes pageSize = 4096.

ceilDivPageSize :: (Bits a, Num a) => a -> a Source #

Assumes pageSize = 4096.

roundUpToPageSize :: (Bits a, Num a) => a -> a Source #

Assumes pageSize = 4096.