#602582 libann0: not usefull as *shared* library, because configuration at at compile-time is required

Package:
libann0
Source:
ann
Description:
Approximate Nearest Neighbor Searching library
Submitter:
Date:
2013-11-16 12:54:12 UTC
Severity:
normal
#602582#5
Date:
2010-11-06 08:27:55 UTC
From:
To:
Hello,
ANN's design is targeted for source-code inclusion in other projects,
each ANN using project is supposed to change include/ANN/ANN.h,
rebuild the library and use this customized version:
Quoting ANNmanual_1.1.pdf
| 2.2  Configuring ANN
| In this section we describe a number of methods for configuring ANN.
| These include dealing with different distance measures, altering the
| types of coordinates, and dealing with the issue of whether a point
| can be its own nearest neighbor. It was felt that these features are
| typically set once for any given application, and that it would
| significantly complicate the library to allow support all possible
| combinations of settings. For this reason, these changes are made by
| altering ANN’s main header file include/ANN/ANN.h. Once set, they
| cannot be changed without recompiling the entire library.

The authors do not seem to think of pre-built libraries (either shared
or static) as a supported usage case. I have stumbled upon this when
checking whether hugin could switch from its own libANN copy to the
shared one. Afaict at a quick glance it cannot, since it sets
"ANN_ALLOW_SELF_MATCH = ANNfalse".

cu andreas