Disciplined Convex Optimization
The Abs class.
Absolute Value
Reduction Acceptance
The AddExpression class.
The AffAtom class.
Are the arguments affine?
The Atom class.
The AxisAtom class.
The BinaryOperator class.
Block Matrix
The CallbackParam class.
The Canonical class.
The Canonicalization class.
Canonicalize
An interface to the CBC solver
The Chain class.
An interface for the CLARABEL solver
Utility method for formatting a ConeDims instance into a dictionary th...
Extracts the dual value for constraint starting at offset.
Complex Numbers
Complex Properties
Lifts complex numbers to a real representation.
Complex canonicalizer for the absolute value atom
Helper function to sum arguments.
Upcast 0D and 1D to 2D.
Complex canonicalizer for the binary atom
Canonicalizes a Complex Expression
Recursively Canonicalizes a Complex Expression.
Complex canonicalizer for the conjugate atom
Complex canonicalizer for the constant atom
Complex canonicalizer for the hermitian atom
Complex canonicalizer for the imaginary atom
Helper function to combine arguments.
Complex canonicalizer for the largest sum atom
Complex canonicalizer for the matrix fraction atom
Complex canonicalizer for the non-positive atom
Complex canonicalizer for the nuclear norm atom
Complex canonicalizer for the parameter matrix atom
Complex canonicalizer for the p norm atom
Complex canonicalizer for the positive semidefinite atom
Complex canonicalizer for the quadratic atom
Complex canonicalizer for the quadratic over linear term atom
Complex canonicalizer for the real atom
Complex canonicalizer for the separable atom
Complex canonicalizer for the SOC atom
Complex canonicalizer for the variable atom
Complex canonicalizer for the zero atom
Second-Order Cone Methods
Summary of cone dimensions present in constraints.
Construct Matrices for Linear Cone Problems
The ConicSolver class.
Return the coefficient and offset in .
Returns a sparse matrix that spaces out an expression.
The Conjugate class.
The Constant class.
The ConstantSolver class.
Is Constraint Violated?
The Constraint class.
Builds a chain that rewrites a problem into an intermediate representa...
Build a reduction chain from a problem to an installed solver.
The Conv class.
Discrete Convolution
An interface for the CPLEX solver
An interface for the CPLEX solver.
Cumulative Maximum
The CumMax class.
Cumulative Sum
The CumSum class.
Curvature of an Atom
Curvature of Composition
Curvature Properties
Curvature of Expression
The CvxAttr2Constr class.
An interface for the CVXOPT solver.
Matrix Norm (Alternative)
CVXR: Disciplined Convex Optimization in R
Reduce DCP Problem to Conic Form
Dcp2Cone canonicalizer for the entropy atom
Dcp2Cone canonicalizer for the exponential atom
Dcp2Cone canonicalizer for the geometric mean atom
Dcp2Cone canonicalizer for the huber atom
Dcp2Cone canonicalizer for the indicator atom
Dcp2Cone canonicalizer for the KL Divergence atom
Dcp2Cone canonicalizer for the lambda maximization atom
Dcp2Cone canonicalizer for the largest lambda sum atom
Dcp2Cone canonicalizer for the log atom
Dcp2Cone canonicalizer for the log determinant atom
Dcp2Cone canonicalizer for the log sum of the exp atom
Dcp2Cone canonicalizer for the log 1p atom
Dcp2Cone canonicalizer for the logistic function atom
Dcp2Cone canonicalizer for the matrix fraction atom
Dcp2Cone canonicalizer for the nuclear norm atom
Dcp2Cone canonicalizer for the p norm atom
Dcp2Cone canonicalizer for the power atom
Dcp2Cone canonicalizer for the quadratic form atom
Dcp2Cone canonicalizer for the quadratic over linear term atom
Dcp2Cone canonicalizer for the sigma max atom
Reduce DGP problems to DCP problems.
Dgp2Dcp canonicalizer for the addition atom
Dgp2Dcp canonicalizer for the constant atom
Dgp2Dcp canonicalizer for the division atom
Dgp2Dcp canonicalizer for the exp atom
Dgp2Dcp canonicalizer for the atom
Dgp2Dcp canonicalizer for the geometric mean atom
Dgp2Dcp canonicalizer for the log atom
Dgp2Dcp canonicalizer for the multiplication atom
Dgp2Dcp canonicalizer for the multiplication expression atom
Dgp2Dcp canonicalizer for the non-positive constraint atom
Dgp2Dcp canonicalizer for the infinite norm atom
Dgp2Dcp canonicalizer for the 1 norm atom
Dgp2Dcp canonicalizer for the 1-x atom
Dgp2Dcp canonicalizer for the parameter atom
Dgp2Dcp canonicalizer for the spectral radius atom
Dgp2Dcp canonicalizer for the p norm atom
Dgp2Dcp canonicalizer for the power atom
Dgp2Dcp canonicalizer for the product atom
Dgp2Dcp canonicalizer for the quadratic form atom
Dgp2Dcp canonicalizer for the quadratic over linear term atom
Dgp2Dcp canonicalizer for the sum atom
Dgp2Dcp canonicalizer for the trace atom
Dgp2Dcp canonicalizer for the zero constraint atom
DGP canonical methods class.
Turns an expression into a DiagVec object
Matrix Diagonal
The DiagMat class.
The DiagVec class.
Takes the k-th order differences
Lagged and Iterated Differences
The DiffPos atom.
Atom Dimensions
The DivExpression class.
Domain
Get the sparse
flag field for the LinOp object
Get the sparse
flag field for the LinOp object
Compute a Matrix Decomposition.
Perform a push back operation on the args
field of LinOp
Get the field dense_data
for the LinOp object
Get the id field of the LinOp Object
Get the field size
for the LinOp object
Get the slice field of the LinOp Object
Get the field named sparse_data
from the LinOp object
Get the sparse
flag field for the LinOp object
Get the field named type
for the LinOp object
Create a new LinOp object.
Set the field dense_data
of the LinOp object
Set the field size
of the LinOp object
Set the slice field of the LinOp Object
Set the field named sparse_data
of the LinOp object
Set the flag sparse
of the LinOp object
Set the field named type
for the LinOp object
Perform a push back operation on the size
field of LinOp
Perform a push back operation on the slice
field of LinOp
Return the LinOp element at index i (0-based)
Create a new LinOpVector object.
Perform a push back operation on the args
field of LinOp
Internal method for calculating the p-norm
Get the const_to_row field of the ProblemData Object
Get the const_vec field from the ProblemData Object
Get the I field of the ProblemData Object
Get the id_to_col field of the ProblemData Object
Get the J field of the ProblemData Object
Get the V field of the ProblemData Object
Create a new ProblemData object.
Set the const_to_row map of the ProblemData Object
Set the const_vec field in the ProblemData Object
Set the I field in the ProblemData Object
Set the id_to_col field of the ProblemData Object
Set the J field in the ProblemData Object
Set the V field in the ProblemData Object
Get and Set Dual Value
An interface for the ECOS BB solver.
An interface for the ECOS solver
Utility method for formatting a ConeDims instance into a dictionary th...
The Elementwise class.
The EliminatePwl class.
EliminatePwl canonicalizer for the absolute atom
EliminatePwl canonicalizer for the cumulative max atom
EliminatePwl canonicalizer for the cumulative sum atom
EliminatePwl canonicalizer for the elementwise maximum atom
EliminatePwl canonicalizer for the max entries atom
EliminatePwl canonicalizer for the elementwise minimum atom
EliminatePwl canonicalizer for the minimum entries atom
EliminatePwl canonicalizer for the infinite norm atom
EliminatePwl canonicalizer for the 1 norm atom
EliminatePwl canonicalizer for the largest sum atom
The Entr class.
Entropy Function
The EqConstraint class
The EvalParams class.
The Exp class.
Natural Exponential
The ExpCone class.
The Expression class.
Parts of an Expression Leaf
Gets a specified value of a dual variable.
Coalesces bool, int indices for variables.
Unity Resolvent
The EyeMinusInv class.
The FlipObjective class.
Format Constraints
Geometric Mean
The GeoMean class.
Get Expression Data
Gets the values of the dual variables.
Get ID
Get numpy handle
Get Problem Data
Get scipy handle
An interface for the GLPK MI solver.
An interface for the GLPK solver.
Sub/Super-Gradient
Graph Implementation
Organize the constraints into a dictionary keyed by constraint names.
An interface for the GUROBI conic solver.
An interface for the GUROBI_QP solver.
Harmonic Mean
The HarmonicMean atom.
The HStack class.
Horizontal Concatenation
The Huber class.
Huber Function
Identification Number
The Imag class.
Import Solver
The Index class.
The IneqConstraint class
List installed solvers
Reciprocal Function
The InverseData class.
Return Original Solution
DCP Compliance
DGP Compliance
Is Problem Mixed Integer?
Is Problem a QP?
Is the constraint a stuffed cone constraint?
Is the objective a stuffed cone objective?
Is the QP objective stuffed?
Kullback-Leibler Divergence
The KLDiv class.
The Kron class.
Kronecker Product
Maximum Eigenvalue
Minimum Eigenvalue
Sum of Largest Eigenvalues
Sum of Smallest Eigenvalues
The LambdaMax class.
The LambdaMin atom.
The LambdaSumLargest class.
The LambdaSumSmallest atom.
Attributes of an Expression Leaf
The Leaf class.
Affine Approximation to an Expression
A Class Union of List and Constraint
Log-Determinant
Log-Log Curvature of an Atom
Log-Log Curvature Properties
Log-Log Curvature of Expression
Log-Sum-Exponential
The Log class.
Logarithms
The Log1p class.
The LogDet class.
The Logistic class.
Logistic Function
The LogSumExp class.
Make a CSC sparse diagonal matrix
Matrix Fraction
Matrix Properties
Matrix Trace
The MatrixFrac class.
The MatrixStuffing class.
Elementwise Maximum
Maximum
The MaxElemwise class.
The MaxEntries class.
The Maximize class.
Arithmetic Mean
Elementwise Minimum
Minimum
The MinElemwise class.
The MinEntries class.
The Minimize class.
Solver Capabilities
Mixed Norm
The MixedNorm atom.
An interface for the MOSEK solver.
Parses MOSEK dual variables into corresponding CVXR constraints and du...
Recovers MOSEK solutions dual variables
Elementwise multiplication operator
The MulExpression class.
The Multiply class.
Elementwise Multiplication
Variable, Parameter, or Expression Name
An alias for -MinElemwise(x, 0)
Elementwise Negative
The NegExpression class.
The NonlinearConstraint class.
The NonPosConstraint class
Infinity-Norm
Nuclear Norm
The Norm atom.
Matrix Norm
The Norm1 class.
1-Norm
The Norm2 atom.
Euclidean Norm
The NormInf class.
The NormNuc class.
Arithmetic Operations on Objectives
The Objective class.
Difference on Restricted Domain
The OneMinusPos class.
An interface for the OSQP solver.
P-Norm
The Parameter class.
Perform Reduction
Perron-Frobenius Eigenvalue
The PfEigenvalue class.
The Pnorm class.
An alias for MaxElemwise(x, 0)
Elementwise Positive
The Power class.
Elementwise Power
Arithmetic Operations on Problems
The Problem class.
Parts of a Problem
Product of Entries
The ProdEntries class.
Project Value
The Promote class.
Given a problem returns a PSD constraint
The PSDConstraint class.
The PSDWrap class.
Solve a DCP Problem
The Qp2SymbolicQp class.
The QpMatrixStuffing class.
A QP solver interface.
Quadratic Form
Quadratic over Linear
The QuadForm class.
The QuadOverLin class.
The Rdict class.
The Rdictdefault class.
The Real class.
Reduce a Problem
The Reduction class.
The ReductionSolver class.
Reset Options
Reshape an Expression
The Reshape class.
Constraint Residual
Retrieve Solution
Utility methods for special handling of semidefinite constraints.
Utility methods for special handling of semidefinite constraints.
Scalene Function
An interface for the SCS solver
Utility method for formatting a ConeDims instance into a dictionary th...
Extracts the dual value for constraint starting at offset.
Set ID Counter
Maximum Singular Value
The SigmaMax class.
Atom Sign
Sign Properties
Sign of Expression
Size Properties
Size of Expression
The SizeMetrics class.
The SOC class.
The SOCAxis class.
The Solution class.
The SolverStats class.
The SolvingChain class.
The SpecialIndex class.
Square Root
Square
Sum of Entries
Sum of Largest Values
Sum of Smallest Values
Sum of Squares
The SumEntries class.
The SumLargest class.
The SumSmallest atom.
The SumSquares atom.
The SymbolicQuadForm class.
Numeric Value of Atom
The TotalVariation atom.
The Trace class.
The Transpose class.
Matrix Transpose
Expands lower triangular to full matrix.
Expands upper triangular to full matrix.
Total Variation
The UnaryOperator class.
Parse output from a solver and updates problem state
Utility methods for special handling of semidefinite constraints.
Upper Triangle of a Matrix
The UpperTri class.
Validate Arguments
Validate Value
Get or Set Value
The Variable class.
Vectorization of a Matrix
Turns symmetric 2D array into a lower triangular matrix
The VStack class.
Vertical Concatenation
The Wrap class.
The ZeroConstraint class
An object-oriented modeling language for disciplined convex programming (DCP) as described in Fu, Narasimhan, and Boyd (2020, <doi:10.18637/jss.v094.i14>). It allows the user to formulate convex optimization problems in a natural way following mathematical convention and DCP rules. The system analyzes the problem, verifies its convexity, converts it into a canonical form, and hands it off to an appropriate solver to obtain the solution. Interfaces to solvers on CRAN and elsewhere are provided, both commercial and open source.
Useful links