Helper from legacy `INLA::inla.simplify.curve()`

Attempts to simplify a polygonal curve by joining nearly colinear segments.

Uses a variation of the binary splitting Ramer-Douglas-Peucker algorithm,
with an ellipse of half-width `eps`

ellipse instead of a rectangle, motivated by
prediction ellipse for Brownian bridge.

## Arguments

- loc
Coordinate matrix.

- idx
Index vector into

`loc`

specifying a polygonal curve.- eps
Absolute straightness tolerance. Default

`NULL`

, no constraint.- eps_rel
Relative straightness tolerance. Default

`NULL`

, no constraint.

## Details

Variation of Ramer-Douglas-Peucker. Uses width epsilon ellipse instead of rectangle, motivated by prediction ellipse for Brownian bridge.

## See also

Other nonconvex inla legacy support:
`fm_nonconvex_hull_inla()`

,
`fm_segm_contour_helper()`

## Author

Finn Lindgren finn.lindgren@gmail.com