multilinear-0.2.2.1: Comprehensive and efficient (multi)linear algebra implementation.

Copyright (c) Artur M. Brodzki 2018 GLP-3 artur@brodzki.org experimental Windows/POSIX None Haskell2010

Multilinear.NForm

Contents

Description

• This module provides convenient constructors that generates n-forms (tensors with n lower indices with finite or infinite size).
• Finitely-dimensional n-forms provide much greater performance than infinitely-dimensional
Synopsis

# Generators

Arguments

 :: Num a => String Indices names (one characted per index) -> [Int] Indices sizes -> ([Int] -> a) Generator function -> Tensor a Generated N-form

Generate N-form as function of its indices

Arguments

 :: Num a => String Indices names (one characted per index) -> [Int] Indices sizes -> a N-form elements value -> Tensor a Generated N-form

Generate N-form with all components equal to v

Arguments

 :: ContGen d => String Indices names (one character per index) -> [Int] Indices sizes -> d Continuous probability distribution (as from Statistics.Distribution) -> IO (Tensor Double) Generated linear functional

Generate n-vector with random real components with given probability distribution. The n-vector is wrapped in the IO monad.

Available probability distributions:

Arguments

 :: (ContGen d, PrimMonad m) => String Index name (one character) -> [Int] Number of elements -> d Continuous probability distribution (as from Statistics.Distribution) -> Int Randomness seed -> m (Tensor Double) Generated n-vector

Generate n-vector with random real components with given probability distribution and given seed. The form is wrapped in a monad.

Available probability distributions:

Arguments

 :: DiscreteGen d => String Indices names (one character per index) -> [Int] Indices sizes -> d Discrete probability distribution (as from Statistics.Distribution) -> IO (Tensor Int) Generated n-vector

Generate n-vector with random integer components with given probability distribution. The n-vector is wrapped in the IO monad.

Available probability distributions:

Arguments

 :: (DiscreteGen d, PrimMonad m) => String Index name (one character) -> [Int] Number of elements -> d Discrete probability distribution (as from Statistics.Distribution) -> Int Randomness seed -> m (Tensor Int) Generated n-vector

Generate n-vector with random integer components with given probability distribution and given seed. The form is wrapped in a monad.

Available probability distributions:

# Common cases

Arguments

 :: Num a => String Indices names (one characted per index) -> Int Size of tensor (dot product is a square tensor) -> Tensor a Generated dot product

2-form representing a dot product

Arguments

 :: Num a => String Indices names (one characted per index) -> Int Size of tensor (dot product is a square tensor) -> Tensor a Generated dot product

Tensor representing a cross product (Levi - Civita symbol). It also allows to compute a determinant of square matrix - determinant of matrix M is a equal to length of cross product of all columns of M