safe-tensor-0.2.1.0: Dependently typed tensor algebra

Math.Tensor.Basic.Sym2

Description

Definitions of symmetric tensors.

Synopsis

# Flat positive-definite metric

gamma :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (r :: Rank) v. ('['('VSpace id n, 'Cov (a :| '[b]))] ~ r, (a < b) ~ 'True, SingI n, Num v) => Tensor r v Source #

gamma' :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (r :: Rank) v. ('['('VSpace id n, 'Cov (a :| '[b]))] ~ r, (a < b) ~ 'True, SingI n, Num v) => Sing id -> Sing n -> Sing a -> Sing b -> Tensor r v Source #

gammaInv :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (r :: Rank) v. ('['('VSpace id n, 'Con (a :| '[b]))] ~ r, (a < b) ~ 'True, SingI n, Num v) => Tensor r v Source #

gammaInv' :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (r :: Rank) v. ('['('VSpace id n, 'Con (a :| '[b]))] ~ r, (a < b) ~ 'True, SingI n, Num v) => Sing id -> Sing n -> Sing a -> Sing b -> Tensor r v Source #

# Flat Lorentzian metric

eta :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (r :: Rank) v. ('['('VSpace id n, 'Cov (a :| '[b]))] ~ r, (a < b) ~ 'True, SingI n, Num v) => Tensor r v Source #

eta' :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (r :: Rank) v. ('['('VSpace id n, 'Cov (a :| '[b]))] ~ r, (a < b) ~ 'True, SingI n, Num v) => Sing id -> Sing n -> Sing a -> Sing b -> Tensor r v Source #

etaInv :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (r :: Rank) v. ('['('VSpace id n, 'Con (a :| '[b]))] ~ r, (a < b) ~ 'True, SingI n, Num v) => Tensor r v Source #

etaInv' :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (r :: Rank) v. ('['('VSpace id n, 'Con (a :| '[b]))] ~ r, (a < b) ~ 'True, SingI n, Num v) => Sing id -> Sing n -> Sing a -> Sing b -> Tensor r v Source #

# Injections from $$S^2V$$ into $$V\times V$$

injSym2Con' :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (i :: Symbol) (r :: Rank) v. (InjSym2ConRank id n a b i ~ 'Just r, SingI r, Num v) => Sing id -> Sing n -> Sing a -> Sing b -> Sing i -> Tensor r v Source #

injSym2Cov' :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (i :: Symbol) (r :: Rank) v. (InjSym2CovRank id n a b i ~ 'Just r, SingI r, Num v) => Sing id -> Sing n -> Sing a -> Sing b -> Sing i -> Tensor r v Source #

# Surjections from $$V\times V$$ onto $$S^2V$$

surjSym2Con' :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (i :: Symbol) (r :: Rank) v. (SurjSym2ConRank id n a b i ~ 'Just r, SingI r, Fractional v) => Sing id -> Sing n -> Sing a -> Sing b -> Sing i -> Tensor r v Source #

surjSym2Cov' :: forall (id :: Symbol) (n :: Nat) (a :: Symbol) (b :: Symbol) (i :: Symbol) (r :: Rank) v. (SurjSym2CovRank id n a b i ~ 'Just r, SingI r, Fractional v) => Sing id -> Sing n -> Sing a -> Sing b -> Sing i -> Tensor r v Source #

# Internals

trianMapSym2 :: forall a. Integral a => a -> Map (Vec ('S ('S 'Z)) Int) Int Source #

facMapSym2 :: forall a b. (Integral a, Num b) => a -> Map (Vec ('S ('S 'Z)) Int) b Source #

sym2Assocs :: forall (n :: Nat) v. Num v => Sing n -> [(Vec ('S ('S ('S 'Z))) Int, v)] Source #

sym2AssocsFac :: forall (n :: Nat) v. Fractional v => Sing n -> [(Vec ('S ('S ('S 'Z))) Int, v)] Source #