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.

Note that Complex's instances inherit the deficiencies from the type parameter's. For example, Complex Float's Ord instance has similar problems to Float's.

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 # Since: base-4.9.0.0 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 # Since: base-4.9.0.0 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 # Since: base-4.9.0.0 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 :: Type # 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) # # Since: 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) #(<$) :: (Elt a, Elt b, Elt (Complex a), Elt (Complex b)) => Exp a -> Exp (Complex b) -> Exp (Complex a) # 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)) # Instance detailsDefined in Data.Array.Accelerate.Data.Complex Methodsunlift :: Exp (Plain (Complex (Exp a))) -> Complex (Exp a) # (Lift Exp a, Elt (Plain a), Elt (Complex (Plain a))) => Lift Exp (Complex a) # Instance detailsDefined in Data.Array.Accelerate.Data.Complex Associated Typestype Plain (Complex a) :: Type # Methodslift :: Complex a -> Exp (Plain (Complex a)) # (FromIntegral a b, Num b, Elt (Complex b)) => FromIntegral a (Complex b) # Instance detailsDefined in Data.Array.Accelerate.Data.Complex MethodsfromIntegral :: Exp a -> Exp (Complex b) # Eq a => Eq (Complex a) Since: base-2.1 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) Since: base-2.1 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) Since: base-2.1 Instance detailsDefined in Data.Complex MethodsreadsPrec :: Int -> ReadS (Complex a) # Show a => Show (Complex a) Since: base-2.1 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) :: Type -> Type # 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 # 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 # 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 # 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 # 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 # 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) # Instance detailsDefined in Data.Array.Accelerate.Data.Complex Methods(==) :: Exp (Complex a) -> Exp (Complex a) -> Exp Bool #(/=) :: Exp (Complex a) -> Exp (Complex a) -> Exp Bool # Instance detailsDefined in Data.Complex Associated Typestype Rep1 Complex :: k -> Type # 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 newtype MVector s (Complex a) Instance detailsDefined in Data.Vector.Unboxed.Base newtype MVector s (Complex a) = MV_Complex (MVector s (a, a)) type Rep (Complex a) Since: base-4.9.0.0 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))) newtype Vector (Complex a) Instance detailsDefined in Data.Vector.Unboxed.Base newtype 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) # Instance detailsDefined in Data.Array.Accelerate.Data.Complex type Plain (Complex a) = Complex (Plain a) type Rep1 Complex Since: base-4.9.0.0 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 #

Return the real part of a complex number

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

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

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

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

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

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 #

The non-negative magnitude of a complex number

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

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

Return the complex conjugate of a complex number, defined as

conjugate(Z) = X - iY

# Orphan instances

 # Since: 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) #(<\$) :: (Elt a, Elt b, Elt (Complex a), Elt (Complex b)) => Exp a -> Exp (Complex b) -> Exp (Complex a) # (Elt a, Elt (Complex a)) => Unlift Exp (Complex (Exp a)) # Instance details Methodsunlift :: Exp (Plain (Complex (Exp a))) -> Complex (Exp a) # (Lift Exp a, Elt (Plain a), Elt (Complex (Plain a))) => Lift Exp (Complex a) # Instance details Associated Typestype Plain (Complex a) :: Type # Methodslift :: Complex a -> Exp (Plain (Complex a)) # (FromIntegral a b, Num b, Elt (Complex b)) => FromIntegral a (Complex b) # Instance details MethodsfromIntegral :: Exp a -> Exp (Complex b) # (RealFloat a, Elt (Complex a)) => Floating (Exp (Complex a)) # 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)) # 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)) # 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) # # Instance details MethodseltType :: Complex Double -> TupleType (EltRepr (Complex Double))fromElt :: Complex Double -> EltRepr (Complex Double)toElt :: EltRepr (Complex Double) -> Complex Double # Instance details MethodseltType :: Complex Float -> TupleType (EltRepr (Complex Float))fromElt :: Complex Float -> EltRepr (Complex Float)toElt :: EltRepr (Complex Float) -> Complex Float # Instance details MethodseltType :: Complex CFloat -> TupleType (EltRepr (Complex CFloat))fromElt :: Complex CFloat -> EltRepr (Complex CFloat)toElt :: EltRepr (Complex CFloat) -> Complex CFloat # Instance details MethodseltType :: Complex CDouble -> TupleType (EltRepr (Complex CDouble))fromElt :: Complex CDouble -> EltRepr (Complex CDouble)toElt :: EltRepr (Complex CDouble) -> Complex CDouble # 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) # Instance details Methods(==) :: Exp (Complex a) -> Exp (Complex a) -> Exp Bool #(/=) :: Exp (Complex a) -> Exp (Complex a) -> Exp Bool #