def ode_separable(eq, func, order, match):
 x = func.args[0]
 f = func.func
 C1 = get_numbered_constants(eq, num=1)
 r = match
 u = r.get('hint', f(x))
 return Eq(Integral(((r['m2']['coeff'] * r['m2'][r['y']]) / r['m1'][r['y']]), (r['y'], None, u)), (Integral((((- r['m1']['coeff']) * r['m1'][x]) / r['m2'][x]), x) + C1))

def ode_separable ( eq , func , order , match ) : x = func . args [ 0 ] f = func . func C1 = get_numbered_constants ( eq , num = 1 ) r = match u = r . get ( 'hint' , f ( x ) ) return Eq ( Integral ( ( ( r [ 'm2' ] [ 'coeff' ] * r [ 'm2' ] [ r [ 'y' ] ] ) / r [ 'm1' ] [ r [ 'y' ] ] ) , ( r [ 'y' ] , None , u ) ) , ( Integral ( ( ( ( - r [ 'm1' ] [ 'coeff' ] ) * r [ 'm1' ] [ x ] ) / r [ 'm2' ] [ x ] ) , x ) + C1 ) )
solves separable 1st order differential equations .