ODE
\[ x (1-x y(x)) \left (1-x^2 y(x)^2\right ) y'(x)+y(x) (x y(x)+1) \left (x^2 y(x)^2+1\right )=0 \] ODE Classification
[[_homogeneous, `class G`], _rational]
Book solution method
Exact equation, integrating factor
Mathematica ✓
cpu = 0.0607449 (sec), leaf count = 34
\[\left \{\left \{y(x)\to -\frac {1}{x}\right \},\text {Solve}\left [c_1+\frac {1}{x y(x)}+2 \log (y(x))=x y(x),y(x)\right ]\right \}\]
Maple ✓
cpu = 0.021 (sec), leaf count = 51
\[ \left \{ {\frac {-2\,\ln \left ( xy \left ( x \right ) \right ) xy \left ( x \right ) -1+{x}^{2} \left ( y \left ( x \right ) \right ) ^{2}-2\,x \left ( {\it \_C1}-\ln \left ( x \right ) \right ) y \left ( x \right ) }{2\,xy \left ( x \right ) }}=0,y \left ( x \right ) =-{x}^{-1} \right \} \] Mathematica raw input
DSolve[y[x]*(1 + x*y[x])*(1 + x^2*y[x]^2) + x*(1 - x*y[x])*(1 - x^2*y[x]^2)*y'[x] == 0,y[x],x]
Mathematica raw output
{{y[x] -> -x^(-1)}, Solve[C[1] + 2*Log[y[x]] + 1/(x*y[x]) == x*y[x], y[x]]}
Maple raw input
dsolve(x*(1-x*y(x))*(1-x^2*y(x)^2)*diff(y(x),x)+(1+x*y(x))*(1+x^2*y(x)^2)*y(x) = 0, y(x),'implicit')
Maple raw output
y(x) = -1/x, 1/2*(-2*ln(x*y(x))*x*y(x)-1+x^2*y(x)^2-2*x*(_C1-ln(x))*y(x))/x/y(x)
= 0