algebra-4.3.1: Constructive abstract algebra

Safe HaskellSafe
LanguageHaskell98

Numeric.Algebra.Involutive

Contents

Synopsis

Involution

class Multiplicative r => InvolutiveMultiplication r where #

An semigroup with involution

adjoint a * adjoint b = adjoint (b * a)

Minimal complete definition

adjoint

Methods

adjoint :: r -> r #

Instances

InvolutiveMultiplication Bool # 

Methods

adjoint :: Bool -> Bool #

InvolutiveMultiplication Int # 

Methods

adjoint :: Int -> Int #

InvolutiveMultiplication Int8 # 

Methods

adjoint :: Int8 -> Int8 #

InvolutiveMultiplication Int16 # 

Methods

adjoint :: Int16 -> Int16 #

InvolutiveMultiplication Int32 # 

Methods

adjoint :: Int32 -> Int32 #

InvolutiveMultiplication Int64 # 

Methods

adjoint :: Int64 -> Int64 #

InvolutiveMultiplication Integer # 

Methods

adjoint :: Integer -> Integer #

InvolutiveMultiplication Natural # 

Methods

adjoint :: Natural -> Natural #

InvolutiveMultiplication Word # 

Methods

adjoint :: Word -> Word #

InvolutiveMultiplication Word8 # 

Methods

adjoint :: Word8 -> Word8 #

InvolutiveMultiplication Word16 # 

Methods

adjoint :: Word16 -> Word16 #

InvolutiveMultiplication Word32 # 

Methods

adjoint :: Word32 -> Word32 #

InvolutiveMultiplication Word64 # 

Methods

adjoint :: Word64 -> Word64 #

InvolutiveMultiplication () # 

Methods

adjoint :: () -> () #

InvolutiveMultiplication Euclidean # 
(Commutative r, Rng r, InvolutiveMultiplication r) => InvolutiveMultiplication (Trig r) # 

Methods

adjoint :: Trig r -> Trig r #

(TriviallyInvolutive r, Rng r) => InvolutiveMultiplication (Quaternion' r) # 

Methods

adjoint :: Quaternion' r -> Quaternion' r #

(Commutative r, Group r, InvolutiveSemiring r) => InvolutiveMultiplication (Hyper r) # 

Methods

adjoint :: Hyper r -> Hyper r #

(Commutative r, Rng r, InvolutiveSemiring r) => InvolutiveMultiplication (Dual' r) # 

Methods

adjoint :: Dual' r -> Dual' r #

(TriviallyInvolutive r, Rng r) => InvolutiveMultiplication (Quaternion r) # 

Methods

adjoint :: Quaternion r -> Quaternion r #

(Commutative r, InvolutiveSemiring r, Rng r) => InvolutiveMultiplication (Hyper' r) # 

Methods

adjoint :: Hyper' r -> Hyper' r #

(Commutative r, Rng r, InvolutiveSemiring r) => InvolutiveMultiplication (Dual r) # 

Methods

adjoint :: Dual r -> Dual r #

(Commutative r, Rng r, InvolutiveMultiplication r) => InvolutiveMultiplication (Complex r) # 

Methods

adjoint :: Complex r -> Complex r #

InvolutiveAlgebra r h => InvolutiveMultiplication (h -> r) # 

Methods

adjoint :: (h -> r) -> h -> r #

(InvolutiveMultiplication a, InvolutiveMultiplication b) => InvolutiveMultiplication (a, b) # 

Methods

adjoint :: (a, b) -> (a, b) #

(InvolutiveMultiplication a, InvolutiveMultiplication b, InvolutiveMultiplication c) => InvolutiveMultiplication (a, b, c) # 

Methods

adjoint :: (a, b, c) -> (a, b, c) #

(InvolutiveMultiplication a, InvolutiveMultiplication b, InvolutiveMultiplication c, InvolutiveMultiplication d) => InvolutiveMultiplication (a, b, c, d) # 

Methods

adjoint :: (a, b, c, d) -> (a, b, c, d) #

(InvolutiveMultiplication a, InvolutiveMultiplication b, InvolutiveMultiplication c, InvolutiveMultiplication d, InvolutiveMultiplication e) => InvolutiveMultiplication (a, b, c, d, e) # 

Methods

adjoint :: (a, b, c, d, e) -> (a, b, c, d, e) #

class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r #

adjoint (x + y) = adjoint x + adjoint y

Involutive Algebras

class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a where #

Minimal complete definition

inv

Methods

inv :: (a -> r) -> a -> r #

Instances

InvolutiveSemiring r => InvolutiveAlgebra r () # 

Methods

inv :: (() -> r) -> () -> r #

(Commutative k, Group k, InvolutiveSemiring k) => InvolutiveAlgebra k TrigBasis # 

Methods

inv :: (TrigBasis -> k) -> TrigBasis -> k #

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveAlgebra r QuaternionBasis' # 

Methods

inv :: (QuaternionBasis' -> r) -> QuaternionBasis' -> r #

(Commutative k, Group k, InvolutiveSemiring k) => InvolutiveAlgebra k HyperBasis # 

Methods

inv :: (HyperBasis -> k) -> HyperBasis -> k #

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

Methods

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

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveAlgebra r QuaternionBasis # 

Methods

inv :: (QuaternionBasis -> r) -> QuaternionBasis -> r #

(Commutative k, Group k, InvolutiveSemiring k) => InvolutiveAlgebra k HyperBasis' # 

Methods

inv :: (HyperBasis' -> k) -> HyperBasis' -> k #

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

Methods

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

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

Methods

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

(InvolutiveAlgebra r a, InvolutiveAlgebra r b) => InvolutiveAlgebra r (a, b) # 

Methods

inv :: ((a, b) -> r) -> (a, b) -> r #

(InvolutiveAlgebra r a, InvolutiveAlgebra r b, InvolutiveAlgebra r c) => InvolutiveAlgebra r (a, b, c) # 

Methods

inv :: ((a, b, c) -> r) -> (a, b, c) -> r #

(InvolutiveAlgebra r a, InvolutiveAlgebra r b, InvolutiveAlgebra r c, InvolutiveAlgebra r d) => InvolutiveAlgebra r (a, b, c, d) # 

Methods

inv :: ((a, b, c, d) -> r) -> (a, b, c, d) -> r #

(InvolutiveAlgebra r a, InvolutiveAlgebra r b, InvolutiveAlgebra r c, InvolutiveAlgebra r d, InvolutiveAlgebra r e) => InvolutiveAlgebra r (a, b, c, d, e) # 

Methods

inv :: ((a, b, c, d, e) -> r) -> (a, b, c, d, e) -> r #

class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c where #

Minimal complete definition

coinv

Methods

coinv :: (c -> r) -> c -> r #

Instances

InvolutiveSemiring r => InvolutiveCoalgebra r () # 

Methods

coinv :: (() -> r) -> () -> r #

(Commutative k, Group k, InvolutiveSemiring k) => InvolutiveCoalgebra k TrigBasis # 

Methods

coinv :: (TrigBasis -> k) -> TrigBasis -> k #

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveCoalgebra r QuaternionBasis' # 

Methods

coinv :: (QuaternionBasis' -> r) -> QuaternionBasis' -> r #

(Commutative k, Group k, InvolutiveSemiring k) => InvolutiveCoalgebra k HyperBasis # 

Methods

coinv :: (HyperBasis -> k) -> HyperBasis -> k #

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

Methods

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

(TriviallyInvolutive r, InvolutiveSemiring r, Rng r) => InvolutiveCoalgebra r QuaternionBasis # 

Methods

coinv :: (QuaternionBasis -> r) -> QuaternionBasis -> r #

(Commutative k, Group k, InvolutiveSemiring k) => InvolutiveCoalgebra k HyperBasis' # 

Methods

coinv :: (HyperBasis' -> k) -> HyperBasis' -> k #

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

Methods

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

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

Methods

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

(InvolutiveCoalgebra r a, InvolutiveCoalgebra r b) => InvolutiveCoalgebra r (a, b) # 

Methods

coinv :: ((a, b) -> r) -> (a, b) -> r #

(InvolutiveCoalgebra r a, InvolutiveCoalgebra r b, InvolutiveCoalgebra r c) => InvolutiveCoalgebra r (a, b, c) # 

Methods

coinv :: ((a, b, c) -> r) -> (a, b, c) -> r #

(InvolutiveCoalgebra r a, InvolutiveCoalgebra r b, InvolutiveCoalgebra r c, InvolutiveCoalgebra r d) => InvolutiveCoalgebra r (a, b, c, d) # 

Methods

coinv :: ((a, b, c, d) -> r) -> (a, b, c, d) -> r #

(InvolutiveCoalgebra r a, InvolutiveCoalgebra r b, InvolutiveCoalgebra r c, InvolutiveCoalgebra r d, InvolutiveCoalgebra r e) => InvolutiveCoalgebra r (a, b, c, d, e) # 

Methods

coinv :: ((a, b, c, d, e) -> r) -> (a, b, c, d, e) -> r #

Trivial Involution