Optex.Cone (Optex v0.1.0)

Copy Markdown View Source

A second-order cone in its own id space. type :quad relates one head to its members: head >= sqrt(sum member^2); type :rquad (rotated) relates two heads: 2 * h1 * h2 >= sum member^2. Heads are guaranteed to carry a nonnegative lower bound (the model layer enforces it: the bound is part of the cone's meaning, and it is what makes the SOC-shaped quadratic encodings on Gurobi/CPLEX legal). Solved natively by capable backends (Gurobi, CPLEX, COPT); backends without cone support reject the model at solve time.

Summary

Types

t()

@type t() :: %Optex.Cone{
  head_ids: [non_neg_integer()],
  id: non_neg_integer(),
  member_ids: [non_neg_integer()],
  name: term() | nil,
  type: :quad | :rquad
}