Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r86189 - in trunk/libs/polygon: benchmark/benchmark_results benchmark/benchmark_results/plots doc
From: sydorchuk.andriy_at_[hidden]
Date: 2013-10-06 19:59:52


Author: asydorchuk
Date: 2013-10-06 19:59:52 EDT (Sun, 06 Oct 2013)
New Revision: 86189
URL: http://svn.boost.org/trac/boost/changeset/86189

Log:
Polygon: rerunning benchmarks; updating benchmark documentation pages.

Added:
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points.png (contents, props changed)
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments.png (contents, props changed)
Deleted:
   trunk/libs/polygon/benchmark/benchmark_results/benchmark_points.txt
   trunk/libs/polygon/benchmark/benchmark_results/benchmark_segments.txt
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_10.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_100.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_1000.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_10000.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_100000.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_1000000.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_all.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_memory.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_10.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_100.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_1000.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_10000.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_100000.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_1000000.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_all.png
   trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_memory.png
Text files modified:
   /dev/null | 60 ---
   /dev/null | 44 --
   trunk/libs/polygon/doc/voronoi_benchmark.htm | 601 +++++++++++++++------------------------
   trunk/libs/polygon/doc/voronoi_builder.htm | 127 ++-----
   trunk/libs/polygon/doc/voronoi_main.htm | 112 ++----
   5 files changed, 314 insertions(+), 630 deletions(-)

Deleted: trunk/libs/polygon/benchmark/benchmark_results/benchmark_points.txt
==============================================================================
--- trunk/libs/polygon/benchmark/benchmark_results/benchmark_points.txt 2013-10-06 19:59:52 EDT (Sun, 06 Oct 2013) (r86188)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,60 +0,0 @@
-System: CPU i5-7600 2.8 GHz, 4Gb RAM.
-OS: Windows 7 Professional 32 bit.
-Compiler: MSVC-9.0.
-
-Boost.Polygon Voronoi of Points:
-| Number of points | Number of tests | Time per one test |
-| 10 | 100000 | 0.000027 |
-| 100 | 10000 | 0.000392 |
-| 1000 | 1000 | 0.004541 |
-| 10000 | 100 | 0.047540 |
-| 100000 | 10 | 0.530200 |
-| 1000000 | 1 | 5.882000 |
-
-CGAL Triangulation of Points:
-| Number of points | Number of tests | Time per one test |
-| 10 | 100000 | 0.000116 |
-| 100 | 10000 | 0.002649 |
-| 1000 | 1000 | 0.039140 |
-| 10000 | 100 | 0.684090 |
-| 100000 | 10 | 16.904600 |
-| 1000000 | 1 | 566.056000 |
-
-S-Hull Triangulation of Points:
-| 10 | 100000 | 0.000043 |
-| 100 | 10000 | 0.000521 |
-| 1000 | 1000 | 0.007125 |
-| 10000 | 100 | 0.091640 |
-| 100000 | 10 | 1.218000 |
-| 1000000 | 1 | 15.394000 |
-
-System: CPU i5-7600 2.8 GHz, 4Gb RAM.
-OS: Ubuntu 11.10 64 bit.
-Compiler: gcc 4.6.1.
-
-Boost.Polygon Voronoi of Points:
-| Number of points | Number of tests | Time per one test |
-| 10 | 100000 | 0.000013 |
-| 100 | 10000 | 0.000192 |
-| 1000 | 1000 | 0.002130 |
-| 10000 | 100 | 0.022900 |
-| 100000 | 10 | 0.274000 |
-| 1000000 | 1 | 3.290000 |
-
-CGAL Triangulation of Points:
-| Number of points | Number of tests | Time per one test |
-| 10 | 100000 | 0.000052 |
-| 100 | 10000 | 0.001150 |
-| 1000 | 1000 | 0.016680 |
-| 10000 | 100 | 0.297900 |
-| 100000 | 10 | 8.047000 |
-| 1000000 | 1 | 315.740000 |
-
-S-Hull Triangulation of Points:
-| 10 | 100000 | 0.000012 |
-| 100 | 10000 | 0.000139 |
-| 1000 | 1000 | 0.002010 |
-| 10000 | 100 | 0.028300 |
-| 100000 | 10 | 0.432000 |
-| 1000000 | 1 | 6.350000 |
-

Deleted: trunk/libs/polygon/benchmark/benchmark_results/benchmark_segments.txt
==============================================================================
--- trunk/libs/polygon/benchmark/benchmark_results/benchmark_segments.txt 2013-10-06 19:59:52 EDT (Sun, 06 Oct 2013) (r86188)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,44 +0,0 @@
-System: CPU i5-7600 2.8 GHz, 4Gb RAM.
-OS: Windows 7 Professional 32 bit.
-Compiler: MSVC-9.0.
-
-Boost.Polygon Voronoi of Segments:
-| Number of points | Number of tests | Time per one test |
-| 10 | 100000 | 0.000290 |
-| 100 | 10000 | 0.003655 |
-| 1000 | 1000 | 0.038158 |
-| 10000 | 100 | 0.389470 |
-| 100000 | 10 | 4.031300 |
-| 1000000 | 1 | 40.912000 |
-
-CGAL Triangulation of Segments:
-| Number of points | Number of tests | Time per one test |
-| 10 | 100000 | 0.001047 |
-| 100 | 10000 | 0.014812 |
-| 1000 | 1000 | 0.177315 |
-| 10000 | 100 | 2.561340 |
-| 100000 | 10 | 49.314600 |
-| 1000000 | 1 | 1640.830000 |
-
-System: CPU i5-7600 2.8 GHz, 4Gb RAM.
-OS: Ubuntu 11.10 64 bit.
-Compiler: gcc 4.6.1.
-
-Boost.Polygon Voronoi of Segments:
-| Number of points | Number of tests | Time per one test |
-| 10 | 100000 | 0.000165 |
-| 100 | 10000 | 0.002006 |
-| 1000 | 1000 | 0.020440 |
-| 10000 | 100 | 0.209700 |
-| 100000 | 10 | 2.228000 |
-| 1000000 | 1 | 22.250000 |
-
-CGAL Triangulation of Segments:
-| Number of points | Number of tests | Time per one test |
-| 10 | 100000 | 0.000483 |
-| 100 | 10000 | 0.007006 |
-| 1000 | 1000 | 0.084000 |
-| 10000 | 100 | 1.191900 |
-| 100000 | 10 | 23.538000 |
-| 1000000 | 1 | 856.650000 |
-

Added: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_10.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_100.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_1000.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_10000.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_100000.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_1000000.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_all.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_points_memory.png
==============================================================================
Binary file. No diff available.

Added: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_10.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_100.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_1000.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_10000.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_100000.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_1000000.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_all.png
==============================================================================
Binary file. No diff available.

Deleted: trunk/libs/polygon/benchmark/benchmark_results/plots/benchmark_segments_memory.png
==============================================================================
Binary file. No diff available.

Modified: trunk/libs/polygon/doc/voronoi_benchmark.htm
==============================================================================
--- trunk/libs/polygon/doc/voronoi_benchmark.htm Sun Oct 6 17:56:25 2013 (r86188)
+++ trunk/libs/polygon/doc/voronoi_benchmark.htm 2013-10-06 19:59:52 EDT (Sun, 06 Oct 2013) (r86189)
@@ -1,22 +1,15 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
+<html><head>
+
+
+
   <meta http-equiv="Content-Language" content="en-us">
- <meta http-equiv="Content-Type"
- content="text/html; charset=windows-1252">
- <title>Voronoi Benchmark</title>
-</head>
-<body>
-<table style="margin: 0pt; padding: 0pt; width: 100%;" border="0"
- cellpadding="0" cellspacing="0">
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Voronoi Benchmark</title></head><body>
+<table style="margin: 0pt; padding: 0pt; width: 100%;" border="0" cellpadding="0" cellspacing="0">
   <tbody>
     <tr>
- <td style="background-color: rgb(238, 238, 238);" nowrap="1"
- valign="top">
- <div style="padding: 5px;" align="center"> <img
- src="images/boost.png" border="0" height="86" width="277"><a
- title="www.boost.org home page" tabindex="2"
- style="border: medium none ;" href="http://www.boost.org/"> </a></div>
+ <td style="background-color: rgb(238, 238, 238);" nowrap="1" valign="top">
+ <div style="padding: 5px;" align="center"> <img src="images/boost.png" border="0" height="86" width="277"><a title="www.boost.org home page" tabindex="2" style="border: medium none ;" href="http://www.boost.org/"> </a></div>
       <div style="margin: 5px;">
       <h3 class="navbar">Contents</h3>
       <ul>
@@ -72,313 +65,282 @@
       </ul>
       </div>
       <h3 class="navbar">Polygon Sponsor</h3>
- <div style="padding: 5px;" align="center"> <img
- src="images/intlogo.gif" border="0" height="51" width="127"><a
- title="www.adobe.com home page" tabindex="2"
- style="border: medium none ;" href="http://www.adobe.com/"> </a></div>
+ <div style="padding: 5px;" align="center"> <img src="images/intlogo.gif" border="0" height="51" width="127"><a title="www.adobe.com home page" tabindex="2" style="border: medium none ;" href="http://www.adobe.com/"> </a></div>
       </td>
- <td
- style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
- valign="top" width="100%"><!-- End Header --> <br>
+ <td style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;" valign="top" width="100%"><!-- End Header --> <br>
       <h1>Voronoi Benchmark</h1>
-There are not many known Voronoi libraries that are capable to satisfy
-the
-following set of conditions:<br>
- <ul>
- <li>could handle input data sets of points and segments<br>
- </li>
- <li>give exact warranties about the algorithm robustness and
-output topology<br>
- </li>
- <li>compute coordinates of the output geometries within the
-fixed relative precision<br>
- </li>
- </ul>
-Below is the list of libraries included in this benchmark sorted by the
-number of conditions each of them satisfies:<br>
- <ul>
- <li>Boost.Polygon Voronoi - satisfies all the conditions above,
-implements sweep-line algorithm.<br>
- </li>
- <li>CGAL - satisfies the first two conditions, implements
-incremental algorithm. CGAL is a well-known
-library in the computational geometry area, especially for its
-robustness.<br>
- </li>
- <li>S-Hull
-- doesn't satisfy any of the above conditions. S-Hull is a non-robust
-implementation of the sweep-hull algorithm used to construct Delaunay
-triangulation of a set of points.<br>
- </li>
- </ul>
-At the moment this benchmark includes only two robust implementations:
-Boost.Polygon Voronoi and CGAL. Thus we are considering comparison of
-those two to be of the most interest. <br>
- <br>
-Other libraries (OpenVoronoi,
- Triangle)
-would be added to this benchmark
-incrementally (we are open for suggestions).<br>
- <h2>Important<br>
- </h2>
-While results of this benchmark show complete dominance of
-the Boost.Polygon Voronoi over the CGAL Delaunay Graph implementation,
-we would like to make it clear
-that both libraries use different approach to construct Voronoi
-diagram. Thus there are problems where the CGAL's incremental approach
-would
-be still more vital than the sweep-line algorithm (e.g. input sites are
-inserted as a live stream
-data).<br>
- <h2>Voronoi Benchmark Details<br>
- </h2>
+ <h2>Benchmark Details</h2>
+From the topological perspective Delaunay triangulation is a dual
+data structure to the Voronoi diagram, thus libraries that provide
+Delaunay triangulation construction routines were also included into
+the benchmark. However, from the computation perspective Voronoi
+diagram contains more information as it embeds information regarding
+the coordinates of the centers of the inscribed circles tangent to the
+three or more input geometries.<br>
+
+
 The benchmark consists of the two parts:<br>
- <ul>
- <li>The first one constructs the Voronoi diagram of a set of
-random points (<a href="../benchmark/voronoi_benchmark_points.cpp"><span
- style="text-decoration: underline;">voronoi_benchmark_points.cpp</span></a>)</li>
- <li>The second one constructs the Voronoi diagram of a set of
-random
-segments (voronoi_benchmark_segments.cpp)</li>
- </ul>
-Below we list important benchmark details that should be considered
-while reviewing its results:<br>
- <ul>
- <li>We ensure that input data sets are the same for all
-libraries by initializing random generator with the same seed</li>
- <li>We ensure that input data sets that consist of segments
-don't contain intersections using Boost.Polygon functionality</li>
- <li>S-Hull's implementation doesn't process duplicate points
-properly, thus those are eliminated before the algorithm execution
-explicitly (Boost.Polygon Voronoi and CGAL do that&nbsp; implicitly) <br>
- </li>
- <li>There is no Voronoi diagram data structure in CGAL/S-Hull.
-That's why we use the segment Delaunay graph which is topologically
-dual to the Voronoi diagram</li>
- <li>CGAL's and S-Hull's output Delaunay triangulation doesn't
-contain information
-about coordinates of the Voronoi vertices. We didn't include time to
-compute Voronoi vertices and memory
-storage required for those in this benchmark.<br>
- </li>
- <li>Both Boost.Polygon Voronoi and CGAL process each input
-segment
-as 3 input objects (segment itself and its endpoints), thus the running
-time and memory usage for Voronoi of segments would be at
-least 3 times
-slower than for Voronoi of points</li>
- </ul>
-The benchmark was executed on the following two system configurations:<br>
- <br>
-Hardware: Intel i5-7600 2.8 GHz, 4GiB RAM.<br>
-OS: Windows 7 Professional 32-bit.<br>
-Libraries: Boost 1.48.0, CGAL-4.0.<br>
- <br>
-Hardware: Intel i5-7600 2.8 GHz, 4GiB RAM.<br>
-OS: Ubuntu 11.10 64-bit.<br>
-Libraries: Boost 1.48.0, CGAL-4.0, GMP 5.0.4, MPFR 3.1.0 + cumulative
-patch.<br>
- <h2>Voronoi Benchmark Results</h2>
- <h3>Random Points Benchmark</h3>
- <table
- style="text-align: left; width: 100%; margin-left: auto; margin-right: auto;"
- border="1" cellpadding="2" cellspacing="2">
+ <ol>
+<li>construction of the Voronoi diagram / Delaunay triangulation of a set of
+random points uniformly distributed over 32-bit integer grid (voronoi_benchmark_points.cpp)</li><li>construction of the Voronoi diagram / Delaunay triangulation of a set of
+random non-intersecting
+segments uniformly distributed over 32-bit integer grid (voronoi_benchmark_segments.cpp).</li>
+ </ol>
+
+
+
+ <h2>Libraries</h2>
+ <table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
         <tbody>
           <tr>
- <td colspan="2" rowspan="1"
- style="vertical-align: top; text-align: center;">Test specification<br>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">Library</span><br>
             </td>
- <td colspan="6" rowspan="1"
- style="vertical-align: top; text-align: center;">Average construction
-time (in secs)<br>
+ <td style="vertical-align: top; font-weight: bold;">Boost.Polygon<br>
+ </td>
+ <td style="vertical-align: top; font-weight: bold;">CGAL<br>
+ </td>
+ <td style="vertical-align: top; font-weight: bold;">SHull<br>
             </td>
           </tr>
           <tr>
- <td style="vertical-align: top; text-align: center;">Number
-of Points<br>
+ <td style="vertical-align: top;">Official page<br>
             </td>
- <td style="vertical-align: top; text-align: center;">Number
-of Runs<br>
+ <td style="vertical-align: top;">www.boost.org/libs/polygon&#8206;<br>
             </td>
- <td style="vertical-align: top; text-align: center;">Boost
-Win-32<br>
+ <td style="vertical-align: top;">http://www.cgal.org>
             </td>
- <td style="vertical-align: top; text-align: center;">CGAL
-Win-32<br>
+ <td style="vertical-align: top;">
http://www.s-hull.org>
             </td>
- <td style="vertical-align: top; text-align: center;">S-Hull
-Win-32<br>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">Algorithm<br>
             </td>
- <td style="vertical-align: top; text-align: center;">Boost
-Linux-64<br>
+ <td style="vertical-align: top;">sweep-line<br>
             </td>
- <td style="vertical-align: top; text-align: center;">CGAL
-Linux-64<br>
+ <td style="vertical-align: top;">incremental<br>
             </td>
- <td style="vertical-align: top; text-align: center;">S-Hull
-Linux-64<br>
+ <td style="vertical-align: top;">sweep-hull<br>
             </td>
           </tr>
           <tr>
- <td style="vertical-align: top; text-align: right;">10<br>
+ <td style="vertical-align: top;">Supported input geometries<br>
             </td>
- <td style="vertical-align: top; text-align: right;">100000<br>
+ <td style="vertical-align: top;">points and segments<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000027<br>
+ <td style="vertical-align: top;">points and segments<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000116<br>
+ <td style="vertical-align: top;">points<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000043<br>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">Output data structure<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000013<br>
+ <td style="vertical-align: top;">Voronoi diagram<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000052<br>
+ <td style="vertical-align: top;">Delaunay triangulation<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000012<br>
+ <td style="vertical-align: top;">Delaunay triangulation<br>
             </td>
           </tr>
           <tr>
- <td style="vertical-align: top; text-align: right;">100<br>
+ <td style="vertical-align: top;">Complexity<br>
             </td>
- <td style="vertical-align: top; text-align: right;">10000<br>
+ <td style="vertical-align: top;">O(N log N)<br>
+ </td>
+ <td style="vertical-align: top;">O(N log N)</td>
+ <td style="vertical-align: top;">O(N log N)</td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">Memory usage<br>
+ </td>
+ <td style="vertical-align: top;">O(N)<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000392<br>
+ <td style="vertical-align: top;">O(N)<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.002649<br>
+ <td style="vertical-align: top;">O(N)<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000521<br>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">Robustness policies<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000192<br>
+ <td style="vertical-align: top;">lazy arithmetic, exact predicates, topology analysis<br>
             </td>
- <td style="vertical-align: top; text-align: right;">&nbsp;0.001150<br>
+ <td style="vertical-align: top;">lazy arithmetic, exact predicates, topology analysis<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.000139<br>
+ <td style="vertical-align: top;">non-robust<br>
             </td>
           </tr>
           <tr>
- <td style="vertical-align: top; text-align: right;">1000<br>
+ <td style="vertical-align: top;">Output coordinates precision<br>
             </td>
- <td style="vertical-align: top; text-align: right;">1000<br>
+ <td style="vertical-align: top;">128 machine epsilon<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.004541<br>
+ <td style="vertical-align: top;">no output coordinates<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.039140<br>
+ <td style="vertical-align: top;">no output coordinates<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.007125<br>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">External dependencies<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.002130<br>
+ <td style="vertical-align: top;">No<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.016680<br>
+ <td style="vertical-align: top;">Boost, GMP, MPFR<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.002010<br>
+ <td style="vertical-align: top;">No<br>
             </td>
           </tr>
+ </tbody>
+ </table>
+ <br>
+
+The other known libraries (
OpenVoronoi,
+ Triangle, Vroni) will be considered for the inclusion into the benchmark in the future.<br>
+<ul>
+ <ul>
+
+
+
+
+
+
+
+ </ul>
+
+
+ <ul>
+
+
+ </ul>
+
+ </ul>
+ <h2>System Configuration<br>
+ </h2>
+
+
+Hardware: Intel i5-7600 2.8 GHz, 16GiB RAM.<br>
+OS: Ubuntu 13.04 64-bit.<br>
+Compiler: GCC 4.7.3.<br>
+Libraries and dependencies: Boost 1.54.0, CGAL-4.3-beta1, GMP 5.1.4, MPFR 3.1.2, S-Hull.<br>
+ <h2>Benchmark Results</h2>
+ <h3>Random Points Benchmark</h3><img style="border: 1px solid ; width: 500px; height: 350px;" alt="Benchmark Points Chart" src="../benchmark/benchmark_results/plots/benchmark_points.png"><br>
+
+ <table style="text-align: left; width: 100%; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
           <tr>
- <td style="vertical-align: top; text-align: right;">10000<br>
- </td>
- <td style="vertical-align: top; text-align: right;">100<br>
+ <td colspan="2" rowspan="1" style="vertical-align: top; text-align: center;">Test specification<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.047540<br>
+ <td colspan="6" rowspan="1" style="vertical-align: top; text-align: center;">Average construction
+time (in secs)<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.684090<br>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: center;">Number
+of Points<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.091640<br>
+ <td style="vertical-align: top; text-align: center;">Number
+of Runs<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.022900<br>
+
+
+
+ <td style="vertical-align: top; text-align: center;">Boost
+Linux-64<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.297900<br>
+ <td style="vertical-align: top; text-align: center;">CGAL
+Linux-64<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.028300<br>
+ <td style="vertical-align: top; text-align: center;">S-Hull
+Linux-64<br>
             </td>
           </tr>
+
           <tr>
- <td style="vertical-align: top; text-align: right;">100000<br>
+ <td style="vertical-align: top; text-align: right;">100<br>
             </td>
- <td style="vertical-align: top; text-align: right;">10<br>
+ <td style="vertical-align: top; text-align: right;">10000<br>
+ </td>
+
+
+
+ <td style="vertical-align: top; text-align: right;">0.000206<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.530200<br>
+ <td style="vertical-align: top; text-align: right;">&nbsp;0.000073<br>
             </td>
- <td style="vertical-align: top; text-align: right;">&nbsp;16.904600<br>
+ <td style="vertical-align: top; text-align: right;">0.000243<br>
             </td>
- <td style="vertical-align: top; text-align: right;">1.218000<br>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: right;">1000<br>
+ </td>
+ <td style="vertical-align: top; text-align: right;">1000<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.274000<br>
+
+
+
+ <td style="vertical-align: top; text-align: right;">0.002250<br>
             </td>
- <td style="vertical-align: top; text-align: right;">8.047000<br>
+ <td style="vertical-align: top; text-align: right;">0.000753<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.432000<br>
+ <td style="vertical-align: top; text-align: right;">0.002184<br>
             </td>
           </tr>
           <tr>
- <td style="vertical-align: top; text-align: right;">1000000<br>
+ <td style="vertical-align: top; text-align: right;">10000<br>
             </td>
- <td style="vertical-align: top; text-align: right;">1<br>
+ <td style="vertical-align: top; text-align: right;">100<br>
             </td>
- <td style="vertical-align: top; text-align: right;">5.882000<br>
+
+
+
+ <td style="vertical-align: top; text-align: right;">0.024100<br>
             </td>
- <td style="vertical-align: top; text-align: right;">566.056000<br>
+ <td style="vertical-align: top; text-align: right;">0.007917<br>
             </td>
- <td style="vertical-align: top; text-align: right;">15.394000<br>
+ <td style="vertical-align: top; text-align: right;">0.030552<br>
             </td>
- <td style="vertical-align: top; text-align: right;">3.290000<br>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: right;">100000<br>
+ </td>
+ <td style="vertical-align: top; text-align: right;">10<br>
             </td>
- <td style="vertical-align: top; text-align: right;">315.740000<br>
+
+
+
+ <td style="vertical-align: top; text-align: right;">0.292000<br>
             </td>
- <td style="vertical-align: top; text-align: right;">6.350000<br>
+ <td style="vertical-align: top; text-align: right;">0.084336<br>
+ </td>
+ <td style="vertical-align: top; text-align: right;">0.451913<br>
             </td>
           </tr>
- </tbody>
- </table>
- <br>
- <table style="text-align: left;" border="1" cellpadding="2"
- cellspacing="2">
- <tbody>
           <tr>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_points_10.png"></td>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_points_100.png"></td>
- </tr>
- <tr>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_points_1000.png"></td>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_points_10000.png"></td>
- </tr>
- <tr>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_points_100000.png"></td>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_points_1000000.png"></td>
- </tr>
- <tr>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_points_memory.png"><br>
- </td>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_points_all.png"><br>
+ <td style="vertical-align: top; text-align: right;">1000000<br>
+ </td>
+ <td style="vertical-align: top; text-align: right;">1<br>
+ </td>
+
+
+
+ <td style="vertical-align: top; text-align: right;">3.470000<br>
+ </td>
+ <td style="vertical-align: top; text-align: right;">0.902300<br>
+ </td>
+ <td style="vertical-align: top; text-align: right;">6.603814<br>
             </td>
           </tr>
         </tbody>
       </table>
- <h3>Random Segments Benchmark</h3>
- <table style="text-align: left; width: 100%;" border="1"
- cellpadding="2" cellspacing="2">
+ <br>
+<h3>Random Segments Benchmark</h3><img style="border: 1px solid ; width: 500px; height: 350px;" alt="Benchmark Segment Chart" src="../benchmark/benchmark_results/plots/benchmark_segments.png"><br>
+
+ <table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
         <tbody>
           <tr>
- <td colspan="2" rowspan="1"
- style="vertical-align: top; text-align: center;">Test specification<br>
+ <td colspan="2" rowspan="1" style="vertical-align: top; text-align: center;">Test specification<br>
             </td>
- <td colspan="4" rowspan="1"
- style="vertical-align: top; text-align: center;">Average construction
+ <td colspan="4" rowspan="1" style="vertical-align: top; text-align: center;">Average construction
 time (in secs)</td>
           </tr>
           <tr>
@@ -388,12 +350,8 @@
             <td style="vertical-align: top; text-align: center;">Number
 of Runs<br>
             </td>
- <td style="vertical-align: top; text-align: center;">Boost
-Win-32<br>
- </td>
- <td style="vertical-align: top; text-align: center;">CGAL
-Win-32<br>
- </td>
+
+
             <td style="vertical-align: top; text-align: center;">Boost
 Linux-64<br>
             </td>
@@ -401,32 +359,17 @@
 Linux-64<br>
             </td>
           </tr>
- <tr>
- <td style="vertical-align: top; text-align: right;">10<br>
- </td>
- <td style="vertical-align: top; text-align: right;">100000<br>
- </td>
- <td style="vertical-align: top; text-align: right;">0.000290<br>
- </td>
- <td style="vertical-align: top; text-align: right;">0.001047<br>
- </td>
- <td style="vertical-align: top; text-align: right;">0.000165<br>
- </td>
- <td style="vertical-align: top; text-align: right;">0.000483<br>
- </td>
- </tr>
+
           <tr>
             <td style="vertical-align: top; text-align: right;">100<br>
             </td>
             <td style="vertical-align: top; text-align: right;">10000<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.003655<br>
- </td>
- <td style="vertical-align: top; text-align: right;">0.014812<br>
+
+
+ <td style="vertical-align: top; text-align: right;">0.002284<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.002006<br>
- </td>
- <td style="vertical-align: top; text-align: right;">0.007006<br>
+ <td style="vertical-align: top; text-align: right;">0.002985<br>
             </td>
           </tr>
           <tr>
@@ -434,13 +377,11 @@
             </td>
             <td style="vertical-align: top; text-align: right;">1000<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.038158<br>
- </td>
- <td style="vertical-align: top; text-align: right;">0.177315<br>
+
+
+ <td style="vertical-align: top; text-align: right;">0.023240<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.020440<br>
- </td>
- <td style="vertical-align: top; text-align: right;">0.084000<br>
+ <td style="vertical-align: top; text-align: right;">0.032180<br>
             </td>
           </tr>
           <tr>
@@ -448,13 +389,11 @@
             </td>
             <td style="vertical-align: top; text-align: right;">100<br>
             </td>
- <td style="vertical-align: top; text-align: right;">0.389470<br>
- </td>
- <td style="vertical-align: top; text-align: right;">2.561340<br>
+
+
+ <td style="vertical-align: top; text-align: right;">&nbsp;0.237700<br>
             </td>
- <td style="vertical-align: top; text-align: right;">&nbsp;0.209700<br>
- </td>
- <td style="vertical-align: top; text-align: right;">1.191900<br>
+ <td style="vertical-align: top; text-align: right;">0.337400<br>
             </td>
           </tr>
           <tr>
@@ -462,13 +401,11 @@
             </td>
             <td style="vertical-align: top; text-align: right;">10<br>
             </td>
- <td style="vertical-align: top; text-align: right;">4.031300<br>
- </td>
- <td style="vertical-align: top; text-align: right;">49.314600<br>
- </td>
- <td style="vertical-align: top; text-align: right;">2.228000<br>
+
+
+ <td style="vertical-align: top; text-align: right;">2.488000<br>
             </td>
- <td style="vertical-align: top; text-align: right;">23.538000<br>
+ <td style="vertical-align: top; text-align: right;">3.633000<br>
             </td>
           </tr>
           <tr>
@@ -476,99 +413,22 @@
             </td>
             <td style="vertical-align: top; text-align: right;">1<br>
             </td>
- <td style="vertical-align: top; text-align: right;">40.912000<br>
- </td>
- <td style="vertical-align: top; text-align: right;">1640.830000<br>
- </td>
- <td style="vertical-align: top; text-align: right;">22.250000<br>
+
+
+ <td style="vertical-align: top; text-align: right;">25.00000<br>
             </td>
- <td style="vertical-align: top; text-align: right;">856.650000<br>
- </td>
- </tr>
- </tbody>
- </table>
- <br>
- <table style="text-align: left;" border="1" cellpadding="2"
- cellspacing="2">
- <tbody>
- <tr>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_segments_10.png"></td>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_segments_100.png"></td>
- </tr>
- <tr>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_segments_1000.png"></td>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_segments_10000.png"></td>
- </tr>
- <tr>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_segments_100000.png"></td>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_segments_1000000.png"></td>
- </tr>
- <tr>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_segments_memory.png"><br>
- </td>
- <td style="vertical-align: top;"><img
- style="width: 500px; height: 300px;" alt=""
- src="images/benchmark_segments_all.png"><br>
+ <td style="vertical-align: top; text-align: right;">39.090000<br>
             </td>
           </tr>
         </tbody>
       </table>
- <span style="font-weight: bold;"></span>
- <h2>Voronoi Benchmark Summary</h2>
-The main conclusions for the benchmark results above are following:<br>
- <ul>
- <li>There is no input size range were CGAL would outperform
-Boost.Polygon Voronoi. Even considering the fact that we didn't include
-time it would take CGAL to compute coordinates of the Voronoi vertices.</li>
- <li>The more interesting fact is that robust implementation of
-the Boost.Polygon Voronoi is faster than non-robust of
-S-Hull (except small input sets of around 100 points on Linux-64).<br>
- </li>
- <li>Logarithmic execution time shows that Boost.Polygon Voronoi
-and S-Hull
-have clear N*log(N) complexity, while this doesn't seem to be true for
-CGAL (at least for large input data sets).<br>
- </li>
- <li>Boost.Polygon Voronoi computes coordinates of the output
-Voronoi vertices within 64 machine epsilon precision. There are no such
-warranties for the CGAL library.<br>
- </li>
- <li>Boost.Polygon Voronoi of points is 4 times faster for small
-input data sets (10 points) and this factor grows up to 100 for large
-input data sets (1000000 points).</li>
- <li>Boost.Polygon Voronoi of segments is 3 times faster for
-small input data sets (10 segments) and this factor grows up to 40 for
-large input data sets (1000000 segments).</li>
- <li>Boost.Polygon
-Voronoi is capable to construct Voronoi of 10000 points or 1000
-segments in 0.02 seconds. This allows to produce real time frame rate
-for those quantities.</li>
- </ul>
- </td>
+ <br><span style="font-weight: bold;"></span></td>
     </tr>
     <tr>
- <td style="background-color: rgb(238, 238, 238);" nowrap="1"
- valign="top">&nbsp;</td>
- <td
- style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
- valign="top" width="100%">
+ <td style="background-color: rgb(238, 238, 238);" nowrap="1" valign="top">&nbsp;</td>
+ <td style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;" valign="top" width="100%">
       <table class="docinfo" id="table2" frame="void" rules="none">
- <colgroup> <col class="docinfo-name"><col
- class="docinfo-content"> </colgroup> <tbody valign="top">
+ <colgroup> <col class="docinfo-name"><col class="docinfo-content"> </colgroup> <tbody valign="top">
           <tr>
             <th class="docinfo-name">Copyright:</th>
             <td>Copyright © Andrii Sydorchuk 2010-2012.</td>
@@ -576,10 +436,7 @@
           <tr class="field">
             <th class="docinfo-name">License:</th>
             <td class="field-body">Distributed under the Boost Software
-License, Version 1.0. (See accompanying file <tt class="literal"><span
- class="pre">LICENSE_1_0.txt</span></tt> or copy at <a
- class="reference" target="_top"
- href="http://www.boost.org/LICENSE_1_0.txt">
+License, Version 1.0. (See accompanying file <tt class="literal"><span class="pre">LICENSE_1_0.txt</span></tt> or copy at <a class="reference" target="_top" href="http://www.boost.org/LICENSE_1_0.txt">
 http://www.boost.org/LICENSE_1_0.txt>)</td>
           </tr>
         </tbody>
@@ -588,5 +445,5 @@
     </tr>
   </tbody>
 </table>
-</body>
-</html>
+
+</body></html>
\ No newline at end of file

Modified: trunk/libs/polygon/doc/voronoi_builder.htm
==============================================================================
--- trunk/libs/polygon/doc/voronoi_builder.htm Sun Oct 6 17:56:25 2013 (r86188)
+++ trunk/libs/polygon/doc/voronoi_builder.htm 2013-10-06 19:59:52 EDT (Sun, 06 Oct 2013) (r86189)
@@ -1,22 +1,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
+<html><head>
+
+
   <meta http-equiv="Content-Language" content="en-us">
- <meta http-equiv="Content-Type"
- content="text/html; charset=windows-1252">
- <title>Voronoi Builder</title>
-</head>
-<body>
-<table style="margin: 0pt; padding: 0pt; width: 100%;" border="0"
- cellpadding="0" cellspacing="0">
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Voronoi Builder</title></head><body>
+<table style="margin: 0pt; padding: 0pt; width: 100%;" border="0" cellpadding="0" cellspacing="0">
   <tbody>
     <tr>
- <td style="background-color: rgb(238, 238, 238);" nowrap="1"
- valign="top">
- <div style="padding: 5px;" align="center"> <img
- src="images/boost.png" border="0" height="86" width="277"><a
- title="www.boost.org home page" tabindex="2"
- style="border: medium none ;" href="
http://www.boost.org/"> </a></div>
+ <td style="background-color: rgb(238, 238, 238);" nowrap="1" valign="top">
+ <div style="padding: 5px;" align="center"> <img src="images/boost.png" border="0" height="86" width="277"><a title="www.boost.org home page" tabindex="2" style="border: medium none ;" href="http://www.boost.org/"> </a></div>
       <div style="margin: 5px;">
       <h3 class="navbar">Contents</h3>
       <ul>
@@ -70,20 +62,14 @@
       </ul>
       </div>
       <h3 class="navbar">Polygon Sponsor</h3>
- <div style="padding: 5px;" align="center"> <img
- src="images/intlogo.gif" border="0" height="51" width="127"><a
- title="www.adobe.com home page" tabindex="2"
- style="border: medium none ;" href="http://www.adobe.com/"> </a></div>
+ <div style="padding: 5px;" align="center"> <img src="images/intlogo.gif" border="0" height="51" width="127"><a title="www.adobe.com home page" tabindex="2" style="border: medium none ;" href="http://www.adobe.com/"> </a></div>
       </td>
- <td
- style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
- valign="top" width="100%"><!-- End Header --> <br>
+ <td style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;" valign="top" width="100%"><!-- End Header --> <br>
       <h1>Voronoi Builder </h1>
 The Voronoi builder is the event generator structure, that implements
 the <a href="http://en.wikipedia.org/wiki/Sweep_line_algorithm">sweepline
 algorithm</a>,
-scanning 2D space and spawning the two types of events: <a
- href="http://www.ams.org/samplings/feature-column/fcarc-voronoi">site
+scanning 2D space and spawning the two types of events: <a href="http://www.ams.org/samplings/feature-column/fcarc-voronoi">site
 events and circle events</a>. Each event is reported to the output data
 structure builder.
 The structure shares Voronoi name, as the events generated by it
@@ -112,35 +98,28 @@
 the Boost.Polygon library:<br>
       <br>
       <span style="font-family: Courier New,Courier,monospace;">#include
-&lt;voronoi_builder.hpp&gt;</span><br
- style="font-family: Courier New,Courier,monospace;">
+&lt;voronoi_builder.hpp&gt;</span><br style="font-family: Courier New,Courier,monospace;">
       <span style="font-family: Courier New,Courier,monospace;">#include
 &lt;voronoi_diagram.hpp&gt;</span><br>
       <h2>Declaration</h2>
 Header: boost/polygon/voronoi_builder.hpp<br>
       <br>
- <font face="Courier New"> <span
- style="font-family: 'Courier New',Courier,monospace;">template
-&lt;typename T,</span><br
- style="font-family: 'Courier New',Courier,monospace;">
+ <font face="Courier New"> <span style="font-family: 'Courier New',Courier,monospace;">template
+&lt;typename T,</span><br style="font-family: 'Courier New',Courier,monospace;">
       <span style="font-family: 'Courier New',Courier,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-typename CTT = detail::voronoi_ctype_traits&lt;T&gt;,</span><br
- style="font-family: 'Courier New',Courier,monospace;">
+typename CTT = detail::voronoi_ctype_traits&lt;T&gt;,</span><br style="font-family: 'Courier New',Courier,monospace;">
       <span style="font-family: 'Courier New',Courier,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-typename VP = detail::voronoi_predicates&lt;CTT&gt; &gt;</span><br
- style="font-family: 'Courier New',Courier,monospace;">
+typename VP = detail::voronoi_predicates&lt;CTT&gt; &gt;</span><br style="font-family: 'Courier New',Courier,monospace;">
       <span style="font-family: 'Courier New',Courier,monospace;">class
 voronoi_builder;</span><br>
       <br>
       <span style="font-family: 'Courier New',Courier,monospace;">T</span></font>
 - specifies the coordinate type of the input geometries (points and
 segments).<br>
- <font face="Courier New"> <span
- style="font-family: 'Courier New',Courier,monospace;">CTT</span></font>
+ <font face="Courier New"> <span style="font-family: 'Courier New',Courier,monospace;">CTT</span></font>
 - defines the input/output coordinate type traits used by the Voronoi
 predicates (VP).<br>
- <font face="Courier New"> <span
- style="font-family: 'Courier New',Courier,monospace;">VP</span></font>
+ <font face="Courier New"> <span style="font-family: 'Courier New',Courier,monospace;">VP</span></font>
 - the predicate kernel, that contains robust and
 efficient predicates and functors.<br>
 The Voronoi builder data structure is ready to use from the box with
@@ -152,25 +131,19 @@
 defined by the coordinate type traits satisfy the requirements
 explained at the end of this page. In case
 those
-requirements are not satisfied,<font face="Courier New"><span
- style="font-family: 'Courier New',Courier,monospace;"></span></font>
+requirements are not satisfied,<font face="Courier New"><span style="font-family: 'Courier New',Courier,monospace;"></span></font>
 the proper predicate kernel
-implementation is required.<span
- style="font-family: Courier New,Courier,monospace;"></span><br>
+implementation is required.<span style="font-family: Courier New,Courier,monospace;"></span><br>
       <h2>Member Functions</h2>
- <table style="text-align: left; width: 100%;" border="1"
- cellpadding="2" cellspacing="2">
+ <table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
         <tbody>
           <tr>
- <td style="font-family: 'Courier New',Courier,monospace;"><span
- style="font-weight: bold;">voronoi_builder</span>()</td>
+ <td style="font-family: 'Courier New',Courier,monospace;"><span style="font-weight: bold;">voronoi_builder</span>()</td>
             <td width="693">Default
 constructor.</td>
           </tr>
           <tr>
- <td><span
- style="font-family: Courier New,Courier,monospace;">size_t <span
- style="font-weight: bold;">insert_point</span>(const int_type&amp; x,<br>
+ <td><span style="font-family: Courier New,Courier,monospace;">size_t <span style="font-weight: bold;">insert_point</span>(const int_type&amp; x,<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 const int_type&amp; y)</span> </td>
             <td>Inserts a point object with
@@ -178,9 +151,7 @@
 Returns index of the inserted point. </td>
           </tr>
           <tr>
- <td><span
- style="font-family: Courier New,Courier,monospace;">size_t <span
- style="font-weight: bold;">insert_segment</span>(const int_type&amp;
+ <td><span style="font-family: Courier New,Courier,monospace;">size_t <span style="font-weight: bold;">insert_segment</span>(const int_type&amp;
 x1,<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 const int_type&amp; y1,<br>
@@ -201,7 +172,8 @@
 algorithm over the set of inserted geometries and generates site and
 circle events to the OUTPUT data structure. It's the responsibility of
 the
-output data structure to process them. </td>
+output data structure to process them. Complexity: O(N * log N), where N is the total number of input points and segments.<br>
+ </td>
           </tr>
           <tr>
             <td style="font-family: 'Courier New',Courier,monospace;">void
@@ -216,8 +188,7 @@
       <p>The library provides the default coordinate type traits
 specialization for the
 32-bit signed integer type:</p>
- <font style="font-family: 'Courier New',Courier,monospace;"
- face="Courier New">
+ <font style="font-family: 'Courier New',Courier,monospace;" face="Courier New">
       <p>template &lt;typename T&gt;<br>
 struct voronoi_ctype_traits;<br>
       <br>
@@ -244,33 +215,28 @@
 of traits (the assumption is made that input geometries have
 X-bit signed integer coordinate type):<br>
       <br>
- <table style="text-align: left; width: 100%;" border="1"
- cellpadding="2" cellspacing="2">
+ <table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
         <tbody>
           <tr>
- <td
- style="font-family: 'Courier New',Courier,monospace; font-weight: bold;">int_type
+ <td style="font-family: 'Courier New',Courier,monospace; font-weight: bold;">int_type
             </td>
             <td style="vertical-align: top;">At least X-bit signed
 integer type. </td>
           </tr>
           <tr>
- <td
- style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">int_x2_type
+ <td style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">int_x2_type
             </td>
             <td style="vertical-align: top;">At least 2X-bit signed
 integer type. </td>
           </tr>
           <tr>
- <td
- style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">uint_x2_type
+ <td style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">uint_x2_type
             </td>
             <td style="vertical-align: top;">At least 2X-bit unsigned
 integer type. </td>
           </tr>
           <tr>
- <td
- style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">big_int_type
+ <td style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">big_int_type
             </td>
             <td style="vertical-align: top;">At least 8X-bit signed
 integer type if input dataset contains only points.<br>
@@ -278,40 +244,35 @@
 segments. </td>
           </tr>
           <tr>
- <td
- style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">fpt_type
+ <td style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">fpt_type
             </td>
             <td style="vertical-align: top;">IEEE-754 floating point
 type, with mantissa at least (X+16) bits and exponent able to handle
 32X-bit unsigned integer type. </td>
           </tr>
           <tr>
- <td
- style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">efpt_type
+ <td style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">efpt_type
             </td>
             <td style="vertical-align: top;">IEEE-754 floating point
 type, with mantissa at least (X+16) bits and exponent able to handle
 64X-bit unsigned integer type. </td>
           </tr>
           <tr>
- <td
- style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">ulp_cmp_type
+ <td style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">ulp_cmp_type
             </td>
             <td style="vertical-align: top;">Ulp comparison structure,
 that checks if two fpt_type values are within the given ulp range
 (relative error range). </td>
           </tr>
           <tr>
- <td
- style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">to_fpt_converter_type
+ <td style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">to_fpt_converter_type
             </td>
             <td style="vertical-align: top;">Type converter structure,
 that converts any of the integer types above plus efpt_type to the
 fpt_type using operator(). </td>
           </tr>
           <tr>
- <td
- style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">to_efpt_converter_type
+ <td style="vertical-align: top; font-family: 'Courier New',Courier,monospace; font-weight: bold;">to_efpt_converter_type
             </td>
             <td style="vertical-align: top;">Type converter structure,
 that converts any of the integer types above to the efpt_type using
@@ -346,12 +307,9 @@
     </tr>
     <tr>
       <td style="background-color: rgb(238, 238, 238);" nowrap="1">&nbsp;</td>
- <td
- style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
- valign="top" width="100%">
+ <td style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;" valign="top" width="100%">
       <table class="docinfo" id="table2" frame="void" rules="none">
- <colgroup> <col class="docinfo-name"><col
- class="docinfo-content"> </colgroup> <tbody valign="top">
+ <colgroup> <col class="docinfo-name"><col class="docinfo-content"> </colgroup> <tbody valign="top">
           <tr>
             <th class="docinfo-name">Copyright:</th>
             <td>Copyright © Andrii Sydorchuk 2010-2013.</td>
@@ -359,10 +317,7 @@
           <tr class="field">
             <th class="docinfo-name">License:</th>
             <td class="field-body">Distributed under the Boost Software
-License, Version 1.0. (See accompanying file <tt class="literal"><span
- class="pre">LICENSE_1_0.txt</span></tt> or copy at <a
- class="reference" target="_top"
- href="http://www.boost.org/LICENSE_1_0.txt">
+License, Version 1.0. (See accompanying file <tt class="literal"><span class="pre">LICENSE_1_0.txt</span></tt> or copy at <a class="reference" target="_top" href="http://www.boost.org/LICENSE_1_0.txt">
 http://www.boost.org/LICENSE_1_0.txt>)</td>
           </tr>
         </tbody>
@@ -371,5 +326,5 @@
     </tr>
   </tbody>
 </table>
-</body>
-</html>
+
+</body></html>
\ No newline at end of file

Modified: trunk/libs/polygon/doc/voronoi_main.htm
==============================================================================
--- trunk/libs/polygon/doc/voronoi_main.htm Sun Oct 6 17:56:25 2013 (r86188)
+++ trunk/libs/polygon/doc/voronoi_main.htm 2013-10-06 19:59:52 EDT (Sun, 06 Oct 2013) (r86189)
@@ -1,26 +1,20 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
+<html><head>
+
+
+
   <meta http-equiv="Content-Language" content="en-us">
- <meta http-equiv="Content-Type"
- content="text/html; charset=windows-1252">
- <title>Voronoi Main</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Voronoi Main</title>
+
   <meta http-equiv="content-type" content="text/html; charset=utf-8">
   <meta http-equiv="content-type" content="text/html; charset=utf-8">
   <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
-</head>
-<body>
-<table style="margin: 0pt; padding: 0pt; width: 100%;" border="0"
- cellpadding="0" cellspacing="0">
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body>
+<table style="margin: 0pt; padding: 0pt; width: 100%;" border="0" cellpadding="0" cellspacing="0">
   <tbody>
     <tr>
- <td style="background-color: rgb(238, 238, 238);" nowrap="1"
- valign="top">
- <div style="padding: 5px;" align="center"> <img
- src="images/boost.png" border="0" height="86" width="277"><a
- title="www.boost.org home page" tabindex="2"
- style="border: medium none ;" href="
http://www.boost.org/"> </a></div>
+ <td style="background-color: rgb(238, 238, 238);" nowrap="1" valign="top">
+ <div style="padding: 5px;" align="center"> <img src="images/boost.png" border="0" height="86" width="277"><a title="www.boost.org home page" tabindex="2" style="border: medium none ;" href="http://www.boost.org/"> </a></div>
       <div style="margin: 5px;">
       <h3 class="navbar">Contents</h3>
       <ul>
@@ -74,17 +68,11 @@
       </ul>
       </div>
       <h3 class="navbar">Polygon Sponsor</h3>
- <div style="padding: 5px;" align="center"> <img
- src="images/intlogo.gif" border="0" height="51" width="127"><a
- title="www.adobe.com home page" tabindex="2"
- style="border: medium none ;" href="http://www.adobe.com/"> </a></div>
+ <div style="padding: 5px;" align="center"> <img src="images/intlogo.gif" border="0" height="51" width="127"><a title="www.adobe.com home page" tabindex="2" style="border: medium none ;" href="http://www.adobe.com/"> </a></div>
       </td>
- <td
- style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
- valign="top" width="100%"><!-- End Header --> <br>
+ <td style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;" valign="top" width="100%"><!-- End Header --> <br>
       <h1>THE BOOST.POLYGON VORONOI LIBRARY </h1>
- <img style="width: 900px; height: 300px;" alt=""
- src="images/voronoi3.png"><br>
+ <img style="width: 900px; height: 300px;" alt="" src="images/voronoi3.png"><br>
 The Voronoi extension of the Boost.Polygon library provides
 functionality to construct a <a href="voronoi_diagram.htm">Voronoi
 diagram</a>
@@ -101,11 +89,13 @@
 While the first restriction is permanent (it
 allows to give the exact warranties about the output precision and
 algorithm execution flow),
-the second one may be resolved using the Boost.Polygon <a
- href="gtl_segment_concept.htm">segment utils</a>.
+the second one may be resolved using the Boost.Polygon segment utils.
 The strong sides of the
 library and main benefits comparing to the other implementations are
-discussed in the following paragraphs.<span style="font-weight: bold;"></span><br>
+discussed in the following paragraphs.<br>
+ <br>
+Voronoi diagram construction complexity: O(N * logN), memory usage
+O(N), where N is the total number of input points and segments.<span style="font-weight: bold;"></span><br>
       <h2>Fully Functional with Segments</h2>
 There are just a few implementations of the Voronoi diagram
 construction
@@ -154,8 +144,7 @@
 geometries can be increased simply by using a floating-point type with
 the larger mantissa. The practical point of this statements is
 explained in the following table:<br>
- <table style="text-align: left; width: 100%;" border="1"
- cellpadding="2" cellspacing="2">
+ <table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
         <tbody>
           <tr>
             <td style="vertical-align: top;">Output Coordinate Type </td>
@@ -196,10 +185,8 @@
         </tbody>
       </table>
 Detailed description of the absolute and relative errors evaluation can
-be found in the article: <a
- href="http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html">"What
-Every Computer Scientist Should Know About Floating-Point Arithmetic"</a><a
- href="http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html"></a>.<br>
+be found in the article: <a href="http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html">"What
+Every Computer Scientist Should Know About Floating-Point Arithmetic"</a>.<br>
       <br>
 During the finalization step the implementation unites the Voronoi
 vertices
@@ -218,14 +205,12 @@
 micrometres or the size of a bacteria) will be considered
 equal and united.<br>
       <h2>Simple Interface </h2>
-The boost/polygon/<a
- href="../../../boost/polygon/voronoi.hpp">voronoi.hpp</a>
+The boost/polygon/<a href="../../../boost/polygon/voronoi.hpp">voronoi.hpp</a>
 library header defines the following static functions to integrate the
 Voronoi library
 functionality with the Boost.Polygon interfaces:<br>
       <br>
- <table style="text-align: left; width: 100%;" border="1"
- cellpadding="2" cellspacing="2">
+ <table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
         <tbody>
           <tr>
             <td style="font-family: Courier New,Courier,monospace;">template
@@ -282,19 +267,22 @@
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 VD *vd) </td>
             <td>Constructs the Voronoi diagram of a set of points.<br>
-Corresponding point type should model the point concept. </td>
+Corresponding point type should model the point concept.<br>
+Complexity: O(N * log N), memory usage: O(N), where N is the total number of input points.<br>
+ </td>
           </tr>
           <tr>
             <td style="font-family: Courier New,Courier,monospace;">template
 &lt;typename SegmentIterator, typename VD&gt;<br>
 void <span style="font-weight: bold;">construct_voronoi</span>(SegmentIterator
-first,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+first,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 SegmentIterator last,<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 VD *vd) </td>
             <td>Constructs the Voronoi diagram of a set of segments.<br>
-Corresponding segment type should model the segment concept. </td>
+Corresponding segment type should model the segment concept.<br>
+Complexity: O(N * log N), memory usage: O(N), where N is the total number of input segments.<br>
+ </td>
           </tr>
           <tr>
             <td style="font-family: Courier New,Courier,monospace;">template
@@ -303,8 +291,7 @@
 SegmentIterator,<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typename VD&gt;<br>
 void <span style="font-weight: bold;">construct_voronoi</span>(PointIterator
-p_first,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+p_first,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 PointIterator p_last,<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 SegmentIterator s_first,<br>
@@ -315,7 +302,9 @@
             <td>Constructs the Voronoi
 diagram of a set of points and segments.<br>
 Corresponding point type should model the point concept.<br>
-Corresponding segment type should model the segment concept. </td>
+Corresponding segment type should model the segment concept.<br>
+Complexity: O(N* log N), memory usage: O(N), where N is the total number of input points and segments.<br>
+</td>
           </tr>
         </tbody>
       </table>
@@ -336,14 +325,12 @@
 output geometries and efficiently traverse
 the
 Voronoi graph.
-More details on those topics are covered in the <a
- href="voronoi_basic_tutorial.htm">basic Voronoi tutorial</a>. Advanced
+More details on those topics are covered in the basic Voronoi tutorial. Advanced
 usage of the library with the configuration of the coordinate
 types is explained in the <a href="voronoi_advanced_tutorial.htm">advanced
 Voronoi tutorial</a>.
 The library allows users to implement their own Voronoi diagram /
-Delaunay triangulation construction routines based on the <a
- href="voronoi_builder.htm">Voronoi builder API</a>.<br>
+Delaunay triangulation construction routines based on the Voronoi builder API.<br>
       <h2>No Third Party Dependencies </h2>
 The Voronoi extension of the Boost.Polygon library doesn't depend on
 any 3rd party code
@@ -354,12 +341,10 @@
 part of the implementation. The library is fast to compile (3 public
 and 4 private heades), has strong cohesion between its components and
 is clearly modularized from the rest of the Boost.Polygon library, with
-the optional integration through the <a
- href="../../../boost/polygon/voronoi.hpp">voronoi.hpp</a> header.<br>
+the optional integration through the voronoi.hpp header.<br>
       <h2>Extensible for the User Provided Coordinate Types</h2>
 The implementation is coordinate type agnostic. As long
-as the user provided types satisfy the set of the requirements of the <a
- href="voronoi_builder.htm">Voronoi builder</a> coordinate type traits,
+as the user provided types satisfy the set of the requirements of the Voronoi builder coordinate type traits,
 no additional
 changes
 are needed
@@ -441,21 +426,15 @@
 his/her PC. Upon the community request, more documentation on the
 theoretical aspects of the implementation will be published.
 The
-authors would like to acknowledge the Steven Fortune's article <span
- style="font-family: Arial,Helvetica,sans-serif;"><span
- style="font-weight: bold;"></span></span>"<a
- href="http://dl.acm.org/citation.cfm?id=10549">A Sweepline algorithm
+authors would like to acknowledge the Steven Fortune's article <span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-weight: bold;"></span></span>"<a href="http://dl.acm.org/citation.cfm?id=10549">A Sweepline algorithm
 for Voronoi diagrams</a>", that covers fundamental ideas of the
 current implementation. </td>
     </tr>
     <tr>
       <td style="background-color: rgb(238, 238, 238);" nowrap="1">&nbsp;</td>
- <td
- style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;"
- valign="top" width="100%">
+ <td style="padding-left: 10px; padding-right: 10px; padding-bottom: 10px;" valign="top" width="100%">
       <table class="docinfo" id="table2" frame="void" rules="none">
- <colgroup> <col class="docinfo-name"><col
- class="docinfo-content"> </colgroup> <tbody valign="top">
+ <colgroup> <col class="docinfo-name"><col class="docinfo-content"> </colgroup> <tbody valign="top">
           <tr>
             <th class="docinfo-name">Copyright:</th>
             <td>Copyright © Andrii Sydorchuk 2010-2013.</td>
@@ -463,10 +442,7 @@
           <tr class="field">
             <th class="docinfo-name">License:</th>
             <td class="field-body">Distributed under the Boost Software
-License, Version 1.0. (See accompanying file <tt class="literal"><span
- class="pre">LICENSE_1_0.txt</span></tt> or copy at <a
- class="reference" target="_top"
- href="http://www.boost.org/LICENSE_1_0.txt">
+License, Version 1.0. (See accompanying file <tt class="literal"><span class="pre">LICENSE_1_0.txt</span></tt> or copy at <a class="reference" target="_top" href="http://www.boost.org/LICENSE_1_0.txt">
 http://www.boost.org/LICENSE_1_0.txt>)</td>
           </tr>
         </tbody>
@@ -475,5 +451,5 @@
     </tr>
   </tbody>
 </table>
-</body>
-</html>
+
+</body></html>
\ No newline at end of file


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk