downhill-0.4.0.0: Reverse mode automatic differentiation
Safe HaskellSafe-Inferred
LanguageHaskell2010

Downhill.Internal.Graph.Graph

Synopsis

Graph type

data Graph s e a z Source #

Constructors

BasicVector a => Graph 

Fields

data Node s e a v Source #

Inner node. This does not include initial node. Contains a list of ingoing edges.

Constructors

BasicVector v => Node [Edge s e a v] 

data SomeGraph e a z where Source #

Constructors

SomeGraph :: IsNodeSet s => Graph s e a z -> SomeGraph e a z 

Evaluate

evalGraph :: forall s x z. Graph s FwdFun z x -> z -> x Source #

Forward mode evaluation

Transpose

transposeGraph :: forall s f g a z. IsNodeSet s => (forall u v. f u v -> g v u) -> Graph s f a z -> Graph s g z a Source #

Reverse edges. Turns reverse mode evaluation into forward mode.

Construct

unsafeFromOpenGraph :: (BasicVector a, HasCallStack) => OpenGraph a v -> SomeGraph BackFun a v Source #

Will crash if graph has invalid keys