'Construct new ``RootSum`` instance.'

@classmethod
def new(cls, poly, func, auto=True):

    if (not func.expr.has(*func.variables)):
        return func.expr
    rational = cls._is_func_rational(poly, func)
    if ((not rational) or (not auto)):
        return cls._new(poly, func, auto)
    else:
        return cls._rational_case(poly, func)
