<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Hi Olly -</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Many thanks for the answers. I think I will give BACKTAPE a try the next time I do some survey, if only to see what happens.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">My question about significant digits is really related to how much precision can and should be carried through a calculation. If compass readings are taken to four significant digits, then the mean of two such numbers is really only good to about three and a half significant digits. Displaying more significant digits implies more precision that actually exists. A compass reading even from a DistoX2 is probably accurate to only +/- 2 least significant digits.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><a href="https://en.wikipedia.org/wiki/Significant_figures">https://en.wikipedia.org/wiki/Significant_figures</a></p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">However, you have an excellent point about easting and northing data. Those number can be measure accurately to enough significant digits that a double-precision data type is needed.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Speed is not an issue. Survex and Therion both compile my biggest maps in seconds. Shaving a few seconds is of little benefit.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">And to your last comment about furlongs ... LOL! I remember a huge argument some years ago about what the speed of light is in furlongs per fortnight. It was a hoot!</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Thanks!</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">========</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Bill Gee</p>
<br /><br /><br /><br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">On Monday, December 27, 2021 3:56:04 PM CST Olly Betts wrote:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> On Sat, Dec 25, 2021 at 08:50:26AM -0600, Bill Gee wrote:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > 1) Does Therion also recognize the BACKTAPE data type?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> It seems not - there's no match in the source code repo for:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> git grep -i BACKTAPE</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > 2) What does Survex do if both TAPE and BACKTAPE are given? Does it</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > average the two readings? Does Therion do the same thing?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Survex warns if they differ by more than 3 standard deviations, and then</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> takes the mean of the readings.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > I understand that Therion will use Survex to reduce the centerline</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > data - if Survex is installed. In case Survex is NOT installed, then</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Therion reduces the centerline itself. As a result they might handle</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > this situation differently.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Also, Therion generates a .svx file behind the scenes, but not</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> necessarily the .svx file you'd write yourself given the same data.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> For example, I think Therion collapses backsights to a single reading</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> itself before processing with Survex.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > As I write this, another related question occurred to me. When either</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Therion or Survex averages a forward and backward reading, how many</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > significant digits does it carry in the calculation? Can the</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > significant digits be changed?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Survex uses double precision for this:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> https://en.wikipedia.org/wiki/Double-precision_floating-point_format</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> That has 15-17 significant decimal digits - i.e. many more than matter</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> here.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Using more precision seems overkill.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> If you really want to use fewer it should be possible to build cavern</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> to use single precision, but I don't think anyone actually does this.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> We made it an option as decades ago it seemed you might want to do this</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> to reduce memory usage (4 bytes per floating point number instead of 8)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> but cavern's memory use is very modest by modern standards, and single</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> precision only gives 6-9 significant decimal digits, which isn't even</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> enough to reliably store a UTM Northing to the nearest metre so you'd be</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> limited in what coordinate systems you could use in such a build.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> I don't see why you'd want to be able to dynamically force rounding to</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> fewer significant figures - what's the benefit?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Downsides of rounding are it would slow things down a bit, and it risks</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> introducing systematic biases - a dumb example to make the issue</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> clearer: if all readings are to the nearest inch and you round the</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> average to the nearest inch and always round 0.5 up, then then assuming</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> an even distribution there's an average bias of +0.25 inches on each</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> tape reading. The problem with systematic biases is they accumulate</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> rather than tending to cancel.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> There are other rounding schemes which try to address this sort of</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> issue (like rounding 0.5 to the nearest even number) but it's hard to be</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> certain they might not introduce a more subtle bias (some cave systems</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> have dominant direction passage develops along so the distribution is</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> may not uniform across odd and even) and there doesn't seem a compelling</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> reason to be rounding in the first place.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > And the same question applies to loop closure calculations. How many</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > significant digits are carried through the calculations?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> The same.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> The final results are then stored in the .3d file to the nearest cm</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> (that's 0.000049710 furlongs for our US readers). That precision was</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> chosen so that coordinate values will fit in a 32 bit integer, and seems</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> adequate for the final results.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Cheers,</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Olly</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<br /><br /></body>
</html>