geomancy-0.2.6.0: Geometry and matrix manipulation
Safe HaskellSafe-Inferred
LanguageHaskell2010

Geomancy.Vec3

Description

Specialized and inlined V3 Float.

Documentation

data Vec3 Source #

Instances

Instances details
Storable Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

sizeOf :: Vec3 -> Int #

alignment :: Vec3 -> Int #

peekElemOff :: Ptr Vec3 -> Int -> IO Vec3 #

pokeElemOff :: Ptr Vec3 -> Int -> Vec3 -> IO () #

peekByteOff :: Ptr b -> Int -> IO Vec3 #

pokeByteOff :: Ptr b -> Int -> Vec3 -> IO () #

peek :: Ptr Vec3 -> IO Vec3 #

poke :: Ptr Vec3 -> Vec3 -> IO () #

Floating Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

pi :: Vec3 #

exp :: Vec3 -> Vec3 #

log :: Vec3 -> Vec3 #

sqrt :: Vec3 -> Vec3 #

(**) :: Vec3 -> Vec3 -> Vec3 #

logBase :: Vec3 -> Vec3 -> Vec3 #

sin :: Vec3 -> Vec3 #

cos :: Vec3 -> Vec3 #

tan :: Vec3 -> Vec3 #

asin :: Vec3 -> Vec3 #

acos :: Vec3 -> Vec3 #

atan :: Vec3 -> Vec3 #

sinh :: Vec3 -> Vec3 #

cosh :: Vec3 -> Vec3 #

tanh :: Vec3 -> Vec3 #

asinh :: Vec3 -> Vec3 #

acosh :: Vec3 -> Vec3 #

atanh :: Vec3 -> Vec3 #

log1p :: Vec3 -> Vec3 #

expm1 :: Vec3 -> Vec3 #

log1pexp :: Vec3 -> Vec3 #

log1mexp :: Vec3 -> Vec3 #

Num Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

(+) :: Vec3 -> Vec3 -> Vec3 #

(-) :: Vec3 -> Vec3 -> Vec3 #

(*) :: Vec3 -> Vec3 -> Vec3 #

negate :: Vec3 -> Vec3 #

abs :: Vec3 -> Vec3 #

signum :: Vec3 -> Vec3 #

fromInteger :: Integer -> Vec3 #

Fractional Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

(/) :: Vec3 -> Vec3 -> Vec3 #

recip :: Vec3 -> Vec3 #

fromRational :: Rational -> Vec3 #

Show Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

showsPrec :: Int -> Vec3 -> ShowS #

show :: Vec3 -> String #

showList :: [Vec3] -> ShowS #

NFData Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

rnf :: Vec3 -> () #

Elementwise Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

GlNearest Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Eq Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

(==) :: Vec3 -> Vec3 -> Bool #

(/=) :: Vec3 -> Vec3 -> Bool #

Ord Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

compare :: Vec3 -> Vec3 -> Ordering #

(<) :: Vec3 -> Vec3 -> Bool #

(<=) :: Vec3 -> Vec3 -> Bool #

(>) :: Vec3 -> Vec3 -> Bool #

(>=) :: Vec3 -> Vec3 -> Bool #

max :: Vec3 -> Vec3 -> Vec3 #

min :: Vec3 -> Vec3 -> Vec3 #

Block Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Associated Types

type PackedSize Vec3 :: Nat #

Methods

alignment140 :: proxy Vec3 -> Int #

sizeOf140 :: proxy Vec3 -> Int #

isStruct :: proxy Vec3 -> Bool #

read140 :: MonadIO m => Ptr a -> Diff a Vec3 -> m Vec3 #

write140 :: MonadIO m => Ptr a -> Diff a Vec3 -> Vec3 -> m () #

alignment430 :: proxy Vec3 -> Int #

sizeOf430 :: proxy Vec3 -> Int #

read430 :: MonadIO m => Ptr a -> Diff a Vec3 -> m Vec3 #

write430 :: MonadIO m => Ptr a -> Diff a Vec3 -> Vec3 -> m () #

sizeOfPacked :: proxy Vec3 -> Int #

readPacked :: MonadIO m => Ptr a -> Diff a Vec3 -> m Vec3 #

writePacked :: MonadIO m => Ptr a -> Diff a Vec3 -> Vec3 -> m () #

MonoFunctor Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

omap :: (Element Vec3 -> Element Vec3) -> Vec3 -> Vec3 #

MonoPointed Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

opoint :: Element Vec3 -> Vec3 #

GlModf Vec3 Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

glModf :: Vec3 -> (Vec3, Vec3) Source #

VectorSpace Vec3 Float Source # 
Instance details

Defined in Geomancy.Vec3

type PackedSize Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

type PackedSize Vec3 = 12
type Element Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

withVec3 :: Vec3 -> (Float -> Float -> Float -> r) -> r Source #

pattern WithVec3 :: Float -> Float -> Float -> Vec3 Source #

convert :: Coercible v Vec3 => (Float -> a) -> (a -> a -> a -> r) -> v -> r Source #

newtype Packed Source #

Constructors

Packed 

Fields

Instances

Instances details
Storable Packed Source # 
Instance details

Defined in Geomancy.Vec3

Floating Packed Source # 
Instance details

Defined in Geomancy.Vec3

Num Packed Source # 
Instance details

Defined in Geomancy.Vec3

Fractional Packed Source # 
Instance details

Defined in Geomancy.Vec3

Show Packed Source # 
Instance details

Defined in Geomancy.Vec3

NFData Packed Source # 
Instance details

Defined in Geomancy.Vec3

Methods

rnf :: Packed -> () #

Elementwise Packed Source # 
Instance details

Defined in Geomancy.Vec3

Eq Packed Source # 
Instance details

Defined in Geomancy.Vec3

Methods

(==) :: Packed -> Packed -> Bool #

(/=) :: Packed -> Packed -> Bool #

Ord Packed Source # 
Instance details

Defined in Geomancy.Vec3

Block Packed Source # 
Instance details

Defined in Geomancy.Vec3

Associated Types

type PackedSize Packed :: Nat #

Methods

alignment140 :: proxy Packed -> Int #

sizeOf140 :: proxy Packed -> Int #

isStruct :: proxy Packed -> Bool #

read140 :: MonadIO m => Ptr a -> Diff a Packed -> m Packed #

write140 :: MonadIO m => Ptr a -> Diff a Packed -> Packed -> m () #

alignment430 :: proxy Packed -> Int #

sizeOf430 :: proxy Packed -> Int #

read430 :: MonadIO m => Ptr a -> Diff a Packed -> m Packed #

write430 :: MonadIO m => Ptr a -> Diff a Packed -> Packed -> m () #

sizeOfPacked :: proxy Packed -> Int #

readPacked :: MonadIO m => Ptr a -> Diff a Packed -> m Packed #

writePacked :: MonadIO m => Ptr a -> Diff a Packed -> Packed -> m () #

MonoFunctor Packed Source # 
Instance details

Defined in Geomancy.Vec3

MonoPointed Packed Source # 
Instance details

Defined in Geomancy.Vec3

VectorSpace Packed Float Source # 
Instance details

Defined in Geomancy.Vec3

type PackedSize Packed Source # 
Instance details

Defined in Geomancy.Vec3

type PackedSize Packed = 12
type Element Packed Source # 
Instance details

Defined in Geomancy.Vec3

emap2 :: Elementwise a => (Element a -> Element a -> Element a) -> a -> a -> a Source #

emap3 :: Elementwise a => (Element a -> Element a -> Element a -> Element a) -> a -> a -> a -> a Source #

emap4 :: Elementwise a => (Element a -> Element a -> Element a -> Element a -> Element a) -> a -> a -> a -> a -> a Source #