get_approximate_error_hull_data - Gets approximation of convex hull error data


#include "h/h_misc.h"

Example compile flags (system dependent):
   -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 

int get_approximate_error_hull_data
	Matrix **error_mpp,
	const Matrix *mp,
	int block_size,
	const Hull *hp


This routine is a support routine for expand_hull, which is exported because it is also used in the gamut program. It is likely too specialized to be considered a double library module. It takes a matrix pointed to "mp" which is assumed to be divided into consective row blocks, consisting of "block_size" rows each. The blocks are assumed to be various error points (such as the corners of an error box) which, in order to reduce convex hull precision problems, need to be distilled into one point. This routine does this by choosing the point which is furthest from the hull "hp" (expensive!). The target matrix **error_mpp will end up having (mp->num_rows / block_size) rows, and mp->num_cols, columns.


NO_ERROR on success, and ERROR on failure, with an error message being set.


It is assumed that at least one of the points is either on the hull boundary, or outside the hull boundary. In other-words, all points in an error block cannot be inside the hull. We include this check, because error invariably expands hulls, and proceeding naively with the point which is closest to the boundary, even if it is well inside the hull, would contract the hull in that region.


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


Kobus Barnard


Kobus Barnard


get_interior_distance_to_hull , get_distance_to_hull , expand_hull , trim_2D_hull