def hyper_algorithm(f, x, k, order=4):
 g = Function('g')
 des = []
 sol = None
 for (DE, i) in simpleDE(f, x, g, order):
  if (DE is not None):
   sol = solve_de(f, x, DE, i, g, k)
  if sol:
   return sol
  if (not DE.free_symbols.difference({x})):
   des.append(DE)
 for DE in des:
  sol = _solve_simple(f, x, DE, g, k)
  if sol:
   return sol

def hyper_algorithm ( f , x , k , order = 4 ) : g = Function ( 'g' ) des = [ ] sol = None for ( DE , i ) in simpleDE ( f , x , g , order ) : if ( DE is not None ) : sol = solve_de ( f , x , DE , i , g , k ) if sol : return sol if ( not DE . free_symbols . difference ( { x } ) ) : des . append ( DE ) for DE in des : sol = _solve_simple ( f , x , DE , g , k ) if sol : return sol
hypergeometric algorithm for computing formal power series .