Quadratic Bezier curve-curve intersection

curve 1: x=a2*t^2+a1*t+a0, y=b2*t^2+b1*t+b0
implicitization:
p(x, t) = a2*t^2+a1*t+(a0-x)
q(y, t) = b2*t^2+b1*t+(b0-y)
         
f(x, y)
 = |a2*b1-a1*b2         a2*(b0-y)-(a0-x)*b2|
   |a2*(b0-y)-(a0-x)*b2 a1*(b0-y)-(a0-x)*b1|
 = (a2*b1-a1*b2)*(a1*(b0-y)-(a0-x)*b1)-(a2*(b0-y)-(a0-x)*b2)^2
 = (a2*b1-a1*b2)*(b1*x+a1*y+a1*b0-a0*b1)-(b2*x-a2*y+a2*b0-a0*b2)^2
 = -b2^2*x^2+2*a2*b2*x*y-a2^2*y^2
  +(b1*(a2*b1-a1*b2)-2*b2*(a2*b0-a0*b2))*x
  +(a1*(a2*b1-a1*b2)+2*a2*(a2*b0-a0*b2))*y
  +(a2*b1-a1*b2)*(a1*b0-a0*b1)-(a2*b0-a0*b2)^2
 = A*x^2+B*x*y+C*y^2+D*x+E*y+F

curve 2: x=c2*u^2+c1*u+c0, y=d2*u^2+d1*u+d0
f(x(u), y(u))
 = A*(c2*u^2+c1*u+c0)^2+B*(c2*u^2+c1*u+c0)*(d2*u^2+d1*u+d0)
  +C*(d2*u^2+d1*u+d0)^2+D*(c2*u^2+c1*u+c0)+E*(d2*u^2+d1*u+d0)+F
 = A*(c2^2*u^4+2*c1*c2*u^3+(2*c0*c2+c1^2)*u^2+2*c0*c1*u+c0^2)
  +B*(c2*d2*u^4+(c2*d1+c1*d2)*u^3+(c2*d0+c0*d2+c1*d1)*u^2+(c1*d0+c0*d1)*u+c0*d0)
  +C*(d2^2*u^4+2*d1*d2*u^3+(2*d0*d2+d1^2)*u^2+2*d0*d1*u+d0^2)
  +D*(c2*u^2+c1*u+c0)+E*(d2*u^2+d1*u+d0)+F
 = (A*c2^2+B*c2*d2+C*d2^2)*u^4
  +(2*A*c1*c2+B*(c2*d1+c1*d2)+2*C*d1*d2)*u^3
  +(A*(2*c0*c2+c1^2)+B*(c2*d0+c0*d2+c1*d1)+C*(2*d0*d2+d1^2)+D*c2+E*d2)*u^2
  +(2*A*c0*c1+B*(c1*d0+c0*d1)+2*C*d0*d1+D*c1+E*d1)*u
  +(A*c0^2+B*c0*d0+C*d0^2+D*c0+E*d0+F)