// Path: jopenvoronoi-main/src/main/java/org/rogach/jopenvoronoi/Numeric.java
// public static double chop(double val, double tol) {
//     double _epsilon = tol;
//     if (Math.abs(val) < _epsilon)
//         return 0;
//     else
//         return val;
// }
// 
// Path: jopenvoronoi-main/src/main/java/org/rogach/jopenvoronoi/Numeric.java
// public static double sq(double a) {
//     return a*a;
// }


import static org.rogach.jopenvoronoi.Numeric.chop;
import static org.rogach.jopenvoronoi.Numeric.sq;
        x[0]=endp.x;
        x[2]=-dx/d; // negative of normalized direction from endp to p
        y[0]=endp.y;
        y[2]=-dy/d;

        x[1]=0;x[3]=0;x[4]=0;x[5]=0;x[6]=0;x[7]=0;
        y[1]=0;y[3]=0;y[4]=0;y[5]=0;y[6]=0;y[7]=0;
    }

    /// set edge parametrization for LineSite-LineSite edge (parallel case)
    public void set_ll_para_parameters(Site s1, Site s2) {
        assert( s1.isLine() && s2.isLine() ) : " s1.isLine() && s2.isLine() ";
        type = EdgeType.PARA_LINELINE;

        // find a point (x1,y1) on the line s1
        // ax+by+c=0
        double x1 = 0;
        double y1 = 0;
        if (Math.abs( s1.a() ) >  Math.abs( s1.b() ) ) {
            y1=0;
            x1=-s1.c()/s1.a();
        } else {
            x1=0;
            y1=-s1.c()/s1.b();
        }

        // find a point (x2,y2) on the line s2
        // ax+by+c=0
        double x2 = 0;
        double y2 = 0;
// Path: jopenvoronoi-main/src/main/java/org/rogach/jopenvoronoi/Numeric.java
// public static double chop(double val, double tol) {
//     double _epsilon = tol;
//     if (Math.abs(val) < _epsilon)
//         return 0;
//     else
//         return val;
// }
// 
// Path: jopenvoronoi-main/src/main/java/org/rogach/jopenvoronoi/Numeric.java
// public static double sq(double a) {
//     return a*a;
// }


// Path: jopenvoronoi-main/src/main/java/org/rogach/jopenvoronoi/Edge.java
import static org.rogach.jopenvoronoi.Numeric.chop;
import static org.rogach.jopenvoronoi.Numeric.sq;

        x[0]=endp.x;
        x[2]=-dx/d; // negative of normalized direction from endp to p
        y[0]=endp.y;
        y[2]=-dy/d;

        x[1]=0;x[3]=0;x[4]=0;x[5]=0;x[6]=0;x[7]=0;
        y[1]=0;y[3]=0;y[4]=0;y[5]=0;y[6]=0;y[7]=0;
    }

    /// set edge parametrization for LineSite-LineSite edge (parallel case)
    public void set_ll_para_parameters(Site s1, Site s2) {
        assert( s1.isLine() && s2.isLine() ) : " s1.isLine() && s2.isLine() ";
        type = EdgeType.PARA_LINELINE;

        // find a point (x1,y1) on the line s1
        // ax+by+c=0
        double x1 = 0;
        double y1 = 0;
        if (Math.abs( s1.a() ) >  Math.abs( s1.b() ) ) {
            y1=0;
            x1=-s1.c()/s1.a();
        } else {
            x1=0;
            y1=-s1.c()/s1.b();
        }

        // find a point (x2,y2) on the line s2
        // ax+by+c=0
        double x2 = 0;
        double y2 = 0;
        if (Math.abs( s2.a() ) >  Math.abs( s2.b() ) ) {