forked from boostorg/geometry
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Listed below are some performance benchmarks for the following methods:
- Karney direct (series 1, 2, 3, 4, 5, 6, 7, 8)
- Vincenty direct
- Thomas direct
Compiler used: g++ (version 7.2.0)
Optimization level: O3
The execution times are calculated using the Boost Chrono library. I created a separate .cpp file for each method, otherwise, I was getting similar execution times when all methods were placed in a single file. The code for a single file is available on GitHub. I used this Makefile for compiling all .cpp files. The dataset associated with GeographicLib is used (https://zenodo.org/record/32156).
Direct methods
Table 1
First 100K entries, i.e. the points randomly distributed on the ellipsoid.
| Method | Time (seconds) |
|---|---|
| Karney (order 1) | 0.742535 |
| Karney (order 2) | 0.778593 |
| Karney (order 3) | 0.760253 |
| Karney (order 4) | 0.759539 |
| Karney (order 5) | 0.751717 |
| Karney (order 6) | 0.76962 |
| Karney (order 7) | 0.775933 |
| Karney (order 8) | 0.781861 |
| Vincenty | 0.835348 |
| Thomas (order 1) | 0.834416 |
| Thomas (order 2) | 0.862714 |
Table 2
First 200K entries, i.e. the points randomly distributed on the ellipsoid.
| Method | Time (seconds) |
|---|---|
| Karney (order 1) | 1.44966 |
| Karney (order 2) | 1.46227 |
| Karney (order 3) | 1.46714 |
| Karney (order 4) | 1.47369 |
| Karney (order 5) | 1.48329 |
| Karney (order 6) | 1.58164 |
| Karney (order 7) | 1.51181 |
| Karney (order 8) | 1.52453 |
| Vincenty | 1.60484 |
| Thomas (order 1) | 1.59485 |
| Thomas (order 2) | 1.60706 |
Table 3
For 1e6 iterations. Comparison is done for the following input:
lon1=0., lat1=47.565626644319, s12=865.0302904, azi1=109.645188791724
| Method | lon2 | lat2 | azi2 | Time (seconds) |
|---|---|---|---|---|
| Karney (order 1) | 0.01080725671 | 47.56301492 | 109.6531649 | 0.842479958 |
| Karney (order 2) | 0.01082583273 | 47.56301043 | 109.6531786 | 0.934280867 |
| Karney (order 3) | 0.01082581511 | 47.56301043 | 109.6531786 | 0.946098476 |
| Karney (order 4) | 0.0108258151 | 47.56301043 | 109.6531786 | 1.020440514 |
| Karney (order 5) | 0.0108258151 | 47.56301043 | 109.6531786 | 1.026539299 |
| Karney (order 6) | 0.0108258151 | 47.56301043 | 109.6531786 | 1.149418505 |
| Karney (order 7) | 0.0108258151 | 47.56301043 | 109.6531786 | 1.156282074 |
| Karney (order 8) | 0.0108258151 | 47.56301043 | 109.6531786 | 1.27542 |
| Vincenty | 0.0001889553612 | 47.56558099 | 109.6453283 | 1.156431093 |
| Thomas (order 1) | 0.0001889553612 | 47.56558099 | 109.6453283 | 1.207880594 |
| Thomas (order 2) | 0.0001889553611 | 47.56558099 | 109.6453283 | 1.229166743 |
Metadata
Metadata
Assignees
Labels
No labels