Safe Haskell | None |
---|
Documentation
Plücker coordinates for lines in a 3-dimensional space.
Plucker a a a a a a |
Monad Plucker | |
Functor Plucker | |
Applicative Plucker | |
Foldable Plucker | |
Traversable Plucker | |
Distributive Plucker | |
Representable Plucker | |
Metric Plucker | |
Eq a => Eq (Plucker a) | |
(Num (Plucker a), Fractional a) => Fractional (Plucker a) | |
Num a => Num (Plucker a) | |
(Eq (Plucker a), Ord a) => Ord (Plucker a) | |
Read a => Read (Plucker a) | |
Show a => Show (Plucker a) | |
(Num (Plucker a), Epsilon a) => Epsilon (Plucker a) |
squaredError :: (Eq a, Num a) => Plucker a -> aSource
Valid Plücker coordinates p
will have squaredError
p ==
0
That said, floating point makes a mockery of this claim, so you may want to use nearZero
.
isotropic :: Epsilon a => Plucker a -> BoolSource
Checks if the line is near-isotropic (isotropic vectors in this quadratic space represent lines in real 3d space)
(><) :: Num a => Plucker a -> Plucker a -> aSource
This isn't th actual metric because this bilinear form gives rise to an isotropic quadratic space