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:
  sols = solvefunc(eq, func, order, match)
  free = eq.free_symbols
  cons = (lambda s: s.free_symbols.difference(free))
  if isinstance(sols, Expr):
   return odesimp(sols, func, order, cons(sols), hint)
  return [odesimp(s, func, order, cons(s), hint) for s in sols]
 else:
  match['simplify'] = False
  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 : sols = solvefunc ( eq , func , order , match ) free = eq . free_symbols cons = ( lambda s : s . free_symbols . difference ( free ) ) if isinstance ( sols , Expr ) : return odesimp ( sols , func , order , cons ( sols ) , hint ) return [ odesimp ( s , func , order , cons ( s ) , hint ) for s in sols ] else : match [ 'simplify' ] = False rv = _handle_Integral ( solvefunc ( eq , func , order , match ) , func , order , hint ) return rv
helper function of pdsolve that calls the respective pde functions to solve for the partial differential equations .