algebra-4.3.1: Constructive abstract algebra

Safe HaskellNone
LanguageHaskell98

Numeric.Algebra.Complex

Synopsis

Documentation

class Distinguished t where Source #

Minimal complete definition

e

Methods

e :: t Source #

Instances

Distinguished TrigBasis Source # 

Methods

e :: TrigBasis Source #

Distinguished QuaternionBasis' Source # 
Distinguished DualBasis' Source # 

Methods

e :: DualBasis' Source #

Distinguished QuaternionBasis Source # 
Distinguished DualBasis Source # 

Methods

e :: DualBasis Source #

Distinguished ComplexBasis Source # 
Rig r => Distinguished (Trig r) Source # 

Methods

e :: Trig r Source #

Rig r => Distinguished (Quaternion' r) Source # 

Methods

e :: Quaternion' r Source #

Rig r => Distinguished (Dual' r) Source # 

Methods

e :: Dual' r Source #

Rig r => Distinguished (Quaternion r) Source # 

Methods

e :: Quaternion r Source #

Rig r => Distinguished (Dual r) Source # 

Methods

e :: Dual r Source #

Rig r => Distinguished (Complex r) Source # 

Methods

e :: Complex r Source #

Rig r => Distinguished (TrigBasis -> r) Source # 

Methods

e :: TrigBasis -> r Source #

Rig r => Distinguished (QuaternionBasis' -> r) Source # 

Methods

e :: QuaternionBasis' -> r Source #

Rig r => Distinguished (DualBasis' -> r) Source # 

Methods

e :: DualBasis' -> r Source #

Rig r => Distinguished (QuaternionBasis -> r) Source # 

Methods

e :: QuaternionBasis -> r Source #

Rig r => Distinguished (DualBasis -> r) Source # 

Methods

e :: DualBasis -> r Source #

Rig r => Distinguished (ComplexBasis -> r) Source # 

Methods

e :: ComplexBasis -> r Source #

Distinguished a => Distinguished (Covector r a) Source # 

Methods

e :: Covector r a Source #

data ComplexBasis Source #

Constructors

E 
I 

Instances

Bounded ComplexBasis Source # 
Enum ComplexBasis Source # 
Eq ComplexBasis Source # 
Data ComplexBasis Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ComplexBasis -> c ComplexBasis #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ComplexBasis #

toConstr :: ComplexBasis -> Constr #

dataTypeOf :: ComplexBasis -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c ComplexBasis) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ComplexBasis) #

gmapT :: (forall b. Data b => b -> b) -> ComplexBasis -> ComplexBasis #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ComplexBasis -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ComplexBasis -> r #

gmapQ :: (forall d. Data d => d -> u) -> ComplexBasis -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ComplexBasis -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ComplexBasis -> m ComplexBasis #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ComplexBasis -> m ComplexBasis #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ComplexBasis -> m ComplexBasis #

Ord ComplexBasis Source # 
Read ComplexBasis Source # 
Show ComplexBasis Source # 
Ix ComplexBasis Source # 
Distinguished ComplexBasis Source # 
Complicated ComplexBasis Source # 
MonadReader ComplexBasis Complex Source # 
Rng k => Coalgebra k ComplexBasis Source # 

Methods

comult :: (ComplexBasis -> k) -> ComplexBasis -> ComplexBasis -> k Source #

Rng k => Algebra k ComplexBasis Source # 

Methods

mult :: (ComplexBasis -> ComplexBasis -> k) -> ComplexBasis -> k Source #

Rng k => Bialgebra k ComplexBasis Source # 
Rng k => CounitalCoalgebra k ComplexBasis Source # 

Methods

counit :: (ComplexBasis -> k) -> k Source #

Rng k => UnitalAlgebra k ComplexBasis Source # 

Methods

unit :: k -> ComplexBasis -> k Source #

(InvolutiveSemiring k, Rng k) => HopfAlgebra k ComplexBasis Source # 

Methods

antipode :: (ComplexBasis -> k) -> ComplexBasis -> k Source #

(InvolutiveSemiring k, Rng k) => InvolutiveCoalgebra k ComplexBasis Source # 

Methods

coinv :: (ComplexBasis -> k) -> ComplexBasis -> k Source #

(InvolutiveSemiring k, Rng k) => InvolutiveAlgebra k ComplexBasis Source # 

Methods

inv :: (ComplexBasis -> k) -> ComplexBasis -> k Source #

Rig r => Distinguished (ComplexBasis -> r) Source # 

Methods

e :: ComplexBasis -> r Source #

Rig r => Complicated (ComplexBasis -> r) Source # 

Methods

i :: ComplexBasis -> r Source #

data Complex a Source #

Constructors

Complex a a 

Instances

Monad Complex Source # 

Methods

(>>=) :: Complex a -> (a -> Complex b) -> Complex b #

(>>) :: Complex a -> Complex b -> Complex b #

return :: a -> Complex a #

fail :: String -> Complex a #

Functor Complex Source # 

Methods

fmap :: (a -> b) -> Complex a -> Complex b #

(<$) :: a -> Complex b -> Complex a #

Applicative Complex Source # 

Methods

pure :: 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 #

Foldable Complex Source # 

Methods

fold :: 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 #

Traversable Complex Source # 

Methods

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

Distributive Complex Source # 

Methods

distribute :: Functor f => f (Complex a) -> Complex (f a) #

collect :: Functor f => (a -> Complex b) -> f a -> Complex (f b) #

distributeM :: Monad m => m (Complex a) -> Complex (m a) #

collectM :: Monad m => (a -> Complex b) -> m a -> Complex (m b) #

Representable Complex Source # 

Associated Types

type Rep (Complex :: * -> *) :: * #

Methods

tabulate :: (Rep Complex -> a) -> Complex a #

index :: Complex a -> Rep Complex -> a #

Traversable1 Complex Source # 

Methods

traverse1 :: Apply f => (a -> f b) -> Complex a -> f (Complex b) #

sequence1 :: Apply f => Complex (f b) -> f (Complex b) #

Foldable1 Complex Source # 

Methods

fold1 :: Semigroup m => Complex m -> m #

foldMap1 :: Semigroup m => (a -> m) -> Complex a -> m #

toNonEmpty :: Complex a -> NonEmpty a #

Apply Complex Source # 

Methods

(<.>) :: Complex (a -> b) -> Complex a -> Complex b #

(.>) :: Complex a -> Complex b -> Complex b #

(<.) :: Complex a -> Complex b -> Complex a #

Bind Complex Source # 

Methods

(>>-) :: Complex a -> (a -> Complex b) -> Complex b #

join :: Complex (Complex a) -> Complex a #

MonadReader ComplexBasis Complex Source # 
RightModule r s => RightModule r (Complex s) Source # 

Methods

(*.) :: Complex s -> r -> Complex s Source #

LeftModule r s => LeftModule r (Complex s) Source # 

Methods

(.*) :: r -> Complex s -> Complex s Source #

(Commutative r, Rng r, InvolutiveSemiring r) => Quadrance r (Complex r) Source # 

Methods

quadrance :: Complex r -> r Source #

Eq a => Eq (Complex a) Source # 

Methods

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

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

Data a => Data (Complex a) Source # 

Methods

gfoldl :: (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 #

dataTypeOf :: Complex a -> DataType #

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

Read a => Read (Complex a) Source # 
Show a => Show (Complex a) Source # 

Methods

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

show :: Complex a -> String #

showList :: [Complex a] -> ShowS #

Idempotent r => Idempotent (Complex r) Source # 
Abelian r => Abelian (Complex r) Source # 
Partitionable r => Partitionable (Complex r) Source # 

Methods

partitionWith :: (Complex r -> Complex r -> r) -> Complex r -> NonEmpty r Source #

Additive r => Additive (Complex r) Source # 

Methods

(+) :: Complex r -> Complex r -> Complex r Source #

sinnum1p :: Natural -> Complex r -> Complex r Source #

sumWith1 :: Foldable1 f => (a -> Complex r) -> f a -> Complex r Source #

Monoidal r => Monoidal (Complex r) Source # 

Methods

zero :: Complex r Source #

sinnum :: Natural -> Complex r -> Complex r Source #

sumWith :: Foldable f => (a -> Complex r) -> f a -> Complex r Source #

(Commutative r, Rng r) => Semiring (Complex r) Source # 
(Commutative r, Rng r) => Multiplicative (Complex r) Source # 

Methods

(*) :: Complex r -> Complex r -> Complex r Source #

pow1p :: Complex r -> Natural -> Complex r Source #

productWith1 :: Foldable1 f => (a -> Complex r) -> f a -> Complex r Source #

Group r => Group (Complex r) Source # 

Methods

(-) :: Complex r -> Complex r -> Complex r Source #

negate :: Complex r -> Complex r Source #

subtract :: Complex r -> Complex r -> Complex r Source #

times :: Integral n => n -> Complex r -> Complex r Source #

(Commutative r, Ring r) => Unital (Complex r) Source # 

Methods

one :: Complex r Source #

pow :: Complex r -> Natural -> Complex r Source #

productWith :: Foldable f => (a -> Complex r) -> f a -> Complex r Source #

(Commutative r, InvolutiveSemiring r, DivisionRing r) => Division (Complex r) Source # 

Methods

recip :: Complex r -> Complex r Source #

(/) :: Complex r -> Complex r -> Complex r Source #

(\\) :: Complex r -> Complex r -> Complex r Source #

(^) :: Integral n => Complex r -> n -> Complex r Source #

(TriviallyInvolutive r, Rng r) => Commutative (Complex r) Source # 
(Commutative r, Rng r, InvolutiveSemiring r) => InvolutiveSemiring (Complex r) Source # 
(Commutative r, Rng r, InvolutiveMultiplication r) => InvolutiveMultiplication (Complex r) Source # 

Methods

adjoint :: Complex r -> Complex r Source #

(Commutative r, Ring r) => Rig (Complex r) Source # 
(Commutative r, Ring r) => Ring (Complex r) Source # 
Rig r => Distinguished (Complex r) Source # 

Methods

e :: Complex r Source #

Rig r => Complicated (Complex r) Source # 

Methods

i :: Complex r Source #

(Commutative r, Rng r) => RightModule (Complex r) (Complex r) Source # 

Methods

(*.) :: Complex r -> Complex r -> Complex r Source #

(Commutative r, Rng r) => LeftModule (Complex r) (Complex r) Source # 

Methods

(.*) :: Complex r -> Complex r -> Complex r Source #

type Rep Complex Source # 

realPart :: (Representable f, Rep f ~ ComplexBasis) => f a -> a Source #

imagPart :: (Representable f, Rep f ~ ComplexBasis) => f a -> a Source #

uncomplicate :: Hamiltonian q => ComplexBasis -> ComplexBasis -> q Source #

half of the Cayley-Dickson quaternion isomorphism