Subject: Re: [boost] Formal Review: Boost.Polygon starts today August 24, 2009
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2009-09-02 10:11:29
Sorry for the late response. I hope it's not too late yet...
Caveat: my comments are based on a short look at the source code only, no
thorough analysis. So the overall review is rather brief.
> The formal review of the Boost.Polygon library by Lucanus Simonson
> starts today,
> August 24, 2009 and will finish September 2, 2009.
> Please always state in your review, whether you think the library
> should be
> accepted as a Boost library!
My vote: NO, at least not yet (see below).
> Additionally please consider giving feedback on the following general
> - What is your evaluation of the design?
I'm concerned about whether the library is really sufficiently generic for
the need of a multitude of users. Especially the fact of not being able to
use arbitrary precision floating point types is a absolute show stopper for
me. In my experience geometric stability is the main source of problems when
dealing with real world GIS data. This isn't something solvable by being
constrained to fixed integer types.
> - What is your evaluation of the implementation?
I can't comment on that as I didn't look at the code, recently. The
widespread usage of SFINAE seems to produce brittle results on today's
compilers, though. But this is merely a hunch than a well founded argument.
My real concern comes from the performance numbers presented by Barend
showing Polygon to be more than 10 times slower than comparable geometry
libraries. Luke gave some response to that. What I find somewhat
non-satisfactory is that the numbers may be skewed by selecting a very
particular field of highlighted algorithms (as pointed out by Luke). So I
would like to see some numbers produced by Lucanus, allowing to get a better
and more objective sense for how Polygon measures up if compared to others.
> - What is your evaluation of the documentation?
I didn't read the whole of the documentation, just skimmed over it. It seems
to be sufficient for users knowing the domain to get started.
> - What is your evaluation of the potential usefulness of the library?
A geometry library would be a very important and valuable addition to Boost.
Boost.Polygon might be a good library for certain domains, but I personally
would like to see a more complete solution, especially in the field of GIS,
added first. Polygon uses an very interesting and novel approach to
calculating polygon intersections which might produce excellent results
under certain circumstances (I don't know how generic this algorithm is), so
I could see it as a specialization/drop-in in the context of a more generic
> - Did you try to use the library? With what compiler? Did you have
> any problems?
> - How much effort did you put into your evaluation? A glance? A quick
> reading? In-depth study?
Quick reading, I glanced over the code.
> - Are you knowledgeable about the problem domain?
Very. I've been working in GIS commercial software development for 15 years.