Naming conventions
MOI follows several conventions for naming functions and structures. These should also be followed by packages extending MOI.
Sets
Sets encode the structure of constraints. Their names should follow the following conventions:
- Abstract types in the set hierarchy should begin with
Abstract
and end inSet
, e.g.,AbstractScalarSet
,AbstractVectorSet
. - Vector-valued conic sets should end with
Cone
, e.g.,NormInfinityCone
,SecondOrderCone
. - Vector-valued Cartesian products should be plural and not end in
Cone
, e.g.,Nonnegatives
, notNonnegativeCone
. - Matrix-valued conic sets should provide two representations:
ConeSquare
andConeTriangle
, e.g.,RootDetConeTriangle
andRootDetConeSquare
. See Matrix cones for more details. - Scalar sets should be singular, not plural, e.g.,
Integer
, notIntegers
. - As much as possible, the names should follow established conventions in the domain where this set is used: for instance, convex sets should have names close to those of CVX, and constraint-programming sets should follow MiniZinc's constraints.