algebra-4.3: Constructive abstract algebra

Safe HaskellNone
LanguageHaskell98

Numeric.Algebra.Dual

Synopsis

Documentation

class Distinguished t where Source #

Minimal complete definition

e

Methods

e :: t Source #

Instances

Distinguished ComplexBasis Source # 
Distinguished DualBasis Source # 

Methods

e :: DualBasis Source #

Distinguished QuaternionBasis Source # 
Distinguished DualBasis' Source # 

Methods

e :: DualBasis' Source #

Distinguished QuaternionBasis' Source # 
Distinguished TrigBasis Source # 

Methods

e :: TrigBasis Source #

Rig r => Distinguished (Complex r) Source # 

Methods

e :: Complex 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 (Quaternion' r) Source # 

Methods

e :: Quaternion' r Source #

Rig r => Distinguished (Trig r) Source # 

Methods

e :: Trig r Source #

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

Methods

e :: ComplexBasis -> 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 (QuaternionBasis' -> r) Source # 

Methods

e :: QuaternionBasis' -> r Source #

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

Methods

e :: TrigBasis -> r Source #

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

Methods

e :: Covector r a Source #

class Distinguished t => Infinitesimal t where Source #

Minimal complete definition

d

Methods

d :: t Source #

data DualBasis Source #

dual number basis, D^2 = 0. D /= 0.

Constructors

E 
D 

Instances

Bounded DualBasis Source # 
Enum DualBasis Source # 
Eq DualBasis Source # 
Data DualBasis Source # 

Methods

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

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

toConstr :: DualBasis -> Constr #

dataTypeOf :: DualBasis -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord DualBasis Source # 
Read DualBasis Source # 
Show DualBasis Source # 
Ix DualBasis Source # 
Distinguished DualBasis Source # 

Methods

e :: DualBasis Source #

Infinitesimal DualBasis Source # 

Methods

d :: DualBasis Source #

MonadReader DualBasis Dual Source # 

Methods

ask :: Dual DualBasis #

local :: (DualBasis -> DualBasis) -> Dual a -> Dual a #

reader :: (DualBasis -> a) -> Dual a #

Rng k => Coalgebra k DualBasis Source # 

Methods

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

Rng k => Algebra k DualBasis Source # 

Methods

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

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

Methods

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

Rng k => UnitalAlgebra k DualBasis Source # 

Methods

unit :: k -> DualBasis -> k Source #

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

Methods

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

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

Methods

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

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

Methods

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

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

Methods

e :: DualBasis -> r Source #

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

Methods

d :: DualBasis -> r Source #

data Dual a Source #

Constructors

Dual a a 

Instances

Monad Dual Source # 

Methods

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

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

return :: a -> Dual a #

fail :: String -> Dual a #

Functor Dual Source # 

Methods

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

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

Applicative Dual Source # 

Methods

pure :: a -> Dual a #

(<*>) :: Dual (a -> b) -> Dual a -> Dual b #

(*>) :: Dual a -> Dual b -> Dual b #

(<*) :: Dual a -> Dual b -> Dual a #

Foldable Dual Source # 

Methods

fold :: Monoid m => Dual m -> m #

foldMap :: Monoid m => (a -> m) -> Dual a -> m #

foldr :: (a -> b -> b) -> b -> Dual a -> b #

foldr' :: (a -> b -> b) -> b -> Dual a -> b #

foldl :: (b -> a -> b) -> b -> Dual a -> b #

foldl' :: (b -> a -> b) -> b -> Dual a -> b #

foldr1 :: (a -> a -> a) -> Dual a -> a #

foldl1 :: (a -> a -> a) -> Dual a -> a #

toList :: Dual a -> [a] #

null :: Dual a -> Bool #

length :: Dual a -> Int #

elem :: Eq a => a -> Dual a -> Bool #

maximum :: Ord a => Dual a -> a #

minimum :: Ord a => Dual a -> a #

sum :: Num a => Dual a -> a #

product :: Num a => Dual a -> a #

Traversable Dual Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Dual a -> f (Dual b) #

sequenceA :: Applicative f => Dual (f a) -> f (Dual a) #

mapM :: Monad m => (a -> m b) -> Dual a -> m (Dual b) #

sequence :: Monad m => Dual (m a) -> m (Dual a) #

Distributive Dual Source # 

Methods

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

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

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

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

Representable Dual Source # 

Associated Types

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

Methods

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

index :: Dual a -> Rep Dual -> a #

Traversable1 Dual Source # 

Methods

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

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

Apply Dual Source # 

Methods

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

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

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

Bind Dual Source # 

Methods

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

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

Foldable1 Dual Source # 

Methods

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

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

MonadReader DualBasis Dual Source # 

Methods

ask :: Dual DualBasis #

local :: (DualBasis -> DualBasis) -> Dual a -> Dual a #

reader :: (DualBasis -> a) -> Dual a #

RightModule r s => RightModule r (Dual s) Source # 

Methods

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

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

Methods

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

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

Methods

quadrance :: Dual r -> r Source #

Eq a => Eq (Dual a) Source # 

Methods

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

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

Data a => Data (Dual a) Source # 

Methods

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

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

toConstr :: Dual a -> Constr #

dataTypeOf :: Dual a -> DataType #

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

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

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

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

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

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

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

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

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

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

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

Methods

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

show :: Dual a -> String #

showList :: [Dual a] -> ShowS #

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

Methods

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

Additive r => Additive (Dual r) Source # 

Methods

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

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

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

Monoidal r => Monoidal (Dual r) Source # 

Methods

zero :: Dual r Source #

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

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

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

Methods

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

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

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

Group r => Group (Dual r) Source # 

Methods

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

negate :: Dual r -> Dual r Source #

subtract :: Dual r -> Dual r -> Dual r Source #

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

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

Methods

one :: Dual r Source #

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

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

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

Methods

recip :: Dual r -> Dual r Source #

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

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

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

(Commutative r, Ring r) => Rig (Dual r) Source # 
(Commutative r, Ring r) => Ring (Dual r) Source # 
(TriviallyInvolutive r, Rng r) => Commutative (Dual r) Source # 
(Commutative r, Rng r, InvolutiveSemiring r) => InvolutiveSemiring (Dual r) Source # 
(Commutative r, Rng r, InvolutiveSemiring r) => InvolutiveMultiplication (Dual r) Source # 

Methods

adjoint :: Dual r -> Dual r Source #

Rig r => Distinguished (Dual r) Source # 

Methods

e :: Dual r Source #

Rig r => Infinitesimal (Dual r) Source # 

Methods

d :: Dual r Source #

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

Methods

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

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

Methods

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

type Rep Dual Source #