| Copyright | 2014 Edward Kmett Charles Durham [2015..2020] Trevor L. McDonell |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | Trevor L. McDonell <trevor.mcdonell@gmail.com> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Array.Accelerate.Linear.Vector
Description
Operations on free vector spaces
Synopsis
- class Additive f => Additive f where
- newtype E t = E {}
- negated :: forall f a. (Functor f, Num a, Box f a) => Exp (f a) -> Exp (f a)
- (*^) :: forall f a. (Functor f, Num a, Box f a) => Exp a -> Exp (f a) -> Exp (f a)
- (^*) :: forall f a. (Functor f, Num a, Box f a) => Exp (f a) -> Exp a -> Exp (f a)
- (^/) :: forall f a. (Functor f, Fractional a, Box f a) => Exp (f a) -> Exp a -> Exp (f a)
- (/^) :: forall f a. (Functor f, Fractional a, Box f a) => Exp a -> Exp (f a) -> Exp (f a)
- (+^) :: forall f a. (Functor f, Num a, Box f a) => Exp a -> Exp (f a) -> Exp (f a)
- (^+) :: forall f a. (Functor f, Num a, Box f a) => Exp (f a) -> Exp a -> Exp (f a)
- (-^) :: forall f a. (Functor f, Num a, Box f a) => Exp a -> Exp (f a) -> Exp (f a)
- (^-) :: forall f a. (Functor f, Num a, Box f a) => Exp (f a) -> Exp a -> Exp (f a)
Documentation
>>>:set -XPatternSynonyms>>>import Linear.V2>>>import Data.Array.Accelerate.Linear.V2 ( pattern V2_ )>>>import Data.Array.Accelerate.Interpreter>>>:{let test :: Elt e => Exp e -> e test e = indexArray (run (unit e)) Z :}
class Additive f => Additive f where Source #
Minimal complete definition
Nothing
Methods
zero :: (Elt (f a), Num a) => Exp (f a) Source #
The zero vector
(^+^) :: forall a. (Num a, Box f a) => Exp (f a) -> Exp (f a) -> Exp (f a) infixl 6 Source #
Compute the sum of two vectors
>>>test $ (V2_ 1 2 :: Exp (V2 Int)) ^+^ (V2_ 3 4 :: Exp (V2 Int))V2 4 6
(^-^) :: forall a. (Num a, Box f a) => Exp (f a) -> Exp (f a) -> Exp (f a) infixl 6 Source #
Compute the difference between two vectors
>>>test $ (V2_ 4 5 :: Exp (V2 Int)) ^-^ (V2_ 3 1 :: Exp (V2 Int))V2 1 4
lerp :: forall a. (Num a, Box f a) => Exp a -> Exp (f a) -> Exp (f a) -> Exp (f a) Source #
Linearly interpolate between two vectors
Instances
Basis element
negated :: forall f a. (Functor f, Num a, Box f a) => Exp (f a) -> Exp (f a) Source #
Compute the negation of a vector
>>>test $ negated (V2_ 2 4 :: Exp (V2 Int))V2 (-2) (-4)
(*^) :: forall f a. (Functor f, Num a, Box f a) => Exp a -> Exp (f a) -> Exp (f a) infixl 7 Source #
Compute the left scalar product
>>>test $ 2 *^ (V2_ 3 4 :: Exp (V2 Int))V2 6 8
(^*) :: forall f a. (Functor f, Num a, Box f a) => Exp (f a) -> Exp a -> Exp (f a) infixl 7 Source #
Compute the right scalar product
>>>test $ (V2_ 3 4 :: Exp (V2 Int)) ^* 2V2 6 8
(^/) :: forall f a. (Functor f, Fractional a, Box f a) => Exp (f a) -> Exp a -> Exp (f a) infixl 7 Source #
Compute division by a scalar on the right
>>>test $ (V2_ 4 6 :: Exp (V2 Double)) ^/ 2V2 2.0 3.0
(/^) :: forall f a. (Functor f, Fractional a, Box f a) => Exp a -> Exp (f a) -> Exp (f a) infixl 7 Source #
Compute division of a scalar on the left
>>>test $ 4 /^ (V2_ 2 4 :: Exp (V2 Double))V2 2.0 1.0
(+^) :: forall f a. (Functor f, Num a, Box f a) => Exp a -> Exp (f a) -> Exp (f a) infixl 6 Source #
Addition with a scalar on the left
>>>test $ 2 +^ (V2_ 3 4 :: Exp (V2 Int))V2 5 6
(^+) :: forall f a. (Functor f, Num a, Box f a) => Exp (f a) -> Exp a -> Exp (f a) infixl 6 Source #
Addition with a scalar on the right
>>>test $ (V2_ 1 2 :: Exp (V2 Int)) ^+ 3V2 4 5