traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Data.Symbolic

Description

Synopsis

Documentation

data Sym a #

Symbolic numbers over some base type for the literals.

Instances

Instances details
(Show r, LeftModule r a) => LeftModule r (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(.*) :: r -> Sym a -> Sym a #

(Show r, RightModule r a) => RightModule r (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(*.) :: Sym a -> r -> Sym a #

Abelian a => Abelian (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Additive a => Additive (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(+) :: Sym a -> Sym a -> Sym a #

sinnum1p :: Natural -> Sym a -> Sym a #

sumWith1 :: Foldable1 f => (a0 -> Sym a) -> f a0 -> Sym a #

Idempotent a => Idempotent (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Group a => Group (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(-) :: Sym a -> Sym a -> Sym a #

negate :: Sym a -> Sym a #

subtract :: Sym a -> Sym a -> Sym a #

times :: Integral n => n -> Sym a -> Sym a #

Monoidal a => Monoidal (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

zero :: Sym a #

sinnum :: Natural -> Sym a -> Sym a #

sumWith :: Foldable f => (a0 -> Sym a) -> f a0 -> Sym a #

Multiplicative a => Multiplicative (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(*) :: Sym a -> Sym a -> Sym a #

pow1p :: Sym a -> Natural -> Sym a #

productWith1 :: Foldable1 f => (a0 -> Sym a) -> f a0 -> Sym a #

Semiring a => Semiring (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Commutative a => Commutative (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Division a => Division (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

recip :: Sym a -> Sym a #

(/) :: Sym a -> Sym a -> Sym a #

(\\) :: Sym a -> Sym a -> Sym a #

(^) :: Integral n => Sym a -> n -> Sym a #

Unital a => Unital (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

one :: Sym a #

pow :: Sym a -> Natural -> Sym a #

productWith :: Foldable f => (a0 -> Sym a) -> f a0 -> Sym a #

Rig a => Rig (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

fromNatural :: Natural -> Sym a #

Rng a => Rng (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

(Floating a, Eq a) => Floating (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

pi :: Sym a #

exp :: Sym a -> Sym a #

log :: Sym a -> Sym a #

sqrt :: Sym a -> Sym a #

(**) :: Sym a -> Sym a -> Sym a #

logBase :: Sym a -> Sym a -> Sym a #

sin :: Sym a -> Sym a #

cos :: Sym a -> Sym a #

tan :: Sym a -> Sym a #

asin :: Sym a -> Sym a #

acos :: Sym a -> Sym a #

atan :: Sym a -> Sym a #

sinh :: Sym a -> Sym a #

cosh :: Sym a -> Sym a #

tanh :: Sym a -> Sym a #

asinh :: Sym a -> Sym a #

acosh :: Sym a -> Sym a #

atanh :: Sym a -> Sym a #

log1p :: Sym a -> Sym a #

expm1 :: Sym a -> Sym a #

log1pexp :: Sym a -> Sym a #

log1mexp :: Sym a -> Sym a #

(Num a, Eq a) => Num (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(+) :: Sym a -> Sym a -> Sym a #

(-) :: Sym a -> Sym a -> Sym a #

(*) :: Sym a -> Sym a -> Sym a #

negate :: Sym a -> Sym a #

abs :: Sym a -> Sym a #

signum :: Sym a -> Sym a #

fromInteger :: Integer -> Sym a #

(Fractional a, Eq a) => Fractional (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(/) :: Sym a -> Sym a -> Sym a #

recip :: Sym a -> Sym a #

fromRational :: Rational -> Sym a #

Show a => Show (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

showsPrec :: Int -> Sym a -> ShowS #

show :: Sym a -> String #

showList :: [Sym a] -> ShowS #

Eq a => Eq (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(==) :: Sym a -> Sym a -> Bool #

(/=) :: Sym a -> Sym a -> Bool #

Ord a => Ord (Sym a) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

compare :: Sym a -> Sym a -> Ordering #

(<) :: Sym a -> Sym a -> Bool #

(<=) :: Sym a -> Sym a -> Bool #

(>) :: Sym a -> Sym a -> Bool #

(>=) :: Sym a -> Sym a -> Bool #

max :: Sym a -> Sym a -> Sym a #

min :: Sym a -> Sym a -> Sym a #

Semiring Double => LeftModule (Sym Double) (Sym Double) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(.*) :: Sym Double -> Sym Double -> Sym Double #

Semiring Double => RightModule (Sym Double) (Sym Double) # 
Instance details

Defined in Traq.Data.Symbolic

Methods

(*.) :: Sym Double -> Sym Double -> Sym Double #

Show sizeT => SizeToPrec (Sym sizeT) (Sym precT) # 
Instance details

Defined in Traq.Analysis.Prelude

Methods

sizeToPrec :: Sym sizeT -> Sym precT #

TypingReqs sizeT => TypeCheckPrim (QSearchSym sizeT precT) (Sym sizeT) # 
Instance details

Defined in Traq.Primitives.Search.Symbolic

Methods

inferRetTypesPrim :: forall ext' shape m. (m ~ TypeChecker ext', Sym sizeT ~ SizeType ext', shape ~ PrimFnShape (QSearchSym sizeT precT)) => QSearchSym sizeT precT -> shape (FnType (Sym sizeT)) -> m [VarType (Sym sizeT)] #

(Eq sizeT, Num sizeT, Num precT, Show sizeT, Show precT, Num precT, Eq precT) => QuantumHavocCostPrim (QSearchSym sizeT precT) (Sym sizeT) (Sym precT) # 
Instance details

Defined in Traq.Primitives.Search.Symbolic

Methods

quantumQueryCostsQuantum :: QSearchSym sizeT precT -> FailProb (Sym precT) -> PrimFnShape (QSearchSym sizeT precT) (Sym precT) #

quantumQueryCostsUnitary :: QSearchSym sizeT precT -> FailProb (Sym precT) -> PrimFnShape (QSearchSym sizeT precT) (UnitaryQueries (Sym precT)) #

quantumExprCosts :: (CostModel cost, Sym precT ~ PrecType cost) => QSearchSym sizeT precT -> FailProb (Sym precT) -> cost #

(Eq sizeT, Num sizeT, Show sizeT, Show precT, Num precT, Eq precT) => UnitaryCostPrim (QSearchSym sizeT precT) (Sym sizeT) (Sym precT) # 
Instance details

Defined in Traq.Primitives.Search.Symbolic

Methods

unitaryQueryCosts :: QSearchSym sizeT precT -> FailProb (Sym precT) -> PrimFnShape (QSearchSym sizeT precT) (UnitaryQueries (Sym precT)) #

unitaryExprCosts :: (CostModel cost, Sym precT ~ PrecType cost) => QSearchSym sizeT precT -> FailProb (Sym precT) -> cost #

(PrimSearch (Sym sizeT) (Sym precT)) :<: (QSearchSym sizeT precT) # 
Instance details

Defined in Traq.Primitives.Search.Symbolic

Methods

inject :: PrimSearch (Sym sizeT) (Sym precT) -> QSearchSym sizeT precT #

project :: QSearchSym sizeT precT -> Maybe (PrimSearch (Sym sizeT) (Sym precT)) #

var :: String -> Sym a #

Create a variable.

con :: a -> Sym a #

Create a constant (useful when it is not a literal).

subst :: (Num a, Eq a) => String -> Sym a -> Sym a -> Sym a #

The expression subst x v e substitutes the expression v for each occurence of the variable x in e.

unSym :: Show a => Sym a -> a #

simpl :: (Num a, Eq a) => Sym a -> Sym a #

Simplify by re-assembling the expression