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
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 sizeT precT, Ord precT) => EvalPrim (CAmplify sizeT precT) sizeT precT # 
Instance details

Defined in Traq.Primitives.Amplify.CAmplify

Methods

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

(Ord precT, sizeT ~ SizeT, EvalReqs sizeT precT) => EvalPrim (Amplify sizeT precT) sizeT precT #

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' sizeT precT, m ~ Evaluator ext', SizeType ext' ~ sizeT, PrecType ext' ~ precT, shape ~ PrimFnShape (Amplify sizeT precT)) => Amplify sizeT precT -> shape ([Value sizeT] -> m [Value sizeT]) -> m [Value sizeT] #

(EvalReqs sizeT precT, Ord precT) => EvalPrim (QAmplify sizeT precT) sizeT precT # 
Instance details

Defined in Traq.Primitives.Amplify.QAmplify

Methods

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

EvalPrim (QMax sizeT precT) sizeT precT #

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' sizeT precT, m ~ Evaluator ext', SizeType ext' ~ sizeT, PrecType ext' ~ precT, shape ~ PrimFnShape (QMax sizeT precT)) => QMax sizeT precT -> shape ([Value sizeT] -> m [Value sizeT]) -> m [Value sizeT] #

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 sizeT precT) sizeT precT # 
Instance details

Defined in Traq.Primitives.Search.Prelude

Methods

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

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] #