HORIZON HASKELLDocslts/ghc-10.0.x8fef28d2026-11-02Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8fef28d · 2026-11-02

Modulelinear-1.23.3Haskell2010

Linear.Plucker

Plücker coordinates for lines in 3d homogeneous space.

Contents
  1. Operations on lines
  2. Basis elements
Synopsis
  • Packagelinear-1.23.3
  • Exports33
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourcePlucker.hs
datadata Plucker a

Plücker coordinates for lines in a 3-dimensional space.

Constructors

Instances69Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
valueisotropic :: Epsilon a => Plucker a -> Bool

Checks if the line is near-isotropic (isotropic vectors in this quadratic space represent lines in real 3d space).

value(><) :: Num a => Plucker a -> Plucker a -> a

This isn't th actual metric because this bilinear form gives rise to an isotropic quadratic space

valueplucker :: Num a => V4 a -> V4 a -> Plucker a

Given a pair of points represented by homogeneous coordinates generate Plücker coordinates for the line through them, directed from the second towards the first.

valueplucker3D :: Num a => V3 a -> V3 a -> Plucker a

Given a pair of 3D points, generate Plücker coordinates for the line through them, directed from the second towards the first.

Operations on lines

datadata LinePass

Describe how two lines pass each other.

Constructors

  • Coplanar

    The lines are coplanar (parallel or intersecting).

  • Clockwise

    The lines pass each other clockwise (right-handed screw)

  • Counterclockwise

    The lines pass each other counterclockwise (left-handed screw).

Instances4Eq, Show, Generic, Rep
valueisLine :: Epsilon a => Plucker a -> Bool

Not all 6-dimensional points correspond to a line in 3D. This predicate tests that a Plücker coordinate lies on the Grassmann manifold, and does indeed represent a 3D line.

Basis elements