(eq, hint, match, simplify=True, **kwargs)
r"""
    Helper function of dsolve that calls the respective
    :py:mod:`~sympy.solvers.ode` functions to solve for the ordinary
    differential equations. This minimises the computation in calling
    :py:meth:`~sympy.solvers.deutils._desolve` multiple times.
r"""
    Helper function of dsolve that calls the respective
    :py:mod:`~sympy.solvers.ode` functions to solve for the ordinary
    differential equations. This minimises the computation in calling
    :py:meth:`~sympy.solvers.deutils._desolve` multiple times.
r Helper function of dsolve that calls the respective : py : mod : ~sympy . solvers . ode functions to solve for the ordinary differential equations . This minimises the computation in calling : py : meth : ~sympy . solvers . deutils . _desolve multiple times .
def _helper_simplify(eq, hint, match, simplify=True, **kwargs):
    r"""
    Helper function of dsolve that calls the respective
    :py:mod:`~sympy.solvers.ode` functions to solve for the ordinary
    differential equations. This minimises the computation in calling
    :py:meth:`~sympy.solvers.deutils._desolve` multiple times.
    """
    r = match
    if hint.endswith('_Integral'):
        solvefunc = globals()['ode_' + hint[:-len('_Integral')]]
    else:
        solvefunc = globals()['ode_' + hint]
    func = r['func']
    order = r['order']
    match = r[hint]

    if simplify:
        # odesimp() will attempt to integrate, if necessary, apply constantsimp(),
        # attempt to solve for func, and apply any other hint specific
        # simplifications
        sols = solvefunc(eq, func, order, match)
        free = eq.free_symbols
        cons = lambda s: s.free_symbols.difference(free)
        if isinstance(sols, C.Expr):
            return odesimp(sols, func, order, cons(sols), hint)
        return [odesimp(s, func, order, cons(s), hint) for s in sols]
    else:
        # We still want to integrate (you can disable it separately with the hint)
        match['simplify'] = False  # Some hints can take advantage of this option
        rv = _handle_Integral(solvefunc(eq, func, order, match),
            func, order, hint)
        return rv
def _helper_simplify ( eq , hint , match , simplify = True , * * kwargs ) : r = match if hint . endswith ( '_Integral' ) : solvefunc = globals ( ) [ 'ode_' + hint [ : - len ( '_Integral' ) ] ] else : solvefunc = globals ( ) [ 'ode_' + hint ] func = r [ 'func' ] order = r [ 'order' ] match = r [ hint ] if simplify : # odesimp() will attempt to integrate, if necessary, apply constantsimp(), # attempt to solve for func, and apply any other hint specific # simplifications sols = solvefunc ( eq , func , order , match ) free = eq . free_symbols cons = lambda s : s . free_symbols . difference ( free ) if isinstance ( sols , C . Expr ) : return odesimp ( sols , func , order , cons ( sols ) , hint ) return [ odesimp ( s , func , order , cons ( s ) , hint ) for s in sols ] else : # We still want to integrate (you can disable it separately with the hint) match [ 'simplify' ] = False # Some hints can take advantage of this option rv = _handle_Integral ( solvefunc ( eq , func , order , match ) , func , order , hint ) return rv