cifl-math-library-1.1.1.0: Math libraries
Safe HaskellSafe
LanguageHaskell2010

Math.Matrix.Vector4

Synopsis

Documentation

x4 :: Num a => Vector4 a Source #

y4 :: Num a => Vector4 a Source #

z4 :: Num a => Vector4 a Source #

t4 :: Num a => Vector4 a Source #

dx4 :: forall {str :: Type -> Type} {a}. (Infinitesimal str a, Num (Closure str a)) => Vector4 (Closure str a) Source #

dy4 :: forall {str :: Type -> Type} {a}. (Infinitesimal str a, Num (Closure str a)) => Vector4 (Closure str a) Source #

dz4 :: forall {str :: Type -> Type} {a}. (Infinitesimal str a, Num (Closure str a)) => Vector4 (Closure str a) Source #

dt4 :: forall {str :: Type -> Type} {a}. (Infinitesimal str a, Num (Closure str a)) => Vector4 (Closure str a) Source #

setx4 :: s -> Vector4 s -> Vector4 s Source #

sety4 :: s -> Vector4 s -> Vector4 s Source #

setz4 :: s -> Vector4 s -> Vector4 s Source #

sett4 :: s -> Vector4 s -> Vector4 s Source #

update_row4 :: g a -> Vector4 ((Vector4 :*: g) a -> (Vector4 :*: g) a) Source #

update_column4 :: Applicative f => f a -> Vector4 ((f :*: Vector4) a -> (f :*: Vector4) a) Source #

vector4 :: [a] -> Vector4 a Source #

unzipV4 :: Vector4 (a, b) -> (Vector4 a, Vector4 b) Source #

right_multiply4_gen :: (VectorSpace (f a), ConjugateSymmetric a, Scalar (f a) ~ a) => (Vector4 :*: f) a -> Vector4 a -> f a Source #

dot4 :: (Num a, ConjugateSymmetric a) => Vector4 a -> Vector4 a -> a Source #

index4 :: Int -> Vector4 a -> a Source #

dt_4 :: Num s => s -> Vector4 s -> Vector4 s Source #

dx_4 :: Num s => s -> Vector4 s -> Vector4 s Source #

dy_4 :: Num s => s -> Vector4 s -> Vector4 s Source #

dz_4 :: Num s => s -> Vector4 s -> Vector4 s Source #

trace4 :: Num a => Matrix4 a -> a Source #

cross4 :: Num a => Vector4 a -> Vector4 a -> Vector4 a -> Vector4 a Source #

Generalization of cross product to four dimensions This is computed using formal determinant representation of cross product expanded to four dimensions https://en.wikipedia.org/wiki/Cross_product This computes vector that is linearly independent of all three vectors given in four dimensional space.

Orphan instances

MonadZip Vector4 Source # 
Instance details

Methods

mzip :: Vector4 a -> Vector4 b -> Vector4 (a, b) #

mzipWith :: (a -> b -> c) -> Vector4 a -> Vector4 b -> Vector4 c #

munzip :: Vector4 (a, b) -> (Vector4 a, Vector4 b) #

Foldable Vector4 Source # 
Instance details

Methods

fold :: Monoid m => Vector4 m -> m #

foldMap :: Monoid m => (a -> m) -> Vector4 a -> m #

foldMap' :: Monoid m => (a -> m) -> Vector4 a -> m #

foldr :: (a -> b -> b) -> b -> Vector4 a -> b #

foldr' :: (a -> b -> b) -> b -> Vector4 a -> b #

foldl :: (b -> a -> b) -> b -> Vector4 a -> b #

foldl' :: (b -> a -> b) -> b -> Vector4 a -> b #

foldr1 :: (a -> a -> a) -> Vector4 a -> a #

foldl1 :: (a -> a -> a) -> Vector4 a -> a #

toList :: Vector4 a -> [a] #

null :: Vector4 a -> Bool #

length :: Vector4 a -> Int #

elem :: Eq a => a -> Vector4 a -> Bool #

maximum :: Ord a => Vector4 a -> a #

minimum :: Ord a => Vector4 a -> a #

sum :: Num a => Vector4 a -> a #

product :: Num a => Vector4 a -> a #

Traversable Vector4 Source # 
Instance details

Methods

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

sequenceA :: Applicative f => Vector4 (f a) -> f (Vector4 a) #

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

sequence :: Monad m => Vector4 (m a) -> m (Vector4 a) #

Applicative Vector4 Source # 
Instance details

Methods

pure :: a -> Vector4 a #

(<*>) :: Vector4 (a -> b) -> Vector4 a -> Vector4 b #

liftA2 :: (a -> b -> c) -> Vector4 a -> Vector4 b -> Vector4 c #

(*>) :: Vector4 a -> Vector4 b -> Vector4 b #

(<*) :: Vector4 a -> Vector4 b -> Vector4 a #

Functor Vector4 Source # 
Instance details

Methods

fmap :: (a -> b) -> Vector4 a -> Vector4 b #

(<$) :: a -> Vector4 b -> Vector4 a #

Monad Vector4 Source # 
Instance details

Methods

(>>=) :: Vector4 a -> (a -> Vector4 b) -> Vector4 b #

(>>) :: Vector4 a -> Vector4 b -> Vector4 b #

return :: a -> Vector4 a #

UpdateableMatrixDimension Vector4 Source # 
Instance details

Methods

write_row :: Applicative h => h a -> Vector4 ((Vector4 :*: h) a -> (Vector4 :*: h) a) Source #

write_column :: Applicative h => h a -> Vector4 ((h :*: Vector4) a -> (h :*: Vector4) a) Source #

Comonad Vector4 Source # 
Instance details

Methods

extract :: Vector4 a -> a Source #

duplicate :: Vector4 a -> Vector4 (Vector4 a) Source #

extend :: (Vector4 a -> b) -> Vector4 a -> Vector4 b Source #

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

(.>>) :: Vector4 a -> b -> Vector4 b Source #

PpShowF Vector4 Source # 
Instance details

Methods

ppf :: PpShow a => Vector4 a -> Doc Source #

PpShowVerticalF Vector4 Source # 
Instance details

Methods

ppf_vertical :: PpShow a => Vector4 a -> Doc Source #

Unfoldable Vector4 Source # 
Instance details

Methods

unfoldF :: forall (m :: Type -> Type) s a. Monad m => StateT s m a -> StateT s m (Vector4 a) Source #

AppendableVector Vector1 Vector3 Source # 
Instance details

Associated Types

type Vector1 :+: Vector3 :: Type -> Type Source #

Methods

(||>>) :: Vector1 a -> Vector3 a -> (Vector1 :+: Vector3) a Source #

AppendableVector Vector2 Vector2 Source # 
Instance details

Associated Types

type Vector2 :+: Vector2 :: Type -> Type Source #

Methods

(||>>) :: Vector2 a -> Vector2 a -> (Vector2 :+: Vector2) a Source #

AppendableVector Vector3 Vector1 Source # 
Instance details

Associated Types

type Vector3 :+: Vector1 :: Type -> Type Source #

Methods

(||>>) :: Vector3 a -> Vector1 a -> (Vector3 :+: Vector1) a Source #

StreamBuilder str => AppendableVector Vector4 str Source # 
Instance details

Associated Types

type Vector4 :+: str :: Type -> Type Source #

Methods

(||>>) :: Vector4 a -> str a -> (Vector4 :+: str) a Source #

CodiagonalMatrix Vector4 a Source # 
Instance details

Associated Types

data Codiagonal Vector4 a Source #

type Vector4 \\ a Source #

Num a => Diagonalizable Vector4 a Source # 
Instance details

Num a => Indexable Vector4 a Source # 
Instance details

Fractional a => Invertible Vector4 a Source # 
Instance details

SplittableVector Vector1 Vector3 Source # 
Instance details

Methods

vsplit :: (Vector1 :+: Vector3) a -> (Vector1 a, Vector3 a) Source #

SplittableVector Vector2 Vector2 Source # 
Instance details

Methods

vsplit :: (Vector2 :+: Vector2) a -> (Vector2 a, Vector2 a) Source #

SplittableVector Vector3 Vector1 Source # 
Instance details

Methods

vsplit :: (Vector3 :+: Vector1) a -> (Vector3 a, Vector1 a) Source #

Num a => Traceable Vector4 a Source # 
Instance details

(Num a, ConjugateSymmetric a) => LinearTransform Vector1 Vector4 a Source # 
Instance details

(Num a, ConjugateSymmetric a) => LinearTransform Vector2 Vector4 a Source # 
Instance details

(Num a, ConjugateSymmetric a) => LinearTransform Vector3 Vector4 a Source # 
Instance details

(Num a, ConjugateSymmetric a) => LinearTransform Vector4 Vector1 a Source # 
Instance details

(Num a, ConjugateSymmetric a) => LinearTransform Vector4 Vector2 a Source # 
Instance details

(Num a, ConjugateSymmetric a) => LinearTransform Vector4 Vector3 a Source # 
Instance details

(Num a, ConjugateSymmetric a) => LinearTransform Vector4 Vector4 a Source # 
Instance details

Transposable Vector1 Vector4 a Source #

1 x 4 matrices:

Instance details

Transposable Vector2 Vector4 a Source #

2 x 4 matrices:

Instance details

Transposable Vector3 Vector4 a Source #

3 x 4 matrices

Instance details

Transposable Vector4 Vector1 a Source #

4 x 1 matrices:

Instance details

Transposable Vector4 Vector2 a Source #

4 x 2 matrices

Instance details

Transposable Vector4 Vector3 a Source #

4 x 3 matrices:

Instance details

Transposable Vector4 Vector4 a Source #

4 x 4 matrices

Instance details

Transposable Stream Vector4 a Source # 
Instance details

(Monad str, Limiting str a) => Limiting str (Vector4 a) Source # 
Instance details

Associated Types

data Closure str (Vector4 a) Source #

Methods

limit :: str (Vector4 a) -> Closure str (Vector4 a) Source #

approximations :: Closure str (Vector4 a) -> str (Vector4 a) Source #

Transposable Vector4 ((->) row) a Source # 
Instance details

Methods

transpose_impl :: (Vector4 :*: (->) row) a -> ((->) row :*: Vector4) a Source #

Data a => Data (Vector4 a) Source # 
Instance details

Methods

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

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

toConstr :: Vector4 a -> Constr #

dataTypeOf :: Vector4 a -> DataType #

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

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

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

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

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

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

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

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

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

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

Applicative (Codiagonal Vector4) Source # 
Instance details

Functor (Codiagonal Vector4) Source # 
Instance details

Methods

fmap :: (a -> b) -> Codiagonal Vector4 a -> Codiagonal Vector4 b #

(<$) :: a -> Codiagonal Vector4 b -> Codiagonal Vector4 a #

Num s => Monoid (Vector4 s) Source # 
Instance details

Methods

mempty :: Vector4 s #

mappend :: Vector4 s -> Vector4 s -> Vector4 s #

mconcat :: [Vector4 s] -> Vector4 s #

Num s => Semigroup (Vector4 s) Source # 
Instance details

Methods

(<>) :: Vector4 s -> Vector4 s -> Vector4 s #

sconcat :: NonEmpty (Vector4 s) -> Vector4 s #

stimes :: Integral b => b -> Vector4 s -> Vector4 s #

Generic a => Generic (Vector4 a) Source # 
Instance details

Associated Types

type Rep (Vector4 a) :: Type -> Type #

Methods

from :: Vector4 a -> Rep (Vector4 a) x #

to :: Rep (Vector4 a) x -> Vector4 a #

Num a => Num (Vector4 a) Source # 
Instance details

Methods

(+) :: Vector4 a -> Vector4 a -> Vector4 a #

(-) :: Vector4 a -> Vector4 a -> Vector4 a #

(*) :: Vector4 a -> Vector4 a -> Vector4 a #

negate :: Vector4 a -> Vector4 a #

abs :: Vector4 a -> Vector4 a #

signum :: Vector4 a -> Vector4 a #

fromInteger :: Integer -> Vector4 a #

Read a => Read (Vector4 a) Source # 
Instance details

Show a => Show (Vector4 a) Source # 
Instance details

Methods

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

show :: Vector4 a -> String #

showList :: [Vector4 a] -> ShowS #

Binary s => Binary (Vector4 s) Source # 
Instance details

Methods

put :: Vector4 s -> Put #

get :: Get (Vector4 s) #

putList :: [Vector4 s] -> Put #

ConjugateSymmetric a => ConjugateSymmetric (Vector4 a) Source # 
Instance details

Methods

conj :: Vector4 a -> Vector4 a Source #

Num a => CoordinateSpace (Vector4 a) Source # 
Instance details

Associated Types

type Coordinate (Vector4 a) Source #

(Num a, ConjugateSymmetric a) => InnerProductSpace (Vector4 a) Source # 
Instance details

Methods

(%.) :: Vector4 a -> Vector4 a -> Scalar (Vector4 a) Source #

(Floating a, ConjugateSymmetric a) => NormedSpace (Vector4 a) Source # 
Instance details

Num a => StandardBasis (Vector4 a) Source # 
Instance details

Num a => VectorSpace (Vector4 a) Source # 
Instance details

Associated Types

type Scalar (Vector4 a) Source #

ShowPrecision s => ShowPrecision (Vector4 s) Source # 
Instance details

MedianAlgebra s => MedianAlgebra (Vector4 s) Source # 
Instance details

Methods

med :: Vector4 s -> Vector4 s -> Vector4 s -> Vector4 s Source #

PpShow a => PpShow (Vector4 a) Source # 
Instance details

Methods

pp :: Vector4 a -> Doc Source #

Universe a => Universe (Vector4 a) Source # 
Instance details

IdVisitor (Vector4 a) Source # 
Instance details

Methods

idFold :: Fold (Vector4 a) (Vector4 a) Source #

Visitor (Vector4 a) Source # 
Instance details

Associated Types

data Fold (Vector4 a) :: Type -> Type Source #

Methods

visit :: Fold (Vector4 a) a0 -> Vector4 a -> a0 Source #

Eq a => Eq (Vector4 a) Source # 
Instance details

Methods

(==) :: Vector4 a -> Vector4 a -> Bool #

(/=) :: Vector4 a -> Vector4 a -> Bool #

Ord a => Ord (Vector4 a) Source # 
Instance details

Methods

compare :: Vector4 a -> Vector4 a -> Ordering #

(<) :: Vector4 a -> Vector4 a -> Bool #

(<=) :: Vector4 a -> Vector4 a -> Bool #

(>) :: Vector4 a -> Vector4 a -> Bool #

(>=) :: Vector4 a -> Vector4 a -> Bool #

max :: Vector4 a -> Vector4 a -> Vector4 a #

min :: Vector4 a -> Vector4 a -> Vector4 a #

Show a => Show (Codiagonal Vector4 a) Source # 
Instance details

Transposable ((->) row) Vector4 a Source # 
Instance details

Methods

transpose_impl :: ((->) row :*: Vector4) a -> (Vector4 :*: (->) row) a Source #

(Num a, ConjugateSymmetric a) => Monoid ((Vector4 :*: Vector4) a) Source #

see "Lawvere,Rosebrugh: Sets for mathematics", pg. 167.

Instance details

(Num a, ConjugateSymmetric a) => Semigroup ((Vector4 :*: Vector4) a) Source # 
Instance details

(Num a, ConjugateSymmetric a) => Num ((Vector4 :*: Vector4) a) Source # 
Instance details

Show (f a) => Show ((Vector4 :*: f) a) Source # 
Instance details

Methods

showsPrec :: Int -> (Vector4 :*: f) a -> ShowS #

show :: (Vector4 :*: f) a -> String #

showList :: [(Vector4 :*: f) a] -> ShowS #

ConjugateSymmetric a => ConjugateSymmetric ((Vector4 :*: Vector4) a) Source #

https://en.wikipedia.org/wiki/Conjugate_transpose

Instance details

(Floating a, ConjugateSymmetric a) => InnerProductSpace ((Vector4 :*: Vector4) a) Source #

4 x 4 matrices

Instance details

(Floating a, ConjugateSymmetric a) => NormedSpace ((Vector4 :*: Vector4) a) Source #

4 x 4 matrices

Instance details

Num a => VectorSpace ((Vector1 :*: Vector4) a) Source #

1 x 4 matrices:

Instance details

Associated Types

type Scalar ((Vector1 :*: Vector4) a) Source #

Num a => VectorSpace ((Vector2 :*: Vector4) a) Source #

2 x 4 matrices

Instance details

Associated Types

type Scalar ((Vector2 :*: Vector4) a) Source #

Num a => VectorSpace ((Vector3 :*: Vector4) a) Source #

3 x 4 matrices

Instance details

Associated Types

type Scalar ((Vector3 :*: Vector4) a) Source #

Num a => VectorSpace ((Vector4 :*: Vector1) a) Source #

4 x 1 matrices:

Instance details

Associated Types

type Scalar ((Vector4 :*: Vector1) a) Source #

Num a => VectorSpace ((Vector4 :*: Vector2) a) Source #

4 x 2 matrices

Instance details

Associated Types

type Scalar ((Vector4 :*: Vector2) a) Source #

Num a => VectorSpace ((Vector4 :*: Vector3) a) Source #

4 x 3 matrices:

Instance details

Associated Types

type Scalar ((Vector4 :*: Vector3) a) Source #

Num a => VectorSpace ((Vector4 :*: Vector4) a) Source #

4 x 4 matrices

Instance details

Associated Types

type Scalar ((Vector4 :*: Vector4) a) Source #

(Fractional a, ConjugateSymmetric a) => Group ((Vector4 :*: Vector4) a) Source # 
Instance details

PpShow (f a) => PpShow ((Vector4 :*: f) a) Source # 
Instance details

Methods

pp :: (Vector4 :*: f) a -> Doc Source #