numbers-3000.2.0.2: Various number types

Safe HaskellSafe
LanguageHaskell98

Data.Number.Symbolic

Description

Symbolic number, i.e., these are not numbers at all, but just build a representation of the expressions. This implementation is incomplete in that it allows comnstruction, but not deconstruction of the expressions. It's mainly useful for debugging.

Synopsis

Documentation

data Sym a Source #

Symbolic numbers over some base type for the literals.

Instances

Enum a => Enum (Sym a) Source # 

Methods

succ :: Sym a -> Sym a #

pred :: Sym a -> Sym a #

toEnum :: Int -> Sym a #

fromEnum :: Sym a -> Int #

enumFrom :: Sym a -> [Sym a] #

enumFromThen :: Sym a -> Sym a -> [Sym a] #

enumFromTo :: Sym a -> Sym a -> [Sym a] #

enumFromThenTo :: Sym a -> Sym a -> Sym a -> [Sym a] #

Eq a => Eq (Sym a) Source # 

Methods

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

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

(Floating a, Eq a) => Floating (Sym a) Source # 

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 #

(Fractional a, Eq a) => Fractional (Sym a) Source # 

Methods

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

recip :: Sym a -> Sym a #

fromRational :: Rational -> Sym a #

Integral a => Integral (Sym a) Source # 

Methods

quot :: Sym a -> Sym a -> Sym a #

rem :: Sym a -> Sym a -> Sym a #

div :: Sym a -> Sym a -> Sym a #

mod :: Sym a -> Sym a -> Sym a #

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

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

toInteger :: Sym a -> Integer #

(Num a, Eq a) => Num (Sym a) Source # 

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 #

Ord a => Ord (Sym a) Source # 

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 #

Real a => Real (Sym a) Source # 

Methods

toRational :: Sym a -> Rational #

(RealFloat a, Show a) => RealFloat (Sym a) Source # 

Methods

floatRadix :: Sym a -> Integer #

floatDigits :: Sym a -> Int #

floatRange :: Sym a -> (Int, Int) #

decodeFloat :: Sym a -> (Integer, Int) #

encodeFloat :: Integer -> Int -> Sym a #

exponent :: Sym a -> Int #

significand :: Sym a -> Sym a #

scaleFloat :: Int -> Sym a -> Sym a #

isNaN :: Sym a -> Bool #

isInfinite :: Sym a -> Bool #

isDenormalized :: Sym a -> Bool #

isNegativeZero :: Sym a -> Bool #

isIEEE :: Sym a -> Bool #

atan2 :: Sym a -> Sym a -> Sym a #

RealFrac a => RealFrac (Sym a) Source # 

Methods

properFraction :: Integral b => Sym a -> (b, Sym a) #

truncate :: Integral b => Sym a -> b #

round :: Integral b => Sym a -> b #

ceiling :: Integral b => Sym a -> b #

floor :: Integral b => Sym a -> b #

Show a => Show (Sym a) Source # 

Methods

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

show :: Sym a -> String #

showList :: [Sym a] -> ShowS #

var :: String -> Sym a Source #

Create a variable.

con :: a -> Sym a Source #

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

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

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