Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

CGL-Conic Build Status

CGL-Conic is library for generation of conic cuts for Mixed Integer Second Order Conic Optimization (MISOCO) problems. CGL-Conic can be considered as a generalization of COIN-OR's Cut Generation Library (CGL).

CGL-Conic depends on CGL and other COIN-OR projects. CGL-Conic implements the following cut procedures,

  • Disjunctive Cuts given by Belotti et. al., see related paper
  • Conic mixed-integer rounding cuts by Atamturk and Narayanan, see related paper
  • Outer approximation cuts, related paper to be published soon.
  • Interior Point Method (IPM) approximation cuts, related paper to be published soon.

Cut procedures that are considered for implementation.

  • Two-term disjunctions on the second-order cone by Karzan and Yildiz, see [related paper][Karzan Yildiz 2015]
  • Cuts for 0-1 mixed convex programming by Stubbs and Mehrotra, see related paper.
  • Cuts for mixed 0-1 conic programming by Cezik and Iyengar, see related paper

CGL-Conic is used by DisCO to solve MISOCO problems.

Installing CGL-Conic

Basic installation

CGL-Conic is tested/works in Linux environment only for now. You can use COIN-OR BuildTools fetch and build utility for building and installing CGL-Conic. After cloning CGL-Conic, typing following commands should work.

git clone --branch=stable/0.8
bash BuildTools/ fetch
bash BuildTools/ build

First command clones BuildTools, second fetches CGL-Conic dependencies and third builds/installs GGL-Conic.

Advanced Users

CGL-Conic can find dependencies using pkg-config. If your .pc files are at your PKG_CONFIG_PATH CGL-Conic configure script will find them. Running make install should work once the configure script is successful.

Specifying an IPM Solver

Some cut implementations in CGL-Conic depends on solving SOCO problems using IPM method. You can specify the solver to use for this purpose. CGL-Conic uses Ipopt by default. You can use Cplex1 or Mosek2 through their OsiConic interface.

To specify the solver, you need to give --with-ipm-solver flag to configure script. For example, following command configures OSI-Conic with Mosek.

./configure --with-ipm-solver=mosek

Similarly you can use cplex or ipopt instead of mosek. If no IPM solver is specified CGL-Conic will use Ipopt.


Extends COIN-OR Cut Generation Library (CGL) with strategies for conic problems.



EPL-1.0, EPL-1.0 licenses found

Licenses found






No packages published