# Convex Optimization in Julia

arXiv: https://arxiv.org/abs/1410.4821 · HTML: https://mlsanity.com/paper/1410.4821/

## Key facts

- Cited by 9 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 17 Oct 2014.

## Built on by (most cited first, 9 of 9)

- [Stochastic Constrained DRO with a Complexity Independent of Sample Size](https://mlsanity.com/paper/2210.05740/) (2022)
- [Parameterized Convex Universal Approximators for Decision-Making Problems](https://mlsanity.com/paper/2201.06298/) (2022)
- [AbstractDifferentiation.jl: Backend-Agnostic Differentiable Programming in Julia](https://mlsanity.com/paper/2109.12449/) (2021)
- [Disciplined Biconvex Programming](https://mlsanity.com/paper/2511.01813/) (2025)
- [Disciplined Geodesically Convex Programming](https://mlsanity.com/paper/2407.05261/) (2024)
- [Multi-convex Programming for Discrete Latent Factor Models Prototyping](https://mlsanity.com/paper/2504.01431/) (2025)
- [Convexity Certificates from Hessians](https://mlsanity.com/paper/2210.10430/) (2022)
- [Disciplined Bilevel Programming](https://mlsanity.com/paper/2609.00644/) (2026)
- [Generation of Custom Solvers in Rust for Convex Optimization](https://mlsanity.com/paper/2609.13875/) (2026)

## Abstract (arXiv)

This paper describes Convex, a convex optimization modeling framework in Julia. Convex translates problems from a user-friendly functional language into an abstract syntax tree describing the problem. This concise representation of the global structure of the problem allows Convex to infer whether the problem complies with the rules of disciplined convex programming (DCP), and to pass the problem to a suitable solver. These operations are carried out in Julia using multiple dispatch, which dramatically reduces the time required to verify DCP compliance and to parse a problem into conic form. Convex then automatically chooses an appropriate backend solver to solve the conic form problem.
