On 2018-05-17 09:25 +0200, Evaristo Quiroga via Therion wrote: > El 17/05/2018 a las 0:36, Olly Betts escribió:
> I think the formula is too complicated. I purpose a simpler formula, > like: > If bearing <=180 > AverageBearing = (bearing + (backbearing > -180))/2 > else > AverageBearing = (bearing + (backbearing > +180))/2 > > Your proposed formula gives wrong answers in some cases - consider: > > bearing = 80, backbearing = 0 > > These give AverageBearing = (80 + 0 - 180) / 2 = -50 (equivalent to > 310), but this should be 130 (average of 80 and 180). > > > In this case is not a problem with my formula, is a serious magnetic anomaly > (100 degrees difference) and the program should to stop and to send a > warning. Yes a warning should probably be issued about poor data, but it _is_ a problem with your formula. It's just an example showing that all cases have to be dealt with correctly, including the wrap-around at 0/360 (or 0/400 for grads) and your simplified formula doesn't. An example with a much smaller difference between back and foresight could still be constructed to show the issue: Fore: 175, Back: 0 AverageBearing= (175+0-180)/2 = -2.5. That's wrong. It should be 177.5 in this case. Wookey -- Principal hats: Linaro, Debian, Wookware, ARM http://wookware.org/
signature.asc
Description: PGP signature
_______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion