4.16.16 y(x)2=(y(x)a)(y(x)b)(y(x)c)

ODE
y(x)2=(y(x)a)(y(x)b)(y(x)c) ODE Classification

[_quadrature]

Book solution method
Missing Variables ODE, Independent variable missing, Solve for y

Mathematica
cpu = 0.602337 (sec), leaf count = 173

{{y(x)ns(12ab(c1ix)|acab)2(asn(12ab(c1ix)|acab)2a+b)},{y(x)ns(12ab(ix+c1)|acab)2(asn(12ab(ix+c1)|acab)2a+b)}}

Maple
cpu = 0.159 (sec), leaf count = 90

{(cy(x))(by(x))(ay(x))=0,xy(x)1(_aa)(_ab)(_ac)d_a_C1=0,xy(x)1(_a+a)(_a+b)(c_a)d_a_C1=0} Mathematica raw input

DSolve[y'[x]^2 == (-a + y[x])*(-b + y[x])*(-c + y[x]),y[x],x]

Mathematica raw output

{{y[x] -> JacobiNS[(Sqrt[a - b]*((-I)*x + C[1]))/2, (a - c)/(a - b)]^2*(-a + b +
 a*JacobiSN[(Sqrt[a - b]*((-I)*x + C[1]))/2, (a - c)/(a - b)]^2)}, {y[x] -> Jaco
biNS[(Sqrt[a - b]*(I*x + C[1]))/2, (a - c)/(a - b)]^2*(-a + b + a*JacobiSN[(Sqrt
[a - b]*(I*x + C[1]))/2, (a - c)/(a - b)]^2)}}

Maple raw input

dsolve(diff(y(x),x)^2 = (y(x)-a)*(y(x)-b)*(y(x)-c), y(x),'implicit')

Maple raw output

-(c-y(x))*(b-y(x))*(a-y(x)) = 0, x-Intat(1/((_a-a)*(_a-b)*(_a-c))^(1/2),_a = y(x
))-_C1 = 0, x-Intat(-1/(-(-_a+a)*(-_a+b)*(c-_a))^(1/2),_a = y(x))-_C1 = 0