[[_1st_order, `_with_symmetry_[F(x),G(x)*y+H(x)]`]]
Book solution method
Binomial equation
Mathematica ✓
cpu = 0.239171 (sec), leaf count = 243
Maple ✓
cpu = 0.396 (sec), leaf count = 212
DSolve[f[x]*(-a + y[x])*(-b + y[x]) + y'[x]^2 == 0,y[x],x]
Mathematica raw output
{{y[x] -> (-(a^2*E^(C[1] + Integrate[(-I)*Sqrt[f[K[1]]], {K[1], 1, x}])) - E^(-C
[1] - Integrate[(-I)*Sqrt[f[K[1]]], {K[1], 1, x}])*(-1 + b*E^(C[1] + Integrate[(
-I)*Sqrt[f[K[1]]], {K[1], 1, x}]))^2 + 2*a*(1 + b*E^(C[1] + Integrate[(-I)*Sqrt[
f[K[1]]], {K[1], 1, x}])))/4}, {y[x] -> (-(a^2*E^(C[1] + Integrate[I*Sqrt[f[K[2]
]], {K[2], 1, x}])) - E^(-C[1] - Integrate[I*Sqrt[f[K[2]]], {K[2], 1, x}])*(-1 +
b*E^(C[1] + Integrate[I*Sqrt[f[K[2]]], {K[2], 1, x}]))^2 + 2*a*(1 + b*E^(C[1] +
Integrate[I*Sqrt[f[K[2]]], {K[2], 1, x}])))/4}}
Maple raw input
dsolve(diff(y(x),x)^2+f(x)*(y(x)-a)*(y(x)-b) = 0, y(x),'implicit')
Maple raw output
((y(x)-a)*(y(x)-b))^(1/2)/(y(x)-a)^(1/2)/(y(x)-b)^(1/2)*ln(-1/2*a-1/2*b+y(x)+(y(
x)^2+(-a-b)*y(x)+a*b)^(1/2))+Intat(-(-f(_a)*(a-y(x))*(b-y(x)))^(1/2)/(y(x)-a)^(1
/2)/(y(x)-b)^(1/2),_a = x)+_C1 = 0, ((y(x)-a)*(y(x)-b))^(1/2)/(y(x)-a)^(1/2)/(y(
x)-b)^(1/2)*ln(-1/2*a-1/2*b+y(x)+(y(x)^2+(-a-b)*y(x)+a*b)^(1/2))+Intat((-f(_a)*(
a-y(x))*(b-y(x)))^(1/2)/(y(x)-a)^(1/2)/(y(x)-b)^(1/2),_a = x)+_C1 = 0