ConicBundle
Modules
Here is a list of all modules:
 Interface to ConicBundle for the Language CSolve $min_{y\in\mathbf{R}^m} f_0(y) + f_1(y) + ... + f_k(y)$ for convex functions f_i, the y-variables may be bounded or box constrained. The most important steps are explained here. Internal details are sketched in Internal implementation of the "C" interface
 Interface to ConicBundle for the Language C++Solve $min_{y\in\mathbf{R}^m} f_0(y) + f_1(y) + ... + f_k(y)$ for convex functions f_i, the y-variables may be bounded or box constrained. The most important steps are explained here
 Interface to ConicBundle for the Language C++ using Matrix ClassesSolve $min_{y\in\mathbf{R}^m} f_0(y) + f_1(y) + ... + f_k(y)$ for convex functions f_i, the y-variables may be free, bounded, box constrained, or linearly constrained. The most important steps are the following
 Internal implementation of the "C" interfaceInternally the "C" interface is implemented as follows. cb_construct_problem() generates a CB_CSolver that contains a MatrixCBSolver and feeds each c-evaluation function to this solver in the form of a CFunction. All calls are then passed on to this solver
 Basic Support for Output Levels
 Interface for qp solver dependent model descriptionsThe classes define the interface for obtaining a solver dependent description of the bundle subproblem. The solver has to provide (or be) a QPModelDataPointer, which generates on request (issued in ConicBundle::BundleModel::start_augmodel() ) a possibly model dependent QPModelDataObject that the model then fills with its information. Derived from this base class QPModelDataObject there is QPSumModelDataObject used by ConciBundle::SumModel and QPConeModelDataObject that is general enough to fit the models of ConicBundle::NNCModel, ConicBundle::SOCModel, ConicBundle::PSCModel, ConicBundle::BoxModel, and ConicBundle::AFTModel. The cutting model description typically consists of the collected subgradient information and the support set describing the feasible combinations of the subgradient information. A potentially present sequence of AffineFunctionTransformation instances modifies this subgradient information and the routine QPModelDataPointer::apply_aft() serves this purpose. Several classes derived from BundleProxObject also use this interface to compute the quadratic costs for the internal ConicBundle::UQPSolver
 Abstract interface for qp solversThe classes define the interface for qp solvers to be compatible with ConicBundle::UnconstrainedGroundset and ConicBundle::LPGroundset. Solvers obeying these requirements may be installed by ConicBundle::MatrixCBSolver::set_qp_solver()
 Internal QP Solver for linearly constrained groundsets
 Internal QP Solver for unconstrained groundsets
 Variable MetricThe classes and routines here help to dynamically specify the part of the quadratic term within the proximal term (see Quadratic Proximal Terms) that is responsible for the shape of the level sets of the prox term in the bundle subproblem. In the smooth case this quadratic contribution should be the Hessian of the function. Generally the term should make it easy to move into directions that are still considered promising and where "curvature" also seems to allow for larger steps
 Quadratic Proximal TermsTogether with a weight (see BundleWeight), the proximal term $\|y-\hat{y}\|_H^2$ ( $H$ positive definite) of the augmented cutting model plays the role of a step length control and offers a possibility to bring in some metric information via the choice of $H$ (see Variable Metric). Two aspects are of importance in choosing this matrix
 Classes for Describing Types of Ground Sets and Ensuring Feasibility of y
 Internal Bundle Solver of ConicBundleSolve $min_{y\in\mathbf{R}^m} f(y)$ for a convex function f given in the form of a ConicBundle::BundleModel. The Problem and the Solver are set up and called from one of the solver interfaces, e.g., ConicBundle::CBSolver or ConicBundle::MatrixCBSolver and are typically not accessed directly
 dynamic modification support for adding/deleting/modifying variables, oracles and constraintsMost classes are specializations/reinterpretations of the class Modification
 Classes for General and Specialized Cutting Models for Various Objective Functions
 implemention of MatrixFunctionOracle (NNCBoxSupportFunction)NNCBoxSupportFunction is an example implementation of ConicBundle::MatrixFunctionOracle for the minimization of the support function over a box (it is, however, recommended to use a BoxOracle instead, which should be more efficient). It may be used for Lagrangian relaxation of linear programs over boxes or, using FunctionTask::AdaptivePenaltyFunction, over unbounded domains with finite optima
 box oracle with special purpose cutting modelThis oracle has the only purpose of passing the box description data to a specialized internal implementation of a support function over a box. The objective is supplied by a suitable AffineFunctionTransformation
 dynamic submodel selection
 abstract second order cone oracleFor minimizing the support function over the second order cone with $x_0=1$ for an affine cost function or, equivalently, Lagrangian relaxation of Linear Programs over the second order cone
 implemention of a SOCOracle (SOCSupportFunction)SOCSupportFunction is an implementation of ConicBundle::SOCOracle for the minimization of the support function over the second order cone with x0=1, which may be used for Lagrangian relaxation of linear programs over the second order cone
 abstract positive semidefinite cone oracleFor the minimization of the maximum eigenvalue of affine matrix functions (see also implemention of a PSCOracle (PSCAffineFunction)) or, equivalently, Lagrangian relaxation of Linear Programs over the cone of positive semidefinite matrices
 implemention of a PSCOracle (PSCAffineFunction)PSCAffineFunction is an implementation of ConicBundle::PSCOracle for the minimization of the maximum eigenvalue of an affine matrix function or, equivalently, Lagrangian relaxation of Linear Programs over the cone of positive semidefinite matrices
 Basic Types and Constants
 Basic Templates for Linear AlgebraTemplates for simple linear algebra routines like BLAS level 1
 Global Variables and ObjectsThe variables and objects are instantiated in memarray.cxx
 Classes and Functions used for DebuggingTo catch MatrixErrors in CONICBUNDLE_DEBUG mode stop/break in CH_Matrix_Classes::MEmessage() (first routine in memarray.cxx)
 Classes and Functions for Memory ManagementImplements a simple approach to support frequent allocation and deallocation of arrays of the same sizes
 simple functions like max, min, abs
 Range (of integer numbers with step size)
 Friend Functions of Indexmatrix
 Indexmatrix (dense, integer, m by n)
 Realrange (of real numbers with step size)
 Matrix (dense, real, m by n)
 Symmatrix (dense, real, symmetric, n by n)
 Sparsemat (sparse, real, n by m)
 Sparsesym (sparse, real, symmetric, n by n)
 Lanczos Interface and ClassesRoutines for computing a few extremal eigenvalues of large structured real symmetric matrices
 Interfaces and Classes for Iterative Solvers like PCG, MINRES and PSQMRUniform interface for routines for solving positive definite or indefinite symmetric or unsymmetric systems Ax=b by iterative methods with or without preconditioning. The meaning, the requirements and the use of the preconditioner routines depends on the methods
 Clock (time measurement in Microseconds)
 Random Number Generator
 HeapsortTemplate functions for heapsorting an array of index-objects indexing an array of value-objects comparable by "<"
 Plot (output of statistical data with pgfplots)