Menu

Home

Stony Lohr

GeographicLib Crude Instrumentation

My geographiclib instrumented-crude branch provides a crude form of instrumentation for most C++ GeographicLib classes, and an example utility that runs them through a variety of test cases. Everything of interest at this time lives in this branch, and the content doesn't feel like it would ever be appropriate to merge into the main project.

The primary motivation is to provide a detailed state, input, and output baseline for validation and troubleshooting of a GeographicLib port to Rust, but I've tried to avoid anything Rust-specific in this project itself.

To run the case creation utility, you'll need a copy of GeodTest-short.dat or GeodTest.dat, which can be downloaded in compressed form from the main project's testgeod page.

Next, cd to the root of a checkout the instrumented-crude branch, and run something like the following (this forumulation assumes you've unzipped GeodTest-short.dat into a sibling folder of your checkout, named "geographiclib-data"):

./BUILD/examples/example-BaselineCaseCreation ../geographiclib-data/GeodTest-short.dat

Instrumented-Crude Output Files

I had hoped to include a zip of all instrumented-crude output files as part of a sort of pseudo-release, but I currently see Release creation as disabled, possibly because of the project's fork status. Instead, I'll provide them as attachments in this wiki.

General Output File Notes

Both the full and Geodesic-only zip files quietly fail to attach on the wiki edit page, I suspect due to size. The full zip also fails to attach in the wiki discussion, explicitly due to size. Class-specific output zips seem to work as attachments in the wiki discussion, so that's what I'm using, even though it's a bit awkward.

Please note that I have not implemented logging for Geoid, GravityModel, or related classes. This is in part because I don't expect to begin examining these in detail for a while yet. More importantly, I'm already having issues with data volume making it complicated to share the output files, and I expect tests for these classes to lean heavily on Karney's large test data files related to these classes, which will significantly increase the total size of my outputs.

In terms of output dat file content, each file starts with a header line specifying the operation, version numbers used to generate it, and a key to interpreting specific values on later lines. All later lines contain space-separated values indicating start state, inputs, end state, and outputs, in that order (even if the operation mixes inputs and outputs its C++ argument order). For reference outputs values, the current version only logs the incoming value if the operation actually looks at that value. In most cases, these are conceptually out-only values, so only their end value is logged.

Outputs Using Instrumented-Crude 0.3.0 (based on GeographicLib 1.51.0)

Using GeodTest-short.dat


Discussion

  • Stony Lohr

    Stony Lohr - 2021-01-16

    Zipped output for classes other than Geodesic, GeodesicLine, and Math.

     

Log in to post a comment.