array-memoize-0.5.0: Memoization combinators for finite subsets of function domains using arrays

Safe HaskellNone

Data.Function.ArrayMemoize

Documentation

quantizedMemo :: (Show a, ArrayMemoizable b, Discretize a) => (a, a) -> a -> (a -> b) -> a -> bSource

quantizedMemoFix :: (ArrayMemoizable b, Discretize a, Show a) => (a, a) -> a -> ((a -> b) -> a -> b) -> a -> bSource

quantizedMemoFixMutual :: (ArrayMemoizable b, ArrayMemoizable d, Discretize a, Discretize c, Show a, Show c) => (a, a) -> a -> (c, c) -> c -> ((a -> b) -> (c -> d) -> a -> b) -> ((a -> b) -> (c -> d) -> c -> d) -> a -> bSource

discreteMemo :: (ArrayMemoizable b, Discretize a) => (a, a) -> a -> (a -> b) -> Discrete a -> bSource

discreteMemoFix :: (ArrayMemoizable b, Discretize a) => (a, a) -> a -> ((a -> b) -> a -> b) -> Discrete a -> bSource

arrayMemo :: (Ix a, ArrayMemoizable b) => (a, a) -> (a -> b) -> a -> bSource

arrayMemoFix :: (Ix a, ArrayMemoizable b) => (a, a) -> ((a -> b) -> a -> b) -> a -> bSource

arrayMemoFixMutual :: (ArrayMemoizable b, ArrayMemoizable d, Ix a, Ix c) => (a, a) -> (c, c) -> ((a -> b) -> (c -> d) -> a -> b) -> ((a -> b) -> (c -> d) -> c -> d) -> a -> bSource

uarrayMemoFixIO :: (Ix a, UArrayMemoizable b) => (a, a) -> ((a -> IO b) -> a -> IO b) -> a -> IO bSource

class ArrayMemoizable a whereSource

Methods

newArray_ :: Ix i => (i, i) -> ST s (STArray s i a)Source

writeArray :: Ix i => STArray s i a -> i -> a -> ST s ()Source

class IArray UArray a => UArrayMemoizable a whereSource

Methods

newUArray_ :: Ix i => (i, i) -> IO (IOUArray i a)Source

writeUArray :: Ix i => IOUArray i a -> i -> a -> IO ()Source

readUArray :: Ix i => IOUArray i a -> i -> IO aSource

freeze :: Ix i => IOUArray i a -> IO (UArray i a)Source

class (Ix (Discrete t), Enum (Discrete t)) => Discretize t whereSource

Associated Types

type Discrete t Source

Methods

discretize :: t -> t -> Discrete tSource

continuize :: t -> Discrete t -> tSource

discrete :: Discretize a => (a -> b) -> a -> Discrete a -> bSource