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

Math.Matrix.Vector2

Synopsis

Documentation

setx2 :: s -> Vector2 s -> Vector2 s Source #

sety2 :: s -> Vector2 s -> Vector2 s Source #

update_row2 :: g a -> Vector2 ((Vector2 :*: g) a -> (Vector2 :*: g) a) Source #

update_column2 :: Applicative f => f a -> Vector2 ((f :*: Vector2) a -> (f :*: Vector2) a) Source #

i2 :: Num a => Vector2 a Source #

j2 :: Num a => Vector2 a Source #

vec2 :: (a, a) -> Vector2 a Source #

splitMatrix :: (Functor f, SplittableVector f f, SplittableVector m m) => ((f :+: f) :*: (m :+: m)) a -> (Vector2 :*: Vector2) ((f :*: m) a) Source #

compose_index :: (m (n a) :==: I (n a)) -> (n a :==: I a) -> (m :*: n) a :==: (I :*: I) a Source #

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

trace2 :: Num a => Matrix2 a -> a Source #

Orphan instances

MonadZip Vector2 Source # 
Instance details

Methods

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

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

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

Foldable Vector2 Source # 
Instance details

Methods

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

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

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

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

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

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

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

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

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

toList :: Vector2 a -> [a] #

null :: Vector2 a -> Bool #

length :: Vector2 a -> Int #

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

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

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

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

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

Traversable Vector2 Source # 
Instance details

Methods

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

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

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

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

Applicative Vector2 Source # 
Instance details

Methods

pure :: a -> Vector2 a #

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

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

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

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

Functor Vector2 Source # 
Instance details

Methods

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

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

Monad Vector2 Source # 
Instance details

Methods

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

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

return :: a -> Vector2 a #

UpdateableMatrixDimension Vector2 Source # 
Instance details

Methods

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

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

DifferentialOperator Vector2 Source # 
Instance details

Methods

partial :: DifferentiallyClosed a => (Vector2 a -> a) -> Vector2 a -> Vector2 a Source #

CircularComonad Vector2 Source # 
Instance details

Methods

rotate :: Vector2 a -> Vector2 a Source #

Comonad Vector2 Source # 
Instance details

Methods

extract :: Vector2 a -> a Source #

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

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

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

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

PpShowF Vector2 Source # 
Instance details

Methods

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

PpShowVerticalF Vector2 Source # 
Instance details

Methods

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

AppendableVector Vector1 Vector1 Source # 
Instance details

Associated Types

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

Methods

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

CodiagonalMatrix Vector2 a Source # 
Instance details

Associated Types

data Codiagonal Vector2 a Source #

type Vector2 \\ a Source #

Num a => Diagonalizable Vector2 a Source # 
Instance details

Floating a => EigenDecomposable Vector2 a Source # 
Instance details

Num a => Indexable Vector2 a Source # 
Instance details

Fractional a => Invertible Vector2 a Source # 
Instance details

ProjectionSpace Vector2 Vector1 Source # 
Instance details

Associated Types

data (Vector2 \\\ Vector1) a Source #

SplittableVector Vector1 Vector1 Source # 
Instance details

Methods

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

Num a => Traceable Vector2 a Source # 
Instance details

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

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

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

Transposable Vector1 Vector2 a Source # 
Instance details

Transposable Vector2 Vector1 a Source # 
Instance details

Transposable Vector2 Vector2 a Source # 
Instance details

Transposable Stream Vector2 a Source # 
Instance details

FunctorArrow Vector2 (:==:) (:==:) Source # 
Instance details

Methods

amap :: forall (c :: k) (d :: k). (c :==: d) -> Vector2 c :==: Vector2 d Source #

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

Associated Types

data Closure str (Vector2 a) Source #

Methods

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

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

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

Methods

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

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

Methods

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

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

toConstr :: Vector2 a -> Constr #

dataTypeOf :: Vector2 a -> DataType #

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

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

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

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

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

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

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

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

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

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

Applicative (Codiagonal Vector2) Source # 
Instance details

Functor (Codiagonal Vector2) Source # 
Instance details

Methods

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

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

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

Methods

mempty :: Vector2 s #

mappend :: Vector2 s -> Vector2 s -> Vector2 s #

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

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

Methods

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

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

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

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

Associated Types

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

Methods

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

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

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

Methods

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

(-) :: Vector2 a -> Vector2 a -> Vector2 a #

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

negate :: Vector2 a -> Vector2 a #

abs :: Vector2 a -> Vector2 a #

signum :: Vector2 a -> Vector2 a #

fromInteger :: Integer -> Vector2 a #

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

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

Methods

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

show :: Vector2 a -> String #

showList :: [Vector2 a] -> ShowS #

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

Methods

put :: Vector2 s -> Put #

get :: Get (Vector2 s) #

putList :: [Vector2 s] -> Put #

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

Methods

conj :: Vector2 a -> Vector2 a Source #

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

Associated Types

type Coordinate (Vector2 a) Source #

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

Methods

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

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

StandardBasis (Vector2 (Vector2 Int)) Source # 
Instance details

StandardBasis (Vector2 Int) Source # 
Instance details

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

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

Associated Types

type Scalar (Vector2 a) Source #

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

Methods

med :: Vector2 s -> Vector2 s -> Vector2 s -> Vector2 s Source #

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

Methods

pp :: Vector2 a -> Doc Source #

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

Visitor (Vector2 a) Source # 
Instance details

Associated Types

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

Methods

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

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

Methods

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

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

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

Methods

compare :: Vector2 a -> Vector2 a -> Ordering #

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

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

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

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

max :: Vector2 a -> Vector2 a -> Vector2 a #

min :: Vector2 a -> Vector2 a -> Vector2 a #

Applicative (Vector2 \\\ Vector1) Source # 
Instance details

Methods

pure :: a -> (Vector2 \\\ Vector1) a #

(<*>) :: (Vector2 \\\ Vector1) (a -> b) -> (Vector2 \\\ Vector1) a -> (Vector2 \\\ Vector1) b #

liftA2 :: (a -> b -> c) -> (Vector2 \\\ Vector1) a -> (Vector2 \\\ Vector1) b -> (Vector2 \\\ Vector1) c #

(*>) :: (Vector2 \\\ Vector1) a -> (Vector2 \\\ Vector1) b -> (Vector2 \\\ Vector1) b #

(<*) :: (Vector2 \\\ Vector1) a -> (Vector2 \\\ Vector1) b -> (Vector2 \\\ Vector1) a #

Functor (Vector2 \\\ Vector1) Source # 
Instance details

Methods

fmap :: (a -> b) -> (Vector2 \\\ Vector1) a -> (Vector2 \\\ Vector1) b #

(<$) :: a -> (Vector2 \\\ Vector1) b -> (Vector2 \\\ Vector1) a #

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

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

Methods

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

Num a => Indexable (Vector2 :*: Vector2) a Source # 
Instance details

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

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

Instance details

(Num a, ConjugateSymmetric a) => Semigroup ((Vector2 :*: Vector2) a) Source #

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

Instance details

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

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

Methods

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

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

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

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

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

Instance details

Num a => VectorSpace ((Vector1 :*: Vector2) a) Source # 
Instance details

Associated Types

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

Num a => VectorSpace ((Vector2 :*: Vector1) a) Source # 
Instance details

Associated Types

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

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

Associated Types

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

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

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

Methods

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