

@timeit
def _meijerint_definite_4(f, x, only_double=False):
    '\n    Try to integrate f dx from zero to infinity.\n\n    This function tries to apply the integration theorems found in literature,\n    i.e. it tries to rewrite f as either one or a product of two G-functions.\n\n    The parameter ``only_double`` is used internally in the recursive algorithm\n    to disable trying to rewrite f as a single G-function.\n    '
    _debug('Integrating', f)
    if (not only_double):
        gs = _rewrite1(f, x, recursive=False)
        if (gs is not None):
            (fac, po, g, cond) = gs
            _debug('Could rewrite as single G function:', fac, po, g)
            res = S(0)
            for (C, s, f) in g:
                if (C == 0):
                    continue
                (C, f) = _rewrite_saxena_1((fac * C), (po * (x ** s)), f, x)
                res += (C * _int0oo_1(f, x))
                cond = And(cond, _check_antecedents_1(f, x))
                if (cond == False):
                    break
            cond = _my_unpolarify(cond)
            if (cond == False):
                _debug('But cond is always False.')
            else:
                _debug('Result before branch substitutions is:', res)
                return (_my_unpolarify(hyperexpand(res)), cond)
    gs = _rewrite2(f, x)
    if (gs is not None):
        for full_pb in [False, True]:
            (fac, po, g1, g2, cond) = gs
            _debug('Could rewrite as two G functions:', fac, po, g1, g2)
            res = S(0)
            for (C1, s1, f1) in g1:
                for (C2, s2, f2) in g2:
                    r = _rewrite_saxena(((fac * C1) * C2), (po * (x ** (s1 + s2))), f1, f2, x, full_pb)
                    if (r is None):
                        _debug('Non-rational exponents.')
                        return
                    (C, f1_, f2_) = r
                    _debug('Saxena subst for yielded:', C, f1_, f2_)
                    cond = And(cond, _check_antecedents(f1_, f2_, x))
                    if (cond == False):
                        break
                    res += (C * _int0oo(f1_, f2_, x))
                else:
                    continue
                break
            cond = _my_unpolarify(cond)
            if (cond == False):
                _debug(('But cond is always False (full_pb=%s).' % full_pb))
            else:
                _debug('Result before branch substitutions is:', res)
                if only_double:
                    return (res, C)
                return (_my_unpolarify(hyperexpand(res)), cond)

dataset/ETHPy150Open sympy/sympy/sympy/integrals/meijerint.py _meijerint_definite_4/VarMisuse@497/840 `cond`->`C`