(self, line)
Override GeometryEntity.reflect since the radius
        is not a GeometryEntity.

        Examples
        ========

        >>> from sympy import Circle, Line
        >>> Circle((0, 1), 1).reflect(Line((0, 0), (1, 1)))
        Circle(Point(1, 0), -1)
        >>> from sympy import Ellipse, Line, Point
        >>> Ellipse(Point(3, 4), 1, 3).reflect(Line(Point(0, -4), Point(5, 0)))
        Traceback (most recent call last):
        ...
        NotImplementedError:
        General Ellipse is not supported but the equation of the reflected
        Ellipse is given by the zeros of: f(x, y) = (9*x/41 + 40*y/41 +
        37/41)**2 + (40*x/123 - 3*y/41 - 364/123)**2 - 1

        Notes
        =====

        Until the general ellipse (with no axis parallel to the x-axis) is
        supported a NotImplemented error is raised and the equation whose
        zeros define the rotated ellipse is given.
Override GeometryEntity.reflect since the radius
        is not a GeometryEntity.
Override GeometryEntity . reflect since the radius is not a GeometryEntity .
def reflect(self, line):
        """Override GeometryEntity.reflect since the radius
        is not a GeometryEntity.

        Examples
        ========

        >>> from sympy import Circle, Line
        >>> Circle((0, 1), 1).reflect(Line((0, 0), (1, 1)))
        Circle(Point(1, 0), -1)
        >>> from sympy import Ellipse, Line, Point
        >>> Ellipse(Point(3, 4), 1, 3).reflect(Line(Point(0, -4), Point(5, 0)))
        Traceback (most recent call last):
        ...
        NotImplementedError:
        General Ellipse is not supported but the equation of the reflected
        Ellipse is given by the zeros of: f(x, y) = (9*x/41 + 40*y/41 +
        37/41)**2 + (40*x/123 - 3*y/41 - 364/123)**2 - 1

        Notes
        =====

        Until the general ellipse (with no axis parallel to the x-axis) is
        supported a NotImplemented error is raised and the equation whose
        zeros define the rotated ellipse is given.

        """
        def _uniquely_named_symbol(xname, *exprs):
            """Return a symbol which, when printed, will have a name unique
            from any other already in the expressions given. The name is made
            unique by prepending underscores.
            """
            prefix = '%s'
            x = prefix % xname
            syms = set.union(*[e.free_symbols for e in exprs])
            while any(x == str(s) for s in syms):
                prefix = '_' + prefix
                x = prefix % xname
            return _symbol(x)

        if line.slope in (0, oo):
            c = self.center
            c = c.reflect(line)
            return self.func(c, -self.hradius, self.vradius)
        else:
            x, y = [_uniquely_named_symbol(name, self, line) for name in 'xy']
            expr = self.equation(x, y)
            p = Point(x, y).reflect(line)
            result = expr.subs(zip((x, y), p.args
                               ), simultaneous=True)
            raise NotImplementedError(filldedent(
                'General Ellipse is not supported but the equation '
                'of the reflected Ellipse is given by the zeros of: ' +
                "f(%s, %s) = %s" % (str(x), str(y), str(result))))
def reflect ( self , line ) : def _uniquely_named_symbol ( xname , * exprs ) : """Return a symbol which, when printed, will have a name unique
            from any other already in the expressions given. The name is made
            unique by prepending underscores.
            """ prefix = '%s' x = prefix % xname syms = set . union ( * [ e . free_symbols for e in exprs ] ) while any ( x == str ( s ) for s in syms ) : prefix = '_' + prefix x = prefix % xname return _symbol ( x ) if line . slope in ( 0 , oo ) : c = self . center c = c . reflect ( line ) return self . func ( c , - self . hradius , self . vradius ) else : x , y = [ _uniquely_named_symbol ( name , self , line ) for name in 'xy' ] expr = self . equation ( x , y ) p = Point ( x , y ) . reflect ( line ) result = expr . subs ( zip ( ( x , y ) , p . args ) , simultaneous = True ) raise NotImplementedError ( filldedent ( 'General Ellipse is not supported but the equation ' 'of the reflected Ellipse is given by the zeros of: ' + "f(%s, %s) = %s" % ( str ( x ) , str ( y ) , str ( result ) ) ) )