algebra-4.3: Constructive abstract algebra

Safe Haskell None Haskell98

Numeric.Algebra.Complex

Synopsis

# Documentation

class Distinguished t where Source #

Minimal complete definition

e

Methods

e :: t Source #

Instances

 Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Rig r => Distinguished (Complex r) Source # Methods Rig r => Distinguished (Dual r) Source # Methodse :: Dual r Source # Rig r => Distinguished (Quaternion r) Source # Methods Rig r => Distinguished (Dual' r) Source # Methods Rig r => Distinguished (Quaternion' r) Source # Methods Rig r => Distinguished (Trig r) Source # Methodse :: Trig r Source # Rig r => Distinguished (ComplexBasis -> r) Source # Methodse :: ComplexBasis -> r Source # Rig r => Distinguished (DualBasis -> r) Source # Methodse :: DualBasis -> r Source # Rig r => Distinguished (QuaternionBasis -> r) Source # Methodse :: QuaternionBasis -> r Source # Rig r => Distinguished (DualBasis' -> r) Source # Methodse :: DualBasis' -> r Source # Rig r => Distinguished (QuaternionBasis' -> r) Source # Methodse :: QuaternionBasis' -> r Source # Rig r => Distinguished (TrigBasis -> r) Source # Methodse :: TrigBasis -> r Source # Distinguished a => Distinguished (Covector r a) Source # Methodse :: Covector r a Source #

class Distinguished r => Complicated r where Source #

Minimal complete definition

i

Methods

i :: r Source #

Instances

 Source # Methods Source # Methods Source # Methods Source # Methods Rig r => Complicated (Complex r) Source # Methods Rig r => Complicated (Quaternion r) Source # Methods Rig r => Complicated (Quaternion' r) Source # Methods Rig r => Complicated (Trig r) Source # Methodsi :: Trig r Source # Rig r => Complicated (ComplexBasis -> r) Source # Methodsi :: ComplexBasis -> r Source # Rig r => Complicated (QuaternionBasis -> r) Source # Methodsi :: QuaternionBasis -> r Source # Rig r => Complicated (QuaternionBasis' -> r) Source # Methodsi :: QuaternionBasis' -> r Source # Rig r => Complicated (TrigBasis -> r) Source # Methodsi :: TrigBasis -> r Source # Complicated a => Complicated (Covector r a) Source # Methodsi :: Covector r a Source #

Constructors

 E I

Instances

 Source # Methods Source # Methods Source # Methods Source # Methodsgfoldl :: (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 #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 # Source # Methods Source # Methods Source # MethodsshowList :: [ComplexBasis] -> ShowS # Source # Methodsrange :: (ComplexBasis, ComplexBasis) -> [ComplexBasis] # Source # Methods Source # Methods Source # Methodslocal :: (ComplexBasis -> ComplexBasis) -> Complex a -> Complex a #reader :: (ComplexBasis -> a) -> Complex a # Source # Methodscomult :: (ComplexBasis -> k) -> ComplexBasis -> ComplexBasis -> k Source # Source # Methodsmult :: (ComplexBasis -> ComplexBasis -> k) -> ComplexBasis -> k Source # Source # Source # Methodscounit :: (ComplexBasis -> k) -> k Source # Source # Methodsunit :: k -> ComplexBasis -> k Source # Source # Methodsantipode :: (ComplexBasis -> k) -> ComplexBasis -> k Source # Source # Methodscoinv :: (ComplexBasis -> k) -> ComplexBasis -> k Source # Source # Methodsinv :: (ComplexBasis -> k) -> ComplexBasis -> k Source # Rig r => Distinguished (ComplexBasis -> r) Source # Methodse :: ComplexBasis -> r Source # Rig r => Complicated (ComplexBasis -> r) Source # Methodsi :: ComplexBasis -> r Source #

data Complex a Source #

Constructors

 Complex a a

Instances

 Source # Methods(>>=) :: Complex a -> (a -> Complex b) -> Complex b #(>>) :: Complex a -> Complex b -> Complex b #return :: a -> Complex a #fail :: String -> Complex a # Source # Methodsfmap :: (a -> b) -> Complex a -> Complex b #(<\$) :: a -> Complex b -> Complex a # Source # Methodspure :: a -> Complex a #(<*>) :: Complex (a -> b) -> Complex a -> Complex b #(*>) :: Complex a -> Complex b -> Complex b #(<*) :: Complex a -> Complex b -> Complex a # Source # 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 # Source # 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) # Source # Methodsdistribute :: 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) # Source # Associated Typestype Rep (Complex :: * -> *) :: * # Methodstabulate :: (Rep Complex -> a) -> Complex a #index :: Complex a -> Rep Complex -> a # Source # Methodstraverse1 :: Apply f => (a -> f b) -> Complex a -> f (Complex b) #sequence1 :: Apply f => Complex (f b) -> f (Complex b) # Source # Methods(<.>) :: Complex (a -> b) -> Complex a -> Complex b #(.>) :: Complex a -> Complex b -> Complex b #(<.) :: Complex a -> Complex b -> Complex a # Source # Methods(>>-) :: Complex a -> (a -> Complex b) -> Complex b #join :: Complex (Complex a) -> Complex a # Source # Methodsfold1 :: Semigroup m => Complex m -> m #foldMap1 :: Semigroup m => (a -> m) -> Complex a -> m # Source # Methodslocal :: (ComplexBasis -> ComplexBasis) -> Complex a -> Complex a #reader :: (ComplexBasis -> a) -> Complex a # 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 # Methodsquadrance :: 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 # 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) # Read a => Read (Complex a) Source # MethodsreadsPrec :: Int -> ReadS (Complex a) # Show a => Show (Complex a) Source # MethodsshowsPrec :: Int -> Complex a -> ShowS #show :: Complex a -> String #showList :: [Complex a] -> ShowS # Idempotent r => Idempotent (Complex r) Source # Abelian r => Abelian (Complex r) Source # Source # MethodspartitionWith :: (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 # Methodssinnum :: 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 # Methodspow :: Complex r -> Natural -> Complex r Source #productWith :: Foldable f => (a -> Complex r) -> f a -> Complex r Source # Source # Methodsrecip :: 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 # (Commutative r, Ring r) => Rig (Complex r) Source # Methods (Commutative r, Ring r) => Ring (Complex r) Source # Methods (TriviallyInvolutive r, Rng r) => Commutative (Complex r) Source # Source # Source # Methodsadjoint :: Complex r -> Complex r Source # Rig r => Distinguished (Complex r) Source # Methods Rig r => Complicated (Complex r) Source # Methods (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 #

half of the Cayley-Dickson quaternion isomorphism