1. What’s new in PEPit 0.1.0
Adding general constraints to your problem.
The methodadd_constrainthas been added to the classPEPfor general constraints not necessarily related to a specific function.For readability of your code, we suggest to use the methodset_initial_conditionwhen the constraint is the initial one, and the methodadd_constraintfor any other constraint.Adding LMI constraints to your problem.
The method
add_psd_matrixhas been added to the classPEPand must be used to add LMI constraints to your problem.CVXPY options.
PEPit uses CVXPY to solve the underlying SDP of your problem.CVXPY solver options can be provided to the methodPEP.solve.Optimizing dimension of the solution.
Thetracetrickoption of the methodPEP.solvehas been replaced bydimension_reduction_heuristic.Set to None by default, this option can be set to “trace” or “logdet{followed by a number}” to use one of those heuristic.Granularity of the verbose mode has evolved.
The verbose mode of the methodPEP.solveand of the provided examples files are now integers:0: No verbose at all
1: PEPit information is printed but not CVXPY’s
2: Both PEPit and CVXPY details are printed
Parameters of function classes.
The parameters that characterize a function class must be provided directly as arguments of this function class, not through the dict “param” anymore.Example:PEP.declare_function(function_class=SmoothStronglyConvexFunction, mu=.1, L=1.)Initializing a Point or an Expression to 0.
null_pointandnull_expressionhave been added to the modulePEPitto facilitate the access to aPointor anExpressioninitialized to 0.3 new function classes have been added:
ConvexSupportFunctionfor convex support functions (see [1])ConvexQGFunction, for convex and quadratically upper bounded functions (see [2])RsiEbFunction, for functions verifying lower restricted secant inequality and upper error bound (see [3])