traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Primitives.Class.Eval

Synopsis

Documentation

class (size ~ SizeType prim, prec ~ PrecType prim, ValidPrimShape (PrimFnShape prim)) => EvalPrim prim size prec | prim -> size prec where #

Evaluate a primitive given the semantics of each function argument. For partial functions, the prefix of arguments are already bound.

Minimal complete definition

Nothing

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape prim) => prim -> shape ([Value size] -> m [Value size]) -> m [Value size] #

default evalPrim :: forall ext' shape m. (Generic prim, GEvalPrim (Rep prim) size prec, Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape prim) => prim -> shape ([Value size] -> m [Value size]) -> m [Value size] #

Instances

Instances details
Ord prec => EvalPrim (DefaultPrimCollection size prec) size prec # 
Instance details

Defined in Traq.Primitives

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape (DefaultPrimCollection size prec)) => DefaultPrimCollection size prec -> shape ([Value size] -> m [Value size]) -> m [Value size] #

(EvalReqs size prec, Ord prec) => EvalPrim (CAmplify size prec) size prec # 
Instance details

Defined in Traq.Primitives.Amplify.CAmplify

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape (CAmplify size prec)) => CAmplify size prec -> shape ([Value size] -> m [Value size]) -> m [Value size] #

(Ord prec, size ~ SizeT, EvalReqs size prec) => EvalPrim (Amplify size prec) size prec #

Evaluate an amplify call by evaluating the sampler f to get distribution μ and get success probability Psucc := P(b=1) conditioned on μ. Finally, returning the distribution based on Psucc.

Instance details

Defined in Traq.Primitives.Amplify.Prelude

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape (Amplify size prec)) => Amplify size prec -> shape ([Value size] -> m [Value size]) -> m [Value size] #

(EvalReqs size prec, Ord prec) => EvalPrim (QAmplify size prec) size prec # 
Instance details

Defined in Traq.Primitives.Amplify.QAmplify

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape (QAmplify size prec)) => QAmplify size prec -> shape ([Value size] -> m [Value size]) -> m [Value size] #

EvalPrim (QMax size prec) size prec #

Evaluate an any call by evaluating the predicate on each element of the search space and or-ing the results.

Instance details

Defined in Traq.Primitives.Max.QMax

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape (QMax size prec)) => QMax size prec -> shape ([Value size] -> m [Value size]) -> m [Value size] #

EvalPrim (DetSearch size prec) size prec # 
Instance details

Defined in Traq.Primitives.Search.DetSearch

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape (DetSearch size prec)) => DetSearch size prec -> shape ([Value size] -> m [Value size]) -> m [Value size] #

EvalPrim (PrimSearch size prec) size prec # 
Instance details

Defined in Traq.Primitives.Search.Prelude

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape (PrimSearch size prec)) => PrimSearch size prec -> shape ([Value size] -> m [Value size]) -> m [Value size] #

EvalPrim (QSearchCFNW size prec) size prec # 
Instance details

Defined in Traq.Primitives.Search.QSearchCFNW

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape (QSearchCFNW size prec)) => QSearchCFNW size prec -> shape ([Value size] -> m [Value size]) -> m [Value size] #

EvalPrim (RandomSearch size prec) size prec # 
Instance details

Defined in Traq.Primitives.Search.RandomSearch

Methods

evalPrim :: forall ext' shape m. (Evaluatable ext' size prec, m ~ Evaluator ext', SizeType ext' ~ size, PrecType ext' ~ prec, shape ~ PrimFnShape (RandomSearch size prec)) => RandomSearch size prec -> shape ([Value size] -> m [Value size]) -> m [Value size] #