| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Traq.Compiler
Synopsis
- module Traq.Compiler.Prelude
- module Traq.Compiler.Quantum
- class TypeInferrable ext (SizeType ext) => CompileU ext where
- data ControlFlag
- lowerProgramU :: forall ext size prec. (CompileU ext, Show prec, Floating prec, HasFreeVars ext, prec ~ PrecType ext, size ~ SizeType ext, TypeInferrable ext size) => Program ext -> Either String (Program size)
- allocAncillaWithPref :: sizeT ~ SizeType ext => Ident -> VarType sizeT -> CompilerT ext Ident
- allocAncilla :: sizeT ~ SizeType ext => VarType sizeT -> CompilerT ext Ident
- withTag :: ParamTag -> [(Ident, VarType a)] -> [(Ident, ParamTag, VarType a)]
Documentation
module Traq.Compiler.Prelude
module Traq.Compiler.Quantum
class TypeInferrable ext (SizeType ext) => CompileU ext where #
Methods
compileU :: forall ext' m. (m ~ CompilerT ext', SizeType ext ~ SizeType ext', PrecType ext ~ PrecType ext') => ext -> [Ident] -> m (UStmt (SizeType ext)) #
Instances
data ControlFlag #
Constructors
| WithControl | |
| WithoutControl |
Instances
| Enum ControlFlag # | |
Defined in Traq.Compiler.Unitary Methods succ :: ControlFlag -> ControlFlag # pred :: ControlFlag -> ControlFlag # toEnum :: Int -> ControlFlag # fromEnum :: ControlFlag -> Int # enumFrom :: ControlFlag -> [ControlFlag] # enumFromThen :: ControlFlag -> ControlFlag -> [ControlFlag] # enumFromTo :: ControlFlag -> ControlFlag -> [ControlFlag] # enumFromThenTo :: ControlFlag -> ControlFlag -> ControlFlag -> [ControlFlag] # | |
| Read ControlFlag # | |
Defined in Traq.Compiler.Unitary Methods readsPrec :: Int -> ReadS ControlFlag # readList :: ReadS [ControlFlag] # readPrec :: ReadPrec ControlFlag # readListPrec :: ReadPrec [ControlFlag] # | |
| Show ControlFlag # | |
Defined in Traq.Compiler.Unitary Methods showsPrec :: Int -> ControlFlag -> ShowS # show :: ControlFlag -> String # showList :: [ControlFlag] -> ShowS # | |
| Eq ControlFlag # | |
Defined in Traq.Compiler.Unitary | |
lowerProgramU :: forall ext size prec. (CompileU ext, Show prec, Floating prec, HasFreeVars ext, prec ~ PrecType ext, size ~ SizeType ext, TypeInferrable ext size) => Program ext -> Either String (Program size) #
Lower a full program into a unitary CQPL program.
allocAncillaWithPref :: sizeT ~ SizeType ext => Ident -> VarType sizeT -> CompilerT ext Ident #
Allocate an ancilla register, and update the typing context.