[mkgmap-dev] Question reg. LinePreparer
From GerdP gpetermann_muenchen at hotmail.com on Tue Feb 5 13:09:32 GMT 2013
Hi Steve, thanks, I did also find no better explanation. Maybe at that time it was possible that a very long way was passed to LinePreparer. Gerd Steve Ratcliffe wrote > On 05/02/13 07:38, GerdP wrote: >> Hi, >> >> I simply copied it to the LinePreparerFilter, but what is the idea behind >> this code in LinePreparer? >> >> // compute normalized differences >> // -2^(shift-1) <= dx, dy < 2^(shift-1) >> // XXX: relies on the fact that java integers are 32 bit signed >> final int offset = 8+shift; >> int dx = (lon - lastLong) << offset >> offset; >> int dy = (lat - lastLat) << offset >> offset; >> >> I don't understand the comment. Why are the values shifted left and >> right? >> While debugging I did not see a case where this changed the result. > > The code is to sign extend the value. So if shift was 0 (24 bit value) > then 0x00800000 would become 0xff800000 or 0x01000000 would become > 0x00000000. > > Does this ever happen? I can't remember any problem it was fixing, but > the code was previously just the simple "dx = (lon - lastLong)" > and then Robert added the shifts, so it was probably in response > to an observed problem. However there isn't any reason mentioned > in the commit message, nor in any mailing list message around the > time of the commit that I can see. > > It is only going to happen either for very large differences that > overflow the bit range that they should occupy, or if the input values > are sometimes already sign extended and sometimes not. Or for some > other reason I haven't thought of! > > ..Steve > _______________________________________________ > mkgmap-dev mailing list > mkgmap-dev at .org > http://lists.mkgmap.org.uk/mailman/listinfo/mkgmap-dev -- View this message in context: http://gis.19327.n5.nabble.com/Question-reg-LinePreparer-tp5748142p5748192.html Sent from the Mkgmap Development mailing list archive at Nabble.com.
- Previous message: [mkgmap-dev] Question reg. LinePreparer
- Next message: [mkgmap-dev] [PATCH v1] Ensure that only 0xc bits can be configured with poiDispFlags in LocatorConfig.xml
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list