[Профессиональное] Ночной кошмар кодера
От: McSeem2 США http://www.antigrain.com
Дата: 30.05.06 19:08
Оценка: 7 (3) :))) :))) :))) :))) :))) :))) :))) :))) :))) :)
Искал функцию нахождения точек пересечения кубических кривых Безье... нашел на JavaScript... Это внатуре круто!

    . . .
    var poly = new Polynomial(
        -c13x3*c23y3 + c13y3*c23x3 - 3*c13.x*c13y2*c23x2*c23.y +
            3*c13x2*c13.y*c23.x*c23y2,
        -6*c13.x*c22.x*c13y2*c23.x*c23.y + 6*c13x2*c13.y*c22.y*c23.x*c23.y + 3*c22.x*c13y3*c23x2 -
            3*c13x3*c22.y*c23y2 - 3*c13.x*c13y2*c22.y*c23x2 + 3*c13x2*c22.x*c13.y*c23y2,
        -6*c21.x*c13.x*c13y2*c23.x*c23.y - 6*c13.x*c22.x*c13y2*c22.y*c23.x + 6*c13x2*c22.x*c13.y*c22.y*c23.y +
            3*c21.x*c13y3*c23x2 + 3*c22x2*c13y3*c23.x + 3*c21.x*c13x2*c13.y*c23y2 - 3*c13.x*c21.y*c13y2*c23x2 -
            3*c13.x*c22x2*c13y2*c23.y + c13x2*c13.y*c23.x*(6*c21.y*c23.y + 3*c22y2) + c13x3*(-c21.y*c23y2 -
            2*c22y2*c23.y - c23.y*(2*c21.y*c23.y + c22y2)),
        c11.x*c12.y*c13.x*c13.y*c23.x*c23.y - c11.y*c12.x*c13.x*c13.y*c23.x*c23.y + 6*c21.x*c22.x*c13y3*c23.x +
            3*c11.x*c12.x*c13.x*c13.y*c23y2 + 6*c10.x*c13.x*c13y2*c23.x*c23.y - 3*c11.x*c12.x*c13y2*c23.x*c23.y -
            3*c11.y*c12.y*c13.x*c13.y*c23x2 - 6*c10.y*c13x2*c13.y*c23.x*c23.y - 6*c20.x*c13.x*c13y2*c23.x*c23.y +
            3*c11.y*c12.y*c13x2*c23.x*c23.y - 2*c12.x*c12y2*c13.x*c23.x*c23.y - 6*c21.x*c13.x*c22.x*c13y2*c23.y -
            6*c21.x*c13.x*c13y2*c22.y*c23.x - 6*c13.x*c21.y*c22.x*c13y2*c23.x + 6*c21.x*c13x2*c13.y*c22.y*c23.y +
            2*c12x2*c12.y*c13.y*c23.x*c23.y + c22x3*c13y3 - 3*c10.x*c13y3*c23x2 + 3*c10.y*c13x3*c23y2 +
            3*c20.x*c13y3*c23x2 + c12y3*c13.x*c23x2 - c12x3*c13.y*c23y2 - 3*c10.x*c13x2*c13.y*c23y2 +
            3*c10.y*c13.x*c13y2*c23x2 - 2*c11.x*c12.y*c13x2*c23y2 + c11.x*c12.y*c13y2*c23x2 - c11.y*c12.x*c13x2*c23y2 +
            2*c11.y*c12.x*c13y2*c23x2 + 3*c20.x*c13x2*c13.y*c23y2 - c12.x*c12y2*c13.y*c23x2 -
            3*c20.y*c13.x*c13y2*c23x2 + c12x2*c12.y*c13.x*c23y2 - 3*c13.x*c22x2*c13y2*c22.y +
            c13x2*c13.y*c23.x*(6*c20.y*c23.y + 6*c21.y*c22.y) + c13x2*c22.x*c13.y*(6*c21.y*c23.y + 3*c22y2) +
            c13x3*(-2*c21.y*c22.y*c23.y - c20.y*c23y2 - c22.y*(2*c21.y*c23.y + c22y2) - c23.y*(2*c20.y*c23.y + 2*c21.y*c22.y)),
        6*c11.x*c12.x*c13.x*c13.y*c22.y*c23.y + c11.x*c12.y*c13.x*c22.x*c13.y*c23.y + c11.x*c12.y*c13.x*c13.y*c22.y*c23.x -
            c11.y*c12.x*c13.x*c22.x*c13.y*c23.y - c11.y*c12.x*c13.x*c13.y*c22.y*c23.x - 6*c11.y*c12.y*c13.x*c22.x*c13.y*c23.x -
            6*c10.x*c22.x*c13y3*c23.x + 6*c20.x*c22.x*c13y3*c23.x + 6*c10.y*c13x3*c22.y*c23.y + 2*c12y3*c13.x*c22.x*c23.x -
            2*c12x3*c13.y*c22.y*c23.y + 6*c10.x*c13.x*c22.x*c13y2*c23.y + 6*c10.x*c13.x*c13y2*c22.y*c23.x +
            6*c10.y*c13.x*c22.x*c13y2*c23.x - 3*c11.x*c12.x*c22.x*c13y2*c23.y - 3*c11.x*c12.x*c13y2*c22.y*c23.x +
            2*c11.x*c12.y*c22.x*c13y2*c23.x + 4*c11.y*c12.x*c22.x*c13y2*c23.x - 6*c10.x*c13x2*c13.y*c22.y*c23.y -
            6*c10.y*c13x2*c22.x*c13.y*c23.y - 6*c10.y*c13x2*c13.y*c22.y*c23.x - 4*c11.x*c12.y*c13x2*c22.y*c23.y -
            6*c20.x*c13.x*c22.x*c13y2*c23.y - 6*c20.x*c13.x*c13y2*c22.y*c23.x - 2*c11.y*c12.x*c13x2*c22.y*c23.y +
            3*c11.y*c12.y*c13x2*c22.x*c23.y + 3*c11.y*c12.y*c13x2*c22.y*c23.x - 2*c12.x*c12y2*c13.x*c22.x*c23.y -
            2*c12.x*c12y2*c13.x*c22.y*c23.x - 2*c12.x*c12y2*c22.x*c13.y*c23.x - 6*c20.y*c13.x*c22.x*c13y2*c23.x -
            6*c21.x*c13.x*c21.y*c13y2*c23.x - 6*c21.x*c13.x*c22.x*c13y2*c22.y + 6*c20.x*c13x2*c13.y*c22.y*c23.y +
            2*c12x2*c12.y*c13.x*c22.y*c23.y + 2*c12x2*c12.y*c22.x*c13.y*c23.y + 2*c12x2*c12.y*c13.y*c22.y*c23.x +
            3*c21.x*c22x2*c13y3 + 3*c21x2*c13y3*c23.x - 3*c13.x*c21.y*c22x2*c13y2 - 3*c21x2*c13.x*c13y2*c23.y +
            c13x2*c22.x*c13.y*(6*c20.y*c23.y + 6*c21.y*c22.y) + c13x2*c13.y*c23.x*(6*c20.y*c22.y + 3*c21y2) +
            c21.x*c13x2*c13.y*(6*c21.y*c23.y + 3*c22y2) + c13x3*(-2*c20.y*c22.y*c23.y - c23.y*(2*c20.y*c22.y + c21y2) -
            c21.y*(2*c21.y*c23.y + c22y2) - c22.y*(2*c20.y*c23.y + 2*c21.y*c22.y)),
        c11.x*c21.x*c12.y*c13.x*c13.y*c23.y + c11.x*c12.y*c13.x*c21.y*c13.y*c23.x + c11.x*c12.y*c13.x*c22.x*c13.y*c22.y -
            c11.y*c12.x*c21.x*c13.x*c13.y*c23.y - c11.y*c12.x*c13.x*c21.y*c13.y*c23.x - c11.y*c12.x*c13.x*c22.x*c13.y*c22.y -
            6*c11.y*c21.x*c12.y*c13.x*c13.y*c23.x - 6*c10.x*c21.x*c13y3*c23.x + 6*c20.x*c21.x*c13y3*c23.x +
            2*c21.x*c12y3*c13.x*c23.x + 6*c10.x*c21.x*c13.x*c13y2*c23.y + 6*c10.x*c13.x*c21.y*c13y2*c23.x +
            6*c10.x*c13.x*c22.x*c13y2*c22.y + 6*c10.y*c21.x*c13.x*c13y2*c23.x - 3*c11.x*c12.x*c21.x*c13y2*c23.y -
            3*c11.x*c12.x*c21.y*c13y2*c23.x - 3*c11.x*c12.x*c22.x*c13y2*c22.y + 2*c11.x*c21.x*c12.y*c13y2*c23.x +
            4*c11.y*c12.x*c21.x*c13y2*c23.x - 6*c10.y*c21.x*c13x2*c13.y*c23.y - 6*c10.y*c13x2*c21.y*c13.y*c23.x -
            6*c10.y*c13x2*c22.x*c13.y*c22.y - 6*c20.x*c21.x*c13.x*c13y2*c23.y - 6*c20.x*c13.x*c21.y*c13y2*c23.x -
            6*c20.x*c13.x*c22.x*c13y2*c22.y + 3*c11.y*c21.x*c12.y*c13x2*c23.y - 3*c11.y*c12.y*c13.x*c22x2*c13.y +
            3*c11.y*c12.y*c13x2*c21.y*c23.x + 3*c11.y*c12.y*c13x2*c22.x*c22.y - 2*c12.x*c21.x*c12y2*c13.x*c23.y -
            2*c12.x*c21.x*c12y2*c13.y*c23.x - 2*c12.x*c12y2*c13.x*c21.y*c23.x - 2*c12.x*c12y2*c13.x*c22.x*c22.y -
            6*c20.y*c21.x*c13.x*c13y2*c23.x - 6*c21.x*c13.x*c21.y*c22.x*c13y2 + 6*c20.y*c13x2*c21.y*c13.y*c23.x +
            2*c12x2*c21.x*c12.y*c13.y*c23.y + 2*c12x2*c12.y*c21.y*c13.y*c23.x + 2*c12x2*c12.y*c22.x*c13.y*c22.y -
            3*c10.x*c22x2*c13y3 + 3*c20.x*c22x2*c13y3 + 3*c21x2*c22.x*c13y3 + c12y3*c13.x*c22x2 +
            3*c10.y*c13.x*c22x2*c13y2 + c11.x*c12.y*c22x2*c13y2 + 2*c11.y*c12.x*c22x2*c13y2 -
            c12.x*c12y2*c22x2*c13.y - 3*c20.y*c13.x*c22x2*c13y2 - 3*c21x2*c13.x*c13y2*c22.y +
            c12x2*c12.y*c13.x*(2*c21.y*c23.y + c22y2) + c11.x*c12.x*c13.x*c13.y*(6*c21.y*c23.y + 3*c22y2) +
            c21.x*c13x2*c13.y*(6*c20.y*c23.y + 6*c21.y*c22.y) + c12x3*c13.y*(-2*c21.y*c23.y - c22y2) +
            c10.y*c13x3*(6*c21.y*c23.y + 3*c22y2) + c11.y*c12.x*c13x2*(-2*c21.y*c23.y - c22y2) +
            c11.x*c12.y*c13x2*(-4*c21.y*c23.y - 2*c22y2) + c10.x*c13x2*c13.y*(-6*c21.y*c23.y - 3*c22y2) +
            c13x2*c22.x*c13.y*(6*c20.y*c22.y + 3*c21y2) + c20.x*c13x2*c13.y*(6*c21.y*c23.y + 3*c22y2) +
            c13x3*(-2*c20.y*c21.y*c23.y - c22.y*(2*c20.y*c22.y + c21y2) - c20.y*(2*c21.y*c23.y + c22y2) -
            c21.y*(2*c20.y*c23.y + 2*c21.y*c22.y)),
        -c10.x*c11.x*c12.y*c13.x*c13.y*c23.y + c10.x*c11.y*c12.x*c13.x*c13.y*c23.y + 6*c10.x*c11.y*c12.y*c13.x*c13.y*c23.x -
            6*c10.y*c11.x*c12.x*c13.x*c13.y*c23.y - c10.y*c11.x*c12.y*c13.x*c13.y*c23.x + c10.y*c11.y*c12.x*c13.x*c13.y*c23.x +
            c11.x*c11.y*c12.x*c12.y*c13.x*c23.y - c11.x*c11.y*c12.x*c12.y*c13.y*c23.x + c11.x*c20.x*c12.y*c13.x*c13.y*c23.y +
            c11.x*c20.y*c12.y*c13.x*c13.y*c23.x + c11.x*c21.x*c12.y*c13.x*c13.y*c22.y + c11.x*c12.y*c13.x*c21.y*c22.x*c13.y -
            c20.x*c11.y*c12.x*c13.x*c13.y*c23.y - 6*c20.x*c11.y*c12.y*c13.x*c13.y*c23.x - c11.y*c12.x*c20.y*c13.x*c13.y*c23.x -
            c11.y*c12.x*c21.x*c13.x*c13.y*c22.y - c11.y*c12.x*c13.x*c21.y*c22.x*c13.y - 6*c11.y*c21.x*c12.y*c13.x*c22.x*c13.y -
            6*c10.x*c20.x*c13y3*c23.x - 6*c10.x*c21.x*c22.x*c13y3 - 2*c10.x*c12y3*c13.x*c23.x + 6*c20.x*c21.x*c22.x*c13y3 +
            2*c20.x*c12y3*c13.x*c23.x + 2*c21.x*c12y3*c13.x*c22.x + 2*c10.y*c12x3*c13.y*c23.y - 6*c10.x*c10.y*c13.x*c13y2*c23.x +
            3*c10.x*c11.x*c12.x*c13y2*c23.y - 2*c10.x*c11.x*c12.y*c13y2*c23.x - 4*c10.x*c11.y*c12.x*c13y2*c23.x +
            3*c10.y*c11.x*c12.x*c13y2*c23.x + 6*c10.x*c10.y*c13x2*c13.y*c23.y + 6*c10.x*c20.x*c13.x*c13y2*c23.y -
            3*c10.x*c11.y*c12.y*c13x2*c23.y + 2*c10.x*c12.x*c12y2*c13.x*c23.y + 2*c10.x*c12.x*c12y2*c13.y*c23.x +
            6*c10.x*c20.y*c13.x*c13y2*c23.x + 6*c10.x*c21.x*c13.x*c13y2*c22.y + 6*c10.x*c13.x*c21.y*c22.x*c13y2 +
            4*c10.y*c11.x*c12.y*c13x2*c23.y + 6*c10.y*c20.x*c13.x*c13y2*c23.x + 2*c10.y*c11.y*c12.x*c13x2*c23.y -
            3*c10.y*c11.y*c12.y*c13x2*c23.x + 2*c10.y*c12.x*c12y2*c13.x*c23.x + 6*c10.y*c21.x*c13.x*c22.x*c13y2 -
            3*c11.x*c20.x*c12.x*c13y2*c23.y + 2*c11.x*c20.x*c12.y*c13y2*c23.x + c11.x*c11.y*c12y2*c13.x*c23.x -
            3*c11.x*c12.x*c20.y*c13y2*c23.x - 3*c11.x*c12.x*c21.x*c13y2*c22.y - 3*c11.x*c12.x*c21.y*c22.x*c13y2 +
            2*c11.x*c21.x*c12.y*c22.x*c13y2 + 4*c20.x*c11.y*c12.x*c13y2*c23.x + 4*c11.y*c12.x*c21.x*c22.x*c13y2 -
            2*c10.x*c12x2*c12.y*c13.y*c23.y - 6*c10.y*c20.x*c13x2*c13.y*c23.y - 6*c10.y*c20.y*c13x2*c13.y*c23.x -
            6*c10.y*c21.x*c13x2*c13.y*c22.y - 2*c10.y*c12x2*c12.y*c13.x*c23.y - 2*c10.y*c12x2*c12.y*c13.y*c23.x -
            6*c10.y*c13x2*c21.y*c22.x*c13.y - c11.x*c11.y*c12x2*c13.y*c23.y - 2*c11.x*c11y2*c13.x*c13.y*c23.x +
            3*c20.x*c11.y*c12.y*c13x2*c23.y - 2*c20.x*c12.x*c12y2*c13.x*c23.y - 2*c20.x*c12.x*c12y2*c13.y*c23.x -
            6*c20.x*c20.y*c13.x*c13y2*c23.x - 6*c20.x*c21.x*c13.x*c13y2*c22.y - 6*c20.x*c13.x*c21.y*c22.x*c13y2 +
            3*c11.y*c20.y*c12.y*c13x2*c23.x + 3*c11.y*c21.x*c12.y*c13x2*c22.y + 3*c11.y*c12.y*c13x2*c21.y*c22.x -
            2*c12.x*c20.y*c12y2*c13.x*c23.x - 2*c12.x*c21.x*c12y2*c13.x*c22.y - 2*c12.x*c21.x*c12y2*c22.x*c13.y -
            2*c12.x*c12y2*c13.x*c21.y*c22.x - 6*c20.y*c21.x*c13.x*c22.x*c13y2 - c11y2*c12.x*c12.y*c13.x*c23.x +
            2*c20.x*c12x2*c12.y*c13.y*c23.y + 6*c20.y*c13x2*c21.y*c22.x*c13.y + 2*c11x2*c11.y*c13.x*c13.y*c23.y +
            c11x2*c12.x*c12.y*c13.y*c23.y + 2*c12x2*c20.y*c12.y*c13.y*c23.x + 2*c12x2*c21.x*c12.y*c13.y*c22.y +
            2*c12x2*c12.y*c21.y*c22.x*c13.y + c21x3*c13y3 + 3*c10x2*c13y3*c23.x - 3*c10y2*c13x3*c23.y +
            3*c20x2*c13y3*c23.x + c11y3*c13x2*c23.x - c11x3*c13y2*c23.y - c11.x*c11y2*c13x2*c23.y +
            c11x2*c11.y*c13y2*c23.x - 3*c10x2*c13.x*c13y2*c23.y + 3*c10y2*c13x2*c13.y*c23.x - c11x2*c12y2*c13.x*c23.y +
            c11y2*c12x2*c13.y*c23.x - 3*c21x2*c13.x*c21.y*c13y2 - 3*c20x2*c13.x*c13y2*c23.y + 3*c20y2*c13x2*c13.y*c23.x +
            c11.x*c12.x*c13.x*c13.y*(6*c20.y*c23.y + 6*c21.y*c22.y) + c12x3*c13.y*(-2*c20.y*c23.y - 2*c21.y*c22.y) +
            c10.y*c13x3*(6*c20.y*c23.y + 6*c21.y*c22.y) + c11.y*c12.x*c13x2*(-2*c20.y*c23.y - 2*c21.y*c22.y) +
            c12x2*c12.y*c13.x*(2*c20.y*c23.y + 2*c21.y*c22.y) + c11.x*c12.y*c13x2*(-4*c20.y*c23.y - 4*c21.y*c22.y) +
            c10.x*c13x2*c13.y*(-6*c20.y*c23.y - 6*c21.y*c22.y) + c20.x*c13x2*c13.y*(6*c20.y*c23.y + 6*c21.y*c22.y) +
            c21.x*c13x2*c13.y*(6*c20.y*c22.y + 3*c21y2) + c13x3*(-2*c20.y*c21.y*c22.y - c20y2*c23.y -
            c21.y*(2*c20.y*c22.y + c21y2) - c20.y*(2*c20.y*c23.y + 2*c21.y*c22.y)),
        -c10.x*c11.x*c12.y*c13.x*c13.y*c22.y + c10.x*c11.y*c12.x*c13.x*c13.y*c22.y + 6*c10.x*c11.y*c12.y*c13.x*c22.x*c13.y -
            6*c10.y*c11.x*c12.x*c13.x*c13.y*c22.y - c10.y*c11.x*c12.y*c13.x*c22.x*c13.y + c10.y*c11.y*c12.x*c13.x*c22.x*c13.y +
            c11.x*c11.y*c12.x*c12.y*c13.x*c22.y - c11.x*c11.y*c12.x*c12.y*c22.x*c13.y + c11.x*c20.x*c12.y*c13.x*c13.y*c22.y +
            c11.x*c20.y*c12.y*c13.x*c22.x*c13.y + c11.x*c21.x*c12.y*c13.x*c21.y*c13.y - c20.x*c11.y*c12.x*c13.x*c13.y*c22.y -
            6*c20.x*c11.y*c12.y*c13.x*c22.x*c13.y - c11.y*c12.x*c20.y*c13.x*c22.x*c13.y - c11.y*c12.x*c21.x*c13.x*c21.y*c13.y -
            6*c10.x*c20.x*c22.x*c13y3 - 2*c10.x*c12y3*c13.x*c22.x + 2*c20.x*c12y3*c13.x*c22.x + 2*c10.y*c12x3*c13.y*c22.y -
            6*c10.x*c10.y*c13.x*c22.x*c13y2 + 3*c10.x*c11.x*c12.x*c13y2*c22.y - 2*c10.x*c11.x*c12.y*c22.x*c13y2 -
            4*c10.x*c11.y*c12.x*c22.x*c13y2 + 3*c10.y*c11.x*c12.x*c22.x*c13y2 + 6*c10.x*c10.y*c13x2*c13.y*c22.y +
            6*c10.x*c20.x*c13.x*c13y2*c22.y - 3*c10.x*c11.y*c12.y*c13x2*c22.y + 2*c10.x*c12.x*c12y2*c13.x*c22.y +
            2*c10.x*c12.x*c12y2*c22.x*c13.y + 6*c10.x*c20.y*c13.x*c22.x*c13y2 + 6*c10.x*c21.x*c13.x*c21.y*c13y2 +
            4*c10.y*c11.x*c12.y*c13x2*c22.y + 6*c10.y*c20.x*c13.x*c22.x*c13y2 + 2*c10.y*c11.y*c12.x*c13x2*c22.y -
            3*c10.y*c11.y*c12.y*c13x2*c22.x + 2*c10.y*c12.x*c12y2*c13.x*c22.x - 3*c11.x*c20.x*c12.x*c13y2*c22.y +
            2*c11.x*c20.x*c12.y*c22.x*c13y2 + c11.x*c11.y*c12y2*c13.x*c22.x - 3*c11.x*c12.x*c20.y*c22.x*c13y2 -
            3*c11.x*c12.x*c21.x*c21.y*c13y2 + 4*c20.x*c11.y*c12.x*c22.x*c13y2 - 2*c10.x*c12x2*c12.y*c13.y*c22.y -
            6*c10.y*c20.x*c13x2*c13.y*c22.y - 6*c10.y*c20.y*c13x2*c22.x*c13.y - 6*c10.y*c21.x*c13x2*c21.y*c13.y -
            2*c10.y*c12x2*c12.y*c13.x*c22.y - 2*c10.y*c12x2*c12.y*c22.x*c13.y - c11.x*c11.y*c12x2*c13.y*c22.y -
            2*c11.x*c11y2*c13.x*c22.x*c13.y + 3*c20.x*c11.y*c12.y*c13x2*c22.y - 2*c20.x*c12.x*c12y2*c13.x*c22.y -
            2*c20.x*c12.x*c12y2*c22.x*c13.y - 6*c20.x*c20.y*c13.x*c22.x*c13y2 - 6*c20.x*c21.x*c13.x*c21.y*c13y2 +
            3*c11.y*c20.y*c12.y*c13x2*c22.x + 3*c11.y*c21.x*c12.y*c13x2*c21.y - 2*c12.x*c20.y*c12y2*c13.x*c22.x -
            2*c12.x*c21.x*c12y2*c13.x*c21.y - c11y2*c12.x*c12.y*c13.x*c22.x + 2*c20.x*c12x2*c12.y*c13.y*c22.y -
            3*c11.y*c21x2*c12.y*c13.x*c13.y + 6*c20.y*c21.x*c13x2*c21.y*c13.y + 2*c11x2*c11.y*c13.x*c13.y*c22.y +
            c11x2*c12.x*c12.y*c13.y*c22.y + 2*c12x2*c20.y*c12.y*c22.x*c13.y + 2*c12x2*c21.x*c12.y*c21.y*c13.y -
            3*c10.x*c21x2*c13y3 + 3*c20.x*c21x2*c13y3 + 3*c10x2*c22.x*c13y3 - 3*c10y2*c13x3*c22.y + 3*c20x2*c22.x*c13y3 +
            c21x2*c12y3*c13.x + c11y3*c13x2*c22.x - c11x3*c13y2*c22.y + 3*c10.y*c21x2*c13.x*c13y2 -
            c11.x*c11y2*c13x2*c22.y + c11.x*c21x2*c12.y*c13y2 + 2*c11.y*c12.x*c21x2*c13y2 + c11x2*c11.y*c22.x*c13y2 -
            c12.x*c21x2*c12y2*c13.y - 3*c20.y*c21x2*c13.x*c13y2 - 3*c10x2*c13.x*c13y2*c22.y + 3*c10y2*c13x2*c22.x*c13.y -
            c11x2*c12y2*c13.x*c22.y + c11y2*c12x2*c22.x*c13.y - 3*c20x2*c13.x*c13y2*c22.y + 3*c20y2*c13x2*c22.x*c13.y +
            c12x2*c12.y*c13.x*(2*c20.y*c22.y + c21y2) + c11.x*c12.x*c13.x*c13.y*(6*c20.y*c22.y + 3*c21y2) +
            c12x3*c13.y*(-2*c20.y*c22.y - c21y2) + c10.y*c13x3*(6*c20.y*c22.y + 3*c21y2) +
            c11.y*c12.x*c13x2*(-2*c20.y*c22.y - c21y2) + c11.x*c12.y*c13x2*(-4*c20.y*c22.y - 2*c21y2) +
            c10.x*c13x2*c13.y*(-6*c20.y*c22.y - 3*c21y2) + c20.x*c13x2*c13.y*(6*c20.y*c22.y + 3*c21y2) +
            c13x3*(-2*c20.y*c21y2 - c20y2*c22.y - c20.y*(2*c20.y*c22.y + c21y2)),
        -c10.x*c11.x*c12.y*c13.x*c21.y*c13.y + c10.x*c11.y*c12.x*c13.x*c21.y*c13.y + 6*c10.x*c11.y*c21.x*c12.y*c13.x*c13.y -
            6*c10.y*c11.x*c12.x*c13.x*c21.y*c13.y - c10.y*c11.x*c21.x*c12.y*c13.x*c13.y + c10.y*c11.y*c12.x*c21.x*c13.x*c13.y -
            c11.x*c11.y*c12.x*c21.x*c12.y*c13.y + c11.x*c11.y*c12.x*c12.y*c13.x*c21.y + c11.x*c20.x*c12.y*c13.x*c21.y*c13.y +
            6*c11.x*c12.x*c20.y*c13.x*c21.y*c13.y + c11.x*c20.y*c21.x*c12.y*c13.x*c13.y - c20.x*c11.y*c12.x*c13.x*c21.y*c13.y -
            6*c20.x*c11.y*c21.x*c12.y*c13.x*c13.y - c11.y*c12.x*c20.y*c21.x*c13.x*c13.y - 6*c10.x*c20.x*c21.x*c13y3 -
            2*c10.x*c21.x*c12y3*c13.x + 6*c10.y*c20.y*c13x3*c21.y + 2*c20.x*c21.x*c12y3*c13.x + 2*c10.y*c12x3*c21.y*c13.y -
            2*c12x3*c20.y*c21.y*c13.y - 6*c10.x*c10.y*c21.x*c13.x*c13y2 + 3*c10.x*c11.x*c12.x*c21.y*c13y2 -
            2*c10.x*c11.x*c21.x*c12.y*c13y2 - 4*c10.x*c11.y*c12.x*c21.x*c13y2 + 3*c10.y*c11.x*c12.x*c21.x*c13y2 +
            6*c10.x*c10.y*c13x2*c21.y*c13.y + 6*c10.x*c20.x*c13.x*c21.y*c13y2 - 3*c10.x*c11.y*c12.y*c13x2*c21.y +
            2*c10.x*c12.x*c21.x*c12y2*c13.y + 2*c10.x*c12.x*c12y2*c13.x*c21.y + 6*c10.x*c20.y*c21.x*c13.x*c13y2 +
            4*c10.y*c11.x*c12.y*c13x2*c21.y + 6*c10.y*c20.x*c21.x*c13.x*c13y2 + 2*c10.y*c11.y*c12.x*c13x2*c21.y -
            3*c10.y*c11.y*c21.x*c12.y*c13x2 + 2*c10.y*c12.x*c21.x*c12y2*c13.x - 3*c11.x*c20.x*c12.x*c21.y*c13y2 +
            2*c11.x*c20.x*c21.x*c12.y*c13y2 + c11.x*c11.y*c21.x*c12y2*c13.x - 3*c11.x*c12.x*c20.y*c21.x*c13y2 +
            4*c20.x*c11.y*c12.x*c21.x*c13y2 - 6*c10.x*c20.y*c13x2*c21.y*c13.y - 2*c10.x*c12x2*c12.y*c21.y*c13.y -
            6*c10.y*c20.x*c13x2*c21.y*c13.y - 6*c10.y*c20.y*c21.x*c13x2*c13.y - 2*c10.y*c12x2*c21.x*c12.y*c13.y -
            2*c10.y*c12x2*c12.y*c13.x*c21.y - c11.x*c11.y*c12x2*c21.y*c13.y - 4*c11.x*c20.y*c12.y*c13x2*c21.y -
            2*c11.x*c11y2*c21.x*c13.x*c13.y + 3*c20.x*c11.y*c12.y*c13x2*c21.y - 2*c20.x*c12.x*c21.x*c12y2*c13.y -
            2*c20.x*c12.x*c12y2*c13.x*c21.y - 6*c20.x*c20.y*c21.x*c13.x*c13y2 - 2*c11.y*c12.x*c20.y*c13x2*c21.y +
            3*c11.y*c20.y*c21.x*c12.y*c13x2 - 2*c12.x*c20.y*c21.x*c12y2*c13.x - c11y2*c12.x*c21.x*c12.y*c13.x +
            6*c20.x*c20.y*c13x2*c21.y*c13.y + 2*c20.x*c12x2*c12.y*c21.y*c13.y + 2*c11x2*c11.y*c13.x*c21.y*c13.y +
            c11x2*c12.x*c12.y*c21.y*c13.y + 2*c12x2*c20.y*c21.x*c12.y*c13.y + 2*c12x2*c20.y*c12.y*c13.x*c21.y +
            3*c10x2*c21.x*c13y3 - 3*c10y2*c13x3*c21.y + 3*c20x2*c21.x*c13y3 + c11y3*c21.x*c13x2 - c11x3*c21.y*c13y2 -
            3*c20y2*c13x3*c21.y - c11.x*c11y2*c13x2*c21.y + c11x2*c11.y*c21.x*c13y2 - 3*c10x2*c13.x*c21.y*c13y2 +
            3*c10y2*c21.x*c13x2*c13.y - c11x2*c12y2*c13.x*c21.y + c11y2*c12x2*c21.x*c13.y - 3*c20x2*c13.x*c21.y*c13y2 +
            3*c20y2*c21.x*c13x2*c13.y,
        c10.x*c10.y*c11.x*c12.y*c13.x*c13.y - c10.x*c10.y*c11.y*c12.x*c13.x*c13.y + c10.x*c11.x*c11.y*c12.x*c12.y*c13.y -
            c10.y*c11.x*c11.y*c12.x*c12.y*c13.x - c10.x*c11.x*c20.y*c12.y*c13.x*c13.y + 6*c10.x*c20.x*c11.y*c12.y*c13.x*c13.y +
            c10.x*c11.y*c12.x*c20.y*c13.x*c13.y - c10.y*c11.x*c20.x*c12.y*c13.x*c13.y - 6*c10.y*c11.x*c12.x*c20.y*c13.x*c13.y +
            c10.y*c20.x*c11.y*c12.x*c13.x*c13.y - c11.x*c20.x*c11.y*c12.x*c12.y*c13.y + c11.x*c11.y*c12.x*c20.y*c12.y*c13.x +
            c11.x*c20.x*c20.y*c12.y*c13.x*c13.y - c20.x*c11.y*c12.x*c20.y*c13.x*c13.y - 2*c10.x*c20.x*c12y3*c13.x +
            2*c10.y*c12x3*c20.y*c13.y - 3*c10.x*c10.y*c11.x*c12.x*c13y2 - 6*c10.x*c10.y*c20.x*c13.x*c13y2 +
            3*c10.x*c10.y*c11.y*c12.y*c13x2 - 2*c10.x*c10.y*c12.x*c12y2*c13.x - 2*c10.x*c11.x*c20.x*c12.y*c13y2 -
            c10.x*c11.x*c11.y*c12y2*c13.x + 3*c10.x*c11.x*c12.x*c20.y*c13y2 - 4*c10.x*c20.x*c11.y*c12.x*c13y2 +
            3*c10.y*c11.x*c20.x*c12.x*c13y2 + 6*c10.x*c10.y*c20.y*c13x2*c13.y + 2*c10.x*c10.y*c12x2*c12.y*c13.y +
            2*c10.x*c11.x*c11y2*c13.x*c13.y + 2*c10.x*c20.x*c12.x*c12y2*c13.y + 6*c10.x*c20.x*c20.y*c13.x*c13y2 -
            3*c10.x*c11.y*c20.y*c12.y*c13x2 + 2*c10.x*c12.x*c20.y*c12y2*c13.x + c10.x*c11y2*c12.x*c12.y*c13.x +
            c10.y*c11.x*c11.y*c12x2*c13.y + 4*c10.y*c11.x*c20.y*c12.y*c13x2 - 3*c10.y*c20.x*c11.y*c12.y*c13x2 +
            2*c10.y*c20.x*c12.x*c12y2*c13.x + 2*c10.y*c11.y*c12.x*c20.y*c13x2 + c11.x*c20.x*c11.y*c12y2*c13.x -
            3*c11.x*c20.x*c12.x*c20.y*c13y2 - 2*c10.x*c12x2*c20.y*c12.y*c13.y - 6*c10.y*c20.x*c20.y*c13x2*c13.y -
            2*c10.y*c20.x*c12x2*c12.y*c13.y - 2*c10.y*c11x2*c11.y*c13.x*c13.y - c10.y*c11x2*c12.x*c12.y*c13.y -
            2*c10.y*c12x2*c20.y*c12.y*c13.x - 2*c11.x*c20.x*c11y2*c13.x*c13.y - c11.x*c11.y*c12x2*c20.y*c13.y +
            3*c20.x*c11.y*c20.y*c12.y*c13x2 - 2*c20.x*c12.x*c20.y*c12y2*c13.x - c20.x*c11y2*c12.x*c12.y*c13.x +
            3*c10y2*c11.x*c12.x*c13.x*c13.y + 3*c11.x*c12.x*c20y2*c13.x*c13.y + 2*c20.x*c12x2*c20.y*c12.y*c13.y -
            3*c10x2*c11.y*c12.y*c13.x*c13.y + 2*c11x2*c11.y*c20.y*c13.x*c13.y + c11x2*c12.x*c20.y*c12.y*c13.y -
            3*c20x2*c11.y*c12.y*c13.x*c13.y - c10x3*c13y3 + c10y3*c13x3 + c20x3*c13y3 - c20y3*c13x3 -
            3*c10.x*c20x2*c13y3 - c10.x*c11y3*c13x2 + 3*c10x2*c20.x*c13y3 + c10.y*c11x3*c13y2 +
            3*c10.y*c20y2*c13x3 + c20.x*c11y3*c13x2 + c10x2*c12y3*c13.x - 3*c10y2*c20.y*c13x3 - c10y2*c12x3*c13.y +
            c20x2*c12y3*c13.x - c11x3*c20.y*c13y2 - c12x3*c20y2*c13.y - c10.x*c11x2*c11.y*c13y2 +
            c10.y*c11.x*c11y2*c13x2 - 3*c10.x*c10y2*c13x2*c13.y - c10.x*c11y2*c12x2*c13.y + c10.y*c11x2*c12y2*c13.x -
            c11.x*c11y2*c20.y*c13x2 + 3*c10x2*c10.y*c13.x*c13y2 + c10x2*c11.x*c12.y*c13y2 +
            2*c10x2*c11.y*c12.x*c13y2 - 2*c10y2*c11.x*c12.y*c13x2 - c10y2*c11.y*c12.x*c13x2 + c11x2*c20.x*c11.y*c13y2 -
            3*c10.x*c20y2*c13x2*c13.y + 3*c10.y*c20x2*c13.x*c13y2 + c11.x*c20x2*c12.y*c13y2 - 2*c11.x*c20y2*c12.y*c13x2 +
            c20.x*c11y2*c12x2*c13.y - c11.y*c12.x*c20y2*c13x2 - c10x2*c12.x*c12y2*c13.y - 3*c10x2*c20.y*c13.x*c13y2 +
            3*c10y2*c20.x*c13x2*c13.y + c10y2*c12x2*c12.y*c13.x - c11x2*c20.y*c12y2*c13.x + 2*c20x2*c11.y*c12.x*c13y2 +
            3*c20.x*c20y2*c13x2*c13.y - c20x2*c12.x*c12y2*c13.y - 3*c20x2*c20.y*c13.x*c13y2 + c12x2*c20y2*c12.y*c13.x
    );
    var roots = poly.getRootsInInterval(0,1);
    . . .


А вы говорите — индусы.

На самом деле, конечно же автору — Kevin Lindsey — длинный респект!
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: [Профессиональное] Ночной кошмар кодера
От: prVovik Россия  
Дата: 30.05.06 19:13
Оценка: +4
Здравствуйте, McSeem2, Вы писали:

MS>Искал функцию нахождения точек пересечения кубических кривых Безье... нашел на JavaScript... Это внатуре круто!



MS>На самом деле, конечно же автору — Kevin Lindsey — длинный респект!


да код автогенеренный скорее всего. Такое нереально руками написать
лэт ми спик фром май харт
Re: [Профессиональное] Ночной кошмар кодера
От: Сергей  
Дата: 30.05.06 19:16
Оценка: +1
Здравствуйте, McSeem2, Вы писали:

>[...]


Скорее всего, формула была получена в каком-нибудь мат. пакете типа Maple или Mathematica, раскрыты все скобки и сгенерирован соотв. программный код (в msthematica можно сохранять выражения в C, FORTRAN и др.). Сам так делал, когда выполнял лабы по ЧМам.
Re: [Профессиональное] Ночной кошмар кодера
От: BlackHeretic Израиль  
Дата: 30.05.06 21:48
Оценка:
Да нет, это не кошмар — это сгенеренный код скорее всего.
Сам как-то написал прогу генерящую скрипт распознования литералов в любом языке, в джава скрипте.
Тож смотрелось мама не горюй
ICQ 156156278
Re[2]: [Профессиональное] Ночной кошмар кодера
От: Skleroz Россия  
Дата: 31.05.06 05:40
Оценка: +2 -2 :)))
Здравствуйте, prVovik, Вы писали:

V>да код автогенеренный скорее всего. Такое нереально руками написать


Или писала женщина.

Никого не хотел обидеть
<< точка сборки в — 0 — 2000 Rainbow Blood — Track 5 |>>
Re: [Профессиональное] Ночной кошмар кодера
От: vladpol Украина http://vlad-mislitel.livejournal.com/
Дата: 31.05.06 06:24
Оценка: -3
Здравствуйте, McSeem2, Вы писали:

MS>Искал функцию нахождения точек пересечения кубических кривых Безье... нашел на JavaScript... Это внатуре круто!


MS>
MS>    . . .
MS>    var poly = new Polynomial(
MS>        -c13x3*c23y3 + c13y3*c23x3 - 3*c13.x*c13y2*c23x2*c23.y +
MS>            3*c13x2*c13.y*c23.x*c23y2,
MS>        -6*c13.x*c22.x*c13y2*c23.x*c23.y + 6*c13x2*c13.y*c22.y*c23.x*c23.y + 3*c22.x*c13y3*c23x2 -
MS>            3*c13x3*c22.y*c23y2 - 3*c13.x*c13y2*c22.y*c23x2 + 3*c13x2*c22.x*c13.y*c23y2,
MS>        -6*c21.x*c13.x*c13y2*c23.x*c23.y - 6*c13.x*c22.x*c13y2*c22.y*c23.x + 6*c13x2*c22.x*c13.y*c22.y*c23.y +
MS>            3*c21.x*c13y3*c23x2 + 3*c22x2*c13y3*c23.x + 3*c21.x*c13x2*c13.y*c23y2 - 3*c13.x*c21.y*c13y2*c23x2 -
MS>            3*c13.x*c22x2*c13y2*c23.y + c13x2*c13.y*c23.x*(6*c21.y*c23.y + 3*c22y2) + c13x3*(-c21.y*c23y2 -
MS>            2*c22y2*c23.y - c23.y*(2*c21.y*c23.y + c22y2)),
MS>        c11.x*c12.y*c13.x*c13.y*c23.x*c23.y - c11.y*c12.x*c13.x*c13.y*c23.x*c23.y + 6*c21.x*c22.x*c13y3*c23.x +
MS>            3*c11.x*c12.x*c13.x*c13.y*c23y2 + 6*c10.x*c13.x*c13y2*c23.x*c23.y - 3*c11.x*c12.x*c13y2*c23.x*c23.y -
MS>            3*c11.y*c12.y*c13.x*c13.y*c23x2 - 6*c10.y*c13x2*c13.y*c23.x*c23.y - 6*c20.x*c13.x*c13y2*c23.x*c23.y +
MS>            3*c11.y*c12.y*c13x2*c23.x*c23.y - 2*c12.x*c12y2*c13.x*c23.x*c23.y - 6*c21.x*c13.x*c22.x*c13y2*c23.y -
MS>            6*c21.x*c13.x*c13y2*c22.y*c23.x - 6*c13.x*c21.y*c22.x*c13y2*c23.x + 6*c21.x*c13x2*c13.y*c22.y*c23.y +
MS>            2*c12x2*c12.y*c13.y*c23.x*c23.y + c22x3*c13y3 - 3*c10.x*c13y3*c23x2 + 3*c10.y*c13x3*c23y2 +
MS>            3*c20.x*c13y3*c23x2 + c12y3*c13.x*c23x2 - c12x3*c13.y*c23y2 - 3*c10.x*c13x2*c13.y*c23y2 +
MS>            3*c10.y*c13.x*c13y2*c23x2 - 2*c11.x*c12.y*c13x2*c23y2 + c11.x*c12.y*c13y2*c23x2 - c11.y*c12.x*c13x2*c23y2 +
MS>            2*c11.y*c12.x*c13y2*c23x2 + 3*c20.x*c13x2*c13.y*c23y2 - c12.x*c12y2*c13.y*c23x2 -
MS>            3*c20.y*c13.x*c13y2*c23x2 + c12x2*c12.y*c13.x*c23y2 - 3*c13.x*c22x2*c13y2*c22.y +
MS>            c13x2*c13.y*c23.x*(6*c20.y*c23.y + 6*c21.y*c22.y) + c13x2*c22.x*c13.y*(6*c21.y*c23.y + 3*c22y2) +
MS>            c13x3*(-2*c21.y*c22.y*c23.y - c20.y*c23y2 - c22.y*(2*c21.y*c23.y + c22y2) - c23.y*(2*c20.y*c23.y + 2*c21.y*c22.y)),
MS>        6*c11.x*c12.x*c13.x*c13.y*c22.y*c23.y + c11.x*c12.y*c13.x*c22.x*c13.y*c23.y + c11.x*c12.y*c13.x*c13.y*c22.y*c23.x -
MS>            c11.y*c12.x*c13.x*c22.x*c13.y*c23.y - c11.y*c12.x*c13.x*c13.y*c22.y*c23.x - 6*c11.y*c12.y*c13.x*c22.x*c13.y*c23.x -
MS>            6*c10.x*c22.x*c13y3*c23.x + 6*c20.x*c22.x*c13y3*c23.x + 6*c10.y*c13x3*c22.y*c23.y + 2*c12y3*c13.x*c22.x*c23.x -
MS>            2*c12x3*c13.y*c22.y*c23.y + 6*c10.x*c13.x*c22.x*c13y2*c23.y + 6*c10.x*c13.x*c13y2*c22.y*c23.x +
MS>            6*c10.y*c13.x*c22.x*c13y2*c23.x - 3*c11.x*c12.x*c22.x*c13y2*c23.y - 3*c11.x*c12.x*c13y2*c22.y*c23.x +
MS>            2*c11.x*c12.y*c22.x*c13y2*c23.x + 4*c11.y*c12.x*c22.x*c13y2*c23.x - 6*c10.x*c13x2*c13.y*c22.y*c23.y -
MS>            6*c10.y*c13x2*c22.x*c13.y*c23.y - 6*c10.y*c13x2*c13.y*c22.y*c23.x - 4*c11.x*c12.y*c13x2*c22.y*c23.y -
MS>            6*c20.x*c13.x*c22.x*c13y2*c23.y - 6*c20.x*c13.x*c13y2*c22.y*c23.x - 2*c11.y*c12.x*c13x2*c22.y*c23.y +
MS>            3*c11.y*c12.y*c13x2*c22.x*c23.y + 3*c11.y*c12.y*c13x2*c22.y*c23.x - 2*c12.x*c12y2*c13.x*c22.x*c23.y -
MS>            2*c12.x*c12y2*c13.x*c22.y*c23.x - 2*c12.x*c12y2*c22.x*c13.y*c23.x - 6*c20.y*c13.x*c22.x*c13y2*c23.x -
MS>            6*c21.x*c13.x*c21.y*c13y2*c23.x - 6*c21.x*c13.x*c22.x*c13y2*c22.y + 6*c20.x*c13x2*c13.y*c22.y*c23.y +
MS>            2*c12x2*c12.y*c13.x*c22.y*c23.y + 2*c12x2*c12.y*c22.x*c13.y*c23.y + 2*c12x2*c12.y*c13.y*c22.y*c23.x +
MS>            3*c21.x*c22x2*c13y3 + 3*c21x2*c13y3*c23.x - 3*c13.x*c21.y*c22x2*c13y2 - 3*c21x2*c13.x*c13y2*c23.y +
MS>            c13x2*c22.x*c13.y*(6*c20.y*c23.y + 6*c21.y*c22.y) + c13x2*c13.y*c23.x*(6*c20.y*c22.y + 3*c21y2) +
MS>            c21.x*c13x2*c13.y*(6*c21.y*c23.y + 3*c22y2) + c13x3*(-2*c20.y*c22.y*c23.y - c23.y*(2*c20.y*c22.y + c21y2) -
MS>            c21.y*(2*c21.y*c23.y + c22y2) - c22.y*(2*c20.y*c23.y + 2*c21.y*c22.y)),
MS>        c11.x*c21.x*c12.y*c13.x*c13.y*c23.y + c11.x*c12.y*c13.x*c21.y*c13.y*c23.x + c11.x*c12.y*c13.x*c22.x*c13.y*c22.y -
MS>            c11.y*c12.x*c21.x*c13.x*c13.y*c23.y - c11.y*c12.x*c13.x*c21.y*c13.y*c23.x - c11.y*c12.x*c13.x*c22.x*c13.y*c22.y -
MS>            6*c11.y*c21.x*c12.y*c13.x*c13.y*c23.x - 6*c10.x*c21.x*c13y3*c23.x + 6*c20.x*c21.x*c13y3*c23.x +
MS>            2*c21.x*c12y3*c13.x*c23.x + 6*c10.x*c21.x*c13.x*c13y2*c23.y + 6*c10.x*c13.x*c21.y*c13y2*c23.x +
MS>            6*c10.x*c13.x*c22.x*c13y2*c22.y + 6*c10.y*c21.x*c13.x*c13y2*c23.x - 3*c11.x*c12.x*c21.x*c13y2*c23.y -
MS>            3*c11.x*c12.x*c21.y*c13y2*c23.x - 3*c11.x*c12.x*c22.x*c13y2*c22.y + 2*c11.x*c21.x*c12.y*c13y2*c23.x +
MS>            4*c11.y*c12.x*c21.x*c13y2*c23.x - 6*c10.y*c21.x*c13x2*c13.y*c23.y - 6*c10.y*c13x2*c21.y*c13.y*c23.x -
MS>            6*c10.y*c13x2*c22.x*c13.y*c22.y - 6*c20.x*c21.x*c13.x*c13y2*c23.y - 6*c20.x*c13.x*c21.y*c13y2*c23.x -
MS>            6*c20.x*c13.x*c22.x*c13y2*c22.y + 3*c11.y*c21.x*c12.y*c13x2*c23.y - 3*c11.y*c12.y*c13.x*c22x2*c13.y +
MS>            3*c11.y*c12.y*c13x2*c21.y*c23.x + 3*c11.y*c12.y*c13x2*c22.x*c22.y - 2*c12.x*c21.x*c12y2*c13.x*c23.y -
MS>            2*c12.x*c21.x*c12y2*c13.y*c23.x - 2*c12.x*c12y2*c13.x*c21.y*c23.x - 2*c12.x*c12y2*c13.x*c22.x*c22.y -
MS>            6*c20.y*c21.x*c13.x*c13y2*c23.x - 6*c21.x*c13.x*c21.y*c22.x*c13y2 + 6*c20.y*c13x2*c21.y*c13.y*c23.x +
MS>            2*c12x2*c21.x*c12.y*c13.y*c23.y + 2*c12x2*c12.y*c21.y*c13.y*c23.x + 2*c12x2*c12.y*c22.x*c13.y*c22.y -
MS>            3*c10.x*c22x2*c13y3 + 3*c20.x*c22x2*c13y3 + 3*c21x2*c22.x*c13y3 + c12y3*c13.x*c22x2 +
MS>            3*c10.y*c13.x*c22x2*c13y2 + c11.x*c12.y*c22x2*c13y2 + 2*c11.y*c12.x*c22x2*c13y2 -
MS>            c12.x*c12y2*c22x2*c13.y - 3*c20.y*c13.x*c22x2*c13y2 - 3*c21x2*c13.x*c13y2*c22.y +
MS>            c12x2*c12.y*c13.x*(2*c21.y*c23.y + c22y2) + c11.x*c12.x*c13.x*c13.y*(6*c21.y*c23.y + 3*c22y2) +
MS>            c21.x*c13x2*c13.y*(6*c20.y*c23.y + 6*c21.y*c22.y) + c12x3*c13.y*(-2*c21.y*c23.y - c22y2) +
MS>            c10.y*c13x3*(6*c21.y*c23.y + 3*c22y2) + c11.y*c12.x*c13x2*(-2*c21.y*c23.y - c22y2) +
MS>            c11.x*c12.y*c13x2*(-4*c21.y*c23.y - 2*c22y2) + c10.x*c13x2*c13.y*(-6*c21.y*c23.y - 3*c22y2) +
MS>            c13x2*c22.x*c13.y*(6*c20.y*c22.y + 3*c21y2) + c20.x*c13x2*c13.y*(6*c21.y*c23.y + 3*c22y2) +
MS>            c13x3*(-2*c20.y*c21.y*c23.y - c22.y*(2*c20.y*c22.y + c21y2) - c20.y*(2*c21.y*c23.y + c22y2) -
MS>            c21.y*(2*c20.y*c23.y + 2*c21.y*c22.y)),
MS>        -c10.x*c11.x*c12.y*c13.x*c13.y*c23.y + c10.x*c11.y*c12.x*c13.x*c13.y*c23.y + 6*c10.x*c11.y*c12.y*c13.x*c13.y*c23.x -
MS>            6*c10.y*c11.x*c12.x*c13.x*c13.y*c23.y - c10.y*c11.x*c12.y*c13.x*c13.y*c23.x + c10.y*c11.y*c12.x*c13.x*c13.y*c23.x +
MS>            c11.x*c11.y*c12.x*c12.y*c13.x*c23.y - c11.x*c11.y*c12.x*c12.y*c13.y*c23.x + c11.x*c20.x*c12.y*c13.x*c13.y*c23.y +
MS>            c11.x*c20.y*c12.y*c13.x*c13.y*c23.x + c11.x*c21.x*c12.y*c13.x*c13.y*c22.y + c11.x*c12.y*c13.x*c21.y*c22.x*c13.y -
MS>            c20.x*c11.y*c12.x*c13.x*c13.y*c23.y - 6*c20.x*c11.y*c12.y*c13.x*c13.y*c23.x - c11.y*c12.x*c20.y*c13.x*c13.y*c23.x -
MS>            c11.y*c12.x*c21.x*c13.x*c13.y*c22.y - c11.y*c12.x*c13.x*c21.y*c22.x*c13.y - 6*c11.y*c21.x*c12.y*c13.x*c22.x*c13.y -
MS>            6*c10.x*c20.x*c13y3*c23.x - 6*c10.x*c21.x*c22.x*c13y3 - 2*c10.x*c12y3*c13.x*c23.x + 6*c20.x*c21.x*c22.x*c13y3 +
MS>            2*c20.x*c12y3*c13.x*c23.x + 2*c21.x*c12y3*c13.x*c22.x + 2*c10.y*c12x3*c13.y*c23.y - 6*c10.x*c10.y*c13.x*c13y2*c23.x +
MS>            3*c10.x*c11.x*c12.x*c13y2*c23.y - 2*c10.x*c11.x*c12.y*c13y2*c23.x - 4*c10.x*c11.y*c12.x*c13y2*c23.x +
MS>            3*c10.y*c11.x*c12.x*c13y2*c23.x + 6*c10.x*c10.y*c13x2*c13.y*c23.y + 6*c10.x*c20.x*c13.x*c13y2*c23.y -
MS>            3*c10.x*c11.y*c12.y*c13x2*c23.y + 2*c10.x*c12.x*c12y2*c13.x*c23.y + 2*c10.x*c12.x*c12y2*c13.y*c23.x +
MS>            6*c10.x*c20.y*c13.x*c13y2*c23.x + 6*c10.x*c21.x*c13.x*c13y2*c22.y + 6*c10.x*c13.x*c21.y*c22.x*c13y2 +
MS>            4*c10.y*c11.x*c12.y*c13x2*c23.y + 6*c10.y*c20.x*c13.x*c13y2*c23.x + 2*c10.y*c11.y*c12.x*c13x2*c23.y -
MS>            3*c10.y*c11.y*c12.y*c13x2*c23.x + 2*c10.y*c12.x*c12y2*c13.x*c23.x + 6*c10.y*c21.x*c13.x*c22.x*c13y2 -
MS>            3*c11.x*c20.x*c12.x*c13y2*c23.y + 2*c11.x*c20.x*c12.y*c13y2*c23.x + c11.x*c11.y*c12y2*c13.x*c23.x -
MS>            3*c11.x*c12.x*c20.y*c13y2*c23.x - 3*c11.x*c12.x*c21.x*c13y2*c22.y - 3*c11.x*c12.x*c21.y*c22.x*c13y2 +
MS>            2*c11.x*c21.x*c12.y*c22.x*c13y2 + 4*c20.x*c11.y*c12.x*c13y2*c23.x + 4*c11.y*c12.x*c21.x*c22.x*c13y2 -
MS>            2*c10.x*c12x2*c12.y*c13.y*c23.y - 6*c10.y*c20.x*c13x2*c13.y*c23.y - 6*c10.y*c20.y*c13x2*c13.y*c23.x -
MS>            6*c10.y*c21.x*c13x2*c13.y*c22.y - 2*c10.y*c12x2*c12.y*c13.x*c23.y - 2*c10.y*c12x2*c12.y*c13.y*c23.x -
MS>            6*c10.y*c13x2*c21.y*c22.x*c13.y - c11.x*c11.y*c12x2*c13.y*c23.y - 2*c11.x*c11y2*c13.x*c13.y*c23.x +
MS>            3*c20.x*c11.y*c12.y*c13x2*c23.y - 2*c20.x*c12.x*c12y2*c13.x*c23.y - 2*c20.x*c12.x*c12y2*c13.y*c23.x -
MS>            6*c20.x*c20.y*c13.x*c13y2*c23.x - 6*c20.x*c21.x*c13.x*c13y2*c22.y - 6*c20.x*c13.x*c21.y*c22.x*c13y2 +
MS>            3*c11.y*c20.y*c12.y*c13x2*c23.x + 3*c11.y*c21.x*c12.y*c13x2*c22.y + 3*c11.y*c12.y*c13x2*c21.y*c22.x -
MS>            2*c12.x*c20.y*c12y2*c13.x*c23.x - 2*c12.x*c21.x*c12y2*c13.x*c22.y - 2*c12.x*c21.x*c12y2*c22.x*c13.y -
MS>            2*c12.x*c12y2*c13.x*c21.y*c22.x - 6*c20.y*c21.x*c13.x*c22.x*c13y2 - c11y2*c12.x*c12.y*c13.x*c23.x +
MS>            2*c20.x*c12x2*c12.y*c13.y*c23.y + 6*c20.y*c13x2*c21.y*c22.x*c13.y + 2*c11x2*c11.y*c13.x*c13.y*c23.y +
MS>            c11x2*c12.x*c12.y*c13.y*c23.y + 2*c12x2*c20.y*c12.y*c13.y*c23.x + 2*c12x2*c21.x*c12.y*c13.y*c22.y +
MS>            2*c12x2*c12.y*c21.y*c22.x*c13.y + c21x3*c13y3 + 3*c10x2*c13y3*c23.x - 3*c10y2*c13x3*c23.y +
MS>            3*c20x2*c13y3*c23.x + c11y3*c13x2*c23.x - c11x3*c13y2*c23.y - c11.x*c11y2*c13x2*c23.y +
MS>            c11x2*c11.y*c13y2*c23.x - 3*c10x2*c13.x*c13y2*c23.y + 3*c10y2*c13x2*c13.y*c23.x - c11x2*c12y2*c13.x*c23.y +
MS>            c11y2*c12x2*c13.y*c23.x - 3*c21x2*c13.x*c21.y*c13y2 - 3*c20x2*c13.x*c13y2*c23.y + 3*c20y2*c13x2*c13.y*c23.x +
MS>            c11.x*c12.x*c13.x*c13.y*(6*c20.y*c23.y + 6*c21.y*c22.y) + c12x3*c13.y*(-2*c20.y*c23.y - 2*c21.y*c22.y) +
MS>            c10.y*c13x3*(6*c20.y*c23.y + 6*c21.y*c22.y) + c11.y*c12.x*c13x2*(-2*c20.y*c23.y - 2*c21.y*c22.y) +
MS>            c12x2*c12.y*c13.x*(2*c20.y*c23.y + 2*c21.y*c22.y) + c11.x*c12.y*c13x2*(-4*c20.y*c23.y - 4*c21.y*c22.y) +
MS>            c10.x*c13x2*c13.y*(-6*c20.y*c23.y - 6*c21.y*c22.y) + c20.x*c13x2*c13.y*(6*c20.y*c23.y + 6*c21.y*c22.y) +
MS>            c21.x*c13x2*c13.y*(6*c20.y*c22.y + 3*c21y2) + c13x3*(-2*c20.y*c21.y*c22.y - c20y2*c23.y -
MS>            c21.y*(2*c20.y*c22.y + c21y2) - c20.y*(2*c20.y*c23.y + 2*c21.y*c22.y)),
MS>        -c10.x*c11.x*c12.y*c13.x*c13.y*c22.y + c10.x*c11.y*c12.x*c13.x*c13.y*c22.y + 6*c10.x*c11.y*c12.y*c13.x*c22.x*c13.y -
MS>            6*c10.y*c11.x*c12.x*c13.x*c13.y*c22.y - c10.y*c11.x*c12.y*c13.x*c22.x*c13.y + c10.y*c11.y*c12.x*c13.x*c22.x*c13.y +
MS>            c11.x*c11.y*c12.x*c12.y*c13.x*c22.y - c11.x*c11.y*c12.x*c12.y*c22.x*c13.y + c11.x*c20.x*c12.y*c13.x*c13.y*c22.y +
MS>            c11.x*c20.y*c12.y*c13.x*c22.x*c13.y + c11.x*c21.x*c12.y*c13.x*c21.y*c13.y - c20.x*c11.y*c12.x*c13.x*c13.y*c22.y -
MS>            6*c20.x*c11.y*c12.y*c13.x*c22.x*c13.y - c11.y*c12.x*c20.y*c13.x*c22.x*c13.y - c11.y*c12.x*c21.x*c13.x*c21.y*c13.y -
MS>            6*c10.x*c20.x*c22.x*c13y3 - 2*c10.x*c12y3*c13.x*c22.x + 2*c20.x*c12y3*c13.x*c22.x + 2*c10.y*c12x3*c13.y*c22.y -
MS>            6*c10.x*c10.y*c13.x*c22.x*c13y2 + 3*c10.x*c11.x*c12.x*c13y2*c22.y - 2*c10.x*c11.x*c12.y*c22.x*c13y2 -
MS>            4*c10.x*c11.y*c12.x*c22.x*c13y2 + 3*c10.y*c11.x*c12.x*c22.x*c13y2 + 6*c10.x*c10.y*c13x2*c13.y*c22.y +
MS>            6*c10.x*c20.x*c13.x*c13y2*c22.y - 3*c10.x*c11.y*c12.y*c13x2*c22.y + 2*c10.x*c12.x*c12y2*c13.x*c22.y +
MS>            2*c10.x*c12.x*c12y2*c22.x*c13.y + 6*c10.x*c20.y*c13.x*c22.x*c13y2 + 6*c10.x*c21.x*c13.x*c21.y*c13y2 +
MS>            4*c10.y*c11.x*c12.y*c13x2*c22.y + 6*c10.y*c20.x*c13.x*c22.x*c13y2 + 2*c10.y*c11.y*c12.x*c13x2*c22.y -
MS>            3*c10.y*c11.y*c12.y*c13x2*c22.x + 2*c10.y*c12.x*c12y2*c13.x*c22.x - 3*c11.x*c20.x*c12.x*c13y2*c22.y +
MS>            2*c11.x*c20.x*c12.y*c22.x*c13y2 + c11.x*c11.y*c12y2*c13.x*c22.x - 3*c11.x*c12.x*c20.y*c22.x*c13y2 -
MS>            3*c11.x*c12.x*c21.x*c21.y*c13y2 + 4*c20.x*c11.y*c12.x*c22.x*c13y2 - 2*c10.x*c12x2*c12.y*c13.y*c22.y -
MS>            6*c10.y*c20.x*c13x2*c13.y*c22.y - 6*c10.y*c20.y*c13x2*c22.x*c13.y - 6*c10.y*c21.x*c13x2*c21.y*c13.y -
MS>            2*c10.y*c12x2*c12.y*c13.x*c22.y - 2*c10.y*c12x2*c12.y*c22.x*c13.y - c11.x*c11.y*c12x2*c13.y*c22.y -
MS>            2*c11.x*c11y2*c13.x*c22.x*c13.y + 3*c20.x*c11.y*c12.y*c13x2*c22.y - 2*c20.x*c12.x*c12y2*c13.x*c22.y -
MS>            2*c20.x*c12.x*c12y2*c22.x*c13.y - 6*c20.x*c20.y*c13.x*c22.x*c13y2 - 6*c20.x*c21.x*c13.x*c21.y*c13y2 +
MS>            3*c11.y*c20.y*c12.y*c13x2*c22.x + 3*c11.y*c21.x*c12.y*c13x2*c21.y - 2*c12.x*c20.y*c12y2*c13.x*c22.x -
MS>            2*c12.x*c21.x*c12y2*c13.x*c21.y - c11y2*c12.x*c12.y*c13.x*c22.x + 2*c20.x*c12x2*c12.y*c13.y*c22.y -
MS>            3*c11.y*c21x2*c12.y*c13.x*c13.y + 6*c20.y*c21.x*c13x2*c21.y*c13.y + 2*c11x2*c11.y*c13.x*c13.y*c22.y +
MS>            c11x2*c12.x*c12.y*c13.y*c22.y + 2*c12x2*c20.y*c12.y*c22.x*c13.y + 2*c12x2*c21.x*c12.y*c21.y*c13.y -
MS>            3*c10.x*c21x2*c13y3 + 3*c20.x*c21x2*c13y3 + 3*c10x2*c22.x*c13y3 - 3*c10y2*c13x3*c22.y + 3*c20x2*c22.x*c13y3 +
MS>            c21x2*c12y3*c13.x + c11y3*c13x2*c22.x - c11x3*c13y2*c22.y + 3*c10.y*c21x2*c13.x*c13y2 -
MS>            c11.x*c11y2*c13x2*c22.y + c11.x*c21x2*c12.y*c13y2 + 2*c11.y*c12.x*c21x2*c13y2 + c11x2*c11.y*c22.x*c13y2 -
MS>            c12.x*c21x2*c12y2*c13.y - 3*c20.y*c21x2*c13.x*c13y2 - 3*c10x2*c13.x*c13y2*c22.y + 3*c10y2*c13x2*c22.x*c13.y -
MS>            c11x2*c12y2*c13.x*c22.y + c11y2*c12x2*c22.x*c13.y - 3*c20x2*c13.x*c13y2*c22.y + 3*c20y2*c13x2*c22.x*c13.y +
MS>            c12x2*c12.y*c13.x*(2*c20.y*c22.y + c21y2) + c11.x*c12.x*c13.x*c13.y*(6*c20.y*c22.y + 3*c21y2) +
MS>            c12x3*c13.y*(-2*c20.y*c22.y - c21y2) + c10.y*c13x3*(6*c20.y*c22.y + 3*c21y2) +
MS>            c11.y*c12.x*c13x2*(-2*c20.y*c22.y - c21y2) + c11.x*c12.y*c13x2*(-4*c20.y*c22.y - 2*c21y2) +
MS>            c10.x*c13x2*c13.y*(-6*c20.y*c22.y - 3*c21y2) + c20.x*c13x2*c13.y*(6*c20.y*c22.y + 3*c21y2) +
MS>            c13x3*(-2*c20.y*c21y2 - c20y2*c22.y - c20.y*(2*c20.y*c22.y + c21y2)),
MS>        -c10.x*c11.x*c12.y*c13.x*c21.y*c13.y + c10.x*c11.y*c12.x*c13.x*c21.y*c13.y + 6*c10.x*c11.y*c21.x*c12.y*c13.x*c13.y -
MS>            6*c10.y*c11.x*c12.x*c13.x*c21.y*c13.y - c10.y*c11.x*c21.x*c12.y*c13.x*c13.y + c10.y*c11.y*c12.x*c21.x*c13.x*c13.y -
MS>            c11.x*c11.y*c12.x*c21.x*c12.y*c13.y + c11.x*c11.y*c12.x*c12.y*c13.x*c21.y + c11.x*c20.x*c12.y*c13.x*c21.y*c13.y +
MS>            6*c11.x*c12.x*c20.y*c13.x*c21.y*c13.y + c11.x*c20.y*c21.x*c12.y*c13.x*c13.y - c20.x*c11.y*c12.x*c13.x*c21.y*c13.y -
MS>            6*c20.x*c11.y*c21.x*c12.y*c13.x*c13.y - c11.y*c12.x*c20.y*c21.x*c13.x*c13.y - 6*c10.x*c20.x*c21.x*c13y3 -
MS>            2*c10.x*c21.x*c12y3*c13.x + 6*c10.y*c20.y*c13x3*c21.y + 2*c20.x*c21.x*c12y3*c13.x + 2*c10.y*c12x3*c21.y*c13.y -
MS>            2*c12x3*c20.y*c21.y*c13.y - 6*c10.x*c10.y*c21.x*c13.x*c13y2 + 3*c10.x*c11.x*c12.x*c21.y*c13y2 -
MS>            2*c10.x*c11.x*c21.x*c12.y*c13y2 - 4*c10.x*c11.y*c12.x*c21.x*c13y2 + 3*c10.y*c11.x*c12.x*c21.x*c13y2 +
MS>            6*c10.x*c10.y*c13x2*c21.y*c13.y + 6*c10.x*c20.x*c13.x*c21.y*c13y2 - 3*c10.x*c11.y*c12.y*c13x2*c21.y +
MS>            2*c10.x*c12.x*c21.x*c12y2*c13.y + 2*c10.x*c12.x*c12y2*c13.x*c21.y + 6*c10.x*c20.y*c21.x*c13.x*c13y2 +
MS>            4*c10.y*c11.x*c12.y*c13x2*c21.y + 6*c10.y*c20.x*c21.x*c13.x*c13y2 + 2*c10.y*c11.y*c12.x*c13x2*c21.y -
MS>            3*c10.y*c11.y*c21.x*c12.y*c13x2 + 2*c10.y*c12.x*c21.x*c12y2*c13.x - 3*c11.x*c20.x*c12.x*c21.y*c13y2 +
MS>            2*c11.x*c20.x*c21.x*c12.y*c13y2 + c11.x*c11.y*c21.x*c12y2*c13.x - 3*c11.x*c12.x*c20.y*c21.x*c13y2 +
MS>            4*c20.x*c11.y*c12.x*c21.x*c13y2 - 6*c10.x*c20.y*c13x2*c21.y*c13.y - 2*c10.x*c12x2*c12.y*c21.y*c13.y -
MS>            6*c10.y*c20.x*c13x2*c21.y*c13.y - 6*c10.y*c20.y*c21.x*c13x2*c13.y - 2*c10.y*c12x2*c21.x*c12.y*c13.y -
MS>            2*c10.y*c12x2*c12.y*c13.x*c21.y - c11.x*c11.y*c12x2*c21.y*c13.y - 4*c11.x*c20.y*c12.y*c13x2*c21.y -
MS>            2*c11.x*c11y2*c21.x*c13.x*c13.y + 3*c20.x*c11.y*c12.y*c13x2*c21.y - 2*c20.x*c12.x*c21.x*c12y2*c13.y -
MS>            2*c20.x*c12.x*c12y2*c13.x*c21.y - 6*c20.x*c20.y*c21.x*c13.x*c13y2 - 2*c11.y*c12.x*c20.y*c13x2*c21.y +
MS>            3*c11.y*c20.y*c21.x*c12.y*c13x2 - 2*c12.x*c20.y*c21.x*c12y2*c13.x - c11y2*c12.x*c21.x*c12.y*c13.x +
MS>            6*c20.x*c20.y*c13x2*c21.y*c13.y + 2*c20.x*c12x2*c12.y*c21.y*c13.y + 2*c11x2*c11.y*c13.x*c21.y*c13.y +
MS>            c11x2*c12.x*c12.y*c21.y*c13.y + 2*c12x2*c20.y*c21.x*c12.y*c13.y + 2*c12x2*c20.y*c12.y*c13.x*c21.y +
MS>            3*c10x2*c21.x*c13y3 - 3*c10y2*c13x3*c21.y + 3*c20x2*c21.x*c13y3 + c11y3*c21.x*c13x2 - c11x3*c21.y*c13y2 -
MS>            3*c20y2*c13x3*c21.y - c11.x*c11y2*c13x2*c21.y + c11x2*c11.y*c21.x*c13y2 - 3*c10x2*c13.x*c21.y*c13y2 +
MS>            3*c10y2*c21.x*c13x2*c13.y - c11x2*c12y2*c13.x*c21.y + c11y2*c12x2*c21.x*c13.y - 3*c20x2*c13.x*c21.y*c13y2 +
MS>            3*c20y2*c21.x*c13x2*c13.y,
MS>        c10.x*c10.y*c11.x*c12.y*c13.x*c13.y - c10.x*c10.y*c11.y*c12.x*c13.x*c13.y + c10.x*c11.x*c11.y*c12.x*c12.y*c13.y -
MS>            c10.y*c11.x*c11.y*c12.x*c12.y*c13.x - c10.x*c11.x*c20.y*c12.y*c13.x*c13.y + 6*c10.x*c20.x*c11.y*c12.y*c13.x*c13.y +
MS>            c10.x*c11.y*c12.x*c20.y*c13.x*c13.y - c10.y*c11.x*c20.x*c12.y*c13.x*c13.y - 6*c10.y*c11.x*c12.x*c20.y*c13.x*c13.y +
MS>            c10.y*c20.x*c11.y*c12.x*c13.x*c13.y - c11.x*c20.x*c11.y*c12.x*c12.y*c13.y + c11.x*c11.y*c12.x*c20.y*c12.y*c13.x +
MS>            c11.x*c20.x*c20.y*c12.y*c13.x*c13.y - c20.x*c11.y*c12.x*c20.y*c13.x*c13.y - 2*c10.x*c20.x*c12y3*c13.x +
MS>            2*c10.y*c12x3*c20.y*c13.y - 3*c10.x*c10.y*c11.x*c12.x*c13y2 - 6*c10.x*c10.y*c20.x*c13.x*c13y2 +
MS>            3*c10.x*c10.y*c11.y*c12.y*c13x2 - 2*c10.x*c10.y*c12.x*c12y2*c13.x - 2*c10.x*c11.x*c20.x*c12.y*c13y2 -
MS>            c10.x*c11.x*c11.y*c12y2*c13.x + 3*c10.x*c11.x*c12.x*c20.y*c13y2 - 4*c10.x*c20.x*c11.y*c12.x*c13y2 +
MS>            3*c10.y*c11.x*c20.x*c12.x*c13y2 + 6*c10.x*c10.y*c20.y*c13x2*c13.y + 2*c10.x*c10.y*c12x2*c12.y*c13.y +
MS>            2*c10.x*c11.x*c11y2*c13.x*c13.y + 2*c10.x*c20.x*c12.x*c12y2*c13.y + 6*c10.x*c20.x*c20.y*c13.x*c13y2 -
MS>            3*c10.x*c11.y*c20.y*c12.y*c13x2 + 2*c10.x*c12.x*c20.y*c12y2*c13.x + c10.x*c11y2*c12.x*c12.y*c13.x +
MS>            c10.y*c11.x*c11.y*c12x2*c13.y + 4*c10.y*c11.x*c20.y*c12.y*c13x2 - 3*c10.y*c20.x*c11.y*c12.y*c13x2 +
MS>            2*c10.y*c20.x*c12.x*c12y2*c13.x + 2*c10.y*c11.y*c12.x*c20.y*c13x2 + c11.x*c20.x*c11.y*c12y2*c13.x -
MS>            3*c11.x*c20.x*c12.x*c20.y*c13y2 - 2*c10.x*c12x2*c20.y*c12.y*c13.y - 6*c10.y*c20.x*c20.y*c13x2*c13.y -
MS>            2*c10.y*c20.x*c12x2*c12.y*c13.y - 2*c10.y*c11x2*c11.y*c13.x*c13.y - c10.y*c11x2*c12.x*c12.y*c13.y -
MS>            2*c10.y*c12x2*c20.y*c12.y*c13.x - 2*c11.x*c20.x*c11y2*c13.x*c13.y - c11.x*c11.y*c12x2*c20.y*c13.y +
MS>            3*c20.x*c11.y*c20.y*c12.y*c13x2 - 2*c20.x*c12.x*c20.y*c12y2*c13.x - c20.x*c11y2*c12.x*c12.y*c13.x +
MS>            3*c10y2*c11.x*c12.x*c13.x*c13.y + 3*c11.x*c12.x*c20y2*c13.x*c13.y + 2*c20.x*c12x2*c20.y*c12.y*c13.y -
MS>            3*c10x2*c11.y*c12.y*c13.x*c13.y + 2*c11x2*c11.y*c20.y*c13.x*c13.y + c11x2*c12.x*c20.y*c12.y*c13.y -
MS>            3*c20x2*c11.y*c12.y*c13.x*c13.y - c10x3*c13y3 + c10y3*c13x3 + c20x3*c13y3 - c20y3*c13x3 -
MS>            3*c10.x*c20x2*c13y3 - c10.x*c11y3*c13x2 + 3*c10x2*c20.x*c13y3 + c10.y*c11x3*c13y2 +
MS>            3*c10.y*c20y2*c13x3 + c20.x*c11y3*c13x2 + c10x2*c12y3*c13.x - 3*c10y2*c20.y*c13x3 - c10y2*c12x3*c13.y +
MS>            c20x2*c12y3*c13.x - c11x3*c20.y*c13y2 - c12x3*c20y2*c13.y - c10.x*c11x2*c11.y*c13y2 +
MS>            c10.y*c11.x*c11y2*c13x2 - 3*c10.x*c10y2*c13x2*c13.y - c10.x*c11y2*c12x2*c13.y + c10.y*c11x2*c12y2*c13.x -
MS>            c11.x*c11y2*c20.y*c13x2 + 3*c10x2*c10.y*c13.x*c13y2 + c10x2*c11.x*c12.y*c13y2 +
MS>            2*c10x2*c11.y*c12.x*c13y2 - 2*c10y2*c11.x*c12.y*c13x2 - c10y2*c11.y*c12.x*c13x2 + c11x2*c20.x*c11.y*c13y2 -
MS>            3*c10.x*c20y2*c13x2*c13.y + 3*c10.y*c20x2*c13.x*c13y2 + c11.x*c20x2*c12.y*c13y2 - 2*c11.x*c20y2*c12.y*c13x2 +
MS>            c20.x*c11y2*c12x2*c13.y - c11.y*c12.x*c20y2*c13x2 - c10x2*c12.x*c12y2*c13.y - 3*c10x2*c20.y*c13.x*c13y2 +
MS>            3*c10y2*c20.x*c13x2*c13.y + c10y2*c12x2*c12.y*c13.x - c11x2*c20.y*c12y2*c13.x + 2*c20x2*c11.y*c12.x*c13y2 +
MS>            3*c20.x*c20y2*c13x2*c13.y - c20x2*c12.x*c12y2*c13.y - 3*c20x2*c20.y*c13.x*c13y2 + c12x2*c20y2*c12.y*c13.x
MS>    );
MS>    var roots = poly.getRootsInInterval(0,1);
MS>    . . .
MS>


MS>А вы говорите — индусы.


MS>На самом деле, конечно же автору — Kevin Lindsey — длинный респект!


Я бы такого не написал, даже если бы хотел. Физически
С уважением, Владислав Полищук
Re: [Профессиональное] Ночной кошмар кодера
От: DOOM Россия  
Дата: 31.05.06 06:47
Оценка:
Здравствуйте, McSeem2, Вы писали:

[skipped]

А после выполнения эта функция пишет на экран Just Another JS Hack?
P.S. Это по аналогии: c JAPH'ами
Re[2]: [Профессиональное] Ночной кошмар кодера
От: Mezomish  
Дата: 31.05.06 09:16
Оценка: +6 :)))
Здравствуйте, vladpol, Вы писали:

V>Я бы такого не написал, даже если бы хотел. Физически


Однако процитировать этот код ПОЛНОСТЬЮ у вас ума хватило....
Re[3]: [Профессиональное] Ночной кошмар кодера
От: vladpol Украина http://vlad-mislitel.livejournal.com/
Дата: 31.05.06 09:50
Оценка: -2
Здравствуйте, Mezomish, Вы писали:

M>Здравствуйте, vladpol, Вы писали:


V>>Я бы такого не написал, даже если бы хотел. Физически


M>Однако процитировать этот код ПОЛНОСТЬЮ у вас ума хватило....

Приношу свои извенения. Облом было вычищать
С уважением, Владислав Полищук
Re: [Профессиональное] Ночной кошмар кодера
От: Андрей Хропов Россия  
Дата: 31.05.06 10:56
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Искал функцию нахождения точек пересечения кубических кривых Безье... нашел на JavaScript... Это внатуре круто!


Тююю, халява какая. Вот нахождение кривой в пересечении NURBS поверхностей — это я думаю ДЕЛО .
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: [Профессиональное] Ночной кошмар кодера
От: McQwerty Россия  
Дата: 31.05.06 13:48
Оценка: :)))
Здравствуйте, McSeem2, Вы писали:

MS>Искал функцию нахождения точек пересечения кубических кривых Безье... нашел на JavaScript... Это внатуре круто!


MS>
<...skip...>


MS>А вы говорите — индусы.

MS>На самом деле, конечно же автору — Kevin Lindsey — длинный респект!

Такой код — не редкость. Приведу ещё пример:
if (((pKGW->TbChoosNumberActivButton == 3) || ((pKGW->TbChoosNumberActivButton != 3) && (pKGW->secretion.Cells[pKGW->TbChoosNumberActivButton][Cell]))) &&
((pKGW->CbNumberString == 0) || (pKGW->TbGradusActivButton == 2) || 
((pKGW->shape.TotalCells == 163) && ((pKGW->TbGradusActivButton == 1) && 
((pKGW->CbNumberString == 1) && (Cell == 81) ||
(pKGW->CbNumberString == 2) && ((Cell == 67) || (Cell == 68) || (Cell == 80) || (Cell == 82) || (Cell == 94) || (Cell == 95)) ||
(pKGW->CbNumberString == 3) && ((Cell == 53) || (Cell == 55) || (Cell == 79) || (Cell == 83) || (Cell == 107) || (Cell == 109)) ||
(pKGW->CbNumberString == 4) && ((Cell == 40) || (Cell == 43) || (Cell == 78) || (Cell == 84) || (Cell == 119) || (Cell == 122)) ||
(pKGW->CbNumberString == 5) && ((Cell == 28) || (Cell == 32) || (Cell == 77) || (Cell == 85) || (Cell == 130) || (Cell == 134)) ||
(pKGW->CbNumberString == 6) && ((Cell == 17) || (Cell == 22) || (Cell == 76) || (Cell == 86) || (Cell == 140) || (Cell == 145)) ||
(pKGW->CbNumberString == 7) && ((Cell == 7) || (Cell == 13) || (Cell == 75) || (Cell == 87) || (Cell == 149) || (Cell == 155)) ||
(pKGW->CbNumberString == 8) && ((Cell == 54) || (Cell == 66) || (Cell == 69) || (Cell == 93) || (Cell == 96) || (Cell == 108)) ||
(pKGW->CbNumberString == 9) && ((Cell == 41) || (Cell == 56) || (Cell == 65) || (Cell == 97) || (Cell == 106) || (Cell == 121)) ||
(pKGW->CbNumberString == 10) && ((Cell == 29) || (Cell == 44) || (Cell == 64) || (Cell == 98) || (Cell == 118) || (Cell == 133)) ||
(pKGW->CbNumberString == 11) && ((Cell == 18) || (Cell == 33) || (Cell == 63) || (Cell == 99) || (Cell == 129) || (Cell == 144)) ||
(pKGW->CbNumberString == 12) && ((Cell == 8) || (Cell == 23) || (Cell == 62) || (Cell == 100) || (Cell == 139) || (Cell == 154)) ||
(pKGW->CbNumberString == 13) && ((Cell == 0) || (Cell == 14) || (Cell == 61) || (Cell == 101) || (Cell == 148) || (Cell == 162)) ||
(pKGW->CbNumberString == 14) && ((Cell == 42) || (Cell == 52) || (Cell == 70) || (Cell == 92) || (Cell == 110) || (Cell == 120)) ||
(pKGW->CbNumberString == 15) && ((Cell == 30) || (Cell == 51) || (Cell == 57) || (Cell == 105) || (Cell == 111) || (Cell == 132)) ||
(pKGW->CbNumberString == 16) && ((Cell == 19) || (Cell == 45) || (Cell == 50) || (Cell == 112) || (Cell == 117) || (Cell == 143)) ||
(pKGW->CbNumberString == 17) && ((Cell == 9) || (Cell == 34) || (Cell == 49) || (Cell == 113) || (Cell == 128) || (Cell == 153)) ||
(pKGW->CbNumberString == 18) && ((Cell == 1) || (Cell == 24) || (Cell == 48) || (Cell == 114) || (Cell == 138) || (Cell == 161)) ||
(pKGW->CbNumberString == 19) && ((Cell == 31) || (Cell == 39) || (Cell == 71) || (Cell == 91) || (Cell == 123) || (Cell == 131)) ||
(pKGW->CbNumberString == 20) && ((Cell == 20) || (Cell == 38) || (Cell == 58) || (Cell == 104) || (Cell == 124) || (Cell == 142)) ||
(pKGW->CbNumberString == 21) && ((Cell == 10) || (Cell == 37) || (Cell == 46) || (Cell == 116) || (Cell == 125) || (Cell == 152)) ||
(pKGW->CbNumberString == 22) && ((Cell == 2) || (Cell == 35) || (Cell == 36) || (Cell == 126) || (Cell == 127) || (Cell == 160)) ||
(pKGW->CbNumberString == 23) && ((Cell == 21) || (Cell == 27) || (Cell == 72) || (Cell == 90) || (Cell == 135) || (Cell == 141)) ||
(pKGW->CbNumberString == 24) && ((Cell == 11) || (Cell == 26) || (Cell == 59) || (Cell == 103) || (Cell == 136) || (Cell == 151)) ||
(pKGW->CbNumberString == 25) && ((Cell == 3) || (Cell == 25) || (Cell == 47) || (Cell == 115) || (Cell == 137) || (Cell == 159)) ||
(pKGW->CbNumberString == 26) && ((Cell == 12) || (Cell == 16) || (Cell == 73) || (Cell == 89) || (Cell == 146) || (Cell == 150)) ||
(pKGW->CbNumberString == 27) && ((Cell == 4) || (Cell == 15) || (Cell == 60) || (Cell == 102) || (Cell == 147) || (Cell == 158)) ||
(pKGW->CbNumberString == 28) && ((Cell == 5) || (Cell == 6) || (Cell == 74) || (Cell == 88) || (Cell == 156) || (Cell == 157))))) ||
((pKGW->TbGradusActivButton == 0) && ((pKGW->shape.TotalCells == 163) && 
((pKGW->CbNumberString == 1) && (Cell == 81) ||
(pKGW->CbNumberString == 2) && ((Cell == 67) || (Cell == 68) || (Cell == 80) || (Cell == 82) || (Cell == 94) || (Cell == 95)) ||
(pKGW->CbNumberString == 3) && ((Cell == 53) || (Cell == 55) || (Cell == 79) || (Cell == 83) || (Cell == 107) || (Cell == 109)) ||
(pKGW->CbNumberString == 4) && ((Cell == 40) || (Cell == 43) || (Cell == 78) || (Cell == 84) || (Cell == 119) || (Cell == 122)) ||
(pKGW->CbNumberString == 5) && ((Cell == 28) || (Cell == 32) || (Cell == 77) || (Cell == 85) || (Cell == 130) || (Cell == 134)) ||
(pKGW->CbNumberString == 6) && ((Cell == 17) || (Cell == 22) || (Cell == 76) || (Cell == 86) || (Cell == 140) || (Cell == 145)) ||
(pKGW->CbNumberString == 7) && ((Cell == 7) || (Cell == 13) || (Cell == 75) || (Cell == 87) || (Cell == 149) || (Cell == 155)) ||
(pKGW->CbNumberString == 8) && ((Cell == 54) || (Cell == 66) || (Cell == 69) || (Cell == 93) || (Cell == 96) || (Cell == 108)) ||
(pKGW->CbNumberString == 9) && ((Cell == 41) || (Cell == 42) || (Cell == 52) || (Cell == 56) || (Cell == 65) || (Cell == 70) || (Cell == 92) || (Cell == 97) || (Cell == 106) || (Cell == 110) || (Cell == 120) || (Cell == 121)) ||
(pKGW->CbNumberString == 10) && ((Cell == 29) || (Cell == 31) || (Cell == 39) || (Cell == 44) || (Cell == 64) || (Cell == 71) || (Cell == 91) || (Cell == 98) || (Cell == 118) || (Cell == 123) || (Cell == 131) || (Cell == 133)) ||
(pKGW->CbNumberString == 11) && ((Cell == 18) || (Cell == 21) || (Cell == 27) || (Cell == 33) || (Cell == 63) || (Cell == 72) || (Cell == 90) || (Cell == 99) || (Cell == 129) || (Cell == 135) || (Cell == 141) || (Cell == 144)) ||
(pKGW->CbNumberString == 12) && ((Cell == 8) || (Cell == 12) || (Cell == 16) || (Cell == 23) || (Cell == 62) || (Cell == 73) || (Cell == 89) || (Cell == 100) || (Cell == 139) || (Cell == 146) || (Cell == 150) || (Cell == 154)) ||
(pKGW->CbNumberString == 13) && ((Cell == 0) || (Cell == 5) || (Cell == 6) || (Cell == 14) || (Cell == 61) || (Cell == 74) || (Cell == 88) || (Cell == 101) || (Cell == 148) || (Cell == 156) || (Cell == 157) || (Cell == 162)) ||
(pKGW->CbNumberString == 14) && ((Cell == 30) || (Cell == 51) || (Cell == 57) || (Cell == 105) || (Cell == 111) || (Cell == 132)) || 
(pKGW->CbNumberString == 15) && ((Cell == 19) || (Cell == 20) || (Cell == 38) || (Cell == 45) || (Cell == 50) || (Cell == 58) || (Cell == 104) || (Cell == 112) || (Cell == 117) || (Cell == 124) || (Cell == 142) || (Cell == 143)) ||
(pKGW->CbNumberString == 16) && ((Cell == 9) || (Cell == 11) || (Cell == 26) || (Cell == 34) || (Cell == 49) || (Cell == 59) || (Cell == 103) || (Cell == 113) || (Cell == 128) || (Cell == 136) || (Cell == 151) || (Cell == 153)) ||
(pKGW->CbNumberString == 17) && ((Cell == 1) || (Cell == 4) || (Cell == 15) || (Cell == 24) || (Cell == 48) || (Cell == 60) || (Cell == 102) || (Cell == 114) || (Cell == 138) || (Cell == 147) || (Cell == 158) || (Cell == 161)) ||
(pKGW->CbNumberString == 18) && ((Cell == 10) || (Cell == 37) || (Cell == 46) || (Cell == 116) || (Cell == 125) || (Cell == 152)) ||
(pKGW->CbNumberString == 19) && ((Cell == 2) || (Cell == 3) || (Cell == 25) || (Cell == 35) || (Cell == 36) || (Cell == 47)    || (Cell == 115) || (Cell == 126) || (Cell == 127) || (Cell == 137) || (Cell == 159) || (Cell == 160))))) ||
((pKGW->shape.TotalCells == 349) && ((pKGW->TbGradusActivButton == 1) && 
((pKGW->CbNumberString == 1) && (Cell == 174) ||
(pKGW->CbNumberString == 2) && ((Cell == 154) || (Cell == 155) || (Cell == 173) || (Cell == 175) || (Cell == 193) || (Cell == 194)) ||
(pKGW->CbNumberString == 3) && ((Cell == 134) || (Cell == 136) || (Cell == 172) || (Cell == 176) || (Cell == 212) || (Cell == 214)) ||
(pKGW->CbNumberString == 4) && ((Cell == 115) || (Cell == 118) || (Cell == 171) || (Cell == 177) || (Cell == 230) || (Cell == 233)) ||
(pKGW->CbNumberString == 5) && ((Cell == 96) || (Cell == 100) || (Cell == 170) || (Cell == 178) || (Cell == 248) || (Cell == 252)) ||
(pKGW->CbNumberString == 6) && ((Cell == 77) || (Cell == 82) || (Cell == 169) || (Cell == 179) || (Cell == 266) || (Cell == 271)) ||
(pKGW->CbNumberString == 7) && ((Cell == 59) || (Cell == 65) || (Cell == 168) || (Cell == 180) || (Cell == 283) || (Cell == 289)) ||
(pKGW->CbNumberString == 8) && ((Cell == 42) || (Cell == 49) || (Cell == 167) || (Cell == 181) || (Cell == 299) || (Cell == 306)) ||
(pKGW->CbNumberString == 9) && ((Cell == 27) || (Cell == 35) || (Cell == 166) || (Cell == 182) || (Cell == 313) || (Cell == 321)) ||
(pKGW->CbNumberString == 10) && ((Cell == 14) || (Cell == 23) || (Cell == 165) || (Cell == 183) || (Cell == 325) || (Cell == 334)) ||
(pKGW->CbNumberString == 11) && ((Cell == 135) || (Cell == 153) || (Cell == 156) || (Cell == 192) || (Cell == 195) || (Cell == 213)) ||
(pKGW->CbNumberString == 12) && ((Cell == 116) || (Cell == 137) || (Cell == 152) || (Cell == 196) || (Cell == 211) || (Cell == 232)) ||
(pKGW->CbNumberString == 13) && ((Cell == 97) || (Cell == 119) || (Cell == 151) || (Cell == 197) || (Cell == 229) || (Cell == 251)) ||
(pKGW->CbNumberString == 14) && ((Cell == 78) || (Cell == 101) || (Cell == 150) || (Cell == 198) || (Cell == 247) || (Cell == 270)) ||
(pKGW->CbNumberString == 15) && ((Cell == 60) || (Cell == 83) || (Cell == 149) || (Cell == 199) || (Cell == 265) || (Cell == 288)) ||
(pKGW->CbNumberString == 16) && ((Cell == 43) || (Cell == 66) || (Cell == 148) || (Cell == 200) || (Cell == 282) || (Cell == 305)) ||
(pKGW->CbNumberString == 17) && ((Cell == 28) || (Cell == 50) || (Cell == 147) || (Cell == 201) || (Cell == 298) || (Cell == 320)) ||
(pKGW->CbNumberString == 18) && ((Cell == 15) || (Cell == 36) || (Cell == 146) || (Cell == 202) || (Cell == 312) || (Cell == 333)) ||
(pKGW->CbNumberString == 19) && ((Cell == 4) || (Cell == 24) || (Cell == 145) || (Cell == 203) || (Cell == 324) || (Cell == 344)) ||
(pKGW->CbNumberString == 20) && ((Cell == 117) || (Cell == 133) || (Cell == 157) || (Cell == 191) || (Cell == 215) || (Cell == 231)) ||
(pKGW->CbNumberString == 21) && ((Cell == 98) || (Cell == 132) || (Cell == 138) || (Cell == 210) || (Cell == 216) || (Cell == 250)) ||
(pKGW->CbNumberString == 22) && ((Cell == 79) || (Cell == 120) || (Cell == 131) || (Cell == 217) || (Cell == 228) || (Cell == 269)) ||
(pKGW->CbNumberString == 23) && ((Cell == 61) || (Cell == 102) || (Cell == 130) || (Cell == 218) || (Cell == 246) || (Cell == 287)) ||
(pKGW->CbNumberString == 24) && ((Cell == 44) || (Cell == 84) || (Cell == 129) || (Cell == 219) || (Cell == 264) || (Cell == 304)) ||
(pKGW->CbNumberString == 25) && ((Cell == 29) || (Cell == 67) || (Cell == 128) || (Cell == 220) || (Cell == 281) || (Cell == 319)) ||
(pKGW->CbNumberString == 26) && ((Cell == 16) || (Cell == 51) || (Cell == 127) || (Cell == 221) || (Cell == 297) || (Cell == 332)) ||
(pKGW->CbNumberString == 27) && ((Cell == 5) || (Cell == 37) || (Cell == 126) || (Cell == 222) || (Cell == 311) || (Cell == 343)) ||
(pKGW->CbNumberString == 28) && ((Cell == 99) || (Cell == 114) || (Cell == 158) || (Cell == 190) || (Cell == 234) || (Cell == 249)) ||
(pKGW->CbNumberString == 29) && ((Cell == 80) || (Cell == 113) || (Cell == 139) || (Cell == 209) || (Cell == 235) || (Cell == 268)) ||
(pKGW->CbNumberString == 30) && ((Cell == 62) || (Cell == 112) || (Cell == 121) || (Cell == 227) || (Cell == 236) || (Cell == 286)) ||
(pKGW->CbNumberString == 31) && ((Cell == 45) || (Cell == 103) || (Cell == 111) || (Cell == 237) || (Cell == 245) || (Cell == 303)) ||
(pKGW->CbNumberString == 32) && ((Cell == 30) || (Cell == 85) || (Cell == 110) || (Cell == 238) || (Cell == 263) || (Cell == 318)) ||
(pKGW->CbNumberString == 33) && ((Cell == 17) || (Cell == 68) || (Cell == 109) || (Cell == 239) || (Cell == 280) || (Cell == 331)) ||
(pKGW->CbNumberString == 34) && ((Cell == 6) || (Cell == 52) || (Cell == 108) || (Cell == 240) || (Cell == 296) || (Cell == 342)) ||
(pKGW->CbNumberString == 35) && ((Cell == 81) || (Cell == 95) || (Cell == 159) || (Cell == 189) || (Cell == 253) || (Cell == 267)) ||
(pKGW->CbNumberString == 36) && ((Cell == 63) || (Cell == 94) || (Cell == 140) || (Cell == 208) || (Cell == 254) || (Cell == 285)) ||
(pKGW->CbNumberString == 37) && ((Cell == 46) || (Cell == 93) || (Cell == 122) || (Cell == 226) || (Cell == 255) || (Cell == 302)) ||
(pKGW->CbNumberString == 38) && ((Cell == 31) || (Cell == 92) || (Cell == 104) || (Cell == 244) || (Cell == 256) || (Cell == 317)) ||
(pKGW->CbNumberString == 39) && ((Cell == 18) || (Cell == 86) || (Cell == 91) || (Cell == 257) || (Cell == 262) || (Cell == 330)) ||
(pKGW->CbNumberString == 40) && ((Cell == 7) || (Cell == 69) || (Cell == 90) || (Cell == 258) || (Cell == 279) || (Cell == 341)) ||
(pKGW->CbNumberString == 41) && ((Cell == 0) || (Cell == 53) || (Cell == 89) || (Cell == 259) || (Cell == 295) || (Cell == 348)) ||
(pKGW->CbNumberString == 42) && ((Cell == 64) || (Cell == 76) || (Cell == 160) || (Cell == 188) || (Cell == 272) || (Cell == 284)) ||
(pKGW->CbNumberString == 43) && ((Cell == 47) || (Cell == 75) || (Cell == 141) || (Cell == 207) || (Cell == 273) || (Cell == 301)) ||
(pKGW->CbNumberString == 44) && ((Cell == 32) || (Cell == 74) || (Cell == 123) || (Cell == 225) || (Cell == 274) || (Cell == 316)) ||
(pKGW->CbNumberString == 45) && ((Cell == 19) || (Cell == 73) || (Cell == 105) || (Cell == 243) || (Cell == 275) || (Cell == 329)) ||
(pKGW->CbNumberString == 46) && ((Cell == 8) || (Cell == 72) || (Cell == 87) || (Cell == 261) || (Cell == 276) || (Cell == 340)) ||
(pKGW->CbNumberString == 47) && ((Cell == 1) || (Cell == 70) || (Cell == 71) || (Cell == 277) || (Cell == 278) || (Cell == 347)) ||
(pKGW->CbNumberString == 48) && ((Cell == 48) || (Cell == 58) || (Cell == 161) || (Cell == 187) || (Cell == 290) || (Cell == 300)) ||
(pKGW->CbNumberString == 49) && ((Cell == 33) || (Cell == 57) || (Cell == 142) || (Cell == 206) || (Cell == 291) || (Cell == 315)) ||
(pKGW->CbNumberString == 50) && ((Cell == 20) || (Cell == 56) || (Cell == 124) || (Cell == 224) || (Cell == 292) || (Cell == 328)) ||
(pKGW->CbNumberString == 51) && ((Cell == 9) || (Cell == 55) || (Cell == 106) || (Cell == 242) || (Cell == 293) || (Cell == 339)) ||
(pKGW->CbNumberString == 52) && ((Cell == 2) || (Cell == 54) || (Cell == 88) || (Cell == 260) || (Cell == 294) || (Cell == 346)) ||
(pKGW->CbNumberString == 53) && ((Cell == 34) || (Cell == 41) || (Cell == 162) || (Cell == 186) || (Cell == 307) || (Cell == 314)) ||
(pKGW->CbNumberString == 54) && ((Cell == 21) || (Cell == 40) || (Cell == 143) || (Cell == 205) || (Cell == 308) || (Cell == 327)) ||
(pKGW->CbNumberString == 55) && ((Cell == 10) || (Cell == 39) || (Cell == 125) || (Cell == 223) || (Cell == 309) || (Cell == 338)) ||
(pKGW->CbNumberString == 56) && ((Cell == 3) || (Cell == 38) || (Cell == 107) || (Cell == 241) || (Cell == 310) || (Cell == 345)) ||
(pKGW->CbNumberString == 57) && ((Cell == 22) || (Cell == 26) || (Cell == 163) || (Cell == 185) || (Cell == 322) || (Cell == 326)) ||
(pKGW->CbNumberString == 58) && ((Cell == 11) || (Cell == 25) || (Cell == 144) || (Cell == 204) || (Cell == 323) || (Cell == 337)) ||
(pKGW->CbNumberString == 59) && ((Cell == 12) || (Cell == 13) || (Cell == 164) || (Cell == 184) || (Cell == 335) || (Cell == 336))))) ||
((pKGW->TbGradusActivButton == 0) && ((pKGW->shape.TotalCells == 349) && 
((pKGW->CbNumberString == 1) && (Cell == 174) ||
(pKGW->CbNumberString == 2) && ((Cell == 154) || (Cell == 155) || (Cell == 173) || (Cell == 175) || (Cell == 193) || (Cell == 194)) ||
(pKGW->CbNumberString == 3) && ((Cell == 134) || (Cell == 136) || (Cell == 172) || (Cell == 176) || (Cell == 212) || (Cell == 214)) ||
(pKGW->CbNumberString == 4) && ((Cell == 115) || (Cell == 118) || (Cell == 171) || (Cell == 177) || (Cell == 230) || (Cell == 233)) ||
(pKGW->CbNumberString == 5) && ((Cell == 96) || (Cell == 100) || (Cell == 170) || (Cell == 178) || (Cell == 248) || (Cell == 252)) ||
(pKGW->CbNumberString == 6) && ((Cell == 77) || (Cell == 82) || (Cell == 169) || (Cell == 179) || (Cell == 266) || (Cell == 271)) ||
(pKGW->CbNumberString == 7) && ((Cell == 59) || (Cell == 65) || (Cell == 168) || (Cell == 180) || (Cell == 283) || (Cell == 289)) ||
(pKGW->CbNumberString == 8) && ((Cell == 42) || (Cell == 49) || (Cell == 167) || (Cell == 181) || (Cell == 299) || (Cell == 306)) ||
(pKGW->CbNumberString == 9) && ((Cell == 27) || (Cell == 35) || (Cell == 166) || (Cell == 182) || (Cell == 313) || (Cell == 321)) ||
(pKGW->CbNumberString == 10) && ((Cell == 14) || (Cell == 23) || (Cell == 165) || (Cell == 183) || (Cell == 325) || (Cell == 334)) ||
(pKGW->CbNumberString == 11) && ((Cell == 135) || (Cell == 153) || (Cell == 156) || (Cell == 192) || (Cell == 195) || (Cell == 213)) ||
(pKGW->CbNumberString == 12) && ((Cell == 116) || (Cell == 117) || (Cell == 133) || (Cell == 137) || (Cell == 152) || (Cell == 157) || (Cell == 191) || (Cell == 196) || (Cell == 211) || (Cell == 215) || (Cell == 231) || (Cell == 232)) ||
(pKGW->CbNumberString == 13) && ((Cell == 97) || (Cell == 99) || (Cell == 114) || (Cell == 119) || (Cell == 151) || (Cell == 158) || (Cell == 190) || (Cell == 197) || (Cell == 229) || (Cell == 234) || (Cell == 249) || (Cell == 251)) ||
(pKGW->CbNumberString == 14) && ((Cell == 78) || (Cell == 81) || (Cell == 95) || (Cell == 101) || (Cell == 150) || (Cell == 159) || (Cell == 189) || (Cell == 198) || (Cell == 247) || (Cell == 253) || (Cell == 267) || (Cell == 270)) ||
(pKGW->CbNumberString == 15) && ((Cell == 60) || (Cell == 64) || (Cell == 76) || (Cell == 83) || (Cell == 149) || (Cell == 160) || (Cell == 188) || (Cell == 199) || (Cell == 265) || (Cell == 272) || (Cell == 284) || (Cell == 288)) ||
(pKGW->CbNumberString == 16) && ((Cell == 43) || (Cell == 48) || (Cell == 58) || (Cell == 66) || (Cell == 148) || (Cell == 161) || (Cell == 187) || (Cell == 200) || (Cell == 282) || (Cell == 290) || (Cell == 300) || (Cell == 305)) ||
(pKGW->CbNumberString == 17) && ((Cell == 28) || (Cell == 34) || (Cell == 41) || (Cell == 50) || (Cell == 147) || (Cell == 162) || (Cell == 186) || (Cell == 201) || (Cell == 298) || (Cell == 307) || (Cell == 314) || (Cell == 320)) ||
(pKGW->CbNumberString == 18) && ((Cell == 15) || (Cell == 22) || (Cell == 26) || (Cell == 36) || (Cell == 146) || (Cell == 163) || (Cell == 185) || (Cell == 202) || (Cell == 312) || (Cell == 322) || (Cell == 326) || (Cell == 333)) ||
(pKGW->CbNumberString == 19) && ((Cell == 4) || (Cell == 12) || (Cell == 13) || (Cell == 24) || (Cell == 145) || (Cell == 164) || (Cell == 184) || (Cell == 203) || (Cell == 324) || (Cell == 335) || (Cell == 336) || (Cell == 344)) ||
(pKGW->CbNumberString == 20) && ((Cell == 98) || (Cell == 132) || (Cell == 138) || (Cell == 210) || (Cell == 216) || (Cell == 250)) || 
(pKGW->CbNumberString == 21) && ((Cell == 79) || (Cell == 80) || (Cell == 113) || (Cell == 120) || (Cell == 131) || (Cell == 139) || (Cell == 209) || (Cell == 217) || (Cell == 228) || (Cell == 235) || (Cell == 268) || (Cell == 269)) ||
(pKGW->CbNumberString == 22) && ((Cell == 61) || (Cell == 63) || (Cell == 94) || (Cell == 102) || (Cell == 130) || (Cell == 140) || (Cell == 208) || (Cell == 218) || (Cell == 246) || (Cell == 254) || (Cell == 285) || (Cell == 304)) ||
(pKGW->CbNumberString == 23) && ((Cell == 44) || (Cell == 47) || (Cell == 75) || (Cell == 84) || (Cell == 129) || (Cell == 141) || (Cell == 207) || (Cell == 219) || (Cell == 264) || (Cell == 273) || (Cell == 301) || (Cell == 304)) ||
(pKGW->CbNumberString == 24) && ((Cell == 29) || (Cell == 33) || (Cell == 57) || (Cell == 67) || (Cell == 128) || (Cell == 142) || (Cell == 206) || (Cell == 220) || (Cell == 281) || (Cell == 291) || (Cell == 315) || (Cell == 319)) ||
(pKGW->CbNumberString == 25) && ((Cell == 16) || (Cell == 21) || (Cell == 40) || (Cell == 51) || (Cell == 127) || (Cell == 143) || (Cell == 205) || (Cell == 221) || (Cell == 297) || (Cell == 308) || (Cell == 327) || (Cell == 332)) ||
(pKGW->CbNumberString == 26) && ((Cell == 5) || (Cell == 11) || (Cell == 25) || (Cell == 37) || (Cell == 126) || (Cell == 144) || (Cell == 204) || (Cell == 222) || (Cell == 311) || (Cell == 323) || (Cell == 337) || (Cell == 343)) ||
(pKGW->CbNumberString == 27) && ((Cell == 62) || (Cell == 112) || (Cell == 121) || (Cell == 227) || (Cell == 236) || (Cell == 286)) ||
(pKGW->CbNumberString == 28) && ((Cell == 45) || (Cell == 46) || (Cell == 93) || (Cell == 103) || (Cell == 111) || (Cell == 122) || (Cell == 226) || (Cell == 237) || (Cell == 245) || (Cell == 255) || (Cell == 302) || (Cell == 303)) ||
(pKGW->CbNumberString == 29) && ((Cell == 30) || (Cell == 32) || (Cell == 74) || (Cell == 85) || (Cell == 110) || (Cell == 123) || (Cell == 225) || (Cell == 238) || (Cell == 263) || (Cell == 274) || (Cell == 316) || (Cell == 318)) ||
(pKGW->CbNumberString == 30) && ((Cell == 17) || (Cell == 20) || (Cell == 56) || (Cell == 68) || (Cell == 109) || (Cell == 124) || (Cell == 224) || (Cell == 239) || (Cell == 280) || (Cell == 292) || (Cell == 328) || (Cell == 331)) ||
(pKGW->CbNumberString == 31) && ((Cell == 6) || (Cell == 10) || (Cell == 39) || (Cell == 52) || (Cell == 108) || (Cell == 125) || (Cell == 223) || (Cell == 240) || (Cell == 296) || (Cell == 309) || (Cell == 338) || (Cell == 342)) ||
(pKGW->CbNumberString == 32) && ((Cell == 31) || (Cell == 92) || (Cell == 104) || (Cell == 244) || (Cell == 256) || (Cell == 317)) ||
(pKGW->CbNumberString == 33) && ((Cell == 18) || (Cell == 19) || (Cell == 73) || (Cell == 86) || (Cell == 91) || (Cell == 105) || (Cell == 243) || (Cell == 257) || (Cell == 262) || (Cell == 275) || (Cell == 329) || (Cell == 330)) ||
(pKGW->CbNumberString == 34) && ((Cell == 7) || (Cell == 9) || (Cell == 55) || (Cell == 69) || (Cell == 90) || (Cell == 106) || (Cell == 242) || (Cell == 258) || (Cell == 279) || (Cell == 293) || (Cell == 339) || (Cell == 341)) ||
(pKGW->CbNumberString == 35) && ((Cell == 0) || (Cell == 3) || (Cell == 38) || (Cell == 53) || (Cell == 89) || (Cell == 107) || (Cell == 241) || (Cell == 259) || (Cell == 295) || (Cell == 310) || (Cell == 345) || (Cell == 348)) ||
(pKGW->CbNumberString == 36) && ((Cell == 8) || (Cell == 72) || (Cell == 87) || (Cell == 261) || (Cell == 276) || (Cell == 340)) ||
(pKGW->CbNumberString == 37) && ((Cell == 1) || (Cell == 2) || (Cell == 54) || (Cell == 70) || (Cell == 71) || (Cell == 88) || (Cell == 260) || (Cell == 277) || (Cell == 278) || (Cell == 294) || (Cell == 346) || (Cell == 347))))) ||
((pKGW->shape.TotalCells == 313) && ((pKGW->TbGradusActivButton == 1) && 
((pKGW->CbNumberString == 1) && (Cell == 156) ||
(pKGW->CbNumberString == 2) && ((Cell == 137) || (Cell == 138) || (Cell == 155) || (Cell == 157) || (Cell == 174) || (Cell == 175)) ||
(pKGW->CbNumberString == 3) && ((Cell == 118) || (Cell == 120) || (Cell == 154) || (Cell == 158) || (Cell == 192) || (Cell == 194)) ||
(pKGW->CbNumberString == 4) && ((Cell == 99) || (Cell == 102) || (Cell == 153) || (Cell == 159) || (Cell == 210) || (Cell == 213)) ||
(pKGW->CbNumberString == 5) && ((Cell == 81) || (Cell == 85) || (Cell == 152) || (Cell == 160) || (Cell == 227) || (Cell == 231)) ||
(pKGW->CbNumberString == 6) && ((Cell == 64) || (Cell == 69) || (Cell == 151) || (Cell == 161) || (Cell == 243) || (Cell == 248)) ||
(pKGW->CbNumberString == 7) && ((Cell == 48) || (Cell == 54) || (Cell == 150) || (Cell == 162) || (Cell == 258) || (Cell == 264)) ||
(pKGW->CbNumberString == 8) && ((Cell == 33) || (Cell == 40) || (Cell == 149) || (Cell == 163) || (Cell == 272) || (Cell == 279)) ||
(pKGW->CbNumberString == 9) && ((Cell == 19) || (Cell == 27) || (Cell == 148) || (Cell == 164) || (Cell == 285) || (Cell == 293)) ||
(pKGW->CbNumberString == 10) && ((Cell == 7) || (Cell == 16) || (Cell == 147) || (Cell == 165) || (Cell == 296) || (Cell == 305)) ||
(pKGW->CbNumberString == 11) && ((Cell == 119) || (Cell == 136) || (Cell == 139) || (Cell == 173) || (Cell == 176) || (Cell == 193)) ||
(pKGW->CbNumberString == 12) && ((Cell == 100) || (Cell == 121) || (Cell == 135) || (Cell == 177) || (Cell == 191) || (Cell == 212)) ||
(pKGW->CbNumberString == 13) && ((Cell == 82) || (Cell == 103) || (Cell == 134) || (Cell == 178) || (Cell == 209) || (Cell == 230)) ||
(pKGW->CbNumberString == 14) && ((Cell == 65) || (Cell == 86) || (Cell == 133) || (Cell == 179) || (Cell == 226) || (Cell == 247)) ||
(pKGW->CbNumberString == 15) && ((Cell == 49) || (Cell == 70) || (Cell == 132) || (Cell == 180) || (Cell == 242) || (Cell == 263)) ||
(pKGW->CbNumberString == 16) && ((Cell == 34) || (Cell == 55) || (Cell == 131) || (Cell == 181) || (Cell == 257) || (Cell == 278)) ||
(pKGW->CbNumberString == 17) && ((Cell == 20) || (Cell == 41) || (Cell == 130) || (Cell == 182) || (Cell == 271) || (Cell == 292)) ||
(pKGW->CbNumberString == 18) && ((Cell == 8) || (Cell == 28) || (Cell == 129) || (Cell == 183) || (Cell == 284) || (Cell == 304)) ||
(pKGW->CbNumberString == 19) && ((Cell == 101) || (Cell == 117) || (Cell == 140) || (Cell == 172) || (Cell == 195) || (Cell == 211)) ||
(pKGW->CbNumberString == 20) && ((Cell == 83) || (Cell == 116) || (Cell == 122) || (Cell == 190) || (Cell == 196) || (Cell == 229)) ||
(pKGW->CbNumberString == 21) && ((Cell == 66) || (Cell == 104) || (Cell == 115) || (Cell == 197) || (Cell == 208) || (Cell == 246)) ||
(pKGW->CbNumberString == 22) && ((Cell == 50) || (Cell == 87) || (Cell == 114) || (Cell == 198) || (Cell == 225) || (Cell == 262)) ||
(pKGW->CbNumberString == 23) && ((Cell == 35) || (Cell == 71) || (Cell == 113) || (Cell == 199) || (Cell == 241) || (Cell == 277)) ||
(pKGW->CbNumberString == 24) && ((Cell == 21) || (Cell == 56) || (Cell == 112) || (Cell == 200) || (Cell == 256) || (Cell == 291)) ||
(pKGW->CbNumberString == 25) && ((Cell == 9) || (Cell == 42) || (Cell == 111) || (Cell == 201) || (Cell == 270) || (Cell == 303)) ||
(pKGW->CbNumberString == 26) && ((Cell == 0) || (Cell == 29) || (Cell == 110) || (Cell == 202) || (Cell == 283) || (Cell == 312)) ||
(pKGW->CbNumberString == 27) && ((Cell == 84) || (Cell == 98) || (Cell == 141) || (Cell == 171) || (Cell == 214) || (Cell == 228)) ||
(pKGW->CbNumberString == 28) && ((Cell == 67) || (Cell == 97) || (Cell == 123) || (Cell == 189) || (Cell == 215) || (Cell == 245)) ||
(pKGW->CbNumberString == 29) && ((Cell == 51) || (Cell == 96) || (Cell == 105) || (Cell == 207) || (Cell == 216) || (Cell == 261)) ||
(pKGW->CbNumberString == 30) && ((Cell == 36) || (Cell == 88) || (Cell == 95) || (Cell == 217) || (Cell == 224) || (Cell == 276)) ||
(pKGW->CbNumberString == 31) && ((Cell == 22) || (Cell == 72) || (Cell == 94) || (Cell == 218) || (Cell == 240) || (Cell == 290)) ||
(pKGW->CbNumberString == 32) && ((Cell == 10) || (Cell == 57) || (Cell == 93) || (Cell == 219) || (Cell == 255) || (Cell == 302)) ||
(pKGW->CbNumberString == 33) && ((Cell == 1) || (Cell == 43) || (Cell == 92) || (Cell == 220) || (Cell == 269) || (Cell == 311)) ||
(pKGW->CbNumberString == 34) && ((Cell == 68) || (Cell == 80) || (Cell == 142) || (Cell == 170) || (Cell == 232) || (Cell == 244)) ||
(pKGW->CbNumberString == 35) && ((Cell == 52) || (Cell == 79) || (Cell == 124) || (Cell == 188) || (Cell == 233) || (Cell == 260)) ||
(pKGW->CbNumberString == 36) && ((Cell == 37) || (Cell == 78) || (Cell == 106) || (Cell == 206) || (Cell == 234) || (Cell == 275)) ||
(pKGW->CbNumberString == 37) && ((Cell == 23) || (Cell == 77) || (Cell == 89) || (Cell == 223) || (Cell == 235) || (Cell == 289)) ||
(pKGW->CbNumberString == 38) && ((Cell == 11) || (Cell == 73) || (Cell == 76) || (Cell == 236) || (Cell == 239) || (Cell == 301)) ||
(pKGW->CbNumberString == 39) && ((Cell == 2) || (Cell == 58) || (Cell == 75) || (Cell == 237) || (Cell == 254) || (Cell == 310)) ||
(pKGW->CbNumberString == 40) && ((Cell == 53) || (Cell == 63) || (Cell == 143) || (Cell == 169) || (Cell == 249) || (Cell == 259)) ||
(pKGW->CbNumberString == 41) && ((Cell == 38) || (Cell == 62) || (Cell == 125) || (Cell == 187) || (Cell == 250) || (Cell == 274)) ||
(pKGW->CbNumberString == 42) && ((Cell == 24) || (Cell == 61) || (Cell == 107) || (Cell == 205) || (Cell == 251) || (Cell == 288)) ||
(pKGW->CbNumberString == 43) && ((Cell == 12) || (Cell == 60) || (Cell == 90) || (Cell == 222) || (Cell == 252) || (Cell == 300)) ||
(pKGW->CbNumberString == 44) && ((Cell == 3) || (Cell == 59) || (Cell == 74) || (Cell == 238) || (Cell == 253) || (Cell == 309)) ||
(pKGW->CbNumberString == 45) && ((Cell == 39) || (Cell == 47) || (Cell == 144) || (Cell == 168) || (Cell == 265) || (Cell == 273)) ||
(pKGW->CbNumberString == 46) && ((Cell == 25) || (Cell == 46) || (Cell == 126) || (Cell == 186) || (Cell == 266) || (Cell == 287)) ||
(pKGW->CbNumberString == 47) && ((Cell == 13) || (Cell == 45) || (Cell == 108) || (Cell == 204) || (Cell == 267) || (Cell == 299)) ||
(pKGW->CbNumberString == 48) && ((Cell == 4) || (Cell == 44) || (Cell == 91) || (Cell == 221) || (Cell == 268) || (Cell == 308)) ||
(pKGW->CbNumberString == 49) && ((Cell == 26) || (Cell == 32) || (Cell == 145) || (Cell == 167) || (Cell == 280) || (Cell == 286)) ||
(pKGW->CbNumberString == 50) && ((Cell == 14) || (Cell == 31) || (Cell == 127) || (Cell == 185) || (Cell == 281) || (Cell == 298)) ||
(pKGW->CbNumberString == 51) && ((Cell == 5) || (Cell == 30) || (Cell == 109) || (Cell == 203) || (Cell == 282) || (Cell == 307)) ||
(pKGW->CbNumberString == 52) && ((Cell == 15) || (Cell == 18) || (Cell == 146) || (Cell == 166) || (Cell == 294) || (Cell == 297)) ||
(pKGW->CbNumberString == 53) && ((Cell == 6) || (Cell == 17) || (Cell == 128) || (Cell == 184) || (Cell == 295) || (Cell == 306))))) ||
((pKGW->TbGradusActivButton == 0) && ((pKGW->shape.TotalCells == 313) && 
((pKGW->CbNumberString == 1) && (Cell == 156) ||
(pKGW->CbNumberString == 2) && ((Cell == 137) || (Cell == 138) || (Cell == 155) || (Cell == 157) || (Cell == 174) || (Cell == 175)) ||
(pKGW->CbNumberString == 3) && ((Cell == 118) || (Cell == 120) || (Cell == 154) || (Cell == 158) || (Cell == 192) || (Cell == 194)) ||
(pKGW->CbNumberString == 4) && ((Cell == 99) || (Cell == 102) || (Cell == 153) || (Cell == 159) || (Cell == 210) || (Cell == 213)) ||
(pKGW->CbNumberString == 5) && ((Cell == 81) || (Cell == 85) || (Cell == 152) || (Cell == 160) || (Cell == 227) || (Cell == 231)) ||
(pKGW->CbNumberString == 6) && ((Cell == 64) || (Cell == 69) || (Cell == 151) || (Cell == 161) || (Cell == 243) || (Cell == 248)) ||
(pKGW->CbNumberString == 7) && ((Cell == 48) || (Cell == 54) || (Cell == 150) || (Cell == 162) || (Cell == 258) || (Cell == 264)) ||
(pKGW->CbNumberString == 8) && ((Cell == 33) || (Cell == 40) || (Cell == 149) || (Cell == 163) || (Cell == 272) || (Cell == 279)) ||
(pKGW->CbNumberString == 9) && ((Cell == 19) || (Cell == 27) || (Cell == 148) || (Cell == 164) || (Cell == 285) || (Cell == 293)) ||
(pKGW->CbNumberString == 10) && ((Cell == 7) || (Cell == 16) || (Cell == 147) || (Cell == 165) || (Cell == 296) || (Cell == 305)) ||
(pKGW->CbNumberString == 11) && ((Cell == 119) || (Cell == 136) || (Cell == 139) || (Cell == 173) || (Cell == 176) || (Cell == 193)) ||
(pKGW->CbNumberString == 12) && ((Cell == 100) || (Cell == 101) || (Cell == 117) || (Cell == 121) || (Cell == 135) || (Cell == 140) || (Cell == 172) || (Cell == 177) || (Cell == 191) || (Cell == 195) || (Cell == 211) || (Cell == 212)) ||
(pKGW->CbNumberString == 13) && ((Cell == 82) || (Cell == 84) || (Cell == 98) || (Cell == 103) || (Cell == 134) || (Cell == 141) || (Cell == 171) || (Cell == 178) || (Cell == 209) || (Cell == 214) || (Cell == 228) || (Cell == 230)) ||
(pKGW->CbNumberString == 14) && ((Cell == 65) || (Cell == 68) || (Cell == 80) || (Cell == 86) || (Cell == 133) || (Cell == 142) || (Cell == 170) || (Cell == 179) || (Cell == 226) || (Cell == 232) || (Cell == 244) || (Cell == 247)) ||
(pKGW->CbNumberString == 15) && ((Cell == 49) || (Cell == 53) || (Cell == 63) || (Cell == 70) || (Cell == 132) || (Cell == 143) || (Cell == 169) || (Cell == 180) || (Cell == 242) || (Cell == 249) || (Cell == 259) || (Cell == 263)) ||
(pKGW->CbNumberString == 16) && ((Cell == 34) || (Cell == 39) || (Cell == 47) || (Cell == 55) || (Cell == 131) || (Cell == 144) || (Cell == 168) || (Cell == 181) || (Cell == 257) || (Cell == 265) || (Cell == 273) || (Cell == 278)) ||
(pKGW->CbNumberString == 17) && ((Cell == 20) || (Cell == 26) || (Cell == 32) || (Cell == 41) || (Cell == 130) || (Cell == 145) || (Cell == 167) || (Cell == 182) || (Cell == 271) || (Cell == 280) || (Cell == 286) || (Cell == 292)) ||
(pKGW->CbNumberString == 18) && ((Cell == 8) || (Cell == 15) || (Cell == 18) || (Cell == 28) || (Cell == 129) || (Cell == 146) || (Cell == 166) || (Cell == 183) || (Cell == 284) || (Cell == 294) || (Cell == 297) || (Cell == 304)) ||
(pKGW->CbNumberString == 19) && ((Cell == 83) || (Cell == 116) || (Cell == 122) || (Cell == 190) || (Cell == 196) || (Cell == 229)) || 
(pKGW->CbNumberString == 20) && ((Cell == 66) || (Cell == 67) || (Cell == 97) || (Cell == 104) || (Cell == 115) || (Cell == 123) || (Cell == 189) || (Cell == 197) || (Cell == 208) || (Cell == 215) || (Cell == 245) || (Cell == 246)) ||
(pKGW->CbNumberString == 21) && ((Cell == 50) || (Cell == 52) || (Cell == 79) || (Cell == 87) || (Cell == 114) || (Cell == 124) || (Cell == 188) || (Cell == 198) || (Cell == 225) || (Cell == 233) || (Cell == 260) || (Cell == 262)) ||
(pKGW->CbNumberString == 22) && ((Cell == 35) || (Cell == 38) || (Cell == 62) || (Cell == 71) || (Cell == 113) || (Cell == 125) || (Cell == 187) || (Cell == 199) || (Cell == 241) || (Cell == 250) || (Cell == 274) || (Cell == 277)) ||
(pKGW->CbNumberString == 23) && ((Cell == 21) || (Cell == 25) || (Cell == 46) || (Cell == 56) || (Cell == 112) || (Cell == 126) || (Cell == 186) || (Cell == 200) || (Cell == 256) || (Cell == 266) || (Cell == 287) || (Cell == 291)) ||
(pKGW->CbNumberString == 24) && ((Cell == 9) || (Cell == 14) || (Cell == 31) || (Cell == 42) || (Cell == 111) || (Cell == 127) || (Cell == 185) || (Cell == 201) || (Cell == 270) || (Cell == 281) || (Cell == 298) || (Cell == 303)) ||
(pKGW->CbNumberString == 25) && ((Cell == 0) || (Cell == 6) || (Cell == 17) || (Cell == 29) || (Cell == 110) || (Cell == 128) || (Cell == 184) || (Cell == 202) || (Cell == 283) || (Cell == 295) || (Cell == 306) || (Cell == 312)) ||
(pKGW->CbNumberString == 26) && ((Cell == 51) || (Cell == 96) || (Cell == 105) || (Cell == 207) || (Cell == 216) || (Cell == 261)) ||
(pKGW->CbNumberString == 27) && ((Cell == 36) || (Cell == 37) || (Cell == 78) || (Cell == 88) || (Cell == 95) || (Cell == 106) || (Cell == 206) || (Cell == 217) || (Cell == 224) || (Cell == 234) || (Cell == 275) || (Cell == 276)) ||
(pKGW->CbNumberString == 28) && ((Cell == 22) || (Cell == 24) || (Cell == 61) || (Cell == 72) || (Cell == 94) || (Cell == 107) || (Cell == 205) || (Cell == 218) || (Cell == 240) || (Cell == 251) || (Cell == 288) || (Cell == 290)) ||
(pKGW->CbNumberString == 29) && ((Cell == 10) || (Cell == 13) || (Cell == 45) || (Cell == 57) || (Cell == 93) || (Cell == 108) || (Cell == 204) || (Cell == 219) || (Cell == 255) || (Cell == 267) || (Cell == 299) || (Cell == 302)) ||
(pKGW->CbNumberString == 30) && ((Cell == 1) || (Cell == 5) || (Cell == 30) || (Cell == 43) || (Cell == 92) || (Cell == 109) || (Cell == 203) || (Cell == 220) || (Cell == 269) || (Cell == 282) || (Cell == 307) || (Cell == 311)) ||
(pKGW->CbNumberString == 31) && ((Cell == 23) || (Cell == 77) || (Cell == 89) || (Cell == 223) || (Cell == 235) || (Cell == 289)) ||
(pKGW->CbNumberString == 32) && ((Cell == 11) || (Cell == 12) || (Cell == 60) || (Cell == 73) || (Cell == 76) || (Cell == 90) || (Cell == 222) || (Cell == 236) || (Cell == 239) || (Cell == 252) || (Cell == 300) || (Cell == 301)) ||
(pKGW->CbNumberString == 33) && ((Cell == 2) || (Cell == 4) || (Cell == 44) || (Cell == 58) || (Cell == 75) || (Cell == 91) || (Cell == 221) || (Cell == 237) || (Cell == 254) || (Cell == 268) || (Cell == 308) || (Cell == 310)) ||
(pKGW->CbNumberString == 34) && ((Cell == 3) || (Cell == 59) || (Cell == 74) || (Cell == 238) || (Cell == 253) || (Cell == 309)))))))
{
<...skip...>
}

Костуа, привет!
Re: [Профессиональное] Ночной кошмар кодера
От: slavdon  
Дата: 01.06.06 16:10
Оценка: +1
Здравствуйте, McSeem2, Вы писали:

MS>А вы говорите — индусы.


MS>На самом деле, конечно же автору — Kevin Lindsey — длинный респект!


в 35 строчке две ошибки
--
fb2k: Marilyn Manson — Vodevil
Re: [Профессиональное] Ночной кошмар кодера
От: Слава Шевцов Россия http://www.rentaguru.ru/
Дата: 02.06.06 11:05
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Искал функцию нахождения точек пересечения кубических кривых Безье... нашел на JavaScript... Это внатуре круто!


MS>
MS>    . . .
MS>    var poly = new Polynomial(
MS>    . . .
MS>


Запустил на паре тестовых примеров. В одном из них в результате небольшая ошибка. Попроси, плиз, автора исправить ошибку в коде
----------------------------------------------------------------------------------------------
Rentaguru
Re[3]: [Профессиональное] Ночной кошмар кодера
От: Skleroz Россия  
Дата: 07.06.06 02:38
Оценка:
Здравствуйте, Skleroz, Вы писали:

S>Никого не хотел обидеть


Я так и предполагал. А теперь поставившим минусы — так что же я имел ввиду?
А то, что женщина усердна, усидчива и кропотлива. Я, допустим, рутину на дух не переношу. Допустим, если мне предстоит задание, которое можно сделать вручную за 30 мин, но при этом это — рутина, лучше я 2 часа буду творчески делать кнопку, которая за меня это сделает. Хе-хе Лень — двигатель прогресса, как-никак
<< точка сборки в Parasense — 2003 — Avangaro — Tarakashi |>>
Re[4]: [Профессиональное] Ночной кошмар кодера
От: Skleroz Россия  
Дата: 07.06.06 02:38
Оценка:
Здравствуйте, vladpol, Вы писали:

V>Приношу свои извенения. Облом было вычищать


А колесико моей мыши покрутить не хочешь?
<< точка сборки в Parasense — 2003 — Avangaro — Tarakashi |>>
Re[2]: [Профессиональное] Ночной кошмар кодера
От: Skleroz Россия  
Дата: 07.06.06 02:38
Оценка:
Здравствуйте, slavdon, Вы писали:

S>в 35 строчке две ошибки


Значицца, все-таки код был набран вручную?
<< точка сборки в Parasense — 2003 — Avangaro — Tarakashi |>>
Re: [Профессиональное] Ночной кошмар кодера
От: Аноним  
Дата: 07.06.06 10:36
Оценка:
Здравствуйте, McSeem2, Вы писали:

Код просто безобразный, и не потому что большой.
Автор получил его в результате решения заданной системы
в одной из мат. сред. Скорее всего в Maple.
И даже не удосужился провести свертку подвыражений которых здесь полно.
Достаточно было в том же Maple написать пару строчек и как размер этого кода
так и время его выполнения уменьшились бы в 10 раз как минимум.
Паршивый программист!!!
Re[2]: [Профессиональное] Ночной кошмар кодера
От: unreg_flex  
Дата: 07.06.06 10:57
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, McSeem2, Вы писали:


А>Код просто безобразный, и не потому что большой.

А>Автор получил его в результате решения заданной системы
А>в одной из мат. сред. Скорее всего в Maple.
А>И даже не удосужился провести свертку подвыражений которых здесь полно.
А>Достаточно было в том же Maple написать пару строчек и как размер этого кода
А>так и время его выполнения уменьшились бы в 10 раз как минимум.
А>Паршивый программист!!!


Ну не в 10 а всего лиш в 4,5.


double t237, t199, t151, t1, t288, t172, t238, t280, t245,
t133, t242, t293, t222, t27, t204, t263, t224, t313, t130, t192, t37, t226,
t198, t244, t196, t246, t256, t299, t200, t326, t141, t287, t273, t300, t310,
t111, t71, t120, t252, t83, t197, t201, t325, t171, t275, t115, t186, t212,
t277, t301, t30, t316, t322, t330, t311, t304, t255, t236, t35, t279, t324,
t206, t99, t181, t203, t185, t211, t295, t116, t56, t281, t142, t36, t183, t5,
t282, t321, t257, t94, t306, t202, t264, t258, t259, t298, t331, t317, t297,
t146, t205, t156, t189, t292, t272, t143, t139, t231, t180, t57, t2, t3, t228,
t157, t241, t308, t285, t28, t327, t195, t230, t150, t314, t323, t144, t276,
t225, t262, t274, t283, t305, t149, t170, t278, t320, t315, t129, t114, t4,
t153, t249, t109, t261, t227, t208, t271, t118, t215, t164, t290, t302, t240,
t194, t250, t319, t232, t291, t138, t312, t329, t289, t303, t193, t145, t260,
t221, t318, t309, t268, t169, t267, t328, t296, t235, t307, t173, t223, t248,
t187, t89, t247, t147, t229, t54, t38, t184, t294, t107, t210, t140, t108,
t113, t286, t31, t254, t234, t269, t251, t284, t179, t233, t266; global c13x3,
c23y3, c13y3, c23x3, c13.x, c13y2, c23x2, c23.y, c13x2, c13.y, c23.x, c23y2,
c22.x, c22.y, c21.x, c22x2, c21.y, c22y2, c11.x, c12.y, c11.y, c12.x, c10.x,
c10.y, c20.x, c12y2, c12x2, c22x3, c12y3, c12x3, c20.y, c21x2, c21y2, c11y2,
c11x2, c21x3, c10x2, c10y2, c20x2, c11y3, c11x3, c20y2, c10x3, c10y3, c20x3,
c20y3;

t234=c13x2*c13.y; t210=-6*t234; t170=c10.y*t210; t235 =
c12.y*c11.y; t202=c13x2*t235; t173=3*t202; t331=t170+t173; t250 =
c11.y*c12.x; t204=c13x2*t250; t242=c11.x*c12.y; t201=c13x2*t242; t330
= -2*t204-4*t201; t241=c13y2*c12.x; t199=c11.x*t241; t145=-3*t199;
t329=t145+t173; t206=c11.y*t241; t249=c13.x*c12y3; t227 =
c13.y*c12.y; t184=c13.x*t227; t113=c11.y*t184; t328 =
4*t206+2*t249-6*t113; t327=-3*t202+3*t199; t246=c12.x*c12y2; t254 =
c12.y*c12x2; t326=-2*c10.y*t254+2*c10.x*t246; t237=c10.y*c20.y; t288 =
c20y2+c10y2; t99=-2*t237+t288; t306=3*t99; t325=c13x2*t306; t260 =
-2*c10.x; t71=c10x2+c20x2+c20.x*t260; t307=3*t71; t324=c13y2*t307;
t323=-c20.x+c10.x; t322=-c20.y+c10.y; t200=c10.x*t234; t228 =
c13.x*c12.x; t180=c13.y*t228; t111=c11.x*t180; t251=c13.y*c12x3; t321
= -6*t111+6*t200+2*t251-t330; t320=3*t288; t301=2*c13x3; t319 =
(t145+6*c20.y*t234)*c21.y; t245=c13.x*c13y2; t211=-6*t245; t171 =
c20.x*t211; t318=(t173+t171)*c22.y; t185=c23.x*t245; t142=6*t185; t56
= c10.x*t142; t118=c11.x*t184; t317=t56+c23.x*t118; t256 =
c21.y*c22.y; t257=c20.y*c23.y; t1=-t257-t256; t149=c22.x*t211; t316
= t1*t210+c21.y*t149; t194=c12x2*t227; t156=2*t194; t215=-2*t246;
t139=c22.x*t215; t315=c13.x*t139+c22.x*t156; t314=t331*c21.y; t28 =
c22.y*t118; t268=3*c13y3; t313=c21x2*t268+t28; t312 =
(t171+t329)*c23.y; t304=-2*t322; t311=t323*t304; t302=-3*t322; t310
= t323*t302; t305=-6*t322; t309=t323*t305; t164=-6*t185; t169 =
c23.x*t215; t308=c23.y*t170+c13.y*t169+c20.y*t164+c10.y*t142+t328*c23.x;
t303=-2*t323; t244=c23.y*c22.y; t195=c13.y*t244; t116=c13x2*t195;
t300=6*t116+c22.y*t164; t30=c23.y*t118; t108=c23.y*t180; t31 =
c11.y*t108; t299=-t30+t31; t192=c12y2*t228; t172=-2*t192; t298 =
(t118+t172)*c21.x; t221=c22x2*t268; t297=t221+c21.y*t164; t258 =
c21.y*c23.y; t5=-2*t258-c22y2; t296=c13x3*t5; t240=c13x3*c10.y; t295
= t240+t111; t203=c13.x*t254; t294=-t204+t203; t293=t323*c12.y; t153
= c11.y*t323; t292=t323*c12.x; t291=t323*c11y2; t290=t322*c11.x;
t289=t322*c11x2; t109=c11.y*t180; t287=-c21.x*t109+t298; t286 =
c13.x*t169+t331*c23.x; t238=c13.x*c10.x; t181=c13y2*t238; t144 =
6*t181; t54=c22.y*t144; t285=t54+t313; t264=6*c22.x; t284 =
c13y3*c23.x*t264+t300; t230=c13.y*c23y2; t183=c13x2*t230; t133 =
3*t183; t231=c13y3*c23x2; t114=c23.y*t185; t283=3*t231-6*t114+t133;
t282=t315+(t144+t118)*c22.x; t198=c13y2*t242; t150=2*t198; t281 =
t319+(t150+6*c13y3*c20.x)*c21.x; t280=t200-c20.x*t234-t295; t279 =
c13x3*c20.y-t294; t278=c21.x*t149+t286+(t145+t156)*c23.x; t232 =
c13y3*c10.x; t187=c10.y*t245; t277 =
3*t187-3*t113-c13.y*t246-3*t232+t198+t249+2*t206; t27=c22.x*t109; t255 =
c20.y*c22.y; t223=-2*t255; t3=t223-c21y2; t276 =
-t27+c13x3*(t223+t3)+t282; t275=t1*t301+t278; t89=c22.y*t170; t222 =
-6*t232; t140=c22.x*t222; t274 =
c13.y*t139+t89+t54+t187*t264+c22.y*t156+t140+t328*c22.x; t261=2*c23.y; t146
= t254*t261; t273=c23.x*t222+c23.y*t144+c13.y*t146+t308+t316; t263 =
6*c10.x; t233=c11.x*c11y2; t224=-2*t233; t226=c11.y*c11x2; t225 =
c11.x*c11.y; t208=c12.x*t225; t115=c12.y*t208; t186=c12y2*t225; t236
= c11y2*c12.y; t267=3*c10x2; t248=c13.x*c13.y; t247=c11y2*c12x2;
t272 =
c13y3*t267-c20.y*t109+c13.x*t186+t224*t248-4*c10.x*t206+c20x2*t268-2*c12y3*t23
8-t228*t236+c13y2*t226+t198*t260+t113*t263+(-t115+t247+t326)*c13.y+(2*t192-6*t
181-t118+t327)*c10.y; t252=c11x2*c12.x; t212=-3*t245; t189 =
c12x2*t225; t266=-3*c10y2; t271 =
t194*t260+2*t226*t248-c13x2*t233-c13.y*t189+c10x2*t212-c13y2*c11x3+t227*t252+t
327*c10.x+(-c20y2+t266)*c13x3+(-t109+t172+t329)*c20.x+(t115-c11x2*c12y2+t326)*
c13.x+t321*c10.y; t269=-2*c21y2; t262=-2*c22y2; t259=-3*c10.x; t229
= c13x2*c23.x; t205=c13.y*t229; t197=c21.x*t234; t196=c23x2*t245;
t193=c22.x*t234; t179=c21.y*t245; t157=c22x2*t212; t151 =
c11.x*t323; t147=c21x2*t212; t143=-6*t193; t141=-3*t179; t138 =
c22.y*t212; t130=c11.y*t322; t129=-3*t196; t120=c21.x*t179; t107 =
c12.x*t130; t94=c22.x*t145; t83=c23.x*t150; t57=c21.y*t156; t38 =
c12x2*t304; t37=c12.x*t303; t36=c23.x*t109; t35=c22.y*t109; t4 =
-6*t258-3*c22y2; t2=-6*t255-3*c21y2;


// здесь начало

-c13x3*c23y3+c13y3*c23x3+c23.y*t129+c23.x*t133,
3*(-c13x3*c23y2-t196+t205*t261)*c22.y+3*(t231-2*t114+t183)*c22.x,
c23.x*t221+c13x3*(-c21.y*c23y2+(t262+t5)*c23.y)+c21.y*t129+c23.y*t157-t4*t205+
t300*c22.x+t283*c21.x,
c22x3*c13y3+t183*t259+c20.y*t129+c22x2*t138-c12x3*t230-t4*t193+c22.y*t296+(-t2
99+t316)*c23.x+t283*c20.x+t284*c21.x+((-t256+t1)*t301+t56+t278)*c23.y+t277*c23
x2+(-2*t201-t279+3*t295)*c23y2,
t1*t143+c21.y*t296-6*c10.x*t116-t4*t197-2*c12x3*t195-t2*t205+c22x2*t141+t297*c
21.x+(6*t240+t330)*t244+t284*c20.x+(-t35+t140+t285)*c23.x+(t147+t276)*c23.y+(6
*c11.x*t108+c13.x*t146+t275)*c22.y+(t83+t308+t312)*c22.x,
-t2*t193+c20.y*t157+c21x2*t138+(-4*t258+t262)*t201+t297*c20.x+t298*c23.y+t280*
t4+(t251+t279)*t5+(-t27+t94+c13x3*t3+t315)*c22.y+(t57+t281)*c23.x+((-t257+t1)*
t301-t36+t286+t317)*c21.y+(t89+t285+t318)*c22.x+t277*c22x2+(t273-t31+t312)*c21
.x,
c21x3*c13y3+c21x2*t141+c11y3*t229-t2*t197+c10.y*t36+t205*t320+t299*c10.x+t287*
c22.y+t276*c21.y+(t281+t314)*c22.x+(-2*t203-6*t240+t321)*t1+(t275+t317)*c20.y+
(c22.y*t145+t274+t318)*c21.x+(t273+t83+t30)*c20.x+t272*c23.x+(c20x2*t212+t271)
*c23.y,
c20x2*t138+t120*t263+(-4*t255+t269)*t201+t143*t237+c10.y*t27+t193*t320+(-t28+t
35)*c10.x+(t251-t294)*t3+t287*c21.y+t280*t2+(t57+t314+t319)*c21.x+t277*c21x2+(
t147+c13x3*(t269+t3)+t94+t282)*c20.y+(c20.y*t149-6*t120+t274+t313)*c20.x+t271*
c22.y+(c13x2*c11y3+t272+c20.y*t173+c20.x*t150)*c22.x,
((-c11x3+3*c12.x*t151)*c13y2-c13x3*t306+(-t233+2*t107+(-3*t153+4*t290)*c12.y)*
c13x2+((-c11x2-t37)*c12y2+(t208+t38)*c12.y-t324)*c13.x+(-t189-c12x3*t304+(t252
+c12x2*t303)*c12.y-t309*c13x2+((2*c11x2+t292)*c11.y+(c12.x*t305-t293)*c11.x)*c
13.x)*c13.y)*c21.y+((c11y3+t302*t235)*c13x2+c13y3*t307+((c11x2-4*t292)*c11.y+(
-c12.x*t302+c12.y*t303)*c11.x)*c13y2+(t247-c12y2*t37+(-t208+t38)*c12.y+t325)*c
13.y+(t186+c12y3*t303+(-t236-c12y2*t304)*c12.x+t309*c13y2+(t224+t107+(6*t153-t
290)*c12.y)*c13.y)*c13.x)*c21.x,
(-c10x3+c20x3+c20x2*t259+c20.x*t267)*c13y3+(-c20y3+c10y3+3*c10.y*c20y2+c20.y*t
266)*c13x3+(-t323*c11y3+c11y2*t290-t99*t250+(-2*t99*c11.x-t310*c11.y)*c12.y)*c
13x2+(t322*c11x3+(-t323*c11x2+2*t71*c12.x)*c11.y+(t71*c12.y+t310*c12.x)*c11.x)
*c13y2+(-t99*c12x3-t71*t246+(-t291+c11.x*t130)*c12x2-t323*t325+(-t311*c12x2+(-
t289+c11.y*t151)*c12.x)*c12.y)*c13.y+(t71*c12y3+t99*t254+(t289-c11.x*t153)*c12
y2+t322*t324+(t311*c12y2+(t291-c11.y*t290)*c12.y)*c12.x+((c11x2*t304-c12.y*t30
7-t322*t292)*c11.y+(-c11y2*t303+c12.x*t306+t322*t293)*c11.x)*c13.y)*c13.x


исходный: 598*additions+2516*multiplications
после optimize(tryhard): 360*additions+582*multiplications
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.