'Generator filtering args.
first standard filter, for cls.zero and cls.identity.
Also reshape Max(a, Max(b, c)) to Max(a, b, c),
and check arguments for comparability'

@classmethod
def _new_args_filter(cls, arg_sequence):

    for arg in arg_sequence:
        if ((not isinstance(arg, Expr)) or (arg.is_real is False) or (arg is S.ComplexInfinity)):
            raise ValueError(("The    argument    '%s'    is    not    comparable." % arg))
        if (arg == cls.zero):
            raise ShortCircuit(arg)
        elif (arg == cls.identity):
            continue
        elif (arg.func == cls):
            for x in arg.args:
                (yield x)
        else:
            (yield arg)
