[Pixman] [PATCH 13/15] pixman-filter: refactor cubic polynominal and don't range check
Oded Gabbay
oded.gabbay at gmail.com
Tue Dec 22 04:38:05 PST 2015
On Sat, Dec 12, 2015 at 8:06 PM, <spitzak at gmail.com> wrote:
> From: Bill Spitzak <spitzak at gmail.com>
>
> The other filters do not check for x being in range, so there is
> no reason for cubic to do so.
This argument is a bit problematic.
We could also argue that this filter was actually implemented
correctly/more robust and we should add checks for x to the other
filters.
I fail to see how this saves us much except from removing a condition
in a very specific path.
Do you argue that ax will never ever be >=2 ?
Oded
> ---
> pixman/pixman-filter.c | 16 +++++++---------
> 1 file changed, 7 insertions(+), 9 deletions(-)
>
> diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c
> index 7e10108..bf9dce3 100644
> --- a/pixman/pixman-filter.c
> +++ b/pixman/pixman-filter.c
> @@ -109,18 +109,16 @@ general_cubic (double x, double B, double C)
>
> if (ax < 1)
> {
> - return ((12 - 9 * B - 6 * C) * ax * ax * ax +
> - (-18 + 12 * B + 6 * C) * ax * ax + (6 - 2 * B)) / 6;
> - }
> - else if (ax >= 1 && ax < 2)
> - {
> - return ((-B - 6 * C) * ax * ax * ax +
> - (6 * B + 30 * C) * ax * ax + (-12 * B - 48 * C) *
> - ax + (8 * B + 24 * C)) / 6;
> + return (((12 - 9 * B - 6 * C) * ax +
> + (-18 + 12 * B + 6 * C)) * ax * ax +
> + (6 - 2 * B)) / 6;
> }
> else
> {
> - return 0;
> + return ((((-B - 6 * C) * ax +
> + (6 * B + 30 * C)) * ax +
> + (-12 * B - 48 * C)) * ax +
> + (8 * B + 24 * C)) / 6;
> }
> }
>
> --
> 1.9.1
>
> _______________________________________________
> Pixman mailing list
> Pixman at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/pixman
More information about the Pixman
mailing list