<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def __compare_parameters(self, width, height, zoom, parameters):
 """Compare parameters for equality Checks if a cached image is existing, the the dimensions agree and finally if the properties are equal. If so, True is returned, else False, :param width: The width of the image :param height: The height of the image :param zoom: The current scale/zoom factor :param parameters: The parameters used for the image :return: True if all parameters are equal, False else """


        # Deactivated caching
        if not global_gui_config.get_config_value('ENABLE_CACHING', True):
            return False

        # Empty cache
        if not self.__image:
            return False

        # Changed image size
        if self.__width != width or self.__height != height:
            return False

        # Current zoom greater then prepared zoom
        if zoom > self.__zoom * self.__zoom_multiplicator:
            return False

        # Current zoom much smaller than prepared zoom, causes high memory usage and imperfect anti-aliasing
        if zoom < self.__zoom / self.__zoom_multiplicator:
            return False

        # Changed drawing parameter
        for key in parameters:
            try:
                if key not in self.__last_parameters or self.__last_parameters[key] != parameters[key]:
                    return False
            except (AttributeError, ValueError):
                # Some values cannot be compared and raise an exception on comparison (e.g. numpy.ndarray). In this
                # case, just return False and do not cache.
                try:
                    # Catch at least the ndarray-case, as this could occure relatively often
                    import numpy
                    if isinstance(self.__last_parameters[key], numpy.ndarray):
                        return numpy.array_equal(self.__last_parameters[key], parameters[key])
                except ImportError:
                    return False
                return False

        return True