{
  "abstract": "We present FOMTools, an open-source Python package for developing, analyzing, and deploying first-order algorithms for parametric linear and convex quadratic optimization. The user specifies an iteration in Python, with syntax close to its mathematical description. The package represents the iteration as a computation graph of affine and piecewise affine operations. To analyze worst-case performance, FOMTools formulates a mixed-integer verification problem that maximizes a convergence residual over a specified set of problem instances and initial iterates. For probabilistic performance analysis, a batched GPU simulator collects algorithm trajectories and computes statistical bounds on the probability of exceeding a specified convergence tolerance. From the same algorithm description, FOMTools generates specialized solver code for embedded hardware, multicore CPUs, and GPUs. The package first generates the numerical data, factorizations, and matrix-vector routines without any agent. A coding agent then translates the iteration into C or CUDA code and iteratively optimizes the implementation. After each phase, the package runs the generated code on sampled inputs and compares it with a reference execution. FOMTools also serves as a CVXPYgen backend, generating and optimizing solvers for parametric CVXPY problems. We demonstrate FOMTools on sparse coding, network optimization, optimal control, and portfolio rebalancing. The verification bounds reveal worst-case behavior that sampling misses. The generated solvers run up to two orders of magnitude faster than NumPy implementations, and they outperform hand-written GPU code and the OSQP solvers generated by CVXPYgen.",
  "abstract_shown": true,
  "affiliations": [],
  "article_type": null,
  "arxiv": "2610.26743",
  "author_total": 5,
  "authors": [
    {
      "name": "Vinit Ranjan"
    },
    {
      "name": "Daniel Deza"
    },
    {
      "name": "Anushka Acharya"
    },
    {
      "name": "Jisun Park"
    },
    {
      "name": "Bartolomeo Stellato"
    }
  ],
  "bibtex": "https://research.draconitic.com/paper/720mxkdwbck1v.bib",
  "cited_by": 0,
  "doi": "10.48550/arxiv.2610.26743",
  "fulltext_url": null,
  "id": "720mxkdwbck1v",
  "issns": [],
  "landing_url": "https://arxiv.org/abs/2610.26743",
  "language": null,
  "licence": "CC-BY-4.0",
  "licence_label": "CC BY 4.0",
  "licence_source": "article",
  "licence_url": "http://creativecommons.org/licenses/by/4.0/",
  "metadata_licence": "CC0-1.0",
  "native_subjects": [
    [
      "arxiv",
      "math.OC"
    ],
    [
      "openalex",
      "2612|Advanced Optimization Algorithms Research"
    ]
  ],
  "openalex": "W7223071881",
  "pdf_url": "https://arxiv.org/pdf/2610.26743",
  "pmcid": null,
  "pmid": null,
  "published": "2026-10-19",
  "publisher": null,
  "ris": "https://research.draconitic.com/paper/720mxkdwbck1v.ris",
  "sources": [
    {
      "first_seen": "2026-10-30T12:31:00Z",
      "native_id": "2610.26743",
      "source": "arxiv",
      "url": "https://arxiv.org/abs/2610.26743"
    }
  ],
  "subjects": [
    {
      "field": "mathematics",
      "origin": "arxiv:math.OC",
      "subfield": "optimisation-control"
    }
  ],
  "title": "FOMTools: Development and AI-Assisted Code Generation for First-Order Methods",
  "title_text": "FOMTools: Development and AI-Assisted Code Generation for First-Order Methods",
  "type": "preprint",
  "updated_at": "2026-11-04T15:20:52Z",
  "url": "https://research.draconitic.com/paper/720mxkdwbck1v",
  "venue": "arXiv",
  "versions": []
}