Skip to content

Instantly share code, notes, and snippets.

@veltman
Last active May 12, 2016 18:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save veltman/dea15a7cced808ccc6c022c0e70cb12e to your computer and use it in GitHub Desktop.
Save veltman/dea15a7cced808ccc6c022c0e70cb12e to your computer and use it in GitHub Desktop.
Projective mapping between two quadrilaterals (the long version)
// Start and end should each be arrays of four [x,y] points
// Returns a projection function that takes an [x,y] point and returns the warped point
// See: http://graphics.cs.cmu.edu/courses/15-463/2010_fall/Papers/proj.pdf
function warper(start,end) {
var u0 = start[0][0],
v0 = start[0][1],
u1 = start[1][0],
v1 = start[1][1],
u2 = start[2][0],
v2 = start[2][1],
u3 = start[3][0],
v3 = start[3][1],
x0 = end[0][0],
y0 = end[0][1],
x1 = end[1][0],
y1 = end[1][1],
x2 = end[2][0],
y2 = end[2][1],
x3 = end[3][0],
y3 = end[3][1];
// Comically verbose arithmetic resulting from a symbolically inverted and multiplied matrix (computed with sympy, not by hand)
var a = x0*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*x0/u0 - v0*(-v1*x1 + u1*v0*x0/u0)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - (u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + 1/u0 + u1*v0/(Math.pow(u0,2)*(v1 - u1*v0/u0))) + x1*(-u0*(u0*v1 - u1*v0)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*x0/u0 - v0*(-v1*x1 + u1*v0*x0/u0)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + (v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - v0/(u0*(v1 - u1*v0/u0))) + x2*(u0*Math.pow(u0*v1 - u1*v0,2)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - u0*Math.pow(u0*v1 - u1*v0,2)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*x0/u0 - v0*(-v1*x1 + u1*v0*x0/u0)/(u0*(v1 - u1*v0/u0)))/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + x3*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*x0/u0 - v0*(-v1*x1 + u1*v0*x0/u0)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) - y0*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*x0/u0 - v0*(-v1*x1 + u1*v0*x0/u0)/(u0*(v1 - u1*v0/u0)))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) - y1*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*x0/u0 - v0*(-v1*x1 + u1*v0*x0/u0)/(u0*(v1 - u1*v0/u0)))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) + y2*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*x0/u0 - v0*(-v1*x1 + u1*v0*x0/u0)/(u0*(v1 - u1*v0/u0)))/((u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - y3*(-u0*(u0*v1 - u1*v0)*(-x0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*x0 - u1*x1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*x0/u0 - v0*(-v1*x1 + u1*v0*x0/u0)/(u0*(v1 - u1*v0/u0)))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0),
b = x0*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - (1 - u1/u0)*(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - u1/(u0*(v1 - u1*v0/u0))) + x1*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + (1 - u1/u0)*(v2 - u2*v0/u0)*(u0*v1 - u1*v0)/(Math.pow(v1 - u1*v0/u0,2)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + 1/(v1 - u1*v0/u0)) + x2*(u0*Math.pow(u0*v1 - u1*v0,2)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - u0*Math.pow(u0*v1 - u1*v0,2)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - (1 - u1/u0)*(u0*v1 - u1*v0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))) + x3*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) - y0*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) - y1*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) + y2*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0))/((u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - y3*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0),
c = x0*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + (u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + x1*(-u0*Math.pow(u0*v1 - u1*v0,2)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - (v2 - u2*v0/u0)*(u0*v1 - u1*v0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))) + x2*(u0*Math.pow(u0*v1 - u1*v0,3)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - u0*Math.pow(u0*v1 - u1*v0,2)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + (u0*v1 - u1*v0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + x3*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) - y0*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) - y1*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) + y2*(u0*v1 - u1*v0)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - y3*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*x0 - u2*x2 - (v2 - u2*v0/u0)*(u1*x0 - u1*x1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0),
d = x0*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*y0/u0 - v0*(-v1*y1 + u1*v0*y0/u0)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + x1*(-u0*(u0*v1 - u1*v0)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*y0/u0 - v0*(-v1*y1 + u1*v0*y0/u0)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + x2*(u0*Math.pow(u0*v1 - u1*v0,2)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - u0*Math.pow(u0*v1 - u1*v0,2)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*y0/u0 - v0*(-v1*y1 + u1*v0*y0/u0)/(u0*(v1 - u1*v0/u0)))/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + x3*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*y0/u0 - v0*(-v1*y1 + u1*v0*y0/u0)/(u0*(v1 - u1*v0/u0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + y0*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*y0/u0 - v0*(-v1*y1 + u1*v0*y0/u0)/(u0*(v1 - u1*v0/u0)))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) + 1/u0 + u1*v0/(Math.pow(u0,2)*(v1 - u1*v0/u0))) + y1*(-((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*y0/u0 - v0*(-v1*y1 + u1*v0*y0/u0)/(u0*(v1 - u1*v0/u0)))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) + (v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - v0/(u0*(v1 - u1*v0/u0))) + y2*(-(u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*y0/u0 - v0*(-v1*y1 + u1*v0*y0/u0)/(u0*(v1 - u1*v0/u0)))/((u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))) - y3*(-u0*(u0*v1 - u1*v0)*(-y0 - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*(u1*y0 - u1*y1)/(u0*(v1 - u1*v0/u0)))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (u0*v1 - u1*v0)*(-v0*(1 - u1/u0)/(u0*(v1 - u1*v0/u0)) + 1/u0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - v0*y0/u0 - v0*(-v1*y1 + u1*v0*y0/u0)/(u0*(v1 - u1*v0/u0)))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0),
e = x0*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + x1*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + x2*(u0*Math.pow(u0*v1 - u1*v0,2)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - u0*Math.pow(u0*v1 - u1*v0,2)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + x3*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + y0*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) - u1/(u0*(v1 - u1*v0/u0))) + y1*((1 - u1/u0)*(v2 - u2*v0/u0)*(u0*v1 - u1*v0)/(Math.pow(v1 - u1*v0/u0,2)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - ((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) + 1/(v1 - u1*v0/u0)) + y2*(-(1 - u1/u0)*(u0*v1 - u1*v0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0))/((u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))) - y3*(-u0*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - (1 - u1/u0)*(u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0),
f = x0*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + x1*(-u0*Math.pow(u0*v1 - u1*v0,2)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + x2*(u0*Math.pow(u0*v1 - u1*v0,3)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - u0*Math.pow(u0*v1 - u1*v0,2)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + x3*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + u0*(u0*v1 - u1*v0)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0))) + y0*((u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + y1*(-(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) - (v2 - u2*v0/u0)*(u0*v1 - u1*v0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))) + y2*((u0*v1 - u1*v0)*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + (u0*v1 - u1*v0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - y3*(-u0*Math.pow(u0*v1 - u1*v0,2)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) + (u0*v1 - u1*v0)*(-v2*y2 - (v2 - u2*v0/u0)*(-v1*y1 + u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0),
g = -u0*y0*(u0*v1 - u1*v0)*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - u0*y1*(u0*v1 - u1*v0)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + u0*y2*Math.pow(u0*v1 - u1*v0,2)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - u0*y3*(u0*v1 - u1*v0)*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + x0*(Math.pow(u0,2)*Math.pow(u0*v1 - u1*v0,2)*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*Math.pow(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1,2)/(Math.pow(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)),2)*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + u0*(u0*v1 - u1*v0)*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))) + x1*(Math.pow(u0,2)*Math.pow(u0*v1 - u1*v0,2)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*Math.pow(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1,2)/(Math.pow(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)),2)*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + u0*(u0*v1 - u1*v0)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))) + x2*(-Math.pow(u0,2)*Math.pow(u0*v1 - u1*v0,3)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(Math.pow(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)),2)*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - u0*Math.pow(u0*v1 - u1*v0,2)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))) + x3*(Math.pow(u0,2)*Math.pow(u0*v1 - u1*v0,2)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-v3*x3 - (u0*v1 - u1*v0)*(-v2*x2 - (v2 - u2*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u2*v0*x0/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(-v1*x1 + u1*v0*x0/u0)/(v1 - u1*v0/u0) + u3*v0*x0/u0)*Math.pow(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1,2)/(Math.pow(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)),2)*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + u0*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))),
h = -u0*x0*(u0*v1 - u1*v0)*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - u0*x1*(u0*v1 - u1*v0)*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + u0*x2*Math.pow(u0*v1 - u1*v0,2)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) - u0*x3*(u0*v1 - u1*v0)*(u3*y0 - u3*y3 - (u0*v1 - u1*v0)*(u2*y0 - u2*y2 - (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/((-u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (u1*(x0 - x1)*(u0*v2 - u2*v0) + u2*(-x0 + x2)*(u0*v1 - u1*v0))*(u0*(-u0*v1 + u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0)))*(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)) + y0*(-(u0*v1 - u1*v0)*(u1*(v2 - u2*v0/u0)/(u0*(v1 - u1*v0/u0)) - u2/u0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + u1*(v3 - u3*v0/u0)/(u0*(v1 - u1*v0/u0)) - u3/u0)/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) + y1*((v2 - u2*v0/u0)*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((v1 - u1*v0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) - (v3 - u3*v0/u0)/(v1 - u1*v0/u0))/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0) - y2*(u0*v1 - u1*v0)*(-(1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) + 1 - u3/u0)/((u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)) + y3/(u0*(u0*v1 - u1*v0)*(-u3*y0 + u3*y3 + (u0*v1 - u1*v0)*(-u2*y0 + u2*y2 + (v2 - u2*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(u1*y0 - u1*y1)/(v1 - u1*v0/u0))*(v3*x3 + (u0*v1 - u1*v0)*(v2*x2 - (v2 - u2*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u2*v0*x0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - (v3 - u3*v0/u0)*(v1*x1 - u1*v0*x0/u0)/(v1 - u1*v0/u0) - u3*v0*x0/u0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1)/(u0*u1*(x0 - x1)*(u0*v3 - u3*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) - u0*u3*(x0 - x3)*(u0*v1 - u1*v0)*(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (u1*(x0 - x1)*(u0*v2 - u2*v0) - u2*(x0 - x2)*(u0*v1 - u1*v0))*(-u0*(u0*v1 - u1*v0) + u3*(u0*v1 - u1*v0) + (u0 - u1)*(u0*v3 - u3*v0))) - v3*y3 + (u0*v1 - u1*v0)*(-v2*y2 + (v2 - u2*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u2*v0*y0/u0)*((1 - u1/u0)*(v3 - u3*v0/u0)/(v1 - u1*v0/u0) - 1 + u3/u0)/(u0*v1 - u0*v2 - u1*v0 + u1*v2 + u2*v0 - u2*v1) + (v3 - u3*v0/u0)*(v1*y1 - u1*v0*y0/u0)/(v1 - u1*v0/u0) + u3*v0*y0/u0);
return function(p) {
return [
(a * p[0] + b * p[1] + c) / (g * p[0] + h * p[1] + 1),
(d * p[0] + e * p[1] + f) / (g * p[0] + h * p[1] + 1)
];
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment