def __call__(
        self, x: np.ndarray, column_pos: int | list | None = None, row_pos: int | list | None = None
    ) -> np.ndarray:
        """
        Ablate the image x at location specified by "column_pos" for the case of column ablation or at the location
        specified by "column_pos" and "row_pos" in the case of block ablation.

        :param x: input image.
        :param column_pos: column position to specify where to retain the image
        :param row_pos: row position to specify where to retain the image. Not used for ablation type "column".
        """
        raise NotImplementedError

        Ablate the image x at location specified by "column_pos" for the case of column ablation or at the location
        specified by "column_pos" and "row_pos" in the case of block ablation.

        :param x: input image.
        :param column_pos: column position to specify where to retain the image
        :param row_pos: row position to specify where to retain the image. Not used for ablation type "column".
        
art/estimators/certification/derandomized_smoothing/ablators/ablate.py