Softwares

Part of my research consists of producing packages to solve challenging mathematical problems. These packages, mainly in the Julia programming language but also C++ or Python, are available open-source in GitHub @tmigot.

JuliaSmoothOptimizers (JSO)

I am an active contributor to the organization JuliaSmoothOptimizers an open-source organization in the Julia programming language for linear algebra and nonlinear continuous optimization that offers the flexibility, power, and ease of use for studying numerical methods, researching new algorithms, and exploring new ideas. Apart from my contributions to the 76 (!) Julia packages of the organization, I also write tutorials and news on the organization’s website.

I usually present the progress of the organization at the JuliaCon or JuMP-dev conferences.

If you are not familiar with JSO, the following packages are good starting points:

As a part of my research project at IVADO/Polytechnique Montreal, I was interested in developing packages to model PDE-constrained optimization problems and implement solvers for such problems.

The organization also contains more very interesting research-level and efficient solvers such as

Solver Stopping in Julia

I am the main developer of SolverStoppingJulia a Github organization whose main package is Stopping, a Julia package that offers a framework to implement iterative algorithms and tools to ease the uniformization of stopping criteria in iterative solvers.

With a few lines of code, one can implement an iterative method without taking care of the ever-debatable stopping criteria. The motivation behind stopping is to promote the reusability of codes ensuring that the user can control, within some algorithmic limits, the stopping criteria of an algorithm. The documentation of the package contains several examples and tutorials, see the organization’s website.

Stopping is used in several packages: AdaptiveRegularization.jl, FletcherPenaltySolver, OneDmin.jl, LSDescent, RandomLinearAlgebraSolvers.jl, and more to come.

Julia Optimization and Variational Analysis (JOVA)

I am the founder of JOVA a GitHub open-source organization of Julia packages designed to model and solve challenging problems such as complementarity problems, (quasi)-variational inequalities, optimization models with degenerate constraints, bilevel optimization models, Nash equilibrium problems, etc. It contains packages to model the problems, state-of-the-art and novel solvers, set of problems.

The organization created in 2021 is at an early stage and is still recruiting collaborators. A first step in the creation of this organization is the upload of the codes used in my recent research papers.