coincident-root-loci-0.3: Equivariant CSM classes of coincident root loci
Safe HaskellNone
LanguageHaskell2010

Math.RootLoci.Misc.PTable

Description

Infinite lazy partition tables (used for caching).

We cache almost all computations (which would be otherwise typically executed many times); this really helps performance.

Synopsis

Finite lazy partition tables

newtype PTable a Source #

Constructors

PTable (Map Partition a) 

Infinite lazy partition tables

newtype PSeries a Source #

Constructors

PSeries [PTable a] 

Finite lazy set-partition tables

newtype SetPTable a Source #

Constructors

SetPTable (Map SetPartition a) 

Infinite lazy set-partition tables

newtype SetPSeries a Source #

Constructors

SetPSeries [SetPTable a] 

polymorphic caching

polyCache1 Source #

Arguments

:: CacheKey key 
=> (forall base. ChernBase base => key -> f base)

polymorphic function to be cached

-> forall base. ChernBase base => key -> f base 

polyCache2 Source #

Arguments

:: CacheKey key 
=> (forall base. ChernBase base => key -> f (g base))

polymorphic function to be cached

-> forall base. ChernBase base => key -> f (g base) 

polyCache3 Source #

Arguments

:: CacheKey key 
=> (forall base. ChernBase base => key -> f (g (h base)))

polymorphic function to be cached

-> forall base. ChernBase base => key -> f (g (h base)) 

monomorphic caching

class CacheKey key where Source #

Methods

monoCache :: (key -> a) -> key -> a Source #

Instances

Instances details
CacheKey Int Source # 
Instance details

Defined in Math.RootLoci.Misc.PTable

Methods

monoCache :: (Int -> a) -> Int -> a Source #

CacheKey SetPartition Source # 
Instance details

Defined in Math.RootLoci.Misc.PTable

Methods

monoCache :: (SetPartition -> a) -> SetPartition -> a Source #

CacheKey Partition Source # 
Instance details

Defined in Math.RootLoci.Misc.PTable

Methods

monoCache :: (Partition -> a) -> Partition -> a Source #

individual caching functions

pcache :: (Partition -> a) -> Partition -> a Source #

icache :: (Int -> a) -> Int -> a Source #

icache' :: a -> Int -> (Int -> a) -> Int -> a Source #