easytensor-0.1.0.0: Initial project template from stack

Copyright(c) Artem Chirkin
LicenseMIT
Maintainerchirkin@arch.ethz.ch
Safe HaskellNone
LanguageHaskell2010

Numeric.Tensor

Description

 

Documentation

data Dim ds Source #

Constructors

Dim 

class Dimensions ds where Source #

Minimal complete definition

dims

Methods

dims :: Dim ds -> [Int] Source #

Instances

Dimensions ([] Nat) Source # 

Methods

dims :: Dim [Nat] -> [Int] Source #

(KnownNat d, Dimensions ds) => Dimensions ((:) Nat d ds) Source # 

Methods

dims :: Dim ((Nat ': d) ds) -> [Int] Source #

headDim :: Dim (d ': ds) -> Proxy d Source #

tailDim :: Dim (d ': ds) -> Dim ds Source #

coDimsType :: Tensor t n m -> Dim m Source #

contraDims :: Dimensions n => Tensor t n m -> [Int] Source #

coDims :: Dimensions m => Tensor t n m -> [Int] Source #

type Vec2 = Tensor Double '[2] '[] Source #

class TensorCalculus t ns ms Source #

Associated Types

data Tensor t ns ms Source #

type TensorStore t ns ms Source #

Instances

TensorCalculus t ([] Nat) ([] Nat) Source # 

Associated Types

data Tensor t ([] Nat :: [Nat]) ([] Nat :: [Nat]) :: * Source #

type TensorStore t ([] Nat :: [Nat]) ([] Nat :: [Nat]) :: * Source #

TensorCalculus t ([] Nat) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms))) Source # 

Associated Types

data Tensor t ([] Nat :: [Nat]) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms)) :: [Nat]) :: * Source #

type TensorStore t ([] Nat :: [Nat]) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms)) :: [Nat]) :: * Source #

TensorCalculus t ([] Nat) ((:) Nat m1 ((:) Nat m2 ([] Nat))) Source # 

Associated Types

data Tensor t ([] Nat :: [Nat]) ((:) Nat m1 ((:) Nat m2 ([] Nat)) :: [Nat]) :: * Source #

type TensorStore t ([] Nat :: [Nat]) ((:) Nat m1 ((:) Nat m2 ([] Nat)) :: [Nat]) :: * Source #

TensorCalculus t ([] Nat) ((:) Nat m ([] Nat)) Source # 

Associated Types

data Tensor t ([] Nat :: [Nat]) ((:) Nat m ([] Nat) :: [Nat]) :: * Source #

type TensorStore t ([] Nat :: [Nat]) ((:) Nat m ([] Nat) :: [Nat]) :: * Source #

TensorCalculus t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns))) ([] Nat) Source # 

Associated Types

data Tensor t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns)) :: [Nat]) ([] Nat :: [Nat]) :: * Source #

type TensorStore t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns)) :: [Nat]) ([] Nat :: [Nat]) :: * Source #

TensorCalculus t ((:) Nat n1 ((:) Nat n2 ([] Nat))) ([] Nat) Source # 

Associated Types

data Tensor t ((:) Nat n1 ((:) Nat n2 ([] Nat)) :: [Nat]) ([] Nat :: [Nat]) :: * Source #

type TensorStore t ((:) Nat n1 ((:) Nat n2 ([] Nat)) :: [Nat]) ([] Nat :: [Nat]) :: * Source #

TensorCalculus t ((:) Nat n ([] Nat)) ([] Nat) Source # 

Associated Types

data Tensor t ((:) Nat n ([] Nat) :: [Nat]) ([] Nat :: [Nat]) :: * Source #

type TensorStore t ((:) Nat n ([] Nat) :: [Nat]) ([] Nat :: [Nat]) :: * Source #

TensorCalculus t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns))) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms))) Source # 

Associated Types

data Tensor t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns)) :: [Nat]) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms)) :: [Nat]) :: * Source #

type TensorStore t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns)) :: [Nat]) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms)) :: [Nat]) :: * Source #

TensorCalculus t ((:) Nat n1 ((:) Nat n2 ([] Nat))) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms))) Source # 

Associated Types

data Tensor t ((:) Nat n1 ((:) Nat n2 ([] Nat)) :: [Nat]) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms)) :: [Nat]) :: * Source #

type TensorStore t ((:) Nat n1 ((:) Nat n2 ([] Nat)) :: [Nat]) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms)) :: [Nat]) :: * Source #

TensorCalculus t ((:) Nat n1 ([] Nat)) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms))) Source # 

Associated Types

data Tensor t ((:) Nat n1 ([] Nat) :: [Nat]) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms)) :: [Nat]) :: * Source #

type TensorStore t ((:) Nat n1 ([] Nat) :: [Nat]) ((:) Nat m1 ((:) Nat m2 ((:) Nat m3 ms)) :: [Nat]) :: * Source #

TensorCalculus t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns))) ((:) Nat m0 ((:) Nat m1 ([] Nat))) Source # 

Associated Types

data Tensor t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns)) :: [Nat]) ((:) Nat m0 ((:) Nat m1 ([] Nat)) :: [Nat]) :: * Source #

type TensorStore t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns)) :: [Nat]) ((:) Nat m0 ((:) Nat m1 ([] Nat)) :: [Nat]) :: * Source #

TensorCalculus t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns))) ((:) Nat m0 ([] Nat)) Source # 

Associated Types

data Tensor t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns)) :: [Nat]) ((:) Nat m0 ([] Nat) :: [Nat]) :: * Source #

type TensorStore t ((:) Nat n1 ((:) Nat n2 ((:) Nat n3 ns)) :: [Nat]) ((:) Nat m0 ([] Nat) :: [Nat]) :: * Source #

TensorCalculus t ((:) Nat n ([] Nat)) ((:) Nat m ([] Nat)) Source # 

Associated Types

data Tensor t ((:) Nat n ([] Nat) :: [Nat]) ((:) Nat m ([] Nat) :: [Nat]) :: * Source #

type TensorStore t ((:) Nat n ([] Nat) :: [Nat]) ((:) Nat m ([] Nat) :: [Nat]) :: * Source #

class Plus a where Source #

Minimal complete definition

plus

Methods

plus :: a -> a -> a Source #

Instances

Num t => Plus (Vector4 t) Source # 

Methods

plus :: Vector4 t -> Vector4 t -> Vector4 t Source #

Num t => Plus (Vector3 t) Source # 

Methods

plus :: Vector3 t -> Vector3 t -> Vector3 t Source #

Num t => Plus (Vector2 t) Source # 

Methods

plus :: Vector2 t -> Vector2 t -> Vector2 t Source #

Num t => Plus (Vector1 t) Source # 

Methods

plus :: Vector1 t -> Vector1 t -> Vector1 t Source #

Num t => Plus (VectorN t n) Source # 

Methods

plus :: VectorN t n -> VectorN t n -> VectorN t n Source #

Plus (SomeVector t m) => Plus (Tensor t ([] Nat) ((:) Nat m ([] Nat))) Source # 

Methods

plus :: Tensor t [Nat] ((Nat ': m) [Nat]) -> Tensor t [Nat] ((Nat ': m) [Nat]) -> Tensor t [Nat] ((Nat ': m) [Nat]) Source #

Plus (SomeVector t n) => Plus (Tensor t ((:) Nat n ([] Nat)) ([] Nat)) Source # 

Methods

plus :: Tensor t ((Nat ': n) [Nat]) [Nat] -> Tensor t ((Nat ': n) [Nat]) [Nat] -> Tensor t ((Nat ': n) [Nat]) [Nat] Source #

newtype Vector1 t Source #

Constructors

Vector1 t 

Instances

Show t => Show (Vector1 t) Source # 

Methods

showsPrec :: Int -> Vector1 t -> ShowS #

show :: Vector1 t -> String #

showList :: [Vector1 t] -> ShowS #

Num t => Plus (Vector1 t) Source # 

Methods

plus :: Vector1 t -> Vector1 t -> Vector1 t Source #

data Vector2 t Source #

Constructors

Vector2 t t 

Instances

AppendDim t (Vector2 t) (Vector3 t) Source # 

Methods

appendDim :: t -> Vector2 t -> Vector3 t Source #

Show t => Show (Vector2 t) Source # 

Methods

showsPrec :: Int -> Vector2 t -> ShowS #

show :: Vector2 t -> String #

showList :: [Vector2 t] -> ShowS #

Num t => Plus (Vector2 t) Source # 

Methods

plus :: Vector2 t -> Vector2 t -> Vector2 t Source #

data Vector3 t Source #

Constructors

Vector3 t t t 

Instances

AppendDim t (Vector3 t) (Vector4 t) Source # 

Methods

appendDim :: t -> Vector3 t -> Vector4 t Source #

AppendDim t (Vector2 t) (Vector3 t) Source # 

Methods

appendDim :: t -> Vector2 t -> Vector3 t Source #

Show t => Show (Vector3 t) Source # 

Methods

showsPrec :: Int -> Vector3 t -> ShowS #

show :: Vector3 t -> String #

showList :: [Vector3 t] -> ShowS #

Num t => Plus (Vector3 t) Source # 

Methods

plus :: Vector3 t -> Vector3 t -> Vector3 t Source #

data Vector4 t Source #

Constructors

Vector4 t t t t 

Instances

AppendDim t (Vector3 t) (Vector4 t) Source # 

Methods

appendDim :: t -> Vector3 t -> Vector4 t Source #

AppendDim t (Vector4 t) (VectorN t 5) Source # 

Methods

appendDim :: t -> Vector4 t -> VectorN t 5 Source #

Show t => Show (Vector4 t) Source # 

Methods

showsPrec :: Int -> Vector4 t -> ShowS #

show :: Vector4 t -> String #

showList :: [Vector4 t] -> ShowS #

Num t => Plus (Vector4 t) Source # 

Methods

plus :: Vector4 t -> Vector4 t -> Vector4 t Source #

newtype VectorN t n Source #

Constructors

VectorN [t] 

Instances

AppendDim t (Vector4 t) (VectorN t 5) Source # 

Methods

appendDim :: t -> Vector4 t -> VectorN t 5 Source #

((~) Nat m ((+) n 1), (<=) 5 m, (<=) 4 n) => AppendDim t (VectorN t n) (VectorN t m) Source # 

Methods

appendDim :: t -> VectorN t n -> VectorN t m Source #

Show t => Show (VectorN t n) Source # 

Methods

showsPrec :: Int -> VectorN t n -> ShowS #

show :: VectorN t n -> String #

showList :: [VectorN t n] -> ShowS #

Num t => Plus (VectorN t n) Source # 

Methods

plus :: VectorN t n -> VectorN t n -> VectorN t n Source #

newtype Matrix1x1 t Source #

Constructors

Matrix1x1 t 

Instances

data Matrix2x2 t Source #

Constructors

Matrix2x2 t t t t 

Instances

newtype MatrixNxM t n m Source #

Constructors

MatrixNxM [[t]] 

Instances

Show t => Show (MatrixNxM t n m) Source # 

Methods

showsPrec :: Int -> MatrixNxM t n m -> ShowS #

show :: MatrixNxM t n m -> String #

showList :: [MatrixNxM t n m] -> ShowS #

data NDArray t Source #

Constructors

NDArray ByteArray# 

Instances

Show (NDArray t) Source # 

Methods

showsPrec :: Int -> NDArray t -> ShowS #

show :: NDArray t -> String #

showList :: [NDArray t] -> ShowS #

type family SomeVector t (n :: Nat) = v | v -> t n where ... Source #

Equations

SomeVector t 1 = Vector1 t 
SomeVector t 2 = Vector2 t 
SomeVector t 3 = Vector3 t 
SomeVector t 4 = Vector4 t 
SomeVector t n = VectorN t n 

type family SomeMatrix t (n :: Nat) (m :: Nat) = v | v -> t n m where ... Source #

Equations

SomeMatrix t 1 1 = Matrix1x1 t 
SomeMatrix t 2 2 = Matrix2x2 t 
SomeMatrix t n m = MatrixNxM t n m 

class AppendDim a b c | a b -> c where Source #

Minimal complete definition

appendDim

Methods

appendDim :: a -> b -> c Source #

Instances

AppendDim t (Vector3 t) (Vector4 t) Source # 

Methods

appendDim :: t -> Vector3 t -> Vector4 t Source #

AppendDim t (Vector2 t) (Vector3 t) Source # 

Methods

appendDim :: t -> Vector2 t -> Vector3 t Source #

AppendDim t (Vector4 t) (VectorN t 5) Source # 

Methods

appendDim :: t -> Vector4 t -> VectorN t 5 Source #

((~) Nat m ((+) n 1), (<=) 5 m, (<=) 4 n) => AppendDim t (VectorN t n) (VectorN t m) Source # 

Methods

appendDim :: t -> VectorN t n -> VectorN t m Source #