accelerate-1.2.0.1: An embedded language for accelerated array processing

Copyright [2015..2017] Trevor L. McDonell BSD3 Trevor L. McDonell experimental non-portable (GHC extensions) None Haskell2010

Data.Array.Accelerate.Data.Complex

Description

Complex numbers, stored in the usual C-style array-of-struct representation, for easy interoperability.

Synopsis

# Rectangular from

data Complex a #

Complex numbers are an algebraic type.

For a complex number z, abs z is a number with the magnitude of z, but oriented in the positive real direction, whereas signum z has the phase of z, but unit magnitude.

The Foldable and Traversable instances traverse the real part first.

Constructors

 !a :+ !a infix 6 forms a complex number from its real and imaginary rectangular components.
Instances
 Since: base-4.9.0.0 Instance detailsDefined in Data.Complex Methods(>>=) :: Complex a -> (a -> Complex b) -> Complex b #(>>) :: Complex a -> Complex b -> Complex b #return :: a -> Complex a #fail :: String -> Complex a # Instance detailsDefined in Data.Complex Methodsfmap :: (a -> b) -> Complex a -> Complex b #(<$) :: a -> Complex b -> Complex a # Since: base-4.9.0.0 Instance detailsDefined in Data.Complex Methodspure :: a -> Complex a #(<*>) :: Complex (a -> b) -> Complex a -> Complex b #liftA2 :: (a -> b -> c) -> Complex a -> Complex b -> Complex c #(*>) :: Complex a -> Complex b -> Complex b #(<*) :: Complex a -> Complex b -> Complex a # Instance detailsDefined in Data.Complex Methodsfold :: Monoid m => Complex m -> m #foldMap :: Monoid m => (a -> m) -> Complex a -> m #foldr :: (a -> b -> b) -> b -> Complex a -> b #foldr' :: (a -> b -> b) -> b -> Complex a -> b #foldl :: (b -> a -> b) -> b -> Complex a -> b #foldl' :: (b -> a -> b) -> b -> Complex a -> b #foldr1 :: (a -> a -> a) -> Complex a -> a #foldl1 :: (a -> a -> a) -> Complex a -> a #toList :: Complex a -> [a] #null :: Complex a -> Bool #length :: Complex a -> Int #elem :: Eq a => a -> Complex a -> Bool #maximum :: Ord a => Complex a -> a #minimum :: Ord a => Complex a -> a #sum :: Num a => Complex a -> a #product :: Num a => Complex a -> a # Instance detailsDefined in Data.Complex Methodstraverse :: Applicative f => (a -> f b) -> Complex a -> f (Complex b) #sequenceA :: Applicative f => Complex (f a) -> f (Complex a) #mapM :: Monad m => (a -> m b) -> Complex a -> m (Complex b) #sequence :: Monad m => Complex (m a) -> m (Complex a) # Instance detailsDefined in Data.Functor.Rep Associated Typestype Rep Complex :: * # Methodstabulate :: (Rep Complex -> a) -> Complex a #index :: Complex a -> Rep Complex -> a # Instance detailsDefined in Data.Hashable.Class MethodsliftHashWithSalt :: (Int -> a -> Int) -> Int -> Complex a -> Int # Instance detailsDefined in Data.Semigroup.Traversable.Class Methodstraverse1 :: Apply f => (a -> f b) -> Complex a -> f (Complex b) #sequence1 :: Apply f => Complex (f b) -> f (Complex b) # Source # Since: accelerate-1.2.0.0 Instance detailsDefined in Data.Array.Accelerate.Data.Complex Methodsfmap :: (Elt a, Elt b, Elt (Complex a), Elt (Complex b)) => (Exp a -> Exp b) -> Exp (Complex a) -> Exp (Complex b) Source #(<$) :: (Elt a, Elt b, Elt (Complex a), Elt (Complex b)) => Exp a -> Exp (Complex b) -> Exp (Complex a) Source # Unbox a => Vector Vector (Complex a) Instance detailsDefined in Data.Vector.Unboxed.Base MethodsbasicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (Complex a) -> m (Vector (Complex a)) #basicUnsafeThaw :: PrimMonad m => Vector (Complex a) -> m (Mutable Vector (PrimState m) (Complex a)) #basicLength :: Vector (Complex a) -> Int #basicUnsafeSlice :: Int -> Int -> Vector (Complex a) -> Vector (Complex a) #basicUnsafeIndexM :: Monad m => Vector (Complex a) -> Int -> m (Complex a) #basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (Complex a) -> Vector (Complex a) -> m () #elemseq :: Vector (Complex a) -> Complex a -> b -> b # Unbox a => MVector MVector (Complex a) Instance detailsDefined in Data.Vector.Unboxed.Base MethodsbasicLength :: MVector s (Complex a) -> Int #basicUnsafeSlice :: Int -> Int -> MVector s (Complex a) -> MVector s (Complex a) #basicOverlaps :: MVector s (Complex a) -> MVector s (Complex a) -> Bool #basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (Complex a)) #basicInitialize :: PrimMonad m => MVector (PrimState m) (Complex a) -> m () #basicUnsafeReplicate :: PrimMonad m => Int -> Complex a -> m (MVector (PrimState m) (Complex a)) #basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (Complex a) -> Int -> m (Complex a) #basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (Complex a) -> Int -> Complex a -> m () #basicClear :: PrimMonad m => MVector (PrimState m) (Complex a) -> m () #basicSet :: PrimMonad m => MVector (PrimState m) (Complex a) -> Complex a -> m () #basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (Complex a) -> MVector (PrimState m) (Complex a) -> m () #basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (Complex a) -> MVector (PrimState m) (Complex a) -> m () #basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (Complex a) -> Int -> m (MVector (PrimState m) (Complex a)) # (Elt a, Elt (Complex a)) => Unlift Exp (Complex (Exp a)) Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex Methodsunlift :: Exp (Plain (Complex (Exp a))) -> Complex (Exp a) Source # (Lift Exp a, Elt (Plain a), Elt (Complex (Plain a))) => Lift Exp (Complex a) Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex Associated Typestype Plain (Complex a) :: * Source # Methodslift :: Complex a -> Exp (Plain (Complex a)) Source # (FromIntegral a b, Num b, Elt (Complex b)) => FromIntegral a (Complex b) Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex MethodsfromIntegral :: Exp a -> Exp (Complex b) Source # Eq a => Eq (Complex a) Instance detailsDefined in Data.Complex Methods(==) :: Complex a -> Complex a -> Bool #(/=) :: Complex a -> Complex a -> Bool # RealFloat a => Floating (Complex a) Since: base-2.1 Instance detailsDefined in Data.Complex Methodspi :: Complex a #exp :: Complex a -> Complex a #log :: Complex a -> Complex a #sqrt :: Complex a -> Complex a #(**) :: Complex a -> Complex a -> Complex a #logBase :: Complex a -> Complex a -> Complex a #sin :: Complex a -> Complex a #cos :: Complex a -> Complex a #tan :: Complex a -> Complex a #asin :: Complex a -> Complex a #acos :: Complex a -> Complex a #atan :: Complex a -> Complex a #sinh :: Complex a -> Complex a #cosh :: Complex a -> Complex a #tanh :: Complex a -> Complex a #asinh :: Complex a -> Complex a #acosh :: Complex a -> Complex a #atanh :: Complex a -> Complex a #log1p :: Complex a -> Complex a #expm1 :: Complex a -> Complex a #log1pexp :: Complex a -> Complex a #log1mexp :: Complex a -> Complex a # (RealFloat a, Elt (Complex a)) => Floating (Exp (Complex a)) # Instance detailsDefined in Data.Array.Accelerate.Data.Complex Methodspi :: Exp (Complex a) #exp :: Exp (Complex a) -> Exp (Complex a) #log :: Exp (Complex a) -> Exp (Complex a) #sqrt :: Exp (Complex a) -> Exp (Complex a) #(**) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #logBase :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #sin :: Exp (Complex a) -> Exp (Complex a) #cos :: Exp (Complex a) -> Exp (Complex a) #tan :: Exp (Complex a) -> Exp (Complex a) #asin :: Exp (Complex a) -> Exp (Complex a) #acos :: Exp (Complex a) -> Exp (Complex a) #atan :: Exp (Complex a) -> Exp (Complex a) #sinh :: Exp (Complex a) -> Exp (Complex a) #cosh :: Exp (Complex a) -> Exp (Complex a) #tanh :: Exp (Complex a) -> Exp (Complex a) #asinh :: Exp (Complex a) -> Exp (Complex a) #acosh :: Exp (Complex a) -> Exp (Complex a) #atanh :: Exp (Complex a) -> Exp (Complex a) #log1p :: Exp (Complex a) -> Exp (Complex a) #expm1 :: Exp (Complex a) -> Exp (Complex a) #log1pexp :: Exp (Complex a) -> Exp (Complex a) #log1mexp :: Exp (Complex a) -> Exp (Complex a) # RealFloat a => Fractional (Complex a) Since: base-2.1 Instance detailsDefined in Data.Complex Methods(/) :: Complex a -> Complex a -> Complex a #recip :: Complex a -> Complex a # (RealFloat a, Elt (Complex a)) => Fractional (Exp (Complex a)) # Instance detailsDefined in Data.Array.Accelerate.Data.Complex Methods(/) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #recip :: Exp (Complex a) -> Exp (Complex a) # Data a => Data (Complex a) Instance detailsDefined in Data.Complex Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Complex a -> c (Complex a) #gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Complex a) #toConstr :: Complex a -> Constr #dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Complex a)) #dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Complex a)) #gmapT :: (forall b. Data b => b -> b) -> Complex a -> Complex a #gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Complex a -> r #gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Complex a -> r #gmapQ :: (forall d. Data d => d -> u) -> Complex a -> [u] #gmapQi :: Int -> (forall d. Data d => d -> u) -> Complex a -> u #gmapM :: Monad m => (forall d. Data d => d -> m d) -> Complex a -> m (Complex a) #gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Complex a -> m (Complex a) #gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Complex a -> m (Complex a) # RealFloat a => Num (Complex a) Since: base-2.1 Instance detailsDefined in Data.Complex Methods(+) :: Complex a -> Complex a -> Complex a #(-) :: Complex a -> Complex a -> Complex a #(*) :: Complex a -> Complex a -> Complex a #negate :: Complex a -> Complex a #abs :: Complex a -> Complex a #signum :: Complex a -> Complex a # (RealFloat a, Elt (Complex a)) => Num (Exp (Complex a)) # Instance detailsDefined in Data.Array.Accelerate.Data.Complex Methods(+) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #(-) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #(*) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #negate :: Exp (Complex a) -> Exp (Complex a) #abs :: Exp (Complex a) -> Exp (Complex a) #signum :: Exp (Complex a) -> Exp (Complex a) # Read a => Read (Complex a) Instance detailsDefined in Data.Complex MethodsreadsPrec :: Int -> ReadS (Complex a) # Show a => Show (Complex a) Instance detailsDefined in Data.Complex MethodsshowsPrec :: Int -> Complex a -> ShowS #show :: Complex a -> String #showList :: [Complex a] -> ShowS # Instance detailsDefined in Data.Complex Associated Typestype Rep (Complex a) :: * -> * # Methodsfrom :: Complex a -> Rep (Complex a) x #to :: Rep (Complex a) x -> Complex a # Storable a => Storable (Complex a) Since: base-4.8.0.0 Instance detailsDefined in Data.Complex MethodssizeOf :: Complex a -> Int #alignment :: Complex a -> Int #peekElemOff :: Ptr (Complex a) -> Int -> IO (Complex a) #pokeElemOff :: Ptr (Complex a) -> Int -> Complex a -> IO () #peekByteOff :: Ptr b -> Int -> IO (Complex a) #pokeByteOff :: Ptr b -> Int -> Complex a -> IO () #peek :: Ptr (Complex a) -> IO (Complex a) #poke :: Ptr (Complex a) -> Complex a -> IO () # NFData a => NFData (Complex a) Instance detailsDefined in Control.DeepSeq Methodsrnf :: Complex a -> () # Hashable a => Hashable (Complex a) Instance detailsDefined in Data.Hashable.Class MethodshashWithSalt :: Int -> Complex a -> Int #hash :: Complex a -> Int # Unbox a => Unbox (Complex a) Instance detailsDefined in Data.Vector.Unboxed.Base Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex MethodseltType :: Complex Double -> TupleType (EltRepr (Complex Double))fromElt :: Complex Double -> EltRepr (Complex Double)toElt :: EltRepr (Complex Double) -> Complex Double Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex MethodseltType :: Complex Float -> TupleType (EltRepr (Complex Float))fromElt :: Complex Float -> EltRepr (Complex Float)toElt :: EltRepr (Complex Float) -> Complex Float Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex MethodseltType :: Complex CFloat -> TupleType (EltRepr (Complex CFloat))fromElt :: Complex CFloat -> EltRepr (Complex CFloat)toElt :: EltRepr (Complex CFloat) -> Complex CFloat Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex MethodseltType :: Complex CDouble -> TupleType (EltRepr (Complex CDouble))fromElt :: Complex CDouble -> EltRepr (Complex CDouble)toElt :: EltRepr (Complex CDouble) -> Complex CDouble Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex MethodseltType :: Complex Half -> TupleType (EltRepr (Complex Half))fromElt :: Complex Half -> EltRepr (Complex Half)toElt :: EltRepr (Complex Half) -> Complex Half (Eq a, Elt (Complex a)) => Eq (Complex a) Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex Methods(==) :: Exp (Complex a) -> Exp (Complex a) -> Exp Bool Source #(/=) :: Exp (Complex a) -> Exp (Complex a) -> Exp Bool Source # Instance detailsDefined in Data.Complex Associated Typestype Rep1 Complex :: k -> * # Methodsfrom1 :: Complex a -> Rep1 Complex a #to1 :: Rep1 Complex a -> Complex a # (Eq a) :=> (Eq (Complex a)) Instance detailsDefined in Data.Constraint Methodsins :: Eq a :- Eq (Complex a) # (Read a) :=> (Read (Complex a)) Instance detailsDefined in Data.Constraint Methodsins :: Read a :- Read (Complex a) # (RealFloat a) :=> (Num (Complex a)) Instance detailsDefined in Data.Constraint Methods (RealFloat a) :=> (Fractional (Complex a)) Instance detailsDefined in Data.Constraint Methods (RealFloat a) :=> (Floating (Complex a)) Instance detailsDefined in Data.Constraint Methods (Show a) :=> (Show (Complex a)) Instance detailsDefined in Data.Constraint Methodsins :: Show a :- Show (Complex a) # Each (Complex a) (Complex b) a b each :: (RealFloat a, RealFloat b) => Traversal (Complex a) (Complex b) a b Instance detailsDefined in Control.Lens.Each Methodseach :: Traversal (Complex a) (Complex b) a b # type Rep Complex Instance detailsDefined in Data.Functor.Rep type Rep Complex = Bool data MVector s (Complex a) Instance detailsDefined in Data.Vector.Unboxed.Base data MVector s (Complex a) = MV_Complex (MVector s (a, a)) type Rep (Complex a) Instance detailsDefined in Data.Complex type Rep (Complex a) = D1 (MetaData "Complex" "Data.Complex" "base" False) (C1 (MetaCons ":+" (InfixI NotAssociative 6) False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 a))) data Vector (Complex a) Instance detailsDefined in Data.Vector.Unboxed.Base data Vector (Complex a) = V_Complex (Vector (a, a)) type Index (Complex a) Instance detailsDefined in Control.Lens.At type Index (Complex a) = Int type Plain (Complex a) Source # Instance detailsDefined in Data.Array.Accelerate.Data.Complex type Plain (Complex a) = Complex (Plain a) type Rep1 Complex Instance detailsDefined in Data.Complex type Rep1 Complex = D1 (MetaData "Complex" "Data.Complex" "base" False) (C1 (MetaCons ":+" (InfixI NotAssociative 6) False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) Par1 :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) Par1))

real :: (Elt a, Elt (Complex a)) => Exp (Complex a) -> Exp a Source #

Return the real part of a complex number

imag :: (Elt a, Elt (Complex a)) => Exp (Complex a) -> Exp a Source #

Return the imaginary part of a complex number

# Polar form

mkPolar :: forall a. (Floating a, Elt (Complex a)) => Exp a -> Exp a -> Exp (Complex a) Source #

Form a complex number from polar components of magnitude and phase.

cis :: forall a. (Floating a, Elt (Complex a)) => Exp a -> Exp (Complex a) Source #

cis t is a complex value with magnitude 1 and phase t (modulo 2*pi).

polar :: (RealFloat a, Elt (Complex a)) => Exp (Complex a) -> Exp (a, a) Source #

The function polar takes a complex number and returns a (magnitude, phase) pair in canonical form: the magnitude is non-negative, and the phase in the range (-pi, pi]; if the magnitude is zero, then so is the phase.

magnitude :: (RealFloat a, Elt (Complex a)) => Exp (Complex a) -> Exp a Source #

The non-negative magnitude of a complex number

phase :: (RealFloat a, Elt (Complex a)) => Exp (Complex a) -> Exp a Source #

The phase of a complex number, in the range (-pi, pi]. If the magnitude is zero, then so is the phase.

# Conjugate

conjugate :: (Num a, Elt (Complex a)) => Exp (Complex a) -> Exp (Complex a) Source #

Return the complex conjugate of a complex number, defined as

conjugate(Z) = X - iY

# Orphan instances

 Source # Since: accelerate-1.2.0.0 Instance details Methodsfmap :: (Elt a, Elt b, Elt (Complex a), Elt (Complex b)) => (Exp a -> Exp b) -> Exp (Complex a) -> Exp (Complex b) Source #(<\$) :: (Elt a, Elt b, Elt (Complex a), Elt (Complex b)) => Exp a -> Exp (Complex b) -> Exp (Complex a) Source # (Elt a, Elt (Complex a)) => Unlift Exp (Complex (Exp a)) Source # Instance details Methodsunlift :: Exp (Plain (Complex (Exp a))) -> Complex (Exp a) Source # (Lift Exp a, Elt (Plain a), Elt (Complex (Plain a))) => Lift Exp (Complex a) Source # Instance details Associated Typestype Plain (Complex a) :: * Source # Methodslift :: Complex a -> Exp (Plain (Complex a)) Source # (FromIntegral a b, Num b, Elt (Complex b)) => FromIntegral a (Complex b) Source # Instance details MethodsfromIntegral :: Exp a -> Exp (Complex b) Source # (RealFloat a, Elt (Complex a)) => Floating (Exp (Complex a)) Source # Instance details Methodspi :: Exp (Complex a) #exp :: Exp (Complex a) -> Exp (Complex a) #log :: Exp (Complex a) -> Exp (Complex a) #sqrt :: Exp (Complex a) -> Exp (Complex a) #(**) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #logBase :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #sin :: Exp (Complex a) -> Exp (Complex a) #cos :: Exp (Complex a) -> Exp (Complex a) #tan :: Exp (Complex a) -> Exp (Complex a) #asin :: Exp (Complex a) -> Exp (Complex a) #acos :: Exp (Complex a) -> Exp (Complex a) #atan :: Exp (Complex a) -> Exp (Complex a) #sinh :: Exp (Complex a) -> Exp (Complex a) #cosh :: Exp (Complex a) -> Exp (Complex a) #tanh :: Exp (Complex a) -> Exp (Complex a) #asinh :: Exp (Complex a) -> Exp (Complex a) #acosh :: Exp (Complex a) -> Exp (Complex a) #atanh :: Exp (Complex a) -> Exp (Complex a) #log1p :: Exp (Complex a) -> Exp (Complex a) #expm1 :: Exp (Complex a) -> Exp (Complex a) #log1pexp :: Exp (Complex a) -> Exp (Complex a) #log1mexp :: Exp (Complex a) -> Exp (Complex a) # (RealFloat a, Elt (Complex a)) => Fractional (Exp (Complex a)) Source # Instance details Methods(/) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #recip :: Exp (Complex a) -> Exp (Complex a) # (RealFloat a, Elt (Complex a)) => Num (Exp (Complex a)) Source # Instance details Methods(+) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #(-) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #(*) :: Exp (Complex a) -> Exp (Complex a) -> Exp (Complex a) #negate :: Exp (Complex a) -> Exp (Complex a) #abs :: Exp (Complex a) -> Exp (Complex a) #signum :: Exp (Complex a) -> Exp (Complex a) # Source # Instance details MethodseltType :: Complex Double -> TupleType (EltRepr (Complex Double))fromElt :: Complex Double -> EltRepr (Complex Double)toElt :: EltRepr (Complex Double) -> Complex Double Source # Instance details MethodseltType :: Complex Float -> TupleType (EltRepr (Complex Float))fromElt :: Complex Float -> EltRepr (Complex Float)toElt :: EltRepr (Complex Float) -> Complex Float Source # Instance details MethodseltType :: Complex CFloat -> TupleType (EltRepr (Complex CFloat))fromElt :: Complex CFloat -> EltRepr (Complex CFloat)toElt :: EltRepr (Complex CFloat) -> Complex CFloat Source # Instance details MethodseltType :: Complex CDouble -> TupleType (EltRepr (Complex CDouble))fromElt :: Complex CDouble -> EltRepr (Complex CDouble)toElt :: EltRepr (Complex CDouble) -> Complex CDouble Source # Instance details MethodseltType :: Complex Half -> TupleType (EltRepr (Complex Half))fromElt :: Complex Half -> EltRepr (Complex Half)toElt :: EltRepr (Complex Half) -> Complex Half (Eq a, Elt (Complex a)) => Eq (Complex a) Source # Instance details Methods(==) :: Exp (Complex a) -> Exp (Complex a) -> Exp Bool Source #(/=) :: Exp (Complex a) -> Exp (Complex a) -> Exp Bool Source #