I'm quite fond of the Julia programming language, here are some of my projects.

RandomizedProgressiveHedging.jl is a julia package for solving multistage stochastic problems by randomized versions of the progressive hedging algorithm.

NonSmoothSolvers.jl provides julia implementation of algorithms for blackbox nonsmooth optimization: gradient sampling, nonsmooth BFGS, subgradient.

The companion NonSmoothProblems.jl implements some classical problems, and notably:

the maximum of smooth functions: $\min_x \max(f_1, \cdots, f_m)$,

the maximum eigenvalue problem $\min_x \lambda_{\max} (A(x))$, where $A(x)$ is a symmetric real matrix that depends smoothly on $x$.

PlotsOptim.jl provides convenience helpers to build PGF/Tikz plots from julia. Tailored for suboptimality type curves, or 2d plots of iterates.

ConjugateGradient.jl: pure julia implementation of the Conjugate Gradient algorithm, with detection of quasi-negative curvature directions.

EigenDerivatives.jl: implementation of first and second-order derivatives of eigenvalues of parametrized matrices, handling points where some eigenvalues coalesce. Works for any representation of reals (

*e.g.*julia's`Float64`

,`BigFloat`

types).ConvexHullProjection.jl: a

**Newton acceleration on manifolds identified by proximal-gradient methods**spin-off: a globally and*quadratically*convergent algorithm for solving $\min_{x\in\mathcal S} f(x)$, where $f$ is smooth and $\mathcal S$ is a structured subset of $\mathbb R^n$. Typically, the set of interest is either the*simplex*or the*spectraplex*(the simplex of symmetric matrices)

SDCO.jl: implementation of a self-dual conic interior point supporting real and complex variables.

© G. Bareilles. Last modified: May 16, 2022. Website built with Franklin.jl.