def zonotope_get_bounds(self, cent: "torch.Tensor", eps: "torch.Tensor") -> tuple[list, list]:
        """
        Compute the upper and lower bounds for the final zonotopes

        :param cent: center/zeroth zonotope term.
        :param eps: zonotope error terms.
        :return: lists with the upper and lower bounds.
        """
        upper_bounds_output = []
        lower_bounds_output = []

        for j in range(cent.shape[0]):
            # compute lower bounds
            lbs = self.compute_lb(eps=eps[:, j], cent=cent[j])
            # compute upper bounds
            ubs = self.compute_ub(eps=eps[:, j], cent=cent[j])

            upper_bounds_output.append(ubs)
            lower_bounds_output.append(lbs)
        return upper_bounds_output, lower_bounds_output

        Compute the upper and lower bounds for the final zonotopes

        :param cent: center/zeroth zonotope term.
        :param eps: zonotope error terms.
        :return: lists with the upper and lower bounds.
        
art/estimators/certification/deep_z/deep_z.py