summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNicolas Schodet2010-05-10 23:55:10 +0200
committerNicolas Schodet2010-05-10 23:55:10 +0200
commitcca3dc8353a2c0a9ebb66db7182601bd3d85cb3c (patch)
tree4583216d7008bc12a2f4a994484286517a22a009
parent3c4f6210a57a33d16feafa2f9aed4def4252b02f (diff)
digital/avr/modules/math/geometry: fix overflow on avr
-rw-r--r--digital/avr/modules/math/geometry/distance.c4
-rw-r--r--digital/avr/modules/math/geometry/vect.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/digital/avr/modules/math/geometry/distance.c b/digital/avr/modules/math/geometry/distance.c
index 348087fd..f8bb7c1f 100644
--- a/digital/avr/modules/math/geometry/distance.c
+++ b/digital/avr/modules/math/geometry/distance.c
@@ -31,8 +31,8 @@
int16_t
distance_point_point (vect_t *a, vect_t *b)
{
- int16_t dx = b->x - a->x;
- int16_t dy = b->y - a->y;
+ int32_t dx = b->x - a->x;
+ int32_t dy = b->y - a->y;
return fixed_sqrt_ui32 (dx * dx + dy * dy);
}
diff --git a/digital/avr/modules/math/geometry/vect.c b/digital/avr/modules/math/geometry/vect.c
index 821f6844..dbc065f9 100644
--- a/digital/avr/modules/math/geometry/vect.c
+++ b/digital/avr/modules/math/geometry/vect.c
@@ -70,7 +70,7 @@ vect_value_t
vect_norm (const vect_t *v)
{
assert (v);
- int16_t tx = v->x, ty = v->y;
+ int32_t tx = v->x, ty = v->y;
return fixed_sqrt_ui32 (tx * tx + ty * ty);
}