| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Data.Doubling
Synopsis
- newtype Doubling a = Doubling {
- getDoubling :: Vector (Int, a)
- generateDoubling :: Unbox a => Int -> (Int -> (Int, a)) -> Doubling a
- generateDoubling_ :: Int -> (Int -> Int) -> Doubling ()
- doublingStepN :: (Semigroup a, Unbox a) => Int -> Int -> a -> Doubling a -> (Int, a)
- doublingStepN_ :: Int -> Int -> Doubling () -> Int
- newtype DoublingTable a = DoublingTable (Vector (Doubling a))
- buildDoublingTable :: (Semigroup a, Unbox a) => Doubling a -> DoublingTable a
- doublingStepNQuery :: (Semigroup a, Unbox a) => Int -> Int -> a -> DoublingTable a -> (Int, a)
Documentation
Constructors
| Doubling | |
Fields
| |
Arguments
| :: (Semigroup a, Unbox a) | |
| => Int | n |
| -> Int | initial state |
| -> a | initial value |
| -> Doubling a | |
| -> (Int, a) |
O(Mlog N)
newtype DoublingTable a Source #
Constructors
| DoublingTable (Vector (Doubling a)) |
buildDoublingTable :: (Semigroup a, Unbox a) => Doubling a -> DoublingTable a Source #
Arguments
| :: (Semigroup a, Unbox a) | |
| => Int | n |
| -> Int | initial state |
| -> a | initial value |
| -> DoublingTable a | |
| -> (Int, a) |
O(log N)