module type Triangulation =`sig`

..`end`

The result of triangulation is an abstract value of type

`triangulation`

.
Then one can iterate over all edges of the triangulation.module S:`Delaunay.CCC`

`type `

triangulation

`val triangulate : ``S.point array -> triangulation`

`triangulate a`

computes the Delaunay triangulation of a set of
points, given as an array `a`

. If `N`

is the number of points
(that is `Array.length a`

), then the running time is $O(N \log N)$
on the average and $O(N^2)$ on the worst-case. The space used is
always $O(N)$.`val iter : ``(S.point -> S.point -> unit) -> triangulation -> unit`

`iter f t`

iterates over all edges of the triangulation `t`

.
`f u v`

is called once for each undirected edge `(u,v)`

.`val fold : ``(S.point -> S.point -> 'a -> 'a) ->`

triangulation -> 'a -> 'a

`val iter_triangles : ``(S.point -> S.point -> S.point -> unit) ->`

triangulation -> unit