oalg-base-3.0.0.0: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems.
Copyright(c) Erich Gut
LicenseBSD3
Maintainerzerich.gut@gmail.com
Safe HaskellNone
LanguageHaskell2010

OAlg.Structure.Vectorial.Definition

Description

definition of vectorial structures, i.e. Additive structures with a scalar multiplication (!).

Synopsis

Vectorial

class (Semiring (Scalar v), Commutative (Scalar v), Additive v) => Vectorial v where Source #

Additive structures with a total defined scalar multiplication from the left by a commutative semi ring. The entities of v are called vector.

Properties Let v b a Vectorial structure, then holds:

  1. For all s in Scalar v and v in v holds: s!v is valid and root (s!v) == root v.
  2. For all v in v holds: 0!v == zero (root v).
  3. For all s in Scalar v and r in Root v holds s!zero r == zero r.
  4. For all r, s in Scalar v and v in v holds: (r + s)!v == r!v + s!v.
  5. For all s in Scalar v and v, w in v with root v == root w holds: s!(v + w) == s!v + s!w.
  6. For all v in v holds: 1!v == v.
  7. For all r, s in Scalar v and v in v holds: (r*s)!v == r!(s!v).

Associated Types

type Scalar v Source #

the type of scalars.

Methods

(!) :: Scalar v -> v -> v infixr 8 Source #

scalar multiplication of a vector.

Instances

Instances details
Vectorial N Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Associated Types

type Scalar N 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

type Scalar N = N

Methods

(!) :: Scalar N -> N -> N Source #

Vectorial Q Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Associated Types

type Scalar Q 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

type Scalar Q = Q

Methods

(!) :: Scalar Q -> Q -> Q Source #

Vectorial Z Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Associated Types

type Scalar Z 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

type Scalar Z = Z

Methods

(!) :: Scalar Z -> Z -> Z Source #

Vectorial Integer Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Associated Types

type Scalar Integer 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Vectorial () Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Associated Types

type Scalar () 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

type Scalar () = Q

Methods

(!) :: Scalar () -> () -> () Source #

Vectorial Int Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Associated Types

type Scalar Int 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

type Scalar Int = Int

Methods

(!) :: Scalar Int -> Int -> Int Source #

(Vectorial x, FibredOriented x) => Vectorial (Matrix x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Definition

Associated Types

type Scalar (Matrix x) 
Instance details

Defined in OAlg.Entity.Matrix.Definition

type Scalar (Matrix x) = Scalar x

Methods

(!) :: Scalar (Matrix x) -> Matrix x -> Matrix x Source #

(Semiring r, Commutative r) => Vectorial (Vector r) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Vector

Associated Types

type Scalar (Vector r) 
Instance details

Defined in OAlg.Entity.Matrix.Vector

type Scalar (Vector r) = r

Methods

(!) :: Scalar (Vector r) -> Vector r -> Vector r Source #

(Vectorial v, FibredOriented v) => Vectorial (Op v) Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Associated Types

type Scalar (Op v) 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

type Scalar (Op v) = Scalar v

Methods

(!) :: Scalar (Op v) -> Op v -> Op v Source #

Entity p => Vectorial (Orientation p) Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Associated Types

type Scalar (Orientation p) 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

type Scalar (Orientation p) = Q
(Fibred a, Ord a, Semiring r, Commutative r) => Vectorial (Sum r a) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Associated Types

type Scalar (Sum r a) 
Instance details

Defined in OAlg.Entity.Sum.Definition

type Scalar (Sum r a) = r

Methods

(!) :: Scalar (Sum r a) -> Sum r a -> Sum r a Source #

(Semiring r, Commutative r, Entity a, Ord a) => Vectorial (SumSymbol r a) Source # 
Instance details

Defined in OAlg.Entity.Sum.SumSymbol

Associated Types

type Scalar (SumSymbol r a) 
Instance details

Defined in OAlg.Entity.Sum.SumSymbol

type Scalar (SumSymbol r a) = r

Methods

(!) :: Scalar (SumSymbol r a) -> SumSymbol r a -> SumSymbol r a Source #

(Distributive x, Vectorial x, Sliced i x) => Vectorial (Slice 'From i x) Source # 
Instance details

Defined in OAlg.Entity.Slice.Definition

Associated Types

type Scalar (Slice 'From i x) 
Instance details

Defined in OAlg.Entity.Slice.Definition

type Scalar (Slice 'From i x) = Scalar x

Methods

(!) :: Scalar (Slice 'From i x) -> Slice 'From i x -> Slice 'From i x Source #

(Algebraic x, Typeable t, Typeable n) => Vectorial (ConsecutiveZeroHom t n x) Source # 
Instance details

Defined in OAlg.Limes.Exact.ConsecutiveZero

Associated Types

type Scalar (ConsecutiveZeroHom t n x) 
Instance details

Defined in OAlg.Limes.Exact.ConsecutiveZero

(Algebraic a, Typeable t, Typeable n, Typeable m) => Vectorial (DiagramTrafo t n m a) Source # 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

Associated Types

type Scalar (DiagramTrafo t n m a) 
Instance details

Defined in OAlg.Entity.Diagram.Transformation

type Scalar (DiagramTrafo t n m a) = Scalar a

Methods

(!) :: Scalar (DiagramTrafo t n m a) -> DiagramTrafo t n m a -> DiagramTrafo t n m a Source #

data Vec k Source #

type representing the class of k-Vectorial structures.

Instances

Instances details
TransformableVec k Vec Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

TransformableAdd (Vec k) Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

TransformableTyp (Vec k) Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

TransformableFbr (Vec k) Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Transformable (Vec k) Ent Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Methods

tau :: Struct (Vec k) x -> Struct Ent x Source #

Transformable (Vec k) Add Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Methods

tau :: Struct (Vec k) x -> Struct Add x Source #

Transformable (Vec k) Typ Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Methods

tau :: Struct (Vec k) x -> Struct Typ x Source #

Transformable (Vec k) Fbr Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Methods

tau :: Struct (Vec k) x -> Struct Fbr x Source #

Transformable (Alg k) (Vec k) Source # 
Instance details

Defined in OAlg.Structure.Algebraic.Definition

Methods

tau :: Struct (Alg k) x -> Struct (Vec k) x Source #

type Structure (Vec k) x Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

type Structure (Vec k) x = (Vectorial x, k ~ Scalar x)

class (TransformableAdd (s k), Transformable (s k) (Vec k)) => TransformableVec k (s :: Type -> Type) Source #

helper class to avoid undecidable instances.

Instances

Instances details
TransformableVec k Alg Source # 
Instance details

Defined in OAlg.Structure.Algebraic.Definition

TransformableVec k Vec Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Sheaf

data VectorSheaf v Source #

list of scalars and vectors, having all the same given root.

Property Let VectorSheaf r svs be in VectorSheaf v for a Vectorial-structure v, then holds: root v == r, for all (_,v) in svs.

Constructors

VectorSheaf (Root v) [(Scalar v, v)] 

Instances

Instances details
Vectorial v => Show (VectorSheaf v) Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Vectorial v => Eq (VectorSheaf v) Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Vectorial v => Validable (VectorSheaf v) Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

(Fibred a, Ord a, Scalar a ~ r, Semiring r, Commutative r) => Projectible (Sum r a) (VectorSheaf a) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Methods

prj :: VectorSheaf a -> Sum r a Source #

Euclidean

class Vectorial v => Euclidean v where Source #

Vectorial structures with a partially defined scalar product.

Properties

  1. For all v, w holds: if root v == root w then v <!> w is valid, otherwise a UndefinedScalarproduct-exception will be thrown.
  2. For all u holds: u <!> zero (root u) == rZero.
  3. For all u, v and w with root u == root w and root w == root v holds: u <!> (v + w) == u <!> v + u <!> w.
  4. For all w holds: zero (root w) <!> w == rZero.
  5. For all u, v and w with root w == root u and root u == root v holds: (u + v) <!> w == u <!> w + v' !' w.

Methods

(<!>) :: v -> v -> Scalar v infix 7 Source #

the scalar product of two vectors.

Instances

Instances details
Euclidean N Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Methods

(<!>) :: N -> N -> Scalar N Source #

Euclidean Q Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Methods

(<!>) :: Q -> Q -> Scalar Q Source #

Euclidean Z Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

Methods

(<!>) :: Z -> Z -> Scalar Z Source #

(Semiring r, Commutative r) => Euclidean (Vector r) Source # 
Instance details

Defined in OAlg.Entity.Matrix.Vector

Methods

(<!>) :: Vector r -> Vector r -> Scalar (Vector r) Source #

Entity p => Euclidean (Orientation p) Source # 
Instance details

Defined in OAlg.Structure.Vectorial.Definition

(Semiring r, Commutative r, Entity a, Ord a) => Euclidean (SumSymbol r a) Source # 
Instance details

Defined in OAlg.Entity.Sum.SumSymbol

Methods

(<!>) :: SumSymbol r a -> SumSymbol r a -> Scalar (SumSymbol r a) Source #