We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
((lat2-lat1)*BETA*(lat2-lat1)*BETA + (long2-long1)*delta*(long2-long1)*delta)
I'm writing some C code and I am getting some screwy results. Basically lat1, lat2, long1, long2 are all latitudes and longitudes in radians, delta is another precalculated parameter. BETA is a defined constant.
As far as I can tell this code always results in an answer equal to BETA regardless of changing inputs. Additionally when I brake out the two addition terms: (lat2-lat1)*BETA*(lat2-lat1)*BETA and (long2-long1)*delta*(long2-long1)*delta), and compute them separately I get a result of "0". I have been trying to wrap my head around what is wrong without success for a day now. Any suggestions for things to try would be appreciated.
Thanks in advance.
Without using pow() I could not get valid results for computing the hypotenuse...
So are you telling us that not only did you observe a difference between pow(x,2) and x*x here, but pow(x,2) was closer to correct? Now that would be seriously worrying. If there's a difference at all, it's pow() that should be less precise than simple multiplication.
What were the actual results for both methods?
What I mean by invalid results was the same supposed cancellation problem we were discussing before. x*x resulted in a 0 answer where pow(x,2) gave me an acceptable result.