def adjust_to_within_bounds(cent: np.ndarray, eps: np.ndarray) -> tuple[np.ndarray, np.ndarray]:
        """
        Simple helper function to pre-process and adjust zonotope values to be within 0 - 1 range.
        This is written with image data from MNIST and CIFAR10 in mind using L-infty bounds.
        Each feature here starts with a single eps term.
        Users can implement custom pre-processors tailored to their data if it does not conform to these requirements.

        :param cent: original feature values between 0 - 1
        :param eps: the zonotope error terms.
        :return: adjusted center and eps values if center + eps exceed 1 or if center - eps falls below 0.
        """
        for j in range(cent.shape[1]):
            # we assume that each feature will start with just a single eps term
            row_of_eps = np.argmax(eps[:, j])
            if cent[:, j] < eps[row_of_eps, j]:
                eps[row_of_eps, j] = (eps[row_of_eps, j] + cent[:, j]) / 2
                cent[:, j] = eps[row_of_eps, j]
            elif cent[:, j] > (1 - eps[row_of_eps, j]):
                eps[row_of_eps, j] = (eps[row_of_eps, j] + (1 - cent[:, j])) / 2
                cent[:, j] = 1 - eps[row_of_eps, j]

        return cent, eps

        Simple helper function to pre-process and adjust zonotope values to be within 0 - 1 range.
        This is written with image data from MNIST and CIFAR10 in mind using L-infty bounds.
        Each feature here starts with a single eps term.
        Users can implement custom pre-processors tailored to their data if it does not conform to these requirements.

        :param cent: original feature values between 0 - 1
        :param eps: the zonotope error terms.
        :return: adjusted center and eps values if center + eps exceed 1 or if center - eps falls below 0.
        
art/estimators/certification/deep_z/deep_z.py