NAME

expand_hull - Increases a hull using a relative error model

SYNOPSIS

#include "h/h_misc.h"

Example compile flags (system dependent):
  -DLINUX_X86_64 -DLINUX_X86_64_OPTERON  -DGNU_COMPILER 
   -I/home/kobus/include
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 


Hull *expand_hull
(
	const Hull *hp,
	double relative_expansion,
	unsigned long options
);

DESCRIPTION

This routine increases a hull assuming a relative error model. Under "exact" expansion, each point is replace by an error box, using the relative error, and the resulting convex hull is round. Exact expansion can lead to precision problems, so non-exact expansion was developed whereby the error box (eight points in 3D) is trimmed to one, specifically the point which is furthest away from the hull. Thus the expanded hull does not (typically) have any more facets than the original. (The problem with exact expansion is that it creates many small facets.) Unfortunately, non-exact expansion is computationally expensive. The choice between exact and non-exact expansion is governed by the user settable options "expand-hulls-exactly".

RETURNS

A pointer to the expanded hull. If there are problems, an error message is set, and NULL is returned.

DISCLAIMER

This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.

AUTHOR

Kobus Barnard

DOCUMENTER

Kobus Barnard

SEE ALSO

get_interior_distance_to_hull , get_distance_to_hull , get_approximate_error_hull_data , trim_2D_hull