traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Analysis.CostModel.Class

Synopsis

Documentation

data QueryType #

Type of a query/execution: either run on a classical computer, or a quantum computer (as a unitary).

Constructors

Classical 
Unitary 

class (Monoidal c, Module (PrecType c) c) => CostModel c where #

A generic cost model

Methods

query :: QueryType -> Ident -> c #

Make one query to a function of the given name

callExpr :: BasicExpr size -> c #

Execute a classical expression assignment.

callDistrExpr :: prec ~ PrecType c => DistrExpr prec size -> c #

Execute a classical distribution (randomized) expression assignment.

callUOp :: prec ~ PrecType c => Unitary prec size -> c #

Execute a basic unitary operation of QPL

Instances

Instances details
Rig a => CostModel (QueryCost a) # 
Instance details

Defined in Traq.Analysis.CostModel.QueryCost

Methods

query :: QueryType -> Ident -> QueryCost a #

callExpr :: BasicExpr size -> QueryCost a #

callDistrExpr :: prec ~ PrecType (QueryCost a) => DistrExpr prec size -> QueryCost a #

callUOp :: prec ~ PrecType (QueryCost a) => Unitary prec size -> QueryCost a #

(Module a a, Rig a) => CostModel (SimpleQueryCost a) # 
Instance details

Defined in Traq.Analysis.CostModel.QueryCost