[GRASS-dev] [GRASS GIS] #2854: results in winGRASS7 32bit vs 64bit: should they be identical?
GRASS GIS
trac at osgeo.org
Mon Feb 29 04:30:34 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:12 mmetz]:
> Replying to [comment:9 glynn]:
> > Replying to [comment:7 neteler]:
> >
> > > Doesn't this qualify for "basically identical results as much as
different architectures can achieve"?
> >
> > In theory, it should be possible to obtain identical results on any
architecture using IEEE-754 floating-point for calculations using only +,
-, *, / and sqrt() (no transcendental functions such as sin, cos, log,
exp, etc). But that may have a noticeable performance cost (e.g. using
-ffloat-store to discard excess precision, forgoing certain optimisations,
etc).
>
> According to the GCC compiler options used for WinGRASS, WinGRASS does
not necessarily adhere to IEEE-754 standards, see
[https://gcc.gnu.org/wiki/FAQ#PR323]
>
> 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.
>
> Generally, with limited fp precision,
>
> (a * b) / c != a * (b / c)
>
> I tested this with r.watershed and got differences in the range also
observed between 32bit and 64bit architectures. The differences between
architectures are thus within the expected range of floating-point
results. Identical results for different architectures could maybe
obtained with gcc -fexcess-precision=standard -std=c99.
>
> 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.
>Identical results for different architectures could maybe
obtained with gcc -fexcess-precision=standard -std=c99.
should this be tested?
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2854#comment:13>
GRASS GIS <https://grass.osgeo.org>
More information about the grass-dev
mailing list