| Copyright | (C) Frank Staals |
|---|---|
| License | see the LICENSE file |
| Maintainer | Frank Staals |
| Safe Haskell | None |
| Language | GHC2024 |
HGeometry.Duality
Description
Standard duality between points and non-vertical hyperplanes (or lines in R^2)
Synopsis
- dualPoint :: forall hyperPlane (d :: Natural) r. (NonVerticalHyperPlane_ hyperPlane d r, Num r, 1 <= d, KnownNat (d - 1)) => hyperPlane -> Point d r
- dualHyperPlane :: forall point (d :: Nat) r. (Point_ point d r, Num r, 1 <= d, KnownNat (d - 1)) => point -> NonVerticalHyperPlane d r
- dualLine :: (Point_ point 2 r, Num r) => point -> LineEQ r
- liftPointToPlane :: (Point_ point 2 r, Num r) => point -> NonVerticalHyperPlane 3 r
Documentation
dualPoint :: forall hyperPlane (d :: Natural) r. (NonVerticalHyperPlane_ hyperPlane d r, Num r, 1 <= d, KnownNat (d - 1)) => hyperPlane -> Point d r Source #
Compute the point dual to a non-vertical hyperplane
>>>dualPoint (LineEQ 10 20)Point2 10 (-20)
dualHyperPlane :: forall point (d :: Nat) r. (Point_ point d r, Num r, 1 <= d, KnownNat (d - 1)) => point -> NonVerticalHyperPlane d r Source #
Compute the dual of a hyperplane
>>>dualHyperPlane (Point2 10 (-20))NonVerticalHyperPlane [10,20]
dualLine :: (Point_ point 2 r, Num r) => point -> LineEQ r Source #
Compute the line dual to a point
>>>dualLine (Point2 10 (-20))LineEQ 10 20
liftPointToPlane :: (Point_ point 2 r, Num r) => point -> NonVerticalHyperPlane 3 r Source #
The standard lifting transform, that lifts a point to the plane tangent to the unit hyperboloid.