[GRASS-dev] [GRASS GIS] #2854: results in winGRASS7 32bit vs 64bit: should they be identical?

GRASS GIS trac at osgeo.org
Wed Mar 2 14:55:07 PST 2016


#2854: results in winGRASS7 32bit vs 64bit: should they be identical?
---------------------+---------------------------------
  Reporter:  hellik  |      Owner:  grass-dev@…
      Type:  defect  |     Status:  new
  Priority:  normal  |  Milestone:  7.0.4
 Component:  Raster  |    Version:  svn-releasebranch70
Resolution:          |   Keywords:
       CPU:  x86-64  |   Platform:  MSWindows 7
---------------------+---------------------------------

Comment (by hellik):

 Replying to [comment:14 glynn]:
 > Replying to [comment:12 mmetz]:
 >
 > > The results are thus as precise as requested per GCC compiler options
 for the given architecture. The same GCC compiler options can lead to
 different results under different architectures.
 >
 > There should be some set of options which produce the correct result on
 any architecture which uses IEEE-754.
 >
 > > Generally, with limited fp precision,
 > >
 > > (a * b) / c != a * (b / c)
 >
 > This shouldn't be relevant. The source code won't change between
 architectures, and gcc shouldn't perform such approximations unless
 specifically requested via -ffast-math or similar (apparently -Ofast
 enables this, but none of the numbered optimisation levels do).
 >
 > The main issue which occurs with the default options is excess
 precision. The x87 FPU uses 80 bits by default; you need to use e.g.
 -ffloat-store or -fexcess-precision=standard to force the result to be
 rounded to 64 bits. SSE always rounds to 64 bits.
 >
 > > In other words, the results obtained with WinGRASS 32bit and WinGRASS
 64bit are both correct, even if they differ from each other. The results
 are as precise as possible / as requested.
 >
 > The issue is how you test for correctness. You can either build for
 deterministic calculation so that exact equality comparisons will work, or
 you can use a tolerance. The latter option requires case-by-case analysis
 (see point 4 in comment:9).

 some tests shows that some examples in manuals (modules and addons) seems
 not to work due to this issue in winGRASS 7 64-it.

 what what be a usable solution?

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2854#comment:15>
GRASS GIS <https://grass.osgeo.org>



More information about the grass-dev mailing list