def contains_point(self, x, y):
        """
        :param x: x coordinate of a point
        :param y: y coordinate of a point
        :returns: True if the point (x, y) is on the curve, False otherwise
        """
        if x is None and y is None:
            return True
        return (y * y - (x * x * x + self._a * x + self._b)) % self._p == 0