srtree-2.0.1.4: A general library to work with Symbolic Regression expression trees.
Copyright(c) Fabricio Olivetti 2021 - 2024
LicenseBSD3
Maintainer[email protected]
Stabilityexperimental
Portability
Safe HaskellNone
LanguageHaskell2010

Algorithm.EqSat.SearchSR

Description

Support functions for search symbolic expressions with e-graphs

Synopsis

Documentation

io :: IO a -> RndEGraph a Source #

while :: Monad f => (t -> Bool) -> t -> (t -> f t) -> f t Source #

getParetoEcsUpTo :: forall {m :: Type -> Type}. Monad m => Int -> Int -> StateT EGraph m [EClassId] Source #

getParetoDLEcsUpTo :: forall {m :: Type -> Type}. Monad m => Int -> Int -> StateT EGraph m [EClassId] Source #

refit :: forall {m :: Type -> Type}. Monad m => (Fix SRTree -> StateT EGraph m (Double, [PVector])) -> EClassId -> StateT EGraph m () Source #

printBest :: forall {m :: Type -> Type} {t} {p} {b}. (Monad m, Num t) => p -> (t -> EClassId -> StateT EGraph m b) -> StateT EGraph m b Source #

evaluateUnevaluated :: forall {m :: Type -> Type}. Monad m => (Fix SRTree -> StateT EGraph m (Double, [PVector])) -> StateT EGraph m () Source #

doesExist :: ENode -> RndEGraph Bool Source #

check whether an e-node exists or does not exist in the e-graph

doesNotExist :: ENode -> RndEGraph Bool Source #

check whether an e-node exists or does not exist in the e-graph

doesNotExistGens :: [Maybe (EClassId -> ENode)] -> ENode -> RndEGraph Bool Source #

check whether the partial tree defined by a list of ancestors will create a non-existent expression when combined with a certain e-node.

checkToken :: (EClassId -> ENode) -> ENode -> StateT EGraph (StateT StdGen IO) Bool Source #

check whether combining a partial tree parent with the e-node en' will create a new expression