summaryrefslogtreecommitdiff
path: root/src/base/ftbbox.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/ftbbox.c')
-rw-r--r--src/base/ftbbox.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/base/ftbbox.c b/src/base/ftbbox.c
index 8a240ef29..64f06f469 100644
--- a/src/base/ftbbox.c
+++ b/src/base/ftbbox.c
@@ -412,11 +412,11 @@
/* These values must fit into a single 16.16 value. */
/* */
/* We normalize a, b, and c to `8.16' fixed-point values to ensure */
- /* that its product is held in a `16.16' value. Necessarily, */
- /* we need to shift `a', `b', and `c' so that the most significant */
- /* bit of their absolute values is at _most_ at position 23. */
+ /* that their product is held in a `16.16' value including the sign. */
+ /* Necessarily, we need to shift `a', `b', and `c' so that the most */
+ /* significant bit of their absolute values is at position 22. */
/* */
- /* This also means that we are using 24 bits of precision to compute */
+ /* This also means that we are using 23 bits of precision to compute */
/* the zeros, independently of the range of the original polynomial */
/* coefficients. */
/* */
@@ -427,11 +427,11 @@
shift = FT_MSB( FT_ABS( a ) | FT_ABS( b ) | FT_ABS( c ) );
- if ( shift > 23 )
+ if ( shift > 22 )
{
- shift -= 23;
+ shift -= 22;
- /* this loses some bits of precision, but we use 24 of them */
+ /* this loses some bits of precision, but we use 23 of them */
/* for the computation anyway */
a >>= shift;
b >>= shift;
@@ -439,7 +439,7 @@
}
else
{
- shift = 23 - shift;
+ shift = 22 - shift;
a <<= shift;
b <<= shift;