Module
Data.FastVect.Common.Matrix
- Package
- purescript-fast-vect
- Repository
- sigma-andex/purescript-fast-vect
#Index Source
type Index :: (Int -> Int -> Type -> Type) -> Int -> Int -> Int -> Int -> Type -> Type
type Index matrix h w i j elem = Compare h NegOne GT => Compare w NegOne GT => Compare i NegOne GT => Compare j NegOne GT => Compare i h LT => Compare j w LT => Reflectable i Int => Reflectable j Int => Proxy i -> Proxy j -> matrix h w elem -> elem
#Generate Source
type Generate :: (Int -> Int -> Type -> Type) -> Int -> Int -> Type -> Type
type Generate matrix h w elem = Reflectable h Int => Compare h NegOne GT => Reflectable w Int => Compare w NegOne GT => Proxy h -> Proxy w -> (forall i j. Reflectable i Int => Reflectable j Int => Compare i h LT => Compare j w LT => Compare i NegOne GT => Compare j NegOne GT => Proxy i -> Proxy j -> elem) -> matrix h w elem
#MapWithTerm Source
type MapWithTerm :: (Int -> Int -> Type -> Type) -> Int -> Int -> Type -> Type -> Type
type MapWithTerm matrix h w elem elem' = Reflectable h Int => Compare h NegOne GT => Reflectable w Int => Compare w NegOne GT => (forall i j. Reflectable i Int => Reflectable j Int => Compare i h LT => Compare j w LT => Compare i NegOne GT => Compare j NegOne GT => Proxy i -> Proxy j -> elem -> elem') -> matrix h w elem -> matrix h w elem'
#DotProduct Source
type DotProduct :: (Int -> Type -> Type) -> Int -> Type -> Type
type DotProduct vect h elem = Reflectable h Int => Compare h NegOne GT => Semiring elem => vect h elem -> vect h elem -> elem
#OuterMap Source
type OuterMap :: (Int -> Type -> Type) -> (Int -> Int -> Type -> Type) -> Int -> Int -> Type -> Type -> Type -> Type
type OuterMap vect matrix h w elemH elemW elem = Reflectable h Int => Compare h NegOne GT => Reflectable w Int => Compare w NegOne GT => (elemH -> elemW -> elem) -> vect h elemH -> vect w elemW -> matrix h w elem
#Product Source
type Product :: (Int -> Int -> Type -> Type) -> Int -> Int -> Int -> Type -> Type
type Product matrix h m w elem = Reflectable h Int => Compare h NegOne GT => Reflectable m Int => Compare m NegOne GT => Reflectable w Int => Compare w NegOne GT => Semiring elem => matrix h m elem -> matrix m w elem -> matrix h w elem
#Modify Source
type Modify :: (Int -> Int -> Type -> Type) -> Int -> Int -> Int -> Int -> Type -> Type
type Modify matrix h w i j elem = Reflectable i Int => Compare i NegOne GT => Compare h NegOne GT => Compare i h LT => Reflectable j Int => Compare j NegOne GT => Compare w NegOne GT => Compare j w LT => Proxy i -> Proxy j -> (elem -> elem) -> matrix h w elem -> matrix h w elem
#Set Source
type Set :: (Int -> Int -> Type -> Type) -> Int -> Int -> Int -> Int -> Type -> Type
type Set matrix h w i j elem = Reflectable i Int => Compare i NegOne GT => Compare h NegOne GT => Compare i h LT => Reflectable j Int => Compare j NegOne GT => Compare w NegOne GT => Compare j w LT => Proxy i -> Proxy j -> elem -> matrix h w elem -> matrix h w elem