<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Conic Optimization | Alexandre Amice</title><link>https://alexandreamice.github.io/tags/conic-optimization/</link><atom:link href="https://alexandreamice.github.io/tags/conic-optimization/index.xml" rel="self" type="application/rss+xml"/><description>Conic Optimization</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sun, 26 Apr 2026 00:00:00 +0000</lastBuildDate><image><url>https://alexandreamice.github.io/media/icon_hu_12f30033bf7ec525.png</url><title>Conic Optimization</title><link>https://alexandreamice.github.io/tags/conic-optimization/</link></image><item><title>CCosmo: A Custom First-Order Conic Solver</title><link>https://alexandreamice.github.io/project/ccosmo/</link><pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate><guid>https://alexandreamice.github.io/project/ccosmo/</guid><description>&lt;h1 id="motivation"&gt;Motivation&lt;/h1&gt;
&lt;p&gt;Convex optimization appears throughout robotics, but in markedly different forms: small, dense quadratic programs (QPs) arise in online whole-body control, inverse-kinematics controllers, and reduced-order MPC controllers; moderately sized, sparse and dense quadratic and second-order cone programs (SOCPs) arise naturally in grasp selection and contact planning problems due to friction constraints; large, structured, and sparse problems arise in the context of trajectory optimization, with complicated semidefinite constraints becoming increasingly popular in the localization, perception, and motion planning communities.&lt;/p&gt;
&lt;p&gt;In many of these applications, solvers are part of a larger planning, control, or estimation loop that repeatedly solve closely related problems to moderate accuracy at high speeds.
This setting favors first-order methods, which have low memory requirements, are naturally warm started, and often converge rapidly to the accuracy required in the outer loop.
Moreover, the relative simplicity of first-order methods makes them easy to customize to different classes of instances, sizes, and hardware such as massive programs on compute clusters, tiny programs on embedded hardware, or batches of programs on GPUs.&lt;/p&gt;
&lt;h1 id="contribution"&gt;Contribution&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;CCosmo&lt;/code&gt; is a C++ implementation of a first-order conic optimization method designed to be customized around the problem family being solved. The core solver handles convex programs with quadratic costs.
&lt;code&gt;CCosmo&lt;/code&gt; is based on the same algorithm as the popular
and
solvers from the Oxford Control Group.&lt;/p&gt;
&lt;p&gt;In addition to the usual quadratic-cost, convex standard form program, &lt;code&gt;CCosmo&lt;/code&gt; supports programs in a matrix-standard-form that commonly arises when solving convex relaxations of non-convex programs. This is enabled by a custom matrix-linear-algebra backend.
Finally, &lt;code&gt;CCosmo&lt;/code&gt; also includes a GPU backend for solving large batches of very small programs.&lt;/p&gt;
&lt;h1 id="results"&gt;Results&lt;/h1&gt;
&lt;p&gt;PENDING CODE RELEASE&lt;/p&gt;
&lt;h1 id="code"&gt;Code&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;CCosmo&lt;/code&gt; will be released publicly soon!&lt;/p&gt;</description></item></channel></rss>