`ExactPredicates.closest`

— Method`closest(p :: 3, q :: 3, a :: 3) -> Int`

Return 1 if `a`

is closer to `p`

than to `q`

. Return –1 if `a`

is closer to `q`

than to `p`

. Return 0 is `a`

is equally close to both.

`ExactPredicates.closest`

— Method`closest(p :: 2, q :: 2, a :: 2) -> Int`

- Return 1 if
`a`

is closer to`p`

than to`q`

. - Return –1 if
`a`

is closer to`q`

than to`p`

. - Return 0 is
`a`

is equally close to both.

`ExactPredicates.incircle`

— Method`incircle(a :: 2, b :: 2, c :: 2, p :: 2) -> Int`

Assume that `a`

, `b`

and `c`

define a counterclockwise triangle.

- Return 1 if
`p`

is strictly inside the circumcircle of this triangle. - Return –1 if
`p`

is outside. - Return 0 if
`p`

is on the circle.

If the triangle is oriented clockwise, the signs are reversed. If `a`

, `b`

and `c`

are collinear, this degenerate to an orientation test.

If two of the four arguments are equal, return 0.

`ExactPredicates.insphere`

— Method`insphere(p :: 3, q :: 3, r :: 3, s :: 3, a :: 3)`

- Return 1 if
`a`

is inside the circumscribed sphere defined by the four points`p`

,`q`

,`r`

and`s`

. - Return –1 if
`a`

is outside. - Return 0 is
`a`

lies on the sphere or if the four points are coplanar.

`ExactPredicates.intersectorder`

— Method`intersectorder(a :: 2, b :: 2, pa :: 2, pb :: 2, qa :: 2, qb :: 2) -> Int`

Consider the oriented line *L* defined by `a`

and `b`

, the line *P* defined by `pa`

and `pb`

and the line *Q* defined by `qa`

and `qb`

.

Assumes that `parallelorder(a, b, pa, pb)`

and `parallelorder(a, b, qa, qb)`

have the same sign. Otherwise, the result has the opposite sign.

- return -1 if the intersection of
*P*with*L*comes before the intersection of*Q*with*L*, following the orientation of*L*. - return 1 in the reverse situation
- return 0 in case of equality or degeneracy.

`ExactPredicates.lengthcompare`

— Method`lengthcompare(a :: 2, b :: 2, c :: 2, d :: 2) -> Int`

- return -1 if the distance between
`a`

and`b`

is smaller than the distance between`c`

and`d`

- return 1 in the reverse situation
- return 0 in case the distance are equal

`ExactPredicates.meet`

— Method`meet(p :: 2, q :: 2, a :: 2, b :: 2)`

- Return 1 if the open line segments
`(p, q)`

and`(a, b)`

meet in a single point. - Return 0 if the the closed line segments
`[p, q]`

and`[a, b]`

meet in one or several points. - Return –1 otherwise.

`ExactPredicates.orient`

— Method`orient(p :: 3, q :: 3, r :: 3, a :: 3) -> Int`

Consider the oriented plane on which the triangle `pqr`

is positively oriented.

- Return 1 if
`a`

is below this plane. - Return –1 if
`a`

is above this plane. - Return 0 if
`a`

lies on this plane.

`ExactPredicates.orient`

— Method`orient(p :: 2, q :: 2, r :: 2) -> Int`

- Return 1 if
`r`

is on the left of the oriented line defined by`p`

and`q`

. - Return –1 if
`r`

is on the right. - Return 0 if
`r`

is on the line or if`p == q`

.

`ExactPredicates.parallelorder`

— Method`parallelorder(a :: 2, b :: 2, p :: 2, q :: 2) -> Int`

Consider the oriented line defined by `a`

and `b`

and the parallel lines passing through `p`

and `q`

respectively, with the same orientation.

- return 1 if the line passing through
`p`

is left of the line passing through`q`

. - return -1 in the reverse situation.
- return 0 if
`a`

and`b`

are equal or if the parallel lines passing through`p`

and`q`

are equal.

This is a robust version of to `orient(b-a, q-p, 0)`

. Note also that `orient(a, b, c) == parallelorder(a, b, a, c)`

.

`ExactPredicates.rotation`

— Method`rotation(pts :: AbstractVector)`

Gives the rotation number of the polygonal path defined by the elements of `pts`

.

`ExactPredicates.sameside`

— Method`sameside(p :: 2, a :: 2, b :: 2)`

Assume that the three arguments are collinear, on some line L

- Return 1 if
`a`

and`b`

are on the same side of`p`

on L - Return -1 if
`a`

and`b`

are on different sides - Return 0 if
`a == p`

or`b == p`

.

`ExactPredicates.Codegen.@genpredicate`

— MacroGenerate sign predicate for a function that computes a polynomial in the coordinates of the arguments.