From dce7d006f19b087baf86c3eebf55b10f10b63752 Mon Sep 17 00:00:00 2001 From: David Hilvert Date: Thu, 25 Oct 2007 16:35:00 +0000 Subject: [PATCH] ale_fixed.h: Revise so that 'long long' only appears when necessary for a given configuration. darcs-hash:20071025163505-d1b56-7f83a16288f5367f4d37262aedea452c18c0dcc8.gz --- ale_fixed.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ale_fixed.h b/ale_fixed.h index b78528c..8ef965f 100644 --- a/ale_fixed.h +++ b/ale_fixed.h @@ -72,6 +72,7 @@ public: } }; +#if ALE_COLORS == FIXED16 class ale_fixed_16_accum { public: typedef int bits_t; @@ -89,6 +90,7 @@ public: return (bits_t) lrint(d); } }; +#endif #if ALE_COLORS == FIXED32 || ALE_COORDINATES == FIXED32 class ale_fixed_32 { @@ -879,13 +881,15 @@ template ale_fixed sqrt(ale_fixed f) { ale_fixed guess = f; + typedef typename ale_fixed::mulbits_t mulbits_t; + for (int i = 0; i < 5; i++) { guess.bits >>= 1; if (guess.bits <= 0) return 0; - long long sf = (long long) f.bits << (N - 2); + mulbits_t sf = (mulbits_t) f.bits << (N - 2); guess.bits = guess.bits + sf / guess.bits; } -- 2.11.4.GIT