Ticket #1405 (new defect)
[PATCH] Direct floating point values comparison in r.terraflow
| Reported by: | dron | Owned by: | grass-dev@… |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Raster | Version: | svn-trunk |
| Keywords: | r.terraflow | Cc: | |
| Platform: | Unspecified | CPU: | Unspecified |
Description
r.terraflow module does direct comparison of two floating point values. This is wrong and results in emergency exit with "cell file resolution differs from current region" message. There is a trivial patch fixing that:
--- main.cc (revision 47154)
+++ main.cc (working copy)
@@ -216,8 +216,8 @@
G_fatal_error(_("Cannot read header of [%s]"), cellname);
/* check compatibility with module region */
- if (!((region->ew_res == cell_hd.ew_res)
- && (region->ns_res == cell_hd.ns_res))) {
+ if (!(fabs(region->ew_res - cell_hd.ew_res) < 0.0000001
+ && fabs(region->ns_res - cell_hd.ns_res) < 0.0000001)) {
G_fatal_error(_("cell file %s resolution differs from current region"),
cellname);
} else {
Applicable for 6.4, 6.5 and 7.0 branches.
Best regards,
Andrey
Change History
Note: See
TracTickets for help on using
tickets.
