Are there packages for numerical optimization in julia or python, or in any other system for scientific computing, capable of taking into account the discontinuity of gradient at the minimum point? Functions that I need to minimize have form $$ F(X) = \mbox{max}(f_1(X), \ldots, f_n(X)) $$ where $f_i(X)$ are smooth functions of $X\in R^d$. Actually, in my particular problem, $f_i(X)$ are unordered eigenvalues of large real symmetric sparse matrices. So $F(X)$ is a maximum eigenvalue. My matrix family is such that level crossing definitely takes place under change of parameters. Hence my formulation of problem with discontinuous gradient.
I consider functions $F(X)$ described above as multidimensional generalizations of the following function of one variable $$ F(x) = |x| = \mbox{max}(x, -x),\quad x\in R, $$ which has non-zero and even discontinuous derivative at the point of minimum, $x_0 = 0$. In this last example $f_1(x) = x$ and $f_2(x) = -x$. In general case, functions $f_i$ are non-linear.