sdl2-2.4.1.0: Both high- and low-level bindings to the SDL library (version 2.0.4+).

Safe HaskellSafe
LanguageHaskell2010

SDL.Vect

Contents

Description

SDL's vector representation.

By default, re-exports the Linear and Linear.Affine modules from the linear package. With the no-linear Cabal flag, instead exports a duplicate implementation of the V2, V3, V4 and Point types from SDL.Internal.Vect, which provides as many instances as possible for those types while avoiding any additional dependencies.

Synopsis

Documentation

module Linear

Point

newtype Point (f :: Type -> Type) a Source #

A handy wrapper to help distinguish points from vectors at the type level

Constructors

P (f a) 
Instances
Unbox (f a) => Vector Vector (Point f a) 
Instance details

Defined in Linear.Affine

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (Point f a) -> m (Vector (Point f a)) Source #

basicUnsafeThaw :: PrimMonad m => Vector (Point f a) -> m (Mutable Vector (PrimState m) (Point f a)) Source #

basicLength :: Vector (Point f a) -> Int Source #

basicUnsafeSlice :: Int -> Int -> Vector (Point f a) -> Vector (Point f a) Source #

basicUnsafeIndexM :: Monad m => Vector (Point f a) -> Int -> m (Point f a) Source #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (Point f a) -> Vector (Point f a) -> m () Source #

elemseq :: Vector (Point f a) -> Point f a -> b -> b Source #

Unbox (f a) => MVector MVector (Point f a) 
Instance details

Defined in Linear.Affine

Methods

basicLength :: MVector s (Point f a) -> Int Source #

basicUnsafeSlice :: Int -> Int -> MVector s (Point f a) -> MVector s (Point f a) Source #

basicOverlaps :: MVector s (Point f a) -> MVector s (Point f a) -> Bool Source #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (Point f a)) Source #

basicInitialize :: PrimMonad m => MVector (PrimState m) (Point f a) -> m () Source #

basicUnsafeReplicate :: PrimMonad m => Int -> Point f a -> m (MVector (PrimState m) (Point f a)) Source #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (Point f a) -> Int -> m (Point f a) Source #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (Point f a) -> Int -> Point f a -> m () Source #

basicClear :: PrimMonad m => MVector (PrimState m) (Point f a) -> m () Source #

basicSet :: PrimMonad m => MVector (PrimState m) (Point f a) -> Point f a -> m () Source #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (Point f a) -> MVector (PrimState m) (Point f a) -> m () Source #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (Point f a) -> MVector (PrimState m) (Point f a) -> m () Source #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (Point f a) -> Int -> m (MVector (PrimState m) (Point f a)) Source #

Monad f => Monad (Point f) 
Instance details

Defined in Linear.Affine

Methods

(>>=) :: Point f a -> (a -> Point f b) -> Point f b Source #

(>>) :: Point f a -> Point f b -> Point f b Source #

return :: a -> Point f a Source #

fail :: String -> Point f a Source #

Functor f => Functor (Point f) 
Instance details

Defined in Linear.Affine

Methods

fmap :: (a -> b) -> Point f a -> Point f b Source #

(<$) :: a -> Point f b -> Point f a Source #

Applicative f => Applicative (Point f) 
Instance details

Defined in Linear.Affine

Methods

pure :: a -> Point f a Source #

(<*>) :: Point f (a -> b) -> Point f a -> Point f b Source #

liftA2 :: (a -> b -> c) -> Point f a -> Point f b -> Point f c Source #

(*>) :: Point f a -> Point f b -> Point f b Source #

(<*) :: Point f a -> Point f b -> Point f a Source #

Foldable f => Foldable (Point f) 
Instance details

Defined in Linear.Affine

Methods

fold :: Monoid m => Point f m -> m Source #

foldMap :: Monoid m => (a -> m) -> Point f a -> m Source #

foldr :: (a -> b -> b) -> b -> Point f a -> b Source #

foldr' :: (a -> b -> b) -> b -> Point f a -> b Source #

foldl :: (b -> a -> b) -> b -> Point f a -> b Source #

foldl' :: (b -> a -> b) -> b -> Point f a -> b Source #

foldr1 :: (a -> a -> a) -> Point f a -> a Source #

foldl1 :: (a -> a -> a) -> Point f a -> a Source #

toList :: Point f a -> [a] Source #

null :: Point f a -> Bool Source #

length :: Point f a -> Int Source #

elem :: Eq a => a -> Point f a -> Bool Source #

maximum :: Ord a => Point f a -> a Source #

minimum :: Ord a => Point f a -> a Source #

sum :: Num a => Point f a -> a Source #

product :: Num a => Point f a -> a Source #

Traversable f => Traversable (Point f) 
Instance details

Defined in Linear.Affine

Methods

traverse :: Applicative f0 => (a -> f0 b) -> Point f a -> f0 (Point f b) Source #

sequenceA :: Applicative f0 => Point f (f0 a) -> f0 (Point f a) Source #

mapM :: Monad m => (a -> m b) -> Point f a -> m (Point f b) Source #

sequence :: Monad m => Point f (m a) -> m (Point f a) Source #

Eq1 f => Eq1 (Point f) 
Instance details

Defined in Linear.Affine

Methods

liftEq :: (a -> b -> Bool) -> Point f a -> Point f b -> Bool Source #

Ord1 f => Ord1 (Point f) 
Instance details

Defined in Linear.Affine

Methods

liftCompare :: (a -> b -> Ordering) -> Point f a -> Point f b -> Ordering Source #

Read1 f => Read1 (Point f) 
Instance details

Defined in Linear.Affine

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Point f a) Source #

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Point f a] Source #

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Point f a) Source #

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Point f a] Source #

Show1 f => Show1 (Point f) 
Instance details

Defined in Linear.Affine

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Point f a -> ShowS Source #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Point f a] -> ShowS Source #

Representable f => Representable (Point f) 
Instance details

Defined in Linear.Affine

Associated Types

type Rep (Point f) :: Type

Methods

tabulate :: (Rep (Point f) -> a) -> Point f a

index :: Point f a -> Rep (Point f) -> a

Additive f => Affine (Point f) 
Instance details

Defined in Linear.Affine

Associated Types

type Diff (Point f) :: Type -> Type Source #

Methods

(.-.) :: Num a => Point f a -> Point f a -> Diff (Point f) a Source #

(.+^) :: Num a => Point f a -> Diff (Point f) a -> Point f a Source #

(.-^) :: Num a => Point f a -> Diff (Point f) a -> Point f a Source #

R4 f => R4 (Point f) 
Instance details

Defined in Linear.Affine

Methods

_w :: Lens' (Point f a) a Source #

_xyzw :: Lens' (Point f a) (V4 a) Source #

R3 f => R3 (Point f) 
Instance details

Defined in Linear.Affine

Methods

_z :: Lens' (Point f a) a Source #

_xyz :: Lens' (Point f a) (V3 a) Source #

R2 f => R2 (Point f) 
Instance details

Defined in Linear.Affine

Methods

_y :: Lens' (Point f a) a Source #

_xy :: Lens' (Point f a) (V2 a) Source #

R1 f => R1 (Point f) 
Instance details

Defined in Linear.Affine

Methods

_x :: Lens' (Point f a) a Source #

Finite f => Finite (Point f) 
Instance details

Defined in Linear.Affine

Associated Types

type Size (Point f) :: Nat Source #

Methods

toV :: Point f a -> V (Size (Point f)) a Source #

fromV :: V (Size (Point f)) a -> Point f a Source #

Metric f => Metric (Point f) 
Instance details

Defined in Linear.Affine

Methods

dot :: Num a => Point f a -> Point f a -> a Source #

quadrance :: Num a => Point f a -> a Source #

qd :: Num a => Point f a -> Point f a -> a Source #

distance :: Floating a => Point f a -> Point f a -> a Source #

norm :: Floating a => Point f a -> a Source #

signorm :: Floating a => Point f a -> Point f a Source #

Additive f => Additive (Point f) 
Instance details

Defined in Linear.Affine

Methods

zero :: Num a => Point f a Source #

(^+^) :: Num a => Point f a -> Point f a -> Point f a Source #

(^-^) :: Num a => Point f a -> Point f a -> Point f a Source #

lerp :: Num a => a -> Point f a -> Point f a -> Point f a Source #

liftU2 :: (a -> a -> a) -> Point f a -> Point f a -> Point f a Source #

liftI2 :: (a -> b -> c) -> Point f a -> Point f b -> Point f c Source #

Apply f => Apply (Point f) 
Instance details

Defined in Linear.Affine

Methods

(<.>) :: Point f (a -> b) -> Point f a -> Point f b

(.>) :: Point f a -> Point f b -> Point f b

(<.) :: Point f a -> Point f b -> Point f a

liftF2 :: (a -> b -> c) -> Point f a -> Point f b -> Point f c

Bind f => Bind (Point f) 
Instance details

Defined in Linear.Affine

Methods

(>>-) :: Point f a -> (a -> Point f b) -> Point f b

join :: Point f (Point f a) -> Point f a

Distributive f => Distributive (Point f) 
Instance details

Defined in Linear.Affine

Methods

distribute :: Functor f0 => f0 (Point f a) -> Point f (f0 a)

collect :: Functor f0 => (a -> Point f b) -> f0 a -> Point f (f0 b)

distributeM :: Monad m => m (Point f a) -> Point f (m a)

collectM :: Monad m => (a -> Point f b) -> m a -> Point f (m b)

Hashable1 f => Hashable1 (Point f) 
Instance details

Defined in Linear.Affine

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> Point f a -> Int

Serial1 f => Serial1 (Point f) 
Instance details

Defined in Linear.Affine

Methods

serializeWith :: MonadPut m => (a -> m ()) -> Point f a -> m ()

deserializeWith :: MonadGet m => m a -> m (Point f a)

Generic1 (Point f :: Type -> Type) 
Instance details

Defined in Linear.Affine

Associated Types

type Rep1 (Point f) :: k -> Type Source #

Methods

from1 :: Point f a -> Rep1 (Point f) a Source #

to1 :: Rep1 (Point f) a -> Point f a Source #

Eq (f a) => Eq (Point f a) 
Instance details

Defined in Linear.Affine

Methods

(==) :: Point f a -> Point f a -> Bool Source #

(/=) :: Point f a -> Point f a -> Bool Source #

Fractional (f a) => Fractional (Point f a) 
Instance details

Defined in Linear.Affine

Methods

(/) :: Point f a -> Point f a -> Point f a Source #

recip :: Point f a -> Point f a Source #

fromRational :: Rational -> Point f a Source #

(Typeable f, Typeable a, Data (f a)) => Data (Point f a) 
Instance details

Defined in Linear.Affine

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Point f a -> c (Point f a) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Point f a) Source #

toConstr :: Point f a -> Constr Source #

dataTypeOf :: Point f a -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Point f a)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Point f a)) Source #

gmapT :: (forall b. Data b => b -> b) -> Point f a -> Point f a Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Point f a -> r Source #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Point f a -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Point f a -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Point f a -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Point f a -> m (Point f a) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Point f a -> m (Point f a) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Point f a -> m (Point f a) Source #

Num (f a) => Num (Point f a) 
Instance details

Defined in Linear.Affine

Methods

(+) :: Point f a -> Point f a -> Point f a Source #

(-) :: Point f a -> Point f a -> Point f a Source #

(*) :: Point f a -> Point f a -> Point f a Source #

negate :: Point f a -> Point f a Source #

abs :: Point f a -> Point f a Source #

signum :: Point f a -> Point f a Source #

fromInteger :: Integer -> Point f a Source #

Ord (f a) => Ord (Point f a) 
Instance details

Defined in Linear.Affine

Methods

compare :: Point f a -> Point f a -> Ordering Source #

(<) :: Point f a -> Point f a -> Bool Source #

(<=) :: Point f a -> Point f a -> Bool Source #

(>) :: Point f a -> Point f a -> Bool Source #

(>=) :: Point f a -> Point f a -> Bool Source #

max :: Point f a -> Point f a -> Point f a Source #

min :: Point f a -> Point f a -> Point f a Source #

Read (f a) => Read (Point f a) 
Instance details

Defined in Linear.Affine

Show (f a) => Show (Point f a) 
Instance details

Defined in Linear.Affine

Methods

showsPrec :: Int -> Point f a -> ShowS Source #

show :: Point f a -> String Source #

showList :: [Point f a] -> ShowS Source #

Ix (f a) => Ix (Point f a) 
Instance details

Defined in Linear.Affine

Methods

range :: (Point f a, Point f a) -> [Point f a] Source #

index :: (Point f a, Point f a) -> Point f a -> Int Source #

unsafeIndex :: (Point f a, Point f a) -> Point f a -> Int

inRange :: (Point f a, Point f a) -> Point f a -> Bool Source #

rangeSize :: (Point f a, Point f a) -> Int Source #

unsafeRangeSize :: (Point f a, Point f a) -> Int

Generic (Point f a) 
Instance details

Defined in Linear.Affine

Associated Types

type Rep (Point f a) :: Type -> Type Source #

Methods

from :: Point f a -> Rep (Point f a) x Source #

to :: Rep (Point f a) x -> Point f a Source #

Storable (f a) => Storable (Point f a) 
Instance details

Defined in Linear.Affine

Methods

sizeOf :: Point f a -> Int Source #

alignment :: Point f a -> Int Source #

peekElemOff :: Ptr (Point f a) -> Int -> IO (Point f a) Source #

pokeElemOff :: Ptr (Point f a) -> Int -> Point f a -> IO () Source #

peekByteOff :: Ptr b -> Int -> IO (Point f a) Source #

pokeByteOff :: Ptr b -> Int -> Point f a -> IO () Source #

peek :: Ptr (Point f a) -> IO (Point f a) Source #

poke :: Ptr (Point f a) -> Point f a -> IO () Source #

Binary (f a) => Binary (Point f a) 
Instance details

Defined in Linear.Affine

Methods

put :: Point f a -> Put Source #

get :: Get (Point f a) Source #

putList :: [Point f a] -> Put Source #

NFData (f a) => NFData (Point f a) 
Instance details

Defined in Linear.Affine

Methods

rnf :: Point f a -> () Source #

Epsilon (f a) => Epsilon (Point f a) 
Instance details

Defined in Linear.Affine

Methods

nearZero :: Point f a -> Bool Source #

Unbox (f a) => Unbox (Point f a) 
Instance details

Defined in Linear.Affine

Hashable (f a) => Hashable (Point f a) 
Instance details

Defined in Linear.Affine

Methods

hashWithSalt :: Int -> Point f a -> Int

hash :: Point f a -> Int

Ixed (f a) => Ixed (Point f a) 
Instance details

Defined in Linear.Affine

Methods

ix :: Index (Point f a) -> Traversal' (Point f a) (IxValue (Point f a))

Serial (f a) => Serial (Point f a) 
Instance details

Defined in Linear.Affine

Methods

serialize :: MonadPut m => Point f a -> m ()

deserialize :: MonadGet m => m (Point f a)

Serialize (f a) => Serialize (Point f a) 
Instance details

Defined in Linear.Affine

Methods

put :: Putter (Point f a)

get :: Get (Point f a)

Wrapped (Point f a) 
Instance details

Defined in Linear.Affine

Associated Types

type Unwrapped (Point f a) :: Type

Methods

_Wrapped' :: Iso' (Point f a) (Unwrapped (Point f a))

t ~ Point g b => Rewrapped (Point f a) t 
Instance details

Defined in Linear.Affine

Traversable f => Each (Point f a) (Point f b) a b 
Instance details

Defined in Linear.Affine

Methods

each :: Traversal (Point f a) (Point f b) a b

newtype MVector s (Point f a) 
Instance details

Defined in Linear.Affine

newtype MVector s (Point f a) = MV_P (MVector s (f a))
type Diff (Point f) 
Instance details

Defined in Linear.Affine

type Diff (Point f) = f
type Size (Point f) 
Instance details

Defined in Linear.Affine

type Size (Point f) = Size f
type Rep (Point f) 
Instance details

Defined in Linear.Affine

type Rep (Point f) = Rep f
type Rep1 (Point f :: Type -> Type) 
Instance details

Defined in Linear.Affine

type Rep1 (Point f :: Type -> Type) = D1 (MetaData "Point" "Linear.Affine" "linear-1.20.9-AXvcltmUzhAPqVQGbnzsL" True) (C1 (MetaCons "P" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 f)))
type Rep (Point f a) 
Instance details

Defined in Linear.Affine

type Rep (Point f a) = D1 (MetaData "Point" "Linear.Affine" "linear-1.20.9-AXvcltmUzhAPqVQGbnzsL" True) (C1 (MetaCons "P" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (f a))))
newtype Vector (Point f a) 
Instance details

Defined in Linear.Affine

newtype Vector (Point f a) = V_P (Vector (f a))
type Index (Point f a) 
Instance details

Defined in Linear.Affine

type Index (Point f a) = Index (f a)
type IxValue (Point f a) 
Instance details

Defined in Linear.Affine

type IxValue (Point f a) = IxValue (f a)
type Unwrapped (Point f a) 
Instance details

Defined in Linear.Affine

type Unwrapped (Point f a) = f a

Vectors

data V2 a Source #

A 2-dimensional vector

>>> pure 1 :: V2 Int
V2 1 1
>>> V2 1 2 + V2 3 4
V2 4 6
>>> V2 1 2 * V2 3 4
V2 3 8
>>> sum (V2 1 2)
3

Constructors

V2 !a !a 
Instances
Monad V2 
Instance details

Defined in Linear.V2

Methods

(>>=) :: V2 a -> (a -> V2 b) -> V2 b Source #

(>>) :: V2 a -> V2 b -> V2 b Source #

return :: a -> V2 a Source #

fail :: String -> V2 a Source #

Functor V2 
Instance details

Defined in Linear.V2

Methods

fmap :: (a -> b) -> V2 a -> V2 b Source #

(<$) :: a -> V2 b -> V2 a Source #

MonadFix V2 
Instance details

Defined in Linear.V2

Methods

mfix :: (a -> V2 a) -> V2 a Source #

Applicative V2 
Instance details

Defined in Linear.V2

Methods

pure :: a -> V2 a Source #

(<*>) :: V2 (a -> b) -> V2 a -> V2 b Source #

liftA2 :: (a -> b -> c) -> V2 a -> V2 b -> V2 c Source #

(*>) :: V2 a -> V2 b -> V2 b Source #

(<*) :: V2 a -> V2 b -> V2 a Source #

Foldable V2 
Instance details

Defined in Linear.V2

Methods

fold :: Monoid m => V2 m -> m Source #

foldMap :: Monoid m => (a -> m) -> V2 a -> m Source #

foldr :: (a -> b -> b) -> b -> V2 a -> b Source #

foldr' :: (a -> b -> b) -> b -> V2 a -> b Source #

foldl :: (b -> a -> b) -> b -> V2 a -> b Source #

foldl' :: (b -> a -> b) -> b -> V2 a -> b Source #

foldr1 :: (a -> a -> a) -> V2 a -> a Source #

foldl1 :: (a -> a -> a) -> V2 a -> a Source #

toList :: V2 a -> [a] Source #

null :: V2 a -> Bool Source #

length :: V2 a -> Int Source #

elem :: Eq a => a -> V2 a -> Bool Source #

maximum :: Ord a => V2 a -> a Source #

minimum :: Ord a => V2 a -> a Source #

sum :: Num a => V2 a -> a Source #

product :: Num a => V2 a -> a Source #

Traversable V2 
Instance details

Defined in Linear.V2

Methods

traverse :: Applicative f => (a -> f b) -> V2 a -> f (V2 b) Source #

sequenceA :: Applicative f => V2 (f a) -> f (V2 a) Source #

mapM :: Monad m => (a -> m b) -> V2 a -> m (V2 b) Source #

sequence :: Monad m => V2 (m a) -> m (V2 a) Source #

Eq1 V2 
Instance details

Defined in Linear.V2

Methods

liftEq :: (a -> b -> Bool) -> V2 a -> V2 b -> Bool Source #

Ord1 V2 
Instance details

Defined in Linear.V2

Methods

liftCompare :: (a -> b -> Ordering) -> V2 a -> V2 b -> Ordering Source #

Read1 V2 
Instance details

Defined in Linear.V2

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (V2 a) Source #

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [V2 a] Source #

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (V2 a) Source #

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [V2 a] Source #

Show1 V2 
Instance details

Defined in Linear.V2

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> V2 a -> ShowS Source #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [V2 a] -> ShowS Source #

MonadZip V2 
Instance details

Defined in Linear.V2

Methods

mzip :: V2 a -> V2 b -> V2 (a, b) Source #

mzipWith :: (a -> b -> c) -> V2 a -> V2 b -> V2 c Source #

munzip :: V2 (a, b) -> (V2 a, V2 b) Source #

Representable V2 
Instance details

Defined in Linear.V2

Associated Types

type Rep V2 :: Type

Methods

tabulate :: (Rep V2 -> a) -> V2 a

index :: V2 a -> Rep V2 -> a

Affine V2 
Instance details

Defined in Linear.Affine

Associated Types

type Diff V2 :: Type -> Type Source #

Methods

(.-.) :: Num a => V2 a -> V2 a -> Diff V2 a Source #

(.+^) :: Num a => V2 a -> Diff V2 a -> V2 a Source #

(.-^) :: Num a => V2 a -> Diff V2 a -> V2 a Source #

Trace V2 
Instance details

Defined in Linear.Trace

Methods

trace :: Num a => V2 (V2 a) -> a Source #

diagonal :: V2 (V2 a) -> V2 a Source #

R2 V2 
Instance details

Defined in Linear.V2

Methods

_y :: Lens' (V2 a) a Source #

_xy :: Lens' (V2 a) (V2 a) Source #

R1 V2 
Instance details

Defined in Linear.V2

Methods

_x :: Lens' (V2 a) a Source #

Finite V2 
Instance details

Defined in Linear.V2

Associated Types

type Size V2 :: Nat Source #

Methods

toV :: V2 a -> V (Size V2) a Source #

fromV :: V (Size V2) a -> V2 a Source #

Metric V2 
Instance details

Defined in Linear.V2

Methods

dot :: Num a => V2 a -> V2 a -> a Source #

quadrance :: Num a => V2 a -> a Source #

qd :: Num a => V2 a -> V2 a -> a Source #

distance :: Floating a => V2 a -> V2 a -> a Source #

norm :: Floating a => V2 a -> a Source #

signorm :: Floating a => V2 a -> V2 a Source #

Additive V2 
Instance details

Defined in Linear.V2

Methods

zero :: Num a => V2 a Source #

(^+^) :: Num a => V2 a -> V2 a -> V2 a Source #

(^-^) :: Num a => V2 a -> V2 a -> V2 a Source #

lerp :: Num a => a -> V2 a -> V2 a -> V2 a Source #

liftU2 :: (a -> a -> a) -> V2 a -> V2 a -> V2 a Source #

liftI2 :: (a -> b -> c) -> V2 a -> V2 b -> V2 c Source #

Apply V2 
Instance details

Defined in Linear.V2

Methods

(<.>) :: V2 (a -> b) -> V2 a -> V2 b

(.>) :: V2 a -> V2 b -> V2 b

(<.) :: V2 a -> V2 b -> V2 a

liftF2 :: (a -> b -> c) -> V2 a -> V2 b -> V2 c

Bind V2 
Instance details

Defined in Linear.V2

Methods

(>>-) :: V2 a -> (a -> V2 b) -> V2 b

join :: V2 (V2 a) -> V2 a

Distributive V2 
Instance details

Defined in Linear.V2

Methods

distribute :: Functor f => f (V2 a) -> V2 (f a)

collect :: Functor f => (a -> V2 b) -> f a -> V2 (f b)

distributeM :: Monad m => m (V2 a) -> V2 (m a)

collectM :: Monad m => (a -> V2 b) -> m a -> V2 (m b)

Hashable1 V2 
Instance details

Defined in Linear.V2

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> V2 a -> Int

Serial1 V2 
Instance details

Defined in Linear.V2

Methods

serializeWith :: MonadPut m => (a -> m ()) -> V2 a -> m ()

deserializeWith :: MonadGet m => m a -> m (V2 a)

Foldable1 V2 
Instance details

Defined in Linear.V2

Methods

fold1 :: Semigroup m => V2 m -> m

foldMap1 :: Semigroup m => (a -> m) -> V2 a -> m

toNonEmpty :: V2 a -> NonEmpty a

Traversable1 V2 
Instance details

Defined in Linear.V2

Methods

traverse1 :: Apply f => (a -> f b) -> V2 a -> f (V2 b)

sequence1 :: Apply f => V2 (f b) -> f (V2 b)

Num r => Coalgebra r (E V2) 
Instance details

Defined in Linear.Algebra

Methods

comult :: (E V2 -> r) -> E V2 -> E V2 -> r Source #

counital :: (E V2 -> r) -> r Source #

Unbox a => Vector Vector (V2 a) 
Instance details

Defined in Linear.V2

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (V2 a) -> m (Vector (V2 a)) Source #

basicUnsafeThaw :: PrimMonad m => Vector (V2 a) -> m (Mutable Vector (PrimState m) (V2 a)) Source #

basicLength :: Vector (V2 a) -> Int Source #

basicUnsafeSlice :: Int -> Int -> Vector (V2 a) -> Vector (V2 a) Source #

basicUnsafeIndexM :: Monad m => Vector (V2 a) -> Int -> m (V2 a) Source #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (V2 a) -> Vector (V2 a) -> m () Source #

elemseq :: Vector (V2 a) -> V2 a -> b -> b Source #

Unbox a => MVector MVector (V2 a) 
Instance details

Defined in Linear.V2

Methods

basicLength :: MVector s (V2 a) -> Int Source #

basicUnsafeSlice :: Int -> Int -> MVector s (V2 a) -> MVector s (V2 a) Source #

basicOverlaps :: MVector s (V2 a) -> MVector s (V2 a) -> Bool Source #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (V2 a)) Source #

basicInitialize :: PrimMonad m => MVector (PrimState m) (V2 a) -> m () Source #

basicUnsafeReplicate :: PrimMonad m => Int -> V2 a -> m (MVector (PrimState m) (V2 a)) Source #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (V2 a) -> Int -> m (V2 a) Source #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (V2 a) -> Int -> V2 a -> m () Source #

basicClear :: PrimMonad m => MVector (PrimState m) (V2 a) -> m () Source #

basicSet :: PrimMonad m => MVector (PrimState m) (V2 a) -> V2 a -> m () Source #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (V2 a) -> MVector (PrimState m) (V2 a) -> m () Source #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (V2 a) -> MVector (PrimState m) (V2 a) -> m () Source #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (V2 a) -> Int -> m (MVector (PrimState m) (V2 a)) Source #

Bounded a => Bounded (V2 a) 
Instance details

Defined in Linear.V2

Methods

minBound :: V2 a Source #

maxBound :: V2 a Source #

Eq a => Eq (V2 a) 
Instance details

Defined in Linear.V2

Methods

(==) :: V2 a -> V2 a -> Bool Source #

(/=) :: V2 a -> V2 a -> Bool Source #

Floating a => Floating (V2 a) 
Instance details

Defined in Linear.V2

Methods

pi :: V2 a Source #

exp :: V2 a -> V2 a Source #

log :: V2 a -> V2 a Source #

sqrt :: V2 a -> V2 a Source #

(**) :: V2 a -> V2 a -> V2 a Source #

logBase :: V2 a -> V2 a -> V2 a Source #

sin :: V2 a -> V2 a Source #

cos :: V2 a -> V2 a Source #

tan :: V2 a -> V2 a Source #

asin :: V2 a -> V2 a Source #

acos :: V2 a -> V2 a Source #

atan :: V2 a -> V2 a Source #

sinh :: V2 a -> V2 a Source #

cosh :: V2 a -> V2 a Source #

tanh :: V2 a -> V2 a Source #

asinh :: V2 a -> V2 a Source #

acosh :: V2 a -> V2 a Source #

atanh :: V2 a -> V2 a Source #

log1p :: V2 a -> V2 a Source #

expm1 :: V2 a -> V2 a Source #

log1pexp :: V2 a -> V2 a Source #

log1mexp :: V2 a -> V2 a Source #

Fractional a => Fractional (V2 a) 
Instance details

Defined in Linear.V2

Methods

(/) :: V2 a -> V2 a -> V2 a Source #

recip :: V2 a -> V2 a Source #

fromRational :: Rational -> V2 a Source #

Data a => Data (V2 a) 
Instance details

Defined in Linear.V2

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> V2 a -> c (V2 a) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (V2 a) Source #

toConstr :: V2 a -> Constr Source #

dataTypeOf :: V2 a -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (V2 a)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (V2 a)) Source #

gmapT :: (forall b. Data b => b -> b) -> V2 a -> V2 a Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> V2 a -> r Source #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> V2 a -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> V2 a -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> V2 a -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> V2 a -> m (V2 a) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> V2 a -> m (V2 a) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> V2 a -> m (V2 a) Source #

Num a => Num (V2 a) 
Instance details

Defined in Linear.V2

Methods

(+) :: V2 a -> V2 a -> V2 a Source #

(-) :: V2 a -> V2 a -> V2 a Source #

(*) :: V2 a -> V2 a -> V2 a Source #

negate :: V2 a -> V2 a Source #

abs :: V2 a -> V2 a Source #

signum :: V2 a -> V2 a Source #

fromInteger :: Integer -> V2 a Source #

Ord a => Ord (V2 a) 
Instance details

Defined in Linear.V2

Methods

compare :: V2 a -> V2 a -> Ordering Source #

(<) :: V2 a -> V2 a -> Bool Source #

(<=) :: V2 a -> V2 a -> Bool Source #

(>) :: V2 a -> V2 a -> Bool Source #

(>=) :: V2 a -> V2 a -> Bool Source #

max :: V2 a -> V2 a -> V2 a Source #

min :: V2 a -> V2 a -> V2 a Source #

Read a => Read (V2 a) 
Instance details

Defined in Linear.V2

Show a => Show (V2 a) 
Instance details

Defined in Linear.V2

Methods

showsPrec :: Int -> V2 a -> ShowS Source #

show :: V2 a -> String Source #

showList :: [V2 a] -> ShowS Source #

Ix a => Ix (V2 a) 
Instance details

Defined in Linear.V2

Methods

range :: (V2 a, V2 a) -> [V2 a] Source #

index :: (V2 a, V2 a) -> V2 a -> Int Source #

unsafeIndex :: (V2 a, V2 a) -> V2 a -> Int

inRange :: (V2 a, V2 a) -> V2 a -> Bool Source #

rangeSize :: (V2 a, V2 a) -> Int Source #

unsafeRangeSize :: (V2 a, V2 a) -> Int

Generic (V2 a) 
Instance details

Defined in Linear.V2

Associated Types

type Rep (V2 a) :: Type -> Type Source #

Methods

from :: V2 a -> Rep (V2 a) x Source #

to :: Rep (V2 a) x -> V2 a Source #

Lift a => Lift (V2 a) 
Instance details

Defined in Linear.V2

Methods

lift :: V2 a -> Q Exp Source #

Storable a => Storable (V2 a) 
Instance details

Defined in Linear.V2

Methods

sizeOf :: V2 a -> Int Source #

alignment :: V2 a -> Int Source #

peekElemOff :: Ptr (V2 a) -> Int -> IO (V2 a) Source #

pokeElemOff :: Ptr (V2 a) -> Int -> V2 a -> IO () Source #

peekByteOff :: Ptr b -> Int -> IO (V2 a) Source #

pokeByteOff :: Ptr b -> Int -> V2 a -> IO () Source #

peek :: Ptr (V2 a) -> IO (V2 a) Source #

poke :: Ptr (V2 a) -> V2 a -> IO () Source #

Binary a => Binary (V2 a) 
Instance details

Defined in Linear.V2

Methods

put :: V2 a -> Put Source #

get :: Get (V2 a) Source #

putList :: [V2 a] -> Put Source #

NFData a => NFData (V2 a) 
Instance details

Defined in Linear.V2

Methods

rnf :: V2 a -> () Source #

Epsilon a => Epsilon (V2 a) 
Instance details

Defined in Linear.V2

Methods

nearZero :: V2 a -> Bool Source #

Unbox a => Unbox (V2 a) 
Instance details

Defined in Linear.V2

Hashable a => Hashable (V2 a) 
Instance details

Defined in Linear.V2

Methods

hashWithSalt :: Int -> V2 a -> Int

hash :: V2 a -> Int

Ixed (V2 a) 
Instance details

Defined in Linear.V2

Methods

ix :: Index (V2 a) -> Traversal' (V2 a) (IxValue (V2 a))

Serial a => Serial (V2 a) 
Instance details

Defined in Linear.V2

Methods

serialize :: MonadPut m => V2 a -> m ()

deserialize :: MonadGet m => m (V2 a)

Serialize a => Serialize (V2 a) 
Instance details

Defined in Linear.V2

Methods

put :: Putter (V2 a)

get :: Get (V2 a)

Generic1 V2 
Instance details

Defined in Linear.V2

Associated Types

type Rep1 V2 :: k -> Type Source #

Methods

from1 :: V2 a -> Rep1 V2 a Source #

to1 :: Rep1 V2 a -> V2 a Source #

FoldableWithIndex (E V2) V2 
Instance details

Defined in Linear.V2

Methods

ifoldMap :: Monoid m => (E V2 -> a -> m) -> V2 a -> m

ifolded :: IndexedFold (E V2) (V2 a) a

ifoldr :: (E V2 -> a -> b -> b) -> b -> V2 a -> b

ifoldl :: (E V2 -> b -> a -> b) -> b -> V2 a -> b

ifoldr' :: (E V2 -> a -> b -> b) -> b -> V2 a -> b

ifoldl' :: (E V2 -> b -> a -> b) -> b -> V2 a -> b

FunctorWithIndex (E V2) V2 
Instance details

Defined in Linear.V2

Methods

imap :: (E V2 -> a -> b) -> V2 a -> V2 b

imapped :: IndexedSetter (E V2) (V2 a) (V2 b) a b

TraversableWithIndex (E V2) V2 
Instance details

Defined in Linear.V2

Methods

itraverse :: Applicative f => (E V2 -> a -> f b) -> V2 a -> f (V2 b)

itraversed :: IndexedTraversal (E V2) (V2 a) (V2 b) a b

Each (V2 a) (V2 b) a b 
Instance details

Defined in Linear.V2

Methods

each :: Traversal (V2 a) (V2 b) a b

Field1 (V2 a) (V2 a) a a 
Instance details

Defined in Linear.V2

Methods

_1 :: Lens (V2 a) (V2 a) a a

Field2 (V2 a) (V2 a) a a 
Instance details

Defined in Linear.V2

Methods

_2 :: Lens (V2 a) (V2 a) a a

type Diff V2 
Instance details

Defined in Linear.Affine

type Diff V2 = V2
type Size V2 
Instance details

Defined in Linear.V2

type Size V2 = 2
type Rep V2 
Instance details

Defined in Linear.V2

type Rep V2 = E V2
data MVector s (V2 a) 
Instance details

Defined in Linear.V2

data MVector s (V2 a) = MV_V2 !Int !(MVector s a)
type Rep (V2 a) 
Instance details

Defined in Linear.V2

data Vector (V2 a) 
Instance details

Defined in Linear.V2

data Vector (V2 a) = V_V2 !Int !(Vector a)
type Index (V2 a) 
Instance details

Defined in Linear.V2

type Index (V2 a) = E V2
type IxValue (V2 a) 
Instance details

Defined in Linear.V2

type IxValue (V2 a) = a
type Rep1 V2 
Instance details

Defined in Linear.V2

data V3 a Source #

A 3-dimensional vector

Constructors

V3 !a !a !a 
Instances
Monad V3 
Instance details

Defined in Linear.V3

Methods

(>>=) :: V3 a -> (a -> V3 b) -> V3 b Source #

(>>) :: V3 a -> V3 b -> V3 b Source #

return :: a -> V3 a Source #

fail :: String -> V3 a Source #

Functor V3 
Instance details

Defined in Linear.V3

Methods

fmap :: (a -> b) -> V3 a -> V3 b Source #

(<$) :: a -> V3 b -> V3 a Source #

MonadFix V3 
Instance details

Defined in Linear.V3

Methods

mfix :: (a -> V3 a) -> V3 a Source #

Applicative V3 
Instance details

Defined in Linear.V3

Methods

pure :: a -> V3 a Source #

(<*>) :: V3 (a -> b) -> V3 a -> V3 b Source #

liftA2 :: (a -> b -> c) -> V3 a -> V3 b -> V3 c Source #

(*>) :: V3 a -> V3 b -> V3 b Source #

(<*) :: V3 a -> V3 b -> V3 a Source #

Foldable V3 
Instance details

Defined in Linear.V3

Methods

fold :: Monoid m => V3 m -> m Source #

foldMap :: Monoid m => (a -> m) -> V3 a -> m Source #

foldr :: (a -> b -> b) -> b -> V3 a -> b Source #

foldr' :: (a -> b -> b) -> b -> V3 a -> b Source #

foldl :: (b -> a -> b) -> b -> V3 a -> b Source #

foldl' :: (b -> a -> b) -> b -> V3 a -> b Source #

foldr1 :: (a -> a -> a) -> V3 a -> a Source #

foldl1 :: (a -> a -> a) -> V3 a -> a Source #

toList :: V3 a -> [a] Source #

null :: V3 a -> Bool Source #

length :: V3 a -> Int Source #

elem :: Eq a => a -> V3 a -> Bool Source #

maximum :: Ord a => V3 a -> a Source #

minimum :: Ord a => V3 a -> a Source #

sum :: Num a => V3 a -> a Source #

product :: Num a => V3 a -> a Source #

Traversable V3 
Instance details

Defined in Linear.V3

Methods

traverse :: Applicative f => (a -> f b) -> V3 a -> f (V3 b) Source #

sequenceA :: Applicative f => V3 (f a) -> f (V3 a) Source #

mapM :: Monad m => (a -> m b) -> V3 a -> m (V3 b) Source #

sequence :: Monad m => V3 (m a) -> m (V3 a) Source #

Eq1 V3 
Instance details

Defined in Linear.V3

Methods

liftEq :: (a -> b -> Bool) -> V3 a -> V3 b -> Bool Source #

Ord1 V3 
Instance details

Defined in Linear.V3

Methods

liftCompare :: (a -> b -> Ordering) -> V3 a -> V3 b -> Ordering Source #

Read1 V3 
Instance details

Defined in Linear.V3

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (V3 a) Source #

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [V3 a] Source #

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (V3 a) Source #

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [V3 a] Source #

Show1 V3 
Instance details

Defined in Linear.V3

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> V3 a -> ShowS Source #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [V3 a] -> ShowS Source #

MonadZip V3 
Instance details

Defined in Linear.V3

Methods

mzip :: V3 a -> V3 b -> V3 (a, b) Source #

mzipWith :: (a -> b -> c) -> V3 a -> V3 b -> V3 c Source #

munzip :: V3 (a, b) -> (V3 a, V3 b) Source #

Representable V3 
Instance details

Defined in Linear.V3

Associated Types

type Rep V3 :: Type

Methods

tabulate :: (Rep V3 -> a) -> V3 a

index :: V3 a -> Rep V3 -> a

Affine V3 
Instance details

Defined in Linear.Affine

Associated Types

type Diff V3 :: Type -> Type Source #

Methods

(.-.) :: Num a => V3 a -> V3 a -> Diff V3 a Source #

(.+^) :: Num a => V3 a -> Diff V3 a -> V3 a Source #

(.-^) :: Num a => V3 a -> Diff V3 a -> V3 a Source #

Trace V3 
Instance details

Defined in Linear.Trace

Methods

trace :: Num a => V3 (V3 a) -> a Source #

diagonal :: V3 (V3 a) -> V3 a Source #

R3 V3 
Instance details

Defined in Linear.V3

Methods

_z :: Lens' (V3 a) a Source #

_xyz :: Lens' (V3 a) (V3 a) Source #

R2 V3 
Instance details

Defined in Linear.V3

Methods

_y :: Lens' (V3 a) a Source #

_xy :: Lens' (V3 a) (V2 a) Source #

R1 V3 
Instance details

Defined in Linear.V3

Methods

_x :: Lens' (V3 a) a Source #

Finite V3 
Instance details

Defined in Linear.V3

Associated Types

type Size V3 :: Nat Source #

Methods

toV :: V3 a -> V (Size V3) a Source #

fromV :: V (Size V3) a -> V3 a Source #

Metric V3 
Instance details

Defined in Linear.V3

Methods

dot :: Num a => V3 a -> V3 a -> a Source #

quadrance :: Num a => V3 a -> a Source #

qd :: Num a => V3 a -> V3 a -> a Source #

distance :: Floating a => V3 a -> V3 a -> a Source #

norm :: Floating a => V3 a -> a Source #

signorm :: Floating a => V3 a -> V3 a Source #

Additive V3 
Instance details

Defined in Linear.V3

Methods

zero :: Num a => V3 a Source #

(^+^) :: Num a => V3 a -> V3 a -> V3 a Source #

(^-^) :: Num a => V3 a -> V3 a -> V3 a Source #

lerp :: Num a => a -> V3 a -> V3 a -> V3 a Source #

liftU2 :: (a -> a -> a) -> V3 a -> V3 a -> V3 a Source #

liftI2 :: (a -> b -> c) -> V3 a -> V3 b -> V3 c Source #

Apply V3 
Instance details

Defined in Linear.V3

Methods

(<.>) :: V3 (a -> b) -> V3 a -> V3 b

(.>) :: V3 a -> V3 b -> V3 b

(<.) :: V3 a -> V3 b -> V3 a

liftF2 :: (a -> b -> c) -> V3 a -> V3 b -> V3 c

Bind V3 
Instance details

Defined in Linear.V3

Methods

(>>-) :: V3 a -> (a -> V3 b) -> V3 b

join :: V3 (V3 a) -> V3 a

Distributive V3 
Instance details

Defined in Linear.V3

Methods

distribute :: Functor f => f (V3 a) -> V3 (f a)

collect :: Functor f => (a -> V3 b) -> f a -> V3 (f b)

distributeM :: Monad m => m (V3 a) -> V3 (m a)

collectM :: Monad m => (a -> V3 b) -> m a -> V3 (m b)

Hashable1 V3 
Instance details

Defined in Linear.V3

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> V3 a -> Int

Serial1 V3 
Instance details

Defined in Linear.V3

Methods

serializeWith :: MonadPut m => (a -> m ()) -> V3 a -> m ()

deserializeWith :: MonadGet m => m a -> m (V3 a)

Foldable1 V3 
Instance details

Defined in Linear.V3

Methods

fold1 :: Semigroup m => V3 m -> m

foldMap1 :: Semigroup m => (a -> m) -> V3 a -> m

toNonEmpty :: V3 a -> NonEmpty a

Traversable1 V3 
Instance details

Defined in Linear.V3

Methods

traverse1 :: Apply f => (a -> f b) -> V3 a -> f (V3 b)

sequence1 :: Apply f => V3 (f b) -> f (V3 b)

Num r => Coalgebra r (E V3) 
Instance details

Defined in Linear.Algebra

Methods

comult :: (E V3 -> r) -> E V3 -> E V3 -> r Source #

counital :: (E V3 -> r) -> r Source #

Unbox a => Vector Vector (V3 a) 
Instance details

Defined in Linear.V3

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (V3 a) -> m (Vector (V3 a)) Source #

basicUnsafeThaw :: PrimMonad m => Vector (V3 a) -> m (Mutable Vector (PrimState m) (V3 a)) Source #

basicLength :: Vector (V3 a) -> Int Source #

basicUnsafeSlice :: Int -> Int -> Vector (V3 a) -> Vector (V3 a) Source #

basicUnsafeIndexM :: Monad m => Vector (V3 a) -> Int -> m (V3 a) Source #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (V3 a) -> Vector (V3 a) -> m () Source #

elemseq :: Vector (V3 a) -> V3 a -> b -> b Source #

Unbox a => MVector MVector (V3 a) 
Instance details

Defined in Linear.V3

Methods

basicLength :: MVector s (V3 a) -> Int Source #

basicUnsafeSlice :: Int -> Int -> MVector s (V3 a) -> MVector s (V3 a) Source #

basicOverlaps :: MVector s (V3 a) -> MVector s (V3 a) -> Bool Source #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (V3 a)) Source #

basicInitialize :: PrimMonad m => MVector (PrimState m) (V3 a) -> m () Source #

basicUnsafeReplicate :: PrimMonad m => Int -> V3 a -> m (MVector (PrimState m) (V3 a)) Source #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (V3 a) -> Int -> m (V3 a) Source #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (V3 a) -> Int -> V3 a -> m () Source #

basicClear :: PrimMonad m => MVector (PrimState m) (V3 a) -> m () Source #

basicSet :: PrimMonad m => MVector (PrimState m) (V3 a) -> V3 a -> m () Source #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (V3 a) -> MVector (PrimState m) (V3 a) -> m () Source #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (V3 a) -> MVector (PrimState m) (V3 a) -> m () Source #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (V3 a) -> Int -> m (MVector (PrimState m) (V3 a)) Source #

Bounded a => Bounded (V3 a) 
Instance details

Defined in Linear.V3

Methods

minBound :: V3 a Source #

maxBound :: V3 a Source #

Eq a => Eq (V3 a) 
Instance details

Defined in Linear.V3

Methods

(==) :: V3 a -> V3 a -> Bool Source #

(/=) :: V3 a -> V3 a -> Bool Source #

Floating a => Floating (V3 a) 
Instance details

Defined in Linear.V3

Methods

pi :: V3 a Source #

exp :: V3 a -> V3 a Source #

log :: V3 a -> V3 a Source #

sqrt :: V3 a -> V3 a Source #

(**) :: V3 a -> V3 a -> V3 a Source #

logBase :: V3 a -> V3 a -> V3 a Source #

sin :: V3 a -> V3 a Source #

cos :: V3 a -> V3 a Source #

tan :: V3 a -> V3 a Source #

asin :: V3 a -> V3 a Source #

acos :: V3 a -> V3 a Source #

atan :: V3 a -> V3 a Source #

sinh :: V3 a -> V3 a Source #

cosh :: V3 a -> V3 a Source #

tanh :: V3 a -> V3 a Source #

asinh :: V3 a -> V3 a Source #

acosh :: V3 a -> V3 a Source #

atanh :: V3 a -> V3 a Source #

log1p :: V3 a -> V3 a Source #

expm1 :: V3 a -> V3 a Source #

log1pexp :: V3 a -> V3 a Source #

log1mexp :: V3 a -> V3 a Source #

Fractional a => Fractional (V3 a) 
Instance details

Defined in Linear.V3

Methods

(/) :: V3 a -> V3 a -> V3 a Source #

recip :: V3 a -> V3 a Source #

fromRational :: Rational -> V3 a Source #

Data a => Data (V3 a) 
Instance details

Defined in Linear.V3

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> V3 a -> c (V3 a) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (V3 a) Source #

toConstr :: V3 a -> Constr Source #

dataTypeOf :: V3 a -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (V3 a)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (V3 a)) Source #

gmapT :: (forall b. Data b => b -> b) -> V3 a -> V3 a Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> V3 a -> r Source #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> V3 a -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> V3 a -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> V3 a -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> V3 a -> m (V3 a) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> V3 a -> m (V3 a) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> V3 a -> m (V3 a) Source #

Num a => Num (V3 a) 
Instance details

Defined in Linear.V3

Methods

(+) :: V3 a -> V3 a -> V3 a Source #

(-) :: V3 a -> V3 a -> V3 a Source #

(*) :: V3 a -> V3 a -> V3 a Source #

negate :: V3 a -> V3 a Source #

abs :: V3 a -> V3 a Source #

signum :: V3 a -> V3 a Source #

fromInteger :: Integer -> V3 a Source #

Ord a => Ord (V3 a) 
Instance details

Defined in Linear.V3

Methods

compare :: V3 a -> V3 a -> Ordering Source #

(<) :: V3 a -> V3 a -> Bool Source #

(<=) :: V3 a -> V3 a -> Bool Source #

(>) :: V3 a -> V3 a -> Bool Source #

(>=) :: V3 a -> V3 a -> Bool Source #

max :: V3 a -> V3 a -> V3 a Source #

min :: V3 a -> V3 a -> V3 a Source #

Read a => Read (V3 a) 
Instance details

Defined in Linear.V3

Show a => Show (V3 a) 
Instance details

Defined in Linear.V3

Methods

showsPrec :: Int -> V3 a -> ShowS Source #

show :: V3 a -> String Source #

showList :: [V3 a] -> ShowS Source #

Ix a => Ix (V3 a) 
Instance details

Defined in Linear.V3

Methods

range :: (V3 a, V3 a) -> [V3 a] Source #

index :: (V3 a, V3 a) -> V3 a -> Int Source #

unsafeIndex :: (V3 a, V3 a) -> V3 a -> Int

inRange :: (V3 a, V3 a) -> V3 a -> Bool Source #

rangeSize :: (V3 a, V3 a) -> Int Source #

unsafeRangeSize :: (V3 a, V3 a) -> Int

Generic (V3 a) 
Instance details

Defined in Linear.V3

Associated Types

type Rep (V3 a) :: Type -> Type Source #

Methods

from :: V3 a -> Rep (V3 a) x Source #

to :: Rep (V3 a) x -> V3 a Source #

Lift a => Lift (V3 a) 
Instance details

Defined in Linear.V3

Methods

lift :: V3 a -> Q Exp Source #

Storable a => Storable (V3 a) 
Instance details

Defined in Linear.V3

Methods

sizeOf :: V3 a -> Int Source #

alignment :: V3 a -> Int Source #

peekElemOff :: Ptr (V3 a) -> Int -> IO (V3 a) Source #

pokeElemOff :: Ptr (V3 a) -> Int -> V3 a -> IO () Source #

peekByteOff :: Ptr b -> Int -> IO (V3 a) Source #

pokeByteOff :: Ptr b -> Int -> V3 a -> IO () Source #

peek :: Ptr (V3 a) -> IO (V3 a) Source #

poke :: Ptr (V3 a) -> V3 a -> IO () Source #

Binary a => Binary (V3 a) 
Instance details

Defined in Linear.V3

Methods

put :: V3 a -> Put Source #

get :: Get (V3 a) Source #

putList :: [V3 a] -> Put Source #

NFData a => NFData (V3 a) 
Instance details

Defined in Linear.V3

Methods

rnf :: V3 a -> () Source #

Epsilon a => Epsilon (V3 a) 
Instance details

Defined in Linear.V3

Methods

nearZero :: V3 a -> Bool Source #

Unbox a => Unbox (V3 a) 
Instance details

Defined in Linear.V3

Hashable a => Hashable (V3 a) 
Instance details

Defined in Linear.V3

Methods

hashWithSalt :: Int -> V3 a -> Int

hash :: V3 a -> Int

Ixed (V3 a) 
Instance details

Defined in Linear.V3

Methods

ix :: Index (V3 a) -> Traversal' (V3 a) (IxValue (V3 a))

Serial a => Serial (V3 a) 
Instance details

Defined in Linear.V3

Methods

serialize :: MonadPut m => V3 a -> m ()

deserialize :: MonadGet m => m (V3 a)

Serialize a => Serialize (V3 a) 
Instance details

Defined in Linear.V3

Methods

put :: Putter (V3 a)

get :: Get (V3 a)

Generic1 V3 
Instance details

Defined in Linear.V3

Associated Types

type Rep1 V3 :: k -> Type Source #

Methods

from1 :: V3 a -> Rep1 V3 a Source #

to1 :: Rep1 V3 a -> V3 a Source #

FoldableWithIndex (E V3) V3 
Instance details

Defined in Linear.V3

Methods

ifoldMap :: Monoid m => (E V3 -> a -> m) -> V3 a -> m

ifolded :: IndexedFold (E V3) (V3 a) a

ifoldr :: (E V3 -> a -> b -> b) -> b -> V3 a -> b

ifoldl :: (E V3 -> b -> a -> b) -> b -> V3 a -> b

ifoldr' :: (E V3 -> a -> b -> b) -> b -> V3 a -> b

ifoldl' :: (E V3 -> b -> a -> b) -> b -> V3 a -> b

FunctorWithIndex (E V3) V3 
Instance details

Defined in Linear.V3

Methods

imap :: (E V3 -> a -> b) -> V3 a -> V3 b

imapped :: IndexedSetter (E V3) (V3 a) (V3 b) a b

TraversableWithIndex (E V3) V3 
Instance details

Defined in Linear.V3

Methods

itraverse :: Applicative f => (E V3 -> a -> f b) -> V3 a -> f (V3 b)

itraversed :: IndexedTraversal (E V3) (V3 a) (V3 b) a b

Each (V3 a) (V3 b) a b 
Instance details

Defined in Linear.V3

Methods

each :: Traversal (V3 a) (V3 b) a b

Field1 (V3 a) (V3 a) a a 
Instance details

Defined in Linear.V3

Methods

_1 :: Lens (V3 a) (V3 a) a a

Field2 (V3 a) (V3 a) a a 
Instance details

Defined in Linear.V3

Methods

_2 :: Lens (V3 a) (V3 a) a a

Field3 (V3 a) (V3 a) a a 
Instance details

Defined in Linear.V3

Methods

_3 :: Lens (V3 a) (V3 a) a a

type Diff V3 
Instance details

Defined in Linear.Affine

type Diff V3 = V3
type Size V3 
Instance details

Defined in Linear.V3

type Size V3 = 3
type Rep V3 
Instance details

Defined in Linear.V3

type Rep V3 = E V3
data MVector s (V3 a) 
Instance details

Defined in Linear.V3

data MVector s (V3 a) = MV_V3 !Int !(MVector s a)
type Rep (V3 a) 
Instance details

Defined in Linear.V3

data Vector (V3 a) 
Instance details

Defined in Linear.V3

data Vector (V3 a) = V_V3 !Int !(Vector a)
type Index (V3 a) 
Instance details

Defined in Linear.V3

type Index (V3 a) = E V3
type IxValue (V3 a) 
Instance details

Defined in Linear.V3

type IxValue (V3 a) = a
type Rep1 V3 
Instance details

Defined in Linear.V3

data V4 a Source #

A 4-dimensional vector.

Constructors

V4 !a !a !a !a 
Instances
Monad V4 
Instance details

Defined in Linear.V4

Methods

(>>=) :: V4 a -> (a -> V4 b) -> V4 b Source #

(>>) :: V4 a -> V4 b -> V4 b Source #

return :: a -> V4 a Source #

fail :: String -> V4 a Source #

Functor V4 
Instance details

Defined in Linear.V4

Methods

fmap :: (a -> b) -> V4 a -> V4 b Source #

(<$) :: a -> V4 b -> V4 a Source #

MonadFix V4 
Instance details

Defined in Linear.V4

Methods

mfix :: (a -> V4 a) -> V4 a Source #

Applicative V4 
Instance details

Defined in Linear.V4

Methods

pure :: a -> V4 a Source #

(<*>) :: V4 (a -> b) -> V4 a -> V4 b Source #

liftA2 :: (a -> b -> c) -> V4 a -> V4 b -> V4 c Source #

(*>) :: V4 a -> V4 b -> V4 b Source #

(<*) :: V4 a -> V4 b -> V4 a Source #

Foldable V4 
Instance details

Defined in Linear.V4

Methods

fold :: Monoid m => V4 m -> m Source #

foldMap :: Monoid m => (a -> m) -> V4 a -> m Source #

foldr :: (a -> b -> b) -> b -> V4 a -> b Source #

foldr' :: (a -> b -> b) -> b -> V4 a -> b Source #

foldl :: (b -> a -> b) -> b -> V4 a -> b Source #

foldl' :: (b -> a -> b) -> b -> V4 a -> b Source #

foldr1 :: (a -> a -> a) -> V4 a -> a Source #

foldl1 :: (a -> a -> a) -> V4 a -> a Source #

toList :: V4 a -> [a] Source #

null :: V4 a -> Bool Source #

length :: V4 a -> Int Source #

elem :: Eq a => a -> V4 a -> Bool Source #

maximum :: Ord a => V4 a -> a Source #

minimum :: Ord a => V4 a -> a Source #

sum :: Num a => V4 a -> a Source #

product :: Num a => V4 a -> a Source #

Traversable V4 
Instance details

Defined in Linear.V4

Methods

traverse :: Applicative f => (a -> f b) -> V4 a -> f (V4 b) Source #

sequenceA :: Applicative f => V4 (f a) -> f (V4 a) Source #

mapM :: Monad m => (a -> m b) -> V4 a -> m (V4 b) Source #

sequence :: Monad m => V4 (m a) -> m (V4 a) Source #

Eq1 V4 
Instance details

Defined in Linear.V4

Methods

liftEq :: (a -> b -> Bool) -> V4 a -> V4 b -> Bool Source #

Ord1 V4 
Instance details

Defined in Linear.V4

Methods

liftCompare :: (a -> b -> Ordering) -> V4 a -> V4 b -> Ordering Source #

Read1 V4 
Instance details

Defined in Linear.V4

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (V4 a) Source #

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [V4 a] Source #

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (V4 a) Source #

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [V4 a] Source #

Show1 V4 
Instance details

Defined in Linear.V4

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> V4 a -> ShowS Source #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [V4 a] -> ShowS Source #

MonadZip V4 
Instance details

Defined in Linear.V4

Methods

mzip :: V4 a -> V4 b -> V4 (a, b) Source #

mzipWith :: (a -> b -> c) -> V4 a -> V4 b -> V4 c Source #

munzip :: V4 (a, b) -> (V4 a, V4 b) Source #

Representable V4 
Instance details

Defined in Linear.V4

Associated Types

type Rep V4 :: Type

Methods

tabulate :: (Rep V4 -> a) -> V4 a

index :: V4 a -> Rep V4 -> a

Affine V4 
Instance details

Defined in Linear.Affine

Associated Types

type Diff V4 :: Type -> Type Source #

Methods

(.-.) :: Num a => V4 a -> V4 a -> Diff V4 a Source #

(.+^) :: Num a => V4 a -> Diff V4 a -> V4 a Source #

(.-^) :: Num a => V4 a -> Diff V4 a -> V4 a Source #

Trace V4 
Instance details

Defined in Linear.Trace

Methods

trace :: Num a => V4 (V4 a) -> a Source #

diagonal :: V4 (V4 a) -> V4 a Source #

R4 V4 
Instance details

Defined in Linear.V4

Methods

_w :: Lens' (V4 a) a Source #

_xyzw :: Lens' (V4 a) (V4 a) Source #

R3 V4 
Instance details

Defined in Linear.V4

Methods

_z :: Lens' (V4 a) a Source #

_xyz :: Lens' (V4 a) (V3 a) Source #

R2 V4 
Instance details

Defined in Linear.V4

Methods

_y :: Lens' (V4 a) a Source #

_xy :: Lens' (V4 a) (V2 a) Source #

R1 V4 
Instance details

Defined in Linear.V4

Methods

_x :: Lens' (V4 a) a Source #

Finite V4 
Instance details

Defined in Linear.V4

Associated Types

type Size V4 :: Nat Source #

Methods

toV :: V4 a -> V (Size V4) a Source #

fromV :: V (Size V4) a -> V4 a Source #

Metric V4 
Instance details

Defined in Linear.V4

Methods

dot :: Num a => V4 a -> V4 a -> a Source #

quadrance :: Num a => V4 a -> a Source #

qd :: Num a => V4 a -> V4 a -> a Source #

distance :: Floating a => V4 a -> V4 a -> a Source #

norm :: Floating a => V4 a -> a Source #

signorm :: Floating a => V4 a -> V4 a Source #

Additive V4 
Instance details

Defined in Linear.V4

Methods

zero :: Num a => V4 a Source #

(^+^) :: Num a => V4 a -> V4 a -> V4 a Source #

(^-^) :: Num a => V4 a -> V4 a -> V4 a Source #

lerp :: Num a => a -> V4 a -> V4 a -> V4 a Source #

liftU2 :: (a -> a -> a) -> V4 a -> V4 a -> V4 a Source #

liftI2 :: (a -> b -> c) -> V4 a -> V4 b -> V4 c Source #

Apply V4 
Instance details

Defined in Linear.V4

Methods

(<.>) :: V4 (a -> b) -> V4 a -> V4 b

(.>) :: V4 a -> V4 b -> V4 b

(<.) :: V4 a -> V4 b -> V4 a

liftF2 :: (a -> b -> c) -> V4 a -> V4 b -> V4 c

Bind V4 
Instance details

Defined in Linear.V4

Methods

(>>-) :: V4 a -> (a -> V4 b) -> V4 b

join :: V4 (V4 a) -> V4 a

Distributive V4 
Instance details

Defined in Linear.V4

Methods

distribute :: Functor f => f (V4 a) -> V4 (f a)

collect :: Functor f => (a -> V4 b) -> f a -> V4 (f b)

distributeM :: Monad m => m (V4 a) -> V4 (m a)

collectM :: Monad m => (a -> V4 b) -> m a -> V4 (m b)

Hashable1 V4 
Instance details

Defined in Linear.V4

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> V4 a -> Int

Serial1 V4 
Instance details

Defined in Linear.V4

Methods

serializeWith :: MonadPut m => (a -> m ()) -> V4 a -> m ()

deserializeWith :: MonadGet m => m a -> m (V4 a)

Foldable1 V4 
Instance details

Defined in Linear.V4

Methods

fold1 :: Semigroup m => V4 m -> m

foldMap1 :: Semigroup m => (a -> m) -> V4 a -> m

toNonEmpty :: V4 a -> NonEmpty a

Traversable1 V4 
Instance details

Defined in Linear.V4

Methods

traverse1 :: Apply f => (a -> f b) -> V4 a -> f (V4 b)

sequence1 :: Apply f => V4 (f b) -> f (V4 b)

Num r => Coalgebra r (E V4) 
Instance details

Defined in Linear.Algebra

Methods

comult :: (E V4 -> r) -> E V4 -> E V4 -> r Source #

counital :: (E V4 -> r) -> r Source #

Unbox a => Vector Vector (V4 a) 
Instance details

Defined in Linear.V4

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (V4 a) -> m (Vector (V4 a)) Source #

basicUnsafeThaw :: PrimMonad m => Vector (V4 a) -> m (Mutable Vector (PrimState m) (V4 a)) Source #

basicLength :: Vector (V4 a) -> Int Source #

basicUnsafeSlice :: Int -> Int -> Vector (V4 a) -> Vector (V4 a) Source #

basicUnsafeIndexM :: Monad m => Vector (V4 a) -> Int -> m (V4 a) Source #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (V4 a) -> Vector (V4 a) -> m () Source #

elemseq :: Vector (V4 a) -> V4 a -> b -> b Source #

Unbox a => MVector MVector (V4 a) 
Instance details

Defined in Linear.V4

Methods

basicLength :: MVector s (V4 a) -> Int Source #

basicUnsafeSlice :: Int -> Int -> MVector s (V4 a) -> MVector s (V4 a) Source #

basicOverlaps :: MVector s (V4 a) -> MVector s (V4 a) -> Bool Source #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (V4 a)) Source #

basicInitialize :: PrimMonad m => MVector (PrimState m) (V4 a) -> m () Source #

basicUnsafeReplicate :: PrimMonad m => Int -> V4 a -> m (MVector (PrimState m) (V4 a)) Source #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (V4 a) -> Int -> m (V4 a) Source #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (V4 a) -> Int -> V4 a -> m () Source #

basicClear :: PrimMonad m => MVector (PrimState m) (V4 a) -> m () Source #

basicSet :: PrimMonad m => MVector (PrimState m) (V4 a) -> V4 a -> m () Source #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (V4 a) -> MVector (PrimState m) (V4 a) -> m () Source #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (V4 a) -> MVector (PrimState m) (V4 a) -> m () Source #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (V4 a) -> Int -> m (MVector (PrimState m) (V4 a)) Source #

Bounded a => Bounded (V4 a) 
Instance details

Defined in Linear.V4

Methods

minBound :: V4 a Source #

maxBound :: V4 a Source #

Eq a => Eq (V4 a) 
Instance details

Defined in Linear.V4

Methods

(==) :: V4 a -> V4 a -> Bool Source #

(/=) :: V4 a -> V4 a -> Bool Source #

Floating a => Floating (V4 a) 
Instance details

Defined in Linear.V4

Methods

pi :: V4 a Source #

exp :: V4 a -> V4 a Source #

log :: V4 a -> V4 a Source #

sqrt :: V4 a -> V4 a Source #

(**) :: V4 a -> V4 a -> V4 a Source #

logBase :: V4 a -> V4 a -> V4 a Source #

sin :: V4 a -> V4 a Source #

cos :: V4 a -> V4 a Source #

tan :: V4 a -> V4 a Source #

asin :: V4 a -> V4 a Source #

acos :: V4 a -> V4 a Source #

atan :: V4 a -> V4 a Source #

sinh :: V4 a -> V4 a Source #

cosh :: V4 a -> V4 a Source #

tanh :: V4 a -> V4 a Source #

asinh :: V4 a -> V4 a Source #

acosh :: V4 a -> V4 a Source #

atanh :: V4 a -> V4 a Source #

log1p :: V4 a -> V4 a Source #

expm1 :: V4 a -> V4 a Source #

log1pexp :: V4 a -> V4 a Source #

log1mexp :: V4 a -> V4 a Source #

Fractional a => Fractional (V4 a) 
Instance details

Defined in Linear.V4

Methods

(/) :: V4 a -> V4 a -> V4 a Source #

recip :: V4 a -> V4 a Source #

fromRational :: Rational -> V4 a Source #

Data a => Data (V4 a) 
Instance details

Defined in Linear.V4

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> V4 a -> c (V4 a) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (V4 a) Source #

toConstr :: V4 a -> Constr Source #

dataTypeOf :: V4 a -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (V4 a)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (V4 a)) Source #

gmapT :: (forall b. Data b => b -> b) -> V4 a -> V4 a Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> V4 a -> r Source #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> V4 a -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> V4 a -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> V4 a -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> V4 a -> m (V4 a) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> V4 a -> m (V4 a) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> V4 a -> m (V4 a) Source #

Num a => Num (V4 a) 
Instance details

Defined in Linear.V4

Methods

(+) :: V4 a -> V4 a -> V4 a Source #

(-) :: V4 a -> V4 a -> V4 a Source #

(*) :: V4 a -> V4 a -> V4 a Source #

negate :: V4 a -> V4 a Source #

abs :: V4 a -> V4 a Source #

signum :: V4 a -> V4 a Source #

fromInteger :: Integer -> V4 a Source #

Ord a => Ord (V4 a) 
Instance details

Defined in Linear.V4

Methods

compare :: V4 a -> V4 a -> Ordering Source #

(<) :: V4 a -> V4 a -> Bool Source #

(<=) :: V4 a -> V4 a -> Bool Source #

(>) :: V4 a -> V4 a -> Bool Source #

(>=) :: V4 a -> V4 a -> Bool Source #

max :: V4 a -> V4 a -> V4 a Source #

min :: V4 a -> V4 a -> V4 a Source #

Read a => Read (V4 a) 
Instance details

Defined in Linear.V4

Show a => Show (V4 a) 
Instance details

Defined in Linear.V4

Methods

showsPrec :: Int -> V4 a -> ShowS Source #

show :: V4 a -> String Source #

showList :: [V4 a] -> ShowS Source #

Ix a => Ix (V4 a) 
Instance details

Defined in Linear.V4

Methods

range :: (V4 a, V4 a) -> [V4 a] Source #

index :: (V4 a, V4 a) -> V4 a -> Int Source #

unsafeIndex :: (V4 a, V4 a) -> V4 a -> Int

inRange :: (V4 a, V4 a) -> V4 a -> Bool Source #

rangeSize :: (V4 a, V4 a) -> Int Source #

unsafeRangeSize :: (V4 a, V4 a) -> Int

Generic (V4 a) 
Instance details

Defined in Linear.V4

Associated Types

type Rep (V4 a) :: Type -> Type Source #

Methods

from :: V4 a -> Rep (V4 a) x Source #

to :: Rep (V4 a) x -> V4 a Source #

Lift a => Lift (V4 a) 
Instance details

Defined in Linear.V4

Methods

lift :: V4 a -> Q Exp Source #

Storable a => Storable (V4 a) 
Instance details

Defined in Linear.V4

Methods

sizeOf :: V4 a -> Int Source #

alignment :: V4 a -> Int Source #

peekElemOff :: Ptr (V4 a) -> Int -> IO (V4 a) Source #

pokeElemOff :: Ptr (V4 a) -> Int -> V4 a -> IO () Source #

peekByteOff :: Ptr b -> Int -> IO (V4 a) Source #

pokeByteOff :: Ptr b -> Int -> V4 a -> IO () Source #

peek :: Ptr (V4 a) -> IO (V4 a) Source #

poke :: Ptr (V4 a) -> V4 a -> IO () Source #

Binary a => Binary (V4 a) 
Instance details

Defined in Linear.V4

Methods

put :: V4 a -> Put Source #

get :: Get (V4 a) Source #

putList :: [V4 a] -> Put Source #

NFData a => NFData (V4 a) 
Instance details

Defined in Linear.V4

Methods

rnf :: V4 a -> () Source #

Epsilon a => Epsilon (V4 a) 
Instance details

Defined in Linear.V4

Methods

nearZero :: V4 a -> Bool Source #

Unbox a => Unbox (V4 a) 
Instance details

Defined in Linear.V4

Hashable a => Hashable (V4 a) 
Instance details

Defined in Linear.V4

Methods

hashWithSalt :: Int -> V4 a -> Int

hash :: V4 a -> Int

Ixed (V4 a) 
Instance details

Defined in Linear.V4

Methods

ix :: Index (V4 a) -> Traversal' (V4 a) (IxValue (V4 a))

Serial a => Serial (V4 a) 
Instance details

Defined in Linear.V4

Methods

serialize :: MonadPut m => V4 a -> m ()

deserialize :: MonadGet m => m (V4 a)

Serialize a => Serialize (V4 a) 
Instance details

Defined in Linear.V4

Methods

put :: Putter (V4 a)

get :: Get (V4 a)

Generic1 V4 
Instance details

Defined in Linear.V4

Associated Types

type Rep1 V4 :: k -> Type Source #

Methods

from1 :: V4 a -> Rep1 V4 a Source #

to1 :: Rep1 V4 a -> V4 a Source #

FoldableWithIndex (E V4) V4 
Instance details

Defined in Linear.V4

Methods

ifoldMap :: Monoid m => (E V4 -> a -> m) -> V4 a -> m

ifolded :: IndexedFold (E V4) (V4 a) a

ifoldr :: (E V4 -> a -> b -> b) -> b -> V4 a -> b

ifoldl :: (E V4 -> b -> a -> b) -> b -> V4 a -> b

ifoldr' :: (E V4 -> a -> b -> b) -> b -> V4 a -> b

ifoldl' :: (E V4 -> b -> a -> b) -> b -> V4 a -> b

FunctorWithIndex (E V4) V4 
Instance details

Defined in Linear.V4

Methods

imap :: (E V4 -> a -> b) -> V4 a -> V4 b

imapped :: IndexedSetter (E V4) (V4 a) (V4 b) a b

TraversableWithIndex (E V4) V4 
Instance details

Defined in Linear.V4

Methods

itraverse :: Applicative f => (E V4 -> a -> f b) -> V4 a -> f (V4 b)

itraversed :: IndexedTraversal (E V4) (V4 a) (V4 b) a b

Each (V4 a) (V4 b) a b 
Instance details

Defined in Linear.V4

Methods

each :: Traversal (V4 a) (V4 b) a b

Field1 (V4 a) (V4 a) a a 
Instance details

Defined in Linear.V4

Methods

_1 :: Lens (V4 a) (V4 a) a a

Field2 (V4 a) (V4 a) a a 
Instance details

Defined in Linear.V4

Methods

_2 :: Lens (V4 a) (V4 a) a a

Field3 (V4 a) (V4 a) a a 
Instance details

Defined in Linear.V4

Methods

_3 :: Lens (V4 a) (V4 a) a a

Field4 (V4 a) (V4 a) a a 
Instance details

Defined in Linear.V4

Methods

_4 :: Lens (V4 a) (V4 a) a a

type Diff V4 
Instance details

Defined in Linear.Affine

type Diff V4 = V4
type Size V4 
Instance details

Defined in Linear.V4

type Size V4 = 4
type Rep V4 
Instance details

Defined in Linear.V4

type Rep V4 = E V4
data MVector s (V4 a) 
Instance details

Defined in Linear.V4

data MVector s (V4 a) = MV_V4 !Int !(MVector s a)
type Rep (V4 a) 
Instance details

Defined in Linear.V4

data Vector (V4 a) 
Instance details

Defined in Linear.V4

data Vector (V4 a) = V_V4 !Int !(Vector a)
type Index (V4 a) 
Instance details

Defined in Linear.V4

type Index (V4 a) = E V4
type IxValue (V4 a) 
Instance details

Defined in Linear.V4

type IxValue (V4 a) = a
type Rep1 V4 
Instance details

Defined in Linear.V4