
        runge_context.moveTo(x_to_client(runge_xs[min_i]), y_to_client(runge_ys[min_i]));
        runge_context.lineTo(client_x, client_y);
        runge_context.strokeStyle="#AA3311";
        runge_context.stroke();
        runge_context.closePath();
        runge_context.setLineDash([]);
    }
}


//  Chebyshev
function chebyshev_node(k, n){
    return Math.cos(Math.PI*(2*k - 1)/(2*n));
}

// Chebyshev visible region
var chebyshev_x_min = -1.2;
var chebyshev_y_min = -0.2;
var chebyshev_x_max = 1.2;
var c