linearmap-category-0.4.3.0: Native, complete, matrix-free linear algebra.

Copyright(c) Justus Sagemüller 2016
LicenseGPL v3
Maintainer(@) jsag $ hvl.no
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Math.VectorSpace.ZeroDimensional

Description

 

Documentation

data ZeroDim s :: * -> * #

Constructors

Origin 

Instances

Eq (ZeroDim s) 

Methods

(==) :: ZeroDim s -> ZeroDim s -> Bool Source #

(/=) :: ZeroDim s -> ZeroDim s -> Bool Source #

Show (ZeroDim s) 
Semigroup (ZeroDim s) 

Methods

(<>) :: ZeroDim s -> ZeroDim s -> ZeroDim s Source #

sconcat :: NonEmpty (ZeroDim s) -> ZeroDim s Source #

stimes :: Integral b => b -> ZeroDim s -> ZeroDim s Source #

Monoid (ZeroDim s) 
AdditiveGroup (ZeroDim s) 

Methods

zeroV :: ZeroDim s #

(^+^) :: ZeroDim s -> ZeroDim s -> ZeroDim s #

negateV :: ZeroDim s -> ZeroDim s #

(^-^) :: ZeroDim s -> ZeroDim s -> ZeroDim s #

AdditiveGroup s => InnerSpace (ZeroDim s) 

Methods

(<.>) :: ZeroDim s -> ZeroDim s -> Scalar (ZeroDim s) #

VectorSpace (ZeroDim s) 

Associated Types

type Scalar (ZeroDim s) :: * #

Methods

(*^) :: Scalar (ZeroDim s) -> ZeroDim s -> ZeroDim s #

HasBasis (ZeroDim s) 

Associated Types

type Basis (ZeroDim s) :: * #

AffineSpace (ZeroDim s) 

Associated Types

type Diff (ZeroDim s) :: * #

Methods

(.-.) :: ZeroDim s -> ZeroDim s -> Diff (ZeroDim s) #

(.+^) :: ZeroDim s -> Diff (ZeroDim s) -> ZeroDim s #

Semimanifold (ZeroDim k) 

Associated Types

type Needle (ZeroDim k) :: * #

PseudoAffine (ZeroDim k) 
Num' s => LinearSpace (ZeroDim s) Source # 

Associated Types

type DualVector (ZeroDim s) :: * Source #

Methods

dualSpaceWitness :: DualSpaceWitness (ZeroDim s) Source #

linearId :: ZeroDim s +> ZeroDim s Source #

idTensor :: ZeroDim s DualVector (ZeroDim s) Source #

sampleLinearFunction :: (TensorSpace w, (* ~ Scalar (ZeroDim s)) (Scalar w)) => (ZeroDim s -+> w) -+> (ZeroDim s +> w) Source #

toLinearForm :: DualVector (ZeroDim s) -+> (ZeroDim s +> Scalar (ZeroDim s)) Source #

fromLinearForm :: (ZeroDim s +> Scalar (ZeroDim s)) -+> DualVector (ZeroDim s) Source #

coerceDoubleDual :: Coercion * (ZeroDim s) (DualVector (DualVector (ZeroDim s))) Source #

trace :: (ZeroDim s +> ZeroDim s) -+> Scalar (ZeroDim s) Source #

contractTensorMap :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s +> (ZeroDim s w)) -+> w Source #

contractMapTensor :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s (ZeroDim s +> w)) -+> w Source #

contractTensorFn :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s -+> (ZeroDim s w)) -+> w Source #

contractLinearMapAgainst :: (LinearSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => Bilinear (ZeroDim s +> w) (w -+> ZeroDim s) (Scalar (ZeroDim s)) Source #

applyDualVector :: Bilinear (DualVector (ZeroDim s)) (ZeroDim s) (Scalar (ZeroDim s)) Source #

applyLinear :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => Bilinear (ZeroDim s +> w) (ZeroDim s) w Source #

composeLinear :: (LinearSpace w, TensorSpace x, (* ~ Scalar w) (Scalar (ZeroDim s)), (* ~ Scalar x) (Scalar (ZeroDim s))) => Bilinear (w +> x) (ZeroDim s +> w) (ZeroDim s +> x) Source #

tensorId :: (LinearSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s w) +> (ZeroDim s w) Source #

applyTensorFunctional :: (LinearSpace u, (* ~ Scalar u) (Scalar (ZeroDim s))) => Bilinear (DualVector (ZeroDim s u)) (ZeroDim s u) (Scalar (ZeroDim s)) Source #

applyTensorLinMap :: (LinearSpace u, TensorSpace w, (* ~ Scalar u) (Scalar (ZeroDim s)), (* ~ Scalar w) (Scalar (ZeroDim s))) => Bilinear ((ZeroDim s u) +> w) (ZeroDim s u) w Source #

useTupleLinearSpaceComponents :: (* ~ ZeroDim s) (x, y) => (LinearSpace x -> LinearSpace y -> (* ~ Scalar x) (Scalar y) -> φ) -> φ Source #

Num' s => TensorSpace (ZeroDim s) Source # 

Associated Types

type TensorProduct (ZeroDim s) w :: * Source #

Methods

scalarSpaceWitness :: ScalarSpaceWitness (ZeroDim s) Source #

linearManifoldWitness :: LinearManifoldWitness (ZeroDim s) Source #

zeroTensor :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => ZeroDim s w Source #

toFlatTensor :: ZeroDim s -+> (ZeroDim s Scalar (ZeroDim s)) Source #

fromFlatTensor :: (ZeroDim s Scalar (ZeroDim s)) -+> ZeroDim s Source #

addTensors :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s w) -> (ZeroDim s w) -> ZeroDim s w Source #

subtractTensors :: (TensorSpace (ZeroDim s), TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s w) -> (ZeroDim s w) -> ZeroDim s w Source #

scaleTensor :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => Bilinear (Scalar (ZeroDim s)) (ZeroDim s w) (ZeroDim s w) Source #

negateTensor :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s w) -+> (ZeroDim s w) Source #

tensorProduct :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => Bilinear (ZeroDim s) w (ZeroDim s w) Source #

tensorProducts :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => [(ZeroDim s, w)] -> ZeroDim s w Source #

transposeTensor :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s w) -+> (w ZeroDim s) Source #

fmapTensor :: (TensorSpace w, TensorSpace x, (* ~ Scalar w) (Scalar (ZeroDim s)), (* ~ Scalar x) (Scalar (ZeroDim s))) => Bilinear (w -+> x) (ZeroDim s w) (ZeroDim s x) Source #

fzipTensorWith :: (TensorSpace u, TensorSpace w, TensorSpace x, (* ~ Scalar u) (Scalar (ZeroDim s)), (* ~ Scalar w) (Scalar (ZeroDim s)), (* ~ Scalar x) (Scalar (ZeroDim s))) => Bilinear ((w, x) -+> u) (ZeroDim s w, ZeroDim s x) (ZeroDim s u) Source #

coerceFmapTensorProduct :: Functor p => p (ZeroDim s) -> Coercion * a b -> Coercion * (TensorProduct (ZeroDim s) a) (TensorProduct (ZeroDim s) b) Source #

wellDefinedVector :: ZeroDim s -> Maybe (ZeroDim s) Source #

wellDefinedTensor :: (TensorSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s w) -> Maybe (ZeroDim s w) Source #

Num' s => FiniteDimensional (ZeroDim s) Source # 

Associated Types

data SubBasis (ZeroDim s) :: * Source #

Methods

entireBasis :: SubBasis (ZeroDim s) Source #

enumerateSubBasis :: SubBasis (ZeroDim s) -> [ZeroDim s] Source #

subbasisDimension :: SubBasis (ZeroDim s) -> Int Source #

decomposeLinMap :: (LSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s +> w) -> (SubBasis (ZeroDim s), DList w) Source #

decomposeLinMapWithin :: (LSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => SubBasis (ZeroDim s) -> (ZeroDim s +> w) -> Either (SubBasis (ZeroDim s), DList w) (DList w) Source #

recomposeSB :: SubBasis (ZeroDim s) -> [Scalar (ZeroDim s)] -> (ZeroDim s, [Scalar (ZeroDim s)]) Source #

recomposeSBTensor :: (FiniteDimensional w, (* ~ Scalar w) (Scalar (ZeroDim s))) => SubBasis (ZeroDim s) -> SubBasis w -> [Scalar (ZeroDim s)] -> (ZeroDim s w, [Scalar (ZeroDim s)]) Source #

recomposeLinMap :: (LSpace w, (* ~ Scalar w) (Scalar (ZeroDim s))) => SubBasis (ZeroDim s) -> [w] -> (ZeroDim s +> w, [w]) Source #

recomposeContraLinMap :: (LinearSpace w, (* ~ Scalar w) (Scalar (ZeroDim s)), Functor f) => (f (Scalar w) -> w) -> f (DualVector (ZeroDim s)) -> ZeroDim s +> w Source #

recomposeContraLinMapTensor :: (FiniteDimensional u, LinearSpace w, (* ~ Scalar u) (Scalar (ZeroDim s)), (* ~ Scalar w) (Scalar (ZeroDim s)), Functor f) => (f (Scalar w) -> w) -> f (ZeroDim s +> DualVector u) -> (ZeroDim s u) +> w Source #

uncanonicallyFromDual :: DualVector (ZeroDim s) -+> ZeroDim s Source #

uncanonicallyToDual :: ZeroDim s -+> DualVector (ZeroDim s) Source #

tensorEquality :: (TensorSpace w, Eq w, (* ~ Scalar w) (Scalar (ZeroDim s))) => (ZeroDim s w) -> (ZeroDim s w) -> Bool Source #

dualFinitenessWitness :: DualFinitenessWitness (ZeroDim s) Source #

(Fractional' s, SemiInner s) => SemiInner (ZeroDim s) Source # 
type Scalar (ZeroDim s) 
type Scalar (ZeroDim s) = s
type Basis (ZeroDim s) 
type Basis (ZeroDim s) = Void
type Diff (ZeroDim s) 
type Diff (ZeroDim s) = ZeroDim s
type Needle (ZeroDim k) 
type Needle (ZeroDim k) = ZeroDim k
type DualVector (ZeroDim s) Source # 
data SubBasis (ZeroDim s) Source # 
type TensorProduct (ZeroDim s) v Source #