Reference of C++ interface

The C++ interface was semi-automatically ported to Julia, for which a parser was written. It aims to bring almost the full functionality of ConicBundle to Julia; however, the way of implementation is neither efficient nor always in a Julian style. The documentation was extracted verbatim from the CPP code, hence no markdown profits will be available. This basic interface can be improved in the future for example by exploiting memory alignment of structs in Julia and C++, which would allow to inline lots of setters and getters instead of having to call external functions.

Note that the C++ interface requires you to manually keep track of memory. Every allocated object must be freed by an appropriate call to cb_destroy!. This is in contrast to the automatically managed CBProblem from the C interface.

ConicBundle.CBAFTModelType
CBAFTModel(in_model::Union{<:CBSumBlockModel,Nothing}, inaft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing, start_modification_id::Integer = 0, in_model_is_owner::Bool = false)

sets @a model to @a inmodel and @a modelisowner to @a inmodelisowner (or false if @a inmodel==0) and calls clear with parameters (inaft,startmodification_id)

source
ConicBundle.CBAFTModificationType
CBAFTModification(var_olddim::Integer = 0, row_olddim::Integer = 0, ignore_groundset_modification::Bool = false)

initialize and reset to an unmodified object currently having varolddim columns and rowolddim rows

source
ConicBundle.CBAffineFunctionTransformationType
CBAffineFunctionTransformation(in_fun_coeff::Real = 1., in_fun_offset::Real = 0., in_linear_cost::Union{<:CBMatrix,Nothing} = nothing, in_arg_offset::Union{<:CBMatrix,Nothing} = nothing, in_arg_trafo::Union{<:CBSparsemat,Nothing} = nothing, in_model_calls_delete::Bool = true, incr::Integer = -1)

calls init()

source
ConicBundle.CBBoxDataType
CBBoxData(fun_factor::Real = 1., fun_task::CBFunctionTask = cbft_objective_function)

initializes BundleData, sets center_primal to NULL and calls clear()

source
ConicBundle.CBBoxModelType
CBBoxModel(fo::Union{<:CBBoxOracle,Nothing}, fun_factor::Real = 1., fun_task::CBFunctionTask = cbft_objective_function, cbinc::Integer = -1)

construct a model for the MatrixBoxOracle pointed to by @a fo

source
ConicBundle.CBBoxModelParametersType
CBBoxModelParameters(cbinc::Integer = -1)

default constructor

source
CBBoxModelParameters(bp::CBBundleParameters, cbinc::Integer = -1)

copy constructor for BundleParameters

source
CBBoxModelParameters(sms::CBBoxModelParameters)

copy constructor

source
ConicBundle.CBBoxOracleType
CBBoxOracle(in_lb::CBMatrix, in_ub::CBMatrix)

constructor initializing lower and upper bounds (must have the same dimesnion, not checked)

source
ConicBundle.CBBundleDLRTrustRegionProxType
CBBundleDLRTrustRegionProx(dim::Integer = 0, vp::Union{<:CBVariableMetricSelection,Nothing} = nothing, local_metric::Bool = false, inc::Integer = -1)

default constructor with empty H (equal to zero) and the dimension as argument

source
CBBundleDLRTrustRegionProx(in_D::CBMatrix, in_vecH::CBMatrix, vp::Union{<:CBVariableMetricSelection,Nothing} = nothing, local_metric::Bool = false, inc::Integer = -1)

constructs H=(D+weightu)+vecH*transpose(vecH) with weightu=1., so inD must be a column vector with same dimension as rows in invecH

source
ConicBundle.CBBundleDenseTrustRegionProxType
CBBundleDenseTrustRegionProx(Hin::CBSymmatrix, vp::Union{<:CBVariableMetricSelection,Nothing} = nothing, local_metric::Bool = false, bounds_scaling::Bool = false, cbinc::Integer = -1)

initialize to this Matrix and set the variable_metric option (false by default)

source
CBBundleDenseTrustRegionProx(dim::Integer = 0, vp::Union{<:CBVariableMetricSelection,Nothing} = nothing, local_metric::Bool = false, bounds_scaling::Bool = false, cbinc::Integer = -1)

initialize H to the zero Matrix of this dimension (on the diagonal the weight will be added) and set the variable_metric option (false by default)

source
ConicBundle.CBBundleDiagonalTrustRegionProxType
CBBundleDiagonalTrustRegionProx(Din::CBMatrix, vp::Union{<:CBVariableMetricSelection,Nothing} = nothing, local_scaling::Bool = false, bounds_scaling::Bool = false, cbinc::Integer = -1)

initialize to this diagonal matrix

source
CBBundleDiagonalTrustRegionProx(dim::Integer, d::Real, vp::Union{<:CBVariableMetricSelection,Nothing} = nothing, local_scaling::Bool = false, bounds_scaling::Bool = false, cbinc::Integer = -1)

initialize to a diaognal matrix d*identity of dimesion dim

source
CBBundleDiagonalTrustRegionProx(dim::Integer = 0, vp::Union{<:CBVariableMetricSelection,Nothing} = nothing, local_scaling::Bool = false, bounds_scaling::Bool = false, cbinc::Integer = -1)

initialize to a zero diaognal matrix of dimesion dim

source
ConicBundle.CBBundleHKWeightType
CBBundleHKWeight(mRin::Real = .5, bwp::Union{<:CBBundleWeight,Nothing} = nothing, incr::Integer = -1)

the parameter mRin gets the value for accepting descent steps, bwp may be used to communicate the previous values use by another routine

source
ConicBundle.CBBundleLowRankTrustRegionProxType
CBBundleLowRankTrustRegionProx(dim::Integer = 0, vp::Union{<:CBVariableMetricSelection,Nothing} = nothing, local_metric::Bool = false, inc::Integer = -1)

default constructor with empty H (equal to zero) and the dimension as argument

source
CBBundleLowRankTrustRegionProx(in_vecH::CBMatrix, in_lamH::CBMatrix, vp::Union{<:CBVariableMetricSelection,Nothing} = nothing, local_metric::Bool = false, inc::Integer = -1)

constructs H=vecHDiag(lamH)transpose(vecH), so inlamH must be a column vector with same dimension as columns in invecH and the row dimension of invecH must match the design space, invecH is assumed orthogonal

source
ConicBundle.CBBundleRQBWeightType
CBBundleRQBWeight(bwp::Union{<:CBBundleWeight,Nothing} = nothing, incr::Integer = -1)

bwp may be used to communicate the previous values used by another routine

source
CBBundleRQBWeight(m1::Real, m2::Real = .2, m3::Real = 1., eta::Real = 1e-6, bwp::Union{<:CBBundleWeight,Nothing} = nothing, incr::Integer = -1)

bwp may be used to communicate the previous values used by another routine

source
ConicBundle.CBBundleSolverType
CBBundleSolver(dim::Integer, bp::Union{<:CBBundleModel,Nothing} = nothing, incr::Integer = -1)

calls initialize(CHMatrixClasses::Integer, BundleModel*)

source
CBBundleSolver(gs::Union{<:CBGroundset,Nothing}, bp::Union{<:CBBundleModel,Nothing} = nothing, incr::Integer = -1)

calls initialize(Groundset,BundleModel)

source
ConicBundle.CBCFunctionType
CBCFunction(fk::Union{<:AbstractVector{Nothing},Nothing}, fp::Ptr{Cvoid}, se::Ptr{Cvoid} = 0, prdim::Integer = 0)

constructor

source
ConicBundle.CBCMgramdenseType
CBCMgramdense(Ain::CBMatrix, pos::Bool = true, cip::Union{<:CBCoeffmatInfo,Nothing} = nothing)

copy Ain and possibly, the flag for positive/negative and store the user information

source
ConicBundle.CBCMgramsparseType
CBCMgramsparse(Ain::CBSparsemat, pos::Bool = true, cip::Union{<:CBCoeffmatInfo,Nothing} = nothing)

copy Ain, the flag for positive/negative and store the user information

source
ConicBundle.CBCMgramsparse_withoutdiagType
CBCMgramsparse_withoutdiag(Ain::CBSparsemat, pos::Bool = true, cip::Union{<:CBCoeffmatInfo,Nothing} = nothing)

copy Ain, the flag for positive/negative and store the user information

source
ConicBundle.CBCMlowrankddType
CBCMlowrankdd(Ain::CBMatrix, Bin::CBMatrix, cip::Union{<:CBCoeffmatInfo,Nothing} = nothing)

copy Ain, Bin and store the user information

source
ConicBundle.CBCMlowranksdType
CBCMlowranksd(Ain::CBSparsemat, Bin::CBMatrix, cip::Union{<:CBCoeffmatInfo,Nothing} = nothing)

copy Ain, Bin and store the user information

source
ConicBundle.CBCMlowrankssType
CBCMlowrankss(Ain::CBSparsemat, Bin::CBSparsemat, cip::Union{<:CBCoeffmatInfo,Nothing} = nothing)

copy Ain, Bin and store the user information

source
ConicBundle.CBCMsingletonType
CBCMsingleton(innr::Integer, ini::Integer, inj::Integer, inval::Real, cip::Union{<:CBCoeffmatInfo,Nothing} = nothing)

the order is innr and the nonzero element (ini,inj) has values inval

source
ConicBundle.CBCMsymdenseType
CBCMsymdense(Ain::CBSymmatrix, cip::Union{<:CBCoeffmatInfo,Nothing} = nothing)

copy Ain and possibly store the user information

source
ConicBundle.CBCMsymsparseType
CBCMsymsparse(Ain::CBSparsesym, cip::Union{<:CBCoeffmatInfo,Nothing} = nothing)

copy Ain and possibly store the user information, set use_sparsemult to true if at least half the rows will be zero

source
ConicBundle.CBDensePSCPrimalType
CBDensePSCPrimal()

initialize to a symmetric matrix of size 0

source
CBDensePSCPrimal(symmat::CBDensePSCPrimal, factor::Real = 1.)

copy constructor

source
CBDensePSCPrimal(symmat::CBSymmatrix, factor::Real = 1.)

copy constructor from a CHMatrixClasses::Symmatrix

source
CBDensePSCPrimal(n::Integer)

direct size initialization to a zero matrix

source
ConicBundle.CBGramSparsePSCPrimalType
CBGramSparsePSCPrimal(sps::CBSparsesym, factor::Real = 1.)

initialize to the given sparse symmetric matrix, the gram part is zero

source
CBGramSparsePSCPrimal(pr::CBGramSparsePSCPrimal, factor::Real = 1.)

copy constructor

source
ConicBundle.CBIndexmatrixType
CBIndexmatrix()

empty matrix

source
CBIndexmatrix(A::CBIndexmatrix, d::Integer = 1)

copy constructor, this=dA

source
CBIndexmatrix(param0::AbstractRange{<:Integer})

generate a column vector holding the indices of this #CHMatrixClasses::Range

source
CBIndexmatrix(nr::Integer, nc::Integer)
  • @brief generate a matrix of size nr x nc but WITHOUT initializing the memory

      If initializing the memory externally and CONICBUNDLE_DEBUG is defined, please use
      set_init() via matrix.set_init(true) in order to avoid warnings concerning improper
      initialization
source
CBIndexmatrix(nr::Integer, nc::Integer, d::Integer)

generate a matrix of size nr x nc initializing all elements to the value d

source
CBIndexmatrix(nr::Integer, nc::Integer, dp::Union{<:AbstractVector{Cint},Nothing})

generate a matrix of size nr x nc initializing the elements from the (one dimensional) array dp with increment incr

source
CBIndexmatrix(param0::CBMatrix)

copy with rounding

source
CBIndexmatrix(param0::CBSparsemat)

copy with rounding

source
ConicBundle.CBLPGroundsetType
CBLPGroundset()

calls clear() with the same parameters

source
CBLPGroundset(dim::Integer, lbyp::Union{<:CBMatrix,Nothing} = nothing, ubyp::Union{<:CBMatrix,Nothing} = nothing, Gp::Union{<:CBSparsemat,Nothing} = nothing, rhslbp::Union{<:CBMatrix,Nothing} = nothing, rhsubp::Union{<:CBMatrix,Nothing} = nothing, start_val::Union{<:CBMatrix,Nothing} = nothing, costs::Union{<:CBMatrix,Nothing} = nothing, offset::Real = 0., in_groundset_id::Integer = 0)

allows to specify the groundset in the constructor, zero is allowed everywhere

source
ConicBundle.CBMatrixType
CBMatrix()

empty matrix

source
CBMatrix(param0::CBMatrix, d::Real = 1., atrans::Integer = 0)

copy constructor, this=dA

source
CBMatrix(param0::AbstractRange{<:Real}, param0_tol::Real = 1e-8)

generate a column vector holding the elements of this Realrange

source
CBMatrix(nr::Integer, nc::Integer)
  • @brief generate a matrix of size nr x nc but WITHOUT initializing the memory

      If initializing the memory externally and CONICBUNDLE_DEBUG is defined, please use
      set_init() via matrix.set_init(true) in order to avoid warnings concerning improper
      initialization
source
CBMatrix(nr::Integer, nc::Integer, d::Real)

generate a matrix of size nr x nc initializing all elements to the value d

source
CBMatrix(nr::Integer, nc::Integer, dp::Union{<:AbstractVector{Cdouble},Nothing}, d::Real = 1.)

generate a matrix of size nr x nc initializing the elements from the (one dimensional) array dp with increment incr and scaled by d

source
CBMatrix(A::CBIndexmatrix, d::Real = 1.)

(this)=dA

source
CBMatrix(A::CBSparsemat, d::Real = 1.)

(this)=dA

source
CBMatrix(S::CBSymmatrix, d::Real = 1.)

(this)=dA

source
CBMatrix(param0::CBSparsesym, d::Real = 1.)

(this)=dA

source
ConicBundle.CBMatrixCBSolverType
CBMatrixCBSolver(print_level::Integer = 0)

default constructor allows to set output level options from start (see also set_out())

source
ConicBundle.CBMicrosecondsType
CBMicroseconds()

default constructor, value 0

source
CBMicroseconds(infty::Bool)

constructor for setting value to 0 or infinity

source
CBMicroseconds(m::CBMicroseconds)

copy constructor

source
CBMicroseconds(secs::Integer, msecs::Integer = 0)

specify directly seconds and microseconds (in [0,10^6], no range check!)

source
CBMicroseconds(hours::Integer, minutes::Integer, secs::Integer, micros::Integer)

convert hours, minutes, secs, micros to Microseconds (no range check!)

source
ConicBundle.CBMinorantType
CBMinorant(offset::Real, subg::CBDVector, primal::Union{<:CBPrimalData,Nothing} = nothing, offset_at_origin::Bool = false)
  • @brief Minorant constructor for a dense subgradient specified via a DVector

    Suppose in the evaluation of your oracle at the current point \f$y\f$ you determine a subgradient \f$s\f$ for the subgradient inequality
    
    \f[ f(z)\ge f(y)+\langle s,z-y\rangle\quad\forall z\in\mathbf{R}^m, \f]
    
    then use \f$f(y)\f$ for @a offset and \f$s\f$ in the form of a DVector in @a subg and keep the default value @a offset_at_origin == false.
    
    If, on the other hand, your oracle implements a support function for some compact set \f$\mathcal{X}\subset\mathbf{R}^m\f$ like
    
    \f[ f(y) = \max_{x\in\mathcal{X}} x^\top y\f]
    
    then it is actually more efficient to return 0 for @a offset,
    a maximizing \f$x\f$ in @ subg and to put @a offset_at_origin = true.
    
    You may also pass over a PrimalData object in primal that will be then be
    owned and later deleted by the minorant and aggregated along with the minornat
source
CBMinorant(offset::Real, subg_val::CBDVector, subg_ind::CBIVector, primal::Union{<:CBPrimalData,Nothing} = nothing, offset_at_origin::Bool = false)
  • @brief Minorant constructor for a sparse subgradient where the nonzero values are specified by DVector and the corresponding indices by an IVector

    Suppose in the evaluation of your oracle at the current point \f$y\f$ you determine a subgradient \f$s\f$ with few nonzeros for the subgradient inequality
    
    \f[ f(z)\ge f(y)+\langle s,z-y\rangle\quad\forall z\in\mathbf{R}^m, \f]
    
    then use \f$f(y)\f$ for @a offset and pass \f$s\f$ by giving the nonzeros in the DVector @a subg_val, the corresponding indices in a IVector of the same length in @a subg_ind and keep the default value @a offset_at_origin == false.
    
    If, on the other hand, your oracle implements a support function for some compact set \f$\mathcal{X}\subset\mathbf{R}^m\f$ like
    
    \f[ f(y) = \max_{x\in\mathcal{X}} x^\top y\f]
    
    then it is actually more efficient to return 0 for @a offset,
    a sparse maximizing \f$x\f$ in @a subg_val and @a subg_ind  and to put @a offset_at_origin = true.
    
    You may also pass over a PrimalData object in primal that will be then be
    owned and later deleted by the minorant and aggregated along with the minornat
source
CBMinorant(offset_at_origin::Bool = true, offset::Real = 0., n_elementes::Integer = 0, coeffs::Union{<:AbstractVector{Real},Nothing} = nothing, indices::Union{<:AbstractVector{Integer},Nothing} = nothing, scale_val::Real = 1., primal::Union{<:CBPrimalData,Nothing} = nothing)
  • @brief default initializes a zero minorant, see full explanation otherwise; NOTE: if the offset supplied by the minorant refers to the evaluation point (i.e., if it is the function value at the point of evaluation), set @a offsetatorigin = false !

    In many applications, in particular for Lagrangian relaxation, the offset is more naturally given for the origin, and giving it this way also reduces computational cost a bit, so @a offsetatorigin = true is the suggested default. If, however, the minorant arises from a subgradient inequality by evaluation in the current point, you may as well give the function value as offset directly and set @a offsetatorigin=false;

    The data specifying the minorant may be set here or (part of) it may be entered/added later. The meaning of the other parameters is as follows.

    @a offset gives the constant value (if offsetatorigin = false then relative to the evaluation point)

    @a n_elements gives the number of elements specified by @a coeffs (and possibly indices), but if @a coeffs == NULL it just asks to reserve space for that many coefficients

    If @a coeffs is not NULL, it points to an array of doubles of size at least @a nelements. If @a indices == NULL then coeff[i] belongs to position i for i=0 to nelements-1, otherwise coeff[i] belongs to position indices[i]. All data is copied, the arrays are not modified, not used later and not deleted here.

    The entire input data (offset and coefficients) is multplied by @a scaleval to give the final minorant (scaleval is not memorized internally but executed immediately).

    If the minorant arises from @a PrimalData and the primal data should be aggregated along, it may be entered here or in the routine Minorant::set_primal(). The object pointed to is then owned by Minorant and will be deleted by Minorant on its destruction.

source
CBMinorant(mnrt::Union{<:CBMinorant,Nothing}, factor::Real = 1., with_primal::Bool = false)

they main purpose of this constructor is to allow easy cloning for derived classes

source
ConicBundle.CBMinorantPointerType
CBMinorantPointer()

declares the pointer empty

source
CBMinorantPointer(in_md::Union{<:CBMinorantUseData,Nothing})

initialize this to point to in_md

source
CBMinorantPointer(mp::CBMinorantPointer)

calls new_data

source
CBMinorantPointer(mp::CBMinorantPointer, factor::Real)

calls init(const MinorantPointer&,CHMatrixClasses::Real)

source
CBMinorantPointer(mnrt::Union{<:CBMinorant,Nothing}, modification_id::Integer, factor::Real = 1.)

calls init(Minorant*,CHMatrixClasses::Integer,CHMatrixClasses::Real)

source
ConicBundle.CBMinorantUseDataType
CBMinorantUseData(mp::Union{<:CBMinorant,Nothing}, sval::Real, modif_id::Integer)

constructor for a new minorant with scaling @a sval and modification id @a modfi_id

source
CBMinorantUseData(mdp::Union{<:CBMinorantUseData,Nothing}, sval::Real)

constructor for a recursively containing further MinorantUseData with an additional scaling factor @a sval

source
ConicBundle.CBNNCBoxSupportFunctionType
CBNNCBoxSupportFunction(lb::CBMatrix, ub::CBMatrix, incr::Integer = -1)

intialize with lower bounds vector lb and upper bounds vector ub (and output options), both must be column vectors of the same length and lb<=ub componentwise, length 0 results in objective value 0

source
ConicBundle.CBNNCDataType
CBNNCData(fun_factor::Real = 1., fun_task::CBFunctionTask = cbft_objective_function)

initializes BundleData, sets center_primal to NULL and calls clear()

source
ConicBundle.CBNNCModelType
CBNNCModel(fo::Union{<:CBMatrixFunctionOracle,Nothing}, fun_factor::Real = 1., fun_task::CBFunctionTask = cbft_objective_function, cbinc::Integer = -1)

construct a model for the MatrixFunctionOracle pointed to by @a fo

source
ConicBundle.CBNNCModelParametersType
CBNNCModelParameters(modelsize::Integer, bundlesize::Integer = 10, updaterule::Integer = 0, incr::Integer = -1)

constructor for size parameters

source
CBNNCModelParameters(bp::CBBundleParameters, incr::Integer = -1)

copy constructor for BundleParameters

source
CBNNCModelParameters(sms::CBNNCModelParameters)

copy constructor

source
ConicBundle.CBPSCAffineFunctionType
CBPSCAffineFunction(C::CBSparseCoeffmatMatrix, opAt::CBSparseCoeffmatMatrix, generating_primal::Union{<:CBPSCPrimal,Nothing} = nothing, incr::Integer = -1)
  • @brief initialize the PSCAffineFunction with its matrices and possible a generating_primal

    C and opAt define the constant (block-)offset and the linear (block-)matrix function as described in the general text of PSCAffineFunction

    generating_primal defines in what form primal matrices should be aggregated. If the argument is NULL then no primal aggregation will take place. The control over the generating primal is passed over to this. This will delete an existing generating primal whenever a new generating primal is set or upon destruction.

    The final two arguments allow to set the output, see CBout.

source
ConicBundle.CBPSCModelType
CBPSCModel(fo::Union{<:CBPSCOracle,Nothing}, fun_factor::Real = 1., fun_task::CBFunctionTask = cbft_objective_function, cbinc::Integer = -1)

construct a model for the MatrixFunctionOracle pointed to by @a fo

source
ConicBundle.CBPSCModelParametersType
CBPSCModelParameters(modelsize::Integer, bundlesize::Integer = 10, updaterule::Integer = 0, incr::Integer = -1)

constructor for size parameters

source
CBPSCModelParameters(bp::CBBundleParameters, incr::Integer = -1)

copy constructor for BundleParameters

source
CBPSCModelParameters(sms::CBPSCModelParameters)

copy constructor

source
ConicBundle.CBPrimalMatrixType
CBPrimalMatrix()

empty matrix

source
CBPrimalMatrix(nr::Integer, nc::Integer)
  • @brief generate a matrix of size nr x nc but WITHOUT initializing the memory

      If initializing the memory externally and CONICBUNDLE_DEBUG is defined, please use
      set_init() via matrix.set_init(true) in order to avoid warnings concerning improper
      initialization
source
CBPrimalMatrix(r::Integer, c::Integer, d::Real)

generate a matrix of size nr x nc initializing all elements to the value d

source
CBPrimalMatrix(pm::CBPrimalMatrix)

copy constructor, *this=pm

source
CBPrimalMatrix(pm::CBMatrix)

copy constructor, *this=pm

source
ConicBundle.CBQPIterativeKKTHASolverType
CBQPIterativeKKTHASolver(insolver::Union{<:CBIterativeSolverObject,Nothing}, inprecond::Union{<:CBQPKKTPrecondObject,Nothing} = nothing, cbinc::Integer = -1)

default constructor

source
ConicBundle.CBQPIterativeKKTHAeqSolverType
CBQPIterativeKKTHAeqSolver(insolver::Union{<:CBIterativeSolverObject,Nothing}, inprecond::Union{<:CBQPKKTPrecondObject,Nothing} = nothing, cbinc::Integer = -1)

default constructor

source
ConicBundle.CBSOCModelType
CBSOCModel(fo::Union{<:CBSOCOracle,Nothing}, fun_factor::Real = 1., fun_task::CBFunctionTask = cbft_objective_function, cbinc::Integer = -1)

construct a model for the MatrixFunctionOracle pointed to by @a fo

source
ConicBundle.CBSOCModelParametersType
CBSOCModelParameters(modelsize::Integer, bundlesize::Integer = 10, updaterule::Integer = 0, incr::Integer = -1)

constructor for size parameters

source
CBSOCModelParameters(bp::CBBundleParameters, incr::Integer = -1)

copy constructor for BundleParameters

source
CBSOCModelParameters(sms::CBSOCModelParameters)

copy constructor

source
ConicBundle.CBSparseCoeffmatMatrixType
CBSparseCoeffmatMatrix(incr::Integer = -1)

set the output and call clear()

source
CBSparseCoeffmatMatrix(S::CBSparseCoeffmatMatrix, incr::Integer = -1)

set the output and call clear()

source
CBSparseCoeffmatMatrix(in_block_dim::CBIndexmatrix, in_col_dim::Integer, block_ind::Union{<:CBIndexmatrix,Nothing} = nothing, col_ind::Union{<:CBIndexmatrix,Nothing} = nothing, coeff_vec::Union{<:CBCoeffmatVector,Nothing} = nothing, incr::Integer = -1)

set the output and call init() for the given sparse information

source
ConicBundle.CBSparsePSCPrimalType
CBSparsePSCPrimal(sps::CBSparsesym, factor::Real = 1.)

copy constructor from a CHMatrixClasses::Sparssym, only the support of this matrix will be used in all Gram operations

source
CBSparsePSCPrimal(pr::CBSparsePSCPrimal, factor::Real = 1.)

copy constructor, only the same support will be used in all Gram operations

source
ConicBundle.CBSparsematType
CBSparsemat()

empty matrix

source
CBSparsemat(A::CBSparsemat, d::Real = 1.)

copy constructor, this=dA, abs(values)<tol are removed from the support

source
CBSparsemat(nr::Integer, nc::Integer)

initialize to zero-matrix of size nr*nc

source
CBSparsemat(nr::Integer, nc::Integer, nz::Integer, ini::Union{<:AbstractVector{Cint},Nothing}, inj::Union{<:AbstractVector{Cint},Nothing}, va::Union{<:AbstractVector{Cdouble},Nothing})

initialize to size nr*nc and nz nonzeros so that this(ini[i],inj[i])=val[i] for i=0,..,nz-1; multiple elements are summed up.

source
CBSparsemat(nr::Integer, nc::Integer, nz::Integer, ini::CBIndexmatrix, inj::CBIndexmatrix, va::CBMatrix)

initialize to size nr*nc and nz nonzeros so that this(ini(i),inj(i))=val(i) for i=0,..,nz-1; multiple elements are summed up.

source
CBSparsemat(A::CBMatrix, d::Real = 1.)

initialize to this=dA, abs(values)<tol are removed from the support

source
CBSparsemat(A::CBIndexmatrix, d::Real = 1.)

initialize to this=dA, zeros are removed from the support

source
CBSparsemat(A::CBSymmatrix, d::Real = 1.)

initialize to this=dA, abs(values)<tol are removed from the support

source
CBSparsemat(A::CBSparsesym, d::Real = 1.)

initialize to this=dA

source
ConicBundle.CBSparsesymType
CBSparsesym()

empty matrix

source
CBSparsesym(A::CBSparsesym, d::Real = 1.)

copy constructor, this=dA

source
CBSparsesym(nr::Integer)

initialize to zero-matrix of size nr*nr

source
CBSparsesym(nr::Integer, nz::Integer, ini::Union{<:AbstractVector{Cint},Nothing}, inj::Union{<:AbstractVector{Cint},Nothing}, va::Union{<:AbstractVector{Cdouble},Nothing})

initialize to size nr*nr and nz nonzeros so that this(ini[i],inj[i])=val[i] for i=0,..,nz-1; specify only one of (i,j) and (j,i), multiple elements are summed up.

source
CBSparsesym(nr::Integer, nz::Integer, ini::CBIndexmatrix, inj::CBIndexmatrix, va::CBMatrix)

initialize to size nr*nr and nz nonzeros so that this(ini(i),inj(i))=val[i] for i=0,..,nz-1; specify only one of (i,j) and (j,i), multiple elements are summed up.

source
CBSparsesym(param0::CBMatrix, d::Real = 1.)

initialize to this=d(A+transpose(A))/2., abs(values)<tol are removed from the support

source
CBSparsesym(param0::CBIndexmatrix, d::Real = 1.)

initialize to this=d(A+transpose(A))/2., zeros are removed from the support

source
CBSparsesym(param0::CBSymmatrix, d::Real = 1.)

initialize to this=Ad, abs(values)<tol are removed from the support

source
CBSparsesym(param0::CBSparsemat, d::Real = 1.)

initialize to this=d(A+transpose(A))/2.

source
ConicBundle.CBSumBundleParametersType
CBSumBundleParameters(modelsize::Integer, bundlesize::Integer = 10, updaterule::Integer = 0, incr::Integer = -1)

constructor for customized parameters

source
CBSumBundleParameters(sbp::CBSumBundleParameters)

copy constructor

source
ConicBundle.CBSymmatrixType
CBSymmatrix()

empty matrix

source
CBSymmatrix(A::CBSymmatrix, d::Real = 1.)

copy constructor, this=dA

source
CBSymmatrix(nr::Integer)
  • @brief generate a matrix of size nr x nr but WITHOUT initializing the memory

      If initializing the memory externally and CONICBUNDLE_DEBUG is defined, please use
      set_init() via matrix.set_init(true) in order to avoid warnings concerning improper
      initialization
source
CBSymmatrix(nr::Integer, d::Real)

generate a matrix of size nr x nr initializing all elements to the value d

source
CBSymmatrix(nr::Integer, dp::Union{<:AbstractVector{Cdouble},Nothing})

generate a matrix of size nr x nr initializing the elements from the (one dimensional) array dp, which must have the elements arranged consecutively in internal order

source
CBSymmatrix(param0::CBMatrix, d::Real = 1.)

(this)=d(A+transpose(A))/2.

source
CBSymmatrix(param0::CBIndexmatrix, d::Real = 1.)

(this)=d(A+transpose(A))/2.

source
CBSymmatrix(A::CBSparsesym, d::Real = 1.)

(this)=dA

source
ConicBundle.CBUnconstrainedGroundsetType
CBUnconstrainedGroundset(indim::Integer = 0, start_val::Union{<:CBMatrix,Nothing} = nothing, costs::Union{<:CBMatrix,Nothing} = nothing, offset::Real = 0., in_groundset_id::Integer = 0)

calls clear() with the same parameters

source
ConicBundle.CBVariableMetricSVDSelectionType
CBVariableMetricSVDSelection(cbincr::Integer = -1)

default constructor

source
CBVariableMetricSVDSelection(in_n_latest_minorants::Integer, in_selection_method::Integer, in_oldfactor::Real = 0., cbincr::Integer = -1)

constructor for specifying values for nlatestminorants and selection_method

source
ConicBundle.cb_Aasen_LsolveFunction
cb_Aasen_Lsolve(self::CBSymmatrix, x::CBMatrix)

computes, after Aasen_factor into LTL^T was executed, the solution to Lx=rhs; rhs is overwritten by the solution; always returns 0;

source
ConicBundle.cb_Aasen_LtsolveFunction
cb_Aasen_Ltsolve(self::CBSymmatrix, x::CBMatrix)

computes, after Aasen_factor into LTL^T was executed, the solution to L^Tx=rhs; rhs is overwritten by the solution; always returns 0;

source
ConicBundle.cb_Aasen_factor!Function
cb_Aasen_factor!(self::CBSymmatrix, piv::CBIndexmatrix)

computes Aasen factorization LTL^T with pivoting, where L is unit lower triangular with first colum e_1 and T is tridiagonal; (this) is overwritten by the factorization, with column i of L being stored in column i-1 of (this); always returns 0;

source
ConicBundle.cb_Aasen_solveFunction
cb_Aasen_solve(self::CBSymmatrix, x::CBMatrix, piv::CBIndexmatrix)

computes, after Aasenfactor into LTL^T was executed, the solution to (*oldthis)x=rhs; rhs is overwritten by the solution; if the solution fails due to division by zero (=system not solvable) the return value is -(rowindex+1) where this occured in the backsolve

source
ConicBundle.cb_Aasen_tridiagsolveFunction
cb_Aasen_tridiagsolve(self::CBSymmatrix, x::CBMatrix)

computes, after Aasen_factor into LTL^T was executed, the solution to Tx=rhs; rhs is overwritten by the solution;if the solution fails due to division by zero (=system not solvable) the return value is -(rowindex+1) where this occured in the backsolve

source
ConicBundle.cb_B_times!Function
cb_B_times!(self::CBQPConeModelBlock, A::CBMatrix, C::CBMatrix, alpha::Real, beta::Real, Btrans::Integer, Atrans::Integer, startindex_model::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

C=betaC+alphaB*A where B and A may be transposed; carry out the model part of this beginning at startindex_model and beta for the part, that is added to (the calling routine has to make sure beta is not executed repeatedly if the same part is affected by other models as well)

source
cb_B_times!(self::CBQPSumModelBlock, A::CBMatrix, C::CBMatrix, alpha::Real, beta::Real, Btrans::Integer, Atrans::Integer, startindex_model::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

C=betaC+alphaB*A where B and A may be transposed; carry out the model part of this beginning at startindex_model and beta for the part, that is added to (the calling routine has to make sure beta is not executed repeatedly if the same part is affected by other models as well)

source
ConicBundle.cb_Chol_LmultFunction
cb_Chol_Lmult(self::CBSymmatrix, rhs::CBMatrix)

computes, after Chol_factor into LL^T was executed succesfully, L*rhs, overwriting rhs by the result; always returns 0;

source
ConicBundle.cb_Chol_LsolveFunction
cb_Chol_Lsolve(self::CBSymmatrix, rhs::CBMatrix)

computes, after Chol_factor into LL^T was executed succesfully, the solution to Lx=rhs; rhs is overwritten by the solution; always returns 0; NOTE: there is NO check against division by zero

source
ConicBundle.cb_Chol_LtmultFunction
cb_Chol_Ltmult(self::CBSymmatrix, rhs::CBMatrix)

computes, after Chol_factor into LL^T was executed succesfully, L^Trhs, overwriting rhs by the result; always returns 0;

source
ConicBundle.cb_Chol_LtsolveFunction
cb_Chol_Ltsolve(self::CBSymmatrix, rhs::CBMatrix)

computes, after Chol_factor into LL^T was executed succesfully, the solution to L^Tx=rhs; rhs is overwritten by the solution; always returns 0; NOTE: there is NO check against division by zero

source
ConicBundle.cb_Chol_factor!Function
cb_Chol_factor!(self::CBSymmatrix, tol::Real = 1e-10)

computes the Cholesky factorization, for positive definite matrices only, (*this) is overwritten by the factorization; there is no pivoting; returns 1 if diagonal elements go below tol

source
cb_Chol_factor!(self::CBSymmatrix, piv::CBIndexmatrix, tol::Real = 1e-10)

computes the Cholesky factorization with pivoting, for positive semidefinite matrices only, (*this) is overwritten by the factorization; on termination piv.dim() is the number of positive pivots>=tol; returns 1 if negative diagonal element is encountered during computations, 0 otherwise.

source
ConicBundle.cb_Chol_inverseFunction
cb_Chol_inverse(self::CBSymmatrix, S::CBSymmatrix)

computes, after Cholfactor was executed succesfully, the inverse to (*oldthis) and stores it in S (numerically not too wise); always returns 0; NOTE: there is NO check against division by zero

source
cb_Chol_inverse(self::CBSymmatrix, S::CBSymmatrix, piv::CBIndexmatrix)

computes, after Cholfactor(Indexmatrix&,Real) with pivoting was executed succesfully, the inverse to (*oldthis) and stores it in S (the pivoting permutation is undone in S); NOTE: there is NO check against division by zero

source
ConicBundle.cb_Chol_scaleLiFunction
cb_Chol_scaleLi(self::CBSymmatrix, S::CBSymmatrix)

computes, after Chol_factor into LL^T was executed succesfully, L^{-1}SL^{-T} overwriting S

source
ConicBundle.cb_Chol_scaleLtFunction
cb_Chol_scaleLt(self::CBSymmatrix, S::CBSymmatrix)

computes, after Chol_factor into LL^T was executed succesfully, L^TSL overwriting S

source
ConicBundle.cb_Chol_solveFunction
cb_Chol_solve(self::CBSymmatrix, x::CBMatrix)

computes, after Cholfactor was executed succesfully, the solution to (*oldthis)x=rhs; rhs is overwritten by the solution; always returns 0; NOTE: there is NO check against division by zero

source
cb_Chol_solve(self::CBSymmatrix, x::CBMatrix, piv::CBIndexmatrix)

computes, after Cholfactor(Indexmatrix&,Real) with pivoting was executed succesfully, the solution to (*oldthis)*x=rhs(piv); rhs is overwritten by the solution arranged in original unpermuted order; always returns 0; NOTE: there is NO check against division by zero

source
ConicBundle.cb_DiagFunction
cb_Diag(A::CBMatrix)

returns a symmetric diagonal matrix S of order A.dim() with vec(A) on the diagonal, i.e., S(i,i)=A(i) for all i and S(i,j)=0 for i!=j

source
ConicBundle.cb_Gram_ipFunction
cb_Gram_ip(self::CBSparseCoeffmatMatrix, ipvec::CBMatrix, P::CBMatrix, Lam::Union{<:CBMatrix,Nothing} = nothing, ind::Union{<:CBIndexmatrix,Nothing} = nothing)

computes the inner products of (selected) columns (which represent block diagonal symmetric matrices) with the Gram matrix PP^T (or, if Lam is given, PDiag(Lam)P^T) into the column vector ipvec(j)=ip(PP^T,A.column((*ind)(j)}) (j=0,...,ind->dim()-1); if ind==NULL, use all columns

source
cb_Gram_ip(self::CBSparseCoeffmatMatrix, P::CBMatrix, j::Integer)

computes the inner product of the block diagonal symmetric matrix stored in colummn j with the Gram matrix PP^T into ipval=ip(PP^T,A.column(j))

source
ConicBundle.cb_ItSys_mult!Function
cb_ItSys_mult!(self::CBQPIterativeKKTHAeqSolver, in_vec::CBMatrix, out_vec::CBMatrix)

returns outvec=(system matrix)*invec

source
cb_ItSys_mult!(self::CBQPIterativeKKTHASolver, in_vec::CBMatrix, out_vec::CBMatrix)

returns outvec=(system matrix)*invec

source
ConicBundle.cb_LDLfactor!Function
cb_LDLfactor!(self::CBSymmatrix, tol::Real = 1e-10)

computes LDLfactorization (implemented only for positive definite matrices so far, no pivoting), (*this) is overwritten by the factorization; returns 1 if diagonal elements go below tol

source
ConicBundle.cb_LDLinverseFunction
cb_LDLinverse(self::CBSymmatrix, S::CBSymmatrix)

computes, after LDLfactor was executed succesfully, the inverse to (*old_this) and stores it in S (numerically not too wise); always returns 0; NOTE: there is NO check against division by zero

source
ConicBundle.cb_LDLsolveFunction
cb_LDLsolve(self::CBSymmatrix, x::CBMatrix)

computes, after LDLfactor was executed succesfully, the solution to (*old_this)x=rhs; rhs is overwritten by the solution; always returns 0; NOTE: there is NO check against division by zero

source
ConicBundle.cb_QPapply_modification!Function
cb_QPapply_modification!(self::CBQPSolver, mdf::CBGroundsetModification)

groundset changes are communicated to the solver here

source
cb_QPapply_modification!(self::CBUQPSolver, param0::CBGroundsetModification)

no modifications need to be carried out here as there is no data to be modified, so any modification succeeds

source
ConicBundle.cb_QPconstrainedFunction
cb_QPconstrained(self::CBQPSolver)

returns false if the feasible set is the entire space (unconstrained optimization), true otherwise.

source
cb_QPconstrained(self::CBUQPSolver)

it is always unconstrained

source
ConicBundle.cb_QPensure_feasibility!Function
cb_QPensure_feasibility!(self::CBQPSolver, y::CBMatrix, ychanged::Bool, inHp::Union{<:CBQPSolverProxObject,Nothing}, relprec::Real = 1e-10)

makes y feasible if not so, see Groundset::ensure_feasibility()

source
cb_QPensure_feasibility!(self::CBUQPSolver, param0::CBMatrix, ychanged::Bool, param2::Union{<:CBQPSolverProxObject,Nothing}, param3::Real = 1e-10)

for the unconstrained solver any point is feasible, because it cannot even check the dimension of the design space, so any y is left unchanged

source
ConicBundle.cb_QPget_blockA_norm!Function
cb_QPget_blockA_norm!(self::CBQPKKTSolverComparison)

for judging violation this returns (an estimate of) the norm of the A-row in the latest system

source
ConicBundle.cb_QPget_blockH_norm!Function
cb_QPget_blockH_norm!(self::CBQPKKTSolverComparison)

for judging violation this returns (an estimate of) the norm of the H-row in the latest system

source
ConicBundle.cb_QPget_lower_bound!Function
cb_QPget_lower_bound!(self::CBQPSolver)

returns the current lower bound on the optimal value (if feasibility is good enough)

source
cb_QPget_lower_bound!(self::CBUQPSolver)

return the lower bound on the objective value of the bundle subproblem

source
ConicBundle.cb_QPget_solution!Function
cb_QPget_solution!(self::CBQPSolver, new_point::CBMatrix, gsaggr_gradient::CBMatrix)

retrieve the solution produced (see \ref InternalQPSolverInterface)

source
cb_QPget_solution!(self::CBUQPSolver, new_point::CBMatrix, gsaggr_gradient::CBMatrix)

the unconstrained solver can only provide this information if the references to the input data of QPsolve() and QPudate() are still available and unchanged, otherwise the behavior is undefined and will hopefully return 1 if not valid

source
ConicBundle.cb_QPget_system_size!Function
cb_QPget_system_size!(self::CBQPIterativeKKTHAeqSolver)

for evaluation purposes with iterative solvers, return the size of the system matrix

source
cb_QPget_system_size!(self::CBQPIterativeKKTHASolver)

for evaluation purposes with iterative solvers, return the size of the system matrix

source
ConicBundle.cb_QPinit_KKTdata!Function
cb_QPinit_KKTdata!(self::CBQPDirectKKTSolver, Hp::Union{<:CBQPSolverProxObject,Nothing}, model::Union{<:CBQPModelBlockObject,Nothing}, A::Union{<:CBSparsemat,Nothing}, eq_indices::Union{<:CBIndexmatrix,Nothing})

returns 1 if this class is not applicable in the current data situation, otherwise it stores the data pointers and these need to stay valid throught the use of the other routines but are not deleted here

source
cb_QPinit_KKTdata!(self::CBQPIterativeKKTHAeqSolver, Hp::Union{<:CBQPSolverProxObject,Nothing}, model::Union{<:CBQPModelBlockObject,Nothing}, A::Union{<:CBSparsemat,Nothing}, eq_indices::Union{<:CBIndexmatrix,Nothing})

returns 1 if this class is not applicable in the current data situation, otherwise it stores the data pointers and these need to stay valid throught the use of the other routines but are not deleted here

source
cb_QPinit_KKTdata!(self::CBQPKKTSolverComparison, Hp::Union{<:CBQPSolverProxObject,Nothing}, model::Union{<:CBQPModelBlockObject,Nothing}, A::Union{<:CBSparsemat,Nothing}, eq_indices::Union{<:CBIndexmatrix,Nothing})

returns 1 if this class is not applicable in the current data situation, otherwise it stores the data pointers and these need to stay valid throught the use of the other routines but are not deleted here

source
ConicBundle.cb_QPinit_KKTsystem!Function
cb_QPinit_KKTsystem!(self::CBQPDirectKKTSolver, KKTdiagx::CBMatrix, KKTdiagy::CBMatrix, Hfactor::Real, prec::Real, params::Union{<:CBQPSolverParameters,Nothing})

set up the primal dual KKT system for being solved for predictor and corrector rhs in QPsolve_KKTsystem

source
cb_QPinit_KKTsystem!(self::CBQPKKTSolverComparison, KKTdiagx::CBMatrix, KKTdiagy::CBMatrix, Hfactor::Real, prec::Real, params::Union{<:CBQPSolverParameters,Nothing})

set up the primal dual KKT system for being solved for predictor and corrector rhs in QPsolve_KKTsystem

source
ConicBundle.cb_QPis_feasible!Function
cb_QPis_feasible!(self::CBQPSolver, y::CBMatrix, relprec::Real = 1e-10)

check feasiblity of y for the current groundset constraints

source
cb_QPis_feasible!(self::CBUQPSolver, param0::CBMatrix, param1::Real = 1e-10)

for the unconstrained solver any point is feasible, because it cannot even check the dimension of the design space

source
ConicBundle.cb_QPprefer_UQPSolverFunction
cb_QPprefer_UQPSolver(self::CBQPSolver, param0::Union{<:CBQPSolverProxObject,Nothing})

returns true if, for the current constraints and the requested ProxObject, it might be better to use the internal unconstrained QP solver (which can deal with box constraints by a work-around)

source
cb_QPprefer_UQPSolver(self::CBUQPSolver, param0::Union{<:CBQPSolverProxObject,Nothing})

as this IS the internal UQPSolver, the answer doesn't matter, but the solver would certainly say yes

source
ConicBundle.cb_QPprint_statistics!Function
cb_QPprint_statistics!(self::CBQPSolver, param1::Integer = 0)

currently it does nothing

source
cb_QPprint_statistics!(self::CBUQPSolver, param1::Integer = 0)

outputs some statistical data about solver performance

source
ConicBundle.cb_QPresolve!Function
cb_QPresolve!(self::CBQPSolver, lower_bound::Real, upper_bound::Real, relprec::Real)

resolve the bundle subproblem (usually because of modified penalty parameters) so that precision requirements are met (see \ref InternalQPSolverInterface)

source
cb_QPresolve!(self::CBUQPSolver, lower_bound::Real, upper_bound::Real, relprec::Real)

see QPSolverObject::QPresolve() and \ref UnconstrainedQPSolver

source
ConicBundle.cb_QPset_KKTsolver!Function
cb_QPset_KKTsolver!(self::CBQPSolverParameters, in_KKTsolver::Union{<:CBQPKKTSolverObject,Nothing})

delete previous solver and replace by the new one (should not be zero when calling the solver)

source
ConicBundle.cb_QPset_nbh_bounds!Function
cb_QPset_nbh_bounds!(self::CBQPSolverParameters, nbhlb::Real, nbhub::Real)

set the upper bound on the neighborhood that should be ensured in curve searches; ensures eps_Real<=nbhlb<=nbhub (nbhub should be < 1. and <=.35 is safe)

source
ConicBundle.cb_QPset_parameters!Function
cb_QPset_parameters!(self::CBQPSolver, params::Union{<:CBQPSolverParametersObject,Nothing})

check whether the parameters are QPSolverParameters and set them if so

source
cb_QPset_parameters!(self::CBUQPSolver, param0::Union{<:CBQPSolverParametersObject,Nothing})

does nothing here

source
ConicBundle.cb_QPset_use_neighborhood!Function
cb_QPset_use_neighborhood!(self::CBQPSolverParameters, nbh::Bool)

if set to true (default: false), the lines search is carried out with respect to the neighborhood polynomial ensuring the afte this step the point is again inside the neighborhood of the central path

source
ConicBundle.cb_QPset_use_predictor_corrector!Function
cb_QPset_use_predictor_corrector!(self::CBQPSolverParameters, upc::Bool)

if set to true (=default), a predictor corrector approach is used for solving the KKT system (solve for barrier parameter mu=0, guess mu, solve again for this mu including some bilinear perturbation) otherwise the barrier parameter is set apriori and the step computed in one solve

source
ConicBundle.cb_QPset_use_socqp!Function
cb_QPset_use_socqp!(self::CBQPSolverParameters, s::Bool)

if set to true (default: false), the quadratic term is modelled via a second order cone approach

source
ConicBundle.cb_QPsolve!Function
cb_QPsolve!(self::CBQPSolver, center_y::CBMatrix, lower_bound::Real, upper_bound::Real, relprec::Real, Hp::Union{<:CBQPSolverProxObject,Nothing}, gs_aggr::CBMinorantPointer, yfixed::Union{<:CBIndexmatrix,Nothing})

solve the current bundle subproblem so that precision requirements are met (see \ref InternalQPSolverInterface)

source
cb_QPsolve!(self::CBUQPSolver, center_y::CBMatrix, lower_bound::Real, upper_bound::Real, relprec::Real, Hp::Union{<:CBQPSolverProxObject,Nothing}, gs_aggr::CBMinorantPointer, yfixed::Union{<:CBIndexmatrix,Nothing})

see QPSolverObject::QPsolve() and \ref UnconstrainedQPSolver

source
ConicBundle.cb_QPsolve_KKTsystem!Function
cb_QPsolve_KKTsystem!(self::CBQPDirectKKTSolver, solx::CBMatrix, soly::CBMatrix, primalrhs::CBMatrix, dualrhs::CBMatrix, rhsmu::Real, rhscorr::Real, prec::Real, params::Union{<:CBQPSolverParameters,Nothing})

solve the KKTsystem to precision prec for the given right hand sides that have been computed for the value rhsmu of the barrier parameter and in which a rhscorr fraction (out of [0,1] of the corrector term have been included; in iterative solvers solx and soly may be used as starting points

source
cb_QPsolve_KKTsystem!(self::CBQPIterativeKKTHAeqSolver, solx::CBMatrix, soly::CBMatrix, primalrhs::CBMatrix, dualrhs::CBMatrix, rhsmu::Real, rhscorr::Real, prec::Real, params::Union{<:CBQPSolverParameters,Nothing})

solve the KKTsystem to precision prec for the given right hand sides that have been computed for the value rhsmu of the barrier parameter and in which a rhscorr fraction (out of [0,1] of the corrector term have been included; in iterative solvers solx and soly may be used as starting points

source
cb_QPsolve_KKTsystem!(self::CBQPIterativeKKTHASolver, solx::CBMatrix, soly::CBMatrix, primalrhs::CBMatrix, dualrhs::CBMatrix, rhsmu::Real, rhscorr::Real, prec::Real, params::Union{<:CBQPSolverParameters,Nothing})

solve the KKTsystem to precision prec for the given right hand sides that have been computed for the value rhsmu of the barrier parameter and in which a rhscorr fraction (out of [0,1] of the corrector term have been included; in iterative solvers solx and soly may be used as starting points

source
cb_QPsolve_KKTsystem!(self::CBQPKKTSolverComparison, solx::CBMatrix, soly::CBMatrix, primalrhs::CBMatrix, dualrhs::CBMatrix, rhsmu::Real, rhscorr::Real, prec::Real, params::Union{<:CBQPSolverParameters,Nothing})

solve the KKTsystem to precision prec for the given right hand sides that have been computed for the value rhsmu of the barrier parameter and in which a rhscorr fraction (out of [0,1] of the corrector term have been included; in iterative solvers solx and soly may be used as starting points

source
ConicBundle.cb_QPstart_modification!Function
cb_QPstart_modification!(self::CBQPSolver)

return a new modification object on the heap that is initialized for modification of *this

source
cb_QPstart_modification!(self::CBUQPSolver)

returns 0 because no modifications are applicable

source
ConicBundle.cb_QPsupports_updates!Function
cb_QPsupports_updates!(self::CBQPSolver)
  • @brief return true iff the code supports QPupdate(), i.e., it supports external updates of the groundset aggregate in order to model constraints not included explicitly in the QP's model
source
cb_QPsupports_updates!(self::CBUQPSolver)
  • @brief return true iff the code supports QPupdate(), i.e., it supports external updates of the groundset aggregate in order to model constraints not included explicitly in the QP's model
source
ConicBundle.cb_QPsupports_yfixing!Function
cb_QPsupports_yfixing!(self::CBQPSolver)

yfixing is currently not supported, this returns false.

source
cb_QPsupports_yfixing!(self::CBUQPSolver)

no difficulty if the BundleProxObject does it

source
ConicBundle.cb_QPupdate!Function
cb_QPupdate!(self::CBQPSolver, center_y::CBMatrix, lower_bound::Real, upper_bound::Real, relprec::Real, Hp::Union{<:CBQPSolverProxObject,Nothing}, gs_aggr::CBMinorantPointer, yfixed::Union{<:CBIndexmatrix,Nothing}, delta_gs_aggr::CBMinorantPointer, delta_index::CBIndexmatrix)

solve the bundle subproblem for updated box multipliers so that precision requirements are met (see \ref InternalQPSolverInterface). This routine is typically not called for this solver, because box constraints are included explicitly.

source
cb_QPupdate!(self::CBUQPSolver, center_y::CBMatrix, lower_bound::Real, upper_bound::Real, relprec::Real, Hp::Union{<:CBQPSolverProxObject,Nothing}, gs_aggr::CBMinorantPointer, yfixed::Union{<:CBIndexmatrix,Nothing}, delta_gs_subg::CBMinorantPointer, delta_index::CBIndexmatrix)

see QPSolverObject::QPupdate() and \ref UnconstrainedQPSolver

source
ConicBundle.cb_QR_concat_right!Function
cb_QR_concat_right!(self::CBMatrix, A::CBMatrix, piv::CBIndexmatrix, r::Integer, tol::Real = 1e-10)
  • extend the current Householder QR-factorization stored in this by appending and factorizing the columns of A yielding a new QR_factorization

      @param[in] A contains the addtionial columns to be factorized
    
      @param[in,out] piv contains on input, the permution vector returned by QR_factor
          with pivoting, and on output the new entire permutation
    
      @param[in] r gives the initial rank of *this as returned by QR_factor with pviaton
    
      @param[in] tol gives the tolerance for regarding a vector as having norm zero
    
      @return the rank of the new QR-facotrization
source
ConicBundle.cb_QR_factorFunction
cb_QR_factor(self::CBMatrix, Q::CBMatrix, R::CBMatrix, tol::Real)

computes a Householder QR_factorization computing matrices Q and R explicitly and leaving (*this) unchanged; it always returns 0

source
cb_QR_factor(self::CBMatrix, Q::CBMatrix, R::CBMatrix, piv::CBIndexmatrix, tol::Real)

computes a Householder QR_factorization with pivoting computing matrices Q and R explicitly and leaving (*this) unchanged; the pivoting permutation is stored in piv; returns the rank

source
ConicBundle.cb_QR_factor!Function
cb_QR_factor!(self::CBMatrix, tol::Real = 1e-10)

computes a Householder QR_factorization overwriting (*this); returns 0 on success, otherwise column index +1 if the norm of the column is below tol when reaching it.

source
cb_QR_factor!(self::CBMatrix, Q::CBMatrix, tol::Real = 1e-10)

computes a Householder QR_factorization computing the Q matrix explicitly and setting (*this)=R; it always returns 0

source
cb_QR_factor!(self::CBMatrix, piv::CBIndexmatrix, tol::Real = 1e-10)

computes a Householder QR_factorization with pivoting and overwriting (*this); the pivoting permutation is stored in piv; returns the rank

source
cb_QR_factor!(self::CBMatrix, Q::CBMatrix, piv::CBIndexmatrix, tol::Real = 1e-10)

Computes a Householder QR_factorization with pivoting computing the Q matrix explicitly and setting (*this)=R; the pivoting permutation is stored in piv; returns the rank

source
ConicBundle.cb_QR_factor_relpiv!Function
cb_QR_factor_relpiv!(self::CBMatrix, piv::CBIndexmatrix, tol::Real = 1e-10)

computes a Householder QR_factorization with pivoting on those with tolerable norm and tolerable reduction in norm and overwriting (*this); the pivoting permutation is stored in piv; returns the rank

source
ConicBundle.cb_QR_solve!Function
cb_QR_solve!(self::CBMatrix, rhs::CBMatrix, tol::Real = 1e-10)
  • @brief solves (this)x=rhs by factorizing and overwriting (this); rhs is overwritten with the solution. Returns 0 on success, otherwise i+1 if in the backsolve abs(this)(i,i)<tol and the reduced row of rhs is nonzero.

      To avoid overwriting (*this), use the appropriate version
      of #QR_factor and #triu_solve.
source
ConicBundle.cb_Q_timesFunction
cb_Q_times(self::CBMatrix, A::CBMatrix, r::Integer)

computes A=QA, assuming a housholder Q is coded in the first r columns of the lower triangle of (this); it always returns 0

source
ConicBundle.cb_Qt_timesFunction
cb_Qt_times(self::CBMatrix, A::CBMatrix, r::Integer)

computes A=transpose(Q)A, assuming a housholder Q is coded in the first r columns of the lower triangle of (this); it always returns 0

source
ConicBundle.cb_absFunction
cb_abs(A::CBMatrix)

returns a matrix with elements (i,j)=abs((*this)(i,j)) for all i,j

source
cb_abs(A::CBSparsemat)

returns a Sparsmat with elements abs((*this)(i,j)) for all i,j

source
cb_abs(A::CBSymmatrix)

returns a Symmatrix with elements abs(A(i,j))

source
cb_abs(A::CBSparsesym)

returns a Sparsesym with elements abs((*this)(i,j)) for all i,j

source
ConicBundle.cb_abs!Function
cb_abs!(self::CBMatrix)

sets (this)(i,j)=abs((this)(i,j)) for all i,j and returns *this

source
cb_abs!(self::CBIndexmatrix)

using ::abs assign (this)(i,j)=abs((this)(i,j)) for all i,j

source
ConicBundle.cb_add_BCSchur_diagonal!Function
cb_add_BCSchur_diagonal!(self::CBQPConeModelBlock, diagonal::CBMatrix, globalbundle::CBMinorantBundle, startindex_bundle::Integer)
  • @brief add the diagonal of the Schur complemented blocks belonging to bundle and local constraints (used for diagonal preconditioning)
source
cb_add_BCSchur_diagonal!(self::CBQPSumModelBlock, diagonal::CBMatrix, globalbundle::CBMinorantBundle, startindex_bundle::Integer)
  • @brief add the diagonal of the Schur complemented blocks belonging to bundle and local constraints (used for diagonal preconditioning)
source
ConicBundle.cb_add_BDBt!Function
cb_add_BDBt!(self::CBQPConeModelBlock, diagvec::CBMatrix, bigS::CBSymmatrix, minus::Bool, startindex::Integer, Bt::CBMatrix, startindex_model::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

add the main diagonal block tranpose(projection)diagvecprojection to bigS starting at startindex

source
cb_add_BDBt!(self::CBQPSumModelBlock, diagvec::CBMatrix, bigS::CBSymmatrix, minus::Bool, startindex::Integer, Bt::CBMatrix, startindex_model::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

add the main diagonal block tranpose(projection)diagvecprojection to bigS starting at startindex

source
ConicBundle.cb_add_BsFunction
cb_add_Bs(self::CBUQPConeModelBlock, qp_vec::CBMatrix)

add the local product of matrices B and s in the positions corresponding to qpyrange (rows) and return qpvec; returns 0 on success, 1 on failure

source
cb_add_Bs(self::CBUQPSumModelBlock, qp_vec::CBMatrix)

do this for all subblocks

source
ConicBundle.cb_add_BtinvsysB!Function
cb_add_BtinvsysB!(self::CBQPConeModelBlock, globalsys::CBSymmatrix, bundle::CBMinorantBundle, startindex_bundle::Integer)

add the "scaled" minorant outer products to globalsys, where the correct minorants start at the given index

source
cb_add_BtinvsysB!(self::CBQPSumModelBlock, globalsys::CBSymmatrix, bundle::CBMinorantBundle, startindex_bundle::Integer)

add the "scaled" minorant outer products to globalsys, where the correct minroants start at the given index

source
ConicBundle.cb_add_HFunction
cb_add_H(self::CBBundleDenseTrustRegionProx, big_sym::CBSymmatrix, start_index::Integer = 0)

add H to the dense symmetric matrix as a principal submatrix starting at position start_index

source
cb_add_H(self::CBBundleDiagonalTrustRegionProx, big_sym::CBSymmatrix, start_index::Integer = 0)

add H to the dense symmetric matrix as a principal submatrix starting at position start_index

source
cb_add_H(self::CBBundleDLRTrustRegionProx, big_sym::CBSymmatrix, start_index::Integer = 0)

add H to the dense symmetric matrix as a principal submatrix starting at position start_index

source
cb_add_H(self::CBBundleIdProx, big_sym::CBSymmatrix, start_index::Integer = 0)

add H to the dense symmetric matrix as a principal submatrix starting at position start_index

source
cb_add_H(self::CBBundleLowRankTrustRegionProx, big_sym::CBSymmatrix, start_index::Integer = 0)

add H to the dense symmetric matrix as a principal submatrix starting at position start_index

source
ConicBundle.cb_add_HxFunction
cb_add_Hx(self::CBBundleDenseTrustRegionProx, x::CBMatrix, outplusHx::CBMatrix, alpha::Real = 1.)

adds \f$alpha*Hx\f$ to outplusHx and returns this

source
cb_add_Hx(self::CBBundleDiagonalTrustRegionProx, x::CBMatrix, outplusHx::CBMatrix, alpha::Real = 1.)

adds \f$alpha*Hx\f$ to outplusHx and returns this

source
cb_add_Hx(self::CBBundleDLRTrustRegionProx, x::CBMatrix, outplusHx::CBMatrix, alpha::Real = 1.)

adds \f$alpha*Hx\f$ to outplusHx and returns this

source
cb_add_Hx(self::CBBundleIdProx, x::CBMatrix, outplusHx::CBMatrix, alpha::Real = 1.)

adds \f$alpha*Hx\f$ to outplusHx and returns this

source
cb_add_Hx(self::CBBundleLowRankTrustRegionProx, x::CBMatrix, outplusHx::CBMatrix, alpha::Real = 1.)

adds \f$alpha*Hx\f$ to outplusHx and returns this

source
ConicBundle.cb_add_Schur_mult!Function
cb_add_Schur_mult!(self::CBQPConeModelBlock, in_vec::CBMatrix, out_vec::CBMatrix, in_cvec::Union{<:CBMatrix,Nothing}, out_cvec::Union{<:CBMatrix,Nothing}, startindex_constraints::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

multiply invec with the local contribution to the global main block and add it to outvec; the other local multiplications are carried out externally with the information provide in prepareSchurprecond and are not done here.

source
cb_add_Schur_mult!(self::CBQPSumModelBlock, in_vec::CBMatrix, out_vec::CBMatrix, in_cvec::Union{<:CBMatrix,Nothing}, out_cvec::Union{<:CBMatrix,Nothing}, startindex_constraints::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

multiply invec with the local contribution to the global main block and add it to outvec; the other local multiplications are carried out externally with the information provide in prepareSchurprecond and are not done here.

source
ConicBundle.cb_add_Schur_rhs!Function
cb_add_Schur_rhs!(self::CBQPConeModelBlock, glob_rhs::CBMatrix, local_rhs::Union{<:CBMatrix,Nothing}, rhsmu::Real, rhscorr::Real, startindex_constraints::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

add the contributions to globrhs of the Schur complemented model block, and return localrhs of the non complemented constraint block in the rows/columns/diagonal block starting at startindex_constraints

source
cb_add_Schur_rhs!(self::CBQPSumModelBlock, glob_rhs::CBMatrix, local_rhs::Union{<:CBMatrix,Nothing}, rhsmu::Real, rhscorr::Real, startindex_constraints::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

add the contributions to globrhs of the Schur complemented model block, and return localrhs of the non complemented constraint block in the rows/columns/diagonal block starting at startindex_constraints

source
ConicBundle.cb_add_append_blocks!Function
cb_add_append_blocks!(self::CBPSCAffineModification, append_dim::CBIndexmatrix, append_offsets::Union{<:CBSparseCoeffmatMatrix,Nothing}, append_blocks::Union{<:CBSparseCoeffmatMatrix,Nothing})
  • @brief append information on new rows at the respective ends

     @param append_dim
            the dimension gives the number of (diagonal) blocks and each
      entry the order of the block to be appended
    
     @param append_blocks
            if NULL, append zero matrics, otherwise it must point
            to a sparse matrix of size @a append_dim times new_vardim()
            that is to be appended to the constraint matrix below.
    
     @param append_offsets
            if NULL, append zero matrices, otherwise it must point to
      a column vector of size @a append_dim that is to be appended
            to the vector of offsets
   @return number of errors; if errors occured, none of the new changes are performed
source
ConicBundle.cb_add_append_rows!Function
cb_add_append_rows!(self::CBAFTModification, append_dim::Integer, append_rows::Union{<:CBSparsemat,Nothing}, append_rhs::Union{<:CBMatrix,Nothing})

append @a appenddim new rows as in appendrows (if NULL, use default value) with affine offset appendrhs (if NULL use default value 0.), calls Modification::addappend_rows

source
ConicBundle.cb_add_append_variables!Function
cb_add_append_variables!(self::CBAFTModification, append_dim::Integer)

append append_dim further variables at the end of the argument vector (without specifying their effect, they may e.g. be ignored by the function)

source
cb_add_append_variables!(self::CBGroundsetModification, append_dim::Integer)

append append_dim further variables at the end of the argument vector (without specifying their effect, they may e.g. be ignored by the function)

source
cb_add_append_variables!(self::CBNNCBoxSupportModification, append_dim::Integer)

append append_dim further variables at the end of the argument vector (without effect on the box function, i.e., lower and upper bounds are set to 0)

source
cb_add_append_variables!(self::CBPSCAffineModification, append_dim::Integer)

append append_dim further variables at the end of the argument vector (without specifying their effect, they may e.g. be ignored by the function)

source
cb_add_append_variables!(self::CBSOCSupportModification, append_dim::Integer)

append append_dim further variables at the end of the argument vector (without effect on the box function, i.e., lower and upper bounds are set to 0)

source
ConicBundle.cb_add_append_vars!Function
cb_add_append_vars!(self::CBAFTModification, append_dim::Integer, append_cols::Union{<:CBSparsemat,Nothing}, linear_costs::Union{<:CBMatrix,Nothing})

append @a appenddim new variables/columns with values specified by @a appendcols (NULL: default value) and @a linearcosts coefficients (NULL: default value) by calling Modification::addappend_vars

source
cb_add_append_vars!(self::CBGroundsetModification, append_dim::Integer, start_val::Union{<:CBMatrix,Nothing} = nothing, costs::Union{<:CBMatrix,Nothing} = nothing)

append @a appenddim new variables with startval as initial values (if NULL, use default value), calls Modification::addappendvars

source
cb_add_append_vars!(self::CBNNCBoxSupportModification, append_dim::Integer, append_lb::Union{<:CBMatrix,Nothing}, append_ub::Union{<:CBMatrix,Nothing})

append @a append_dim new variables to the box function

source
cb_add_append_vars!(self::CBPSCAffineModification, append_dim::Integer, append_cols::Union{<:CBSparseCoeffmatMatrix,Nothing})
  • @brief append information on new variables at the respective ends

      @param append_dim
             number of variables (or columns ) to
       be appended
    
      @param append_cols
             if NULL, append zero matrices, otherwise it must point to
       a sparse matrix of size new_rowdim() times @a append_dim
             that is to be appended to the constraint matrix on the right
    
      @return number of errors; if errors occured, none of the new changes are performed
source
cb_add_append_vars!(self::CBSOCSupportModification, append_dim::Integer)

append @a append_dim new variables to the box function

source
ConicBundle.cb_add_apply_factor!Function
cb_add_apply_factor!(self::CBAFTModification, times_factor::Real)

multiply the current factor by the value @a times_factor (>=0, returns 1 if <0.)

source
ConicBundle.cb_add_coeffs!Function
cb_add_coeffs!(self::CBMinorant, n_elements::Integer, values::Union{<:AbstractVector{Real},Nothing}, factor::Real = 1., start_pos::Integer = 0)

adds the n values (possibly multiplied by factor) to consecutive coefficients starting at start_pos (by default 0); this always converts the minroant into a dense vector first and adds then

source
cb_add_coeffs!(self::CBMinorant, n_elements::Integer, values::Union{<:AbstractVector{Real},Nothing}, indices::Union{<:AbstractVector{Integer},Nothing}, factor::Real = 1.)

adds the n values (possibly multiplied by factor) to the coefficients indicated by indices (if zero, this calls the other add_coeffs for the consecutive version)

source
ConicBundle.cb_add_contributions!Function
cb_add_contributions!(self::CBSumBundleHandler)
  • @brief add root parts of this sumbundle to the parent's sumbundle and set the states correspondingly

      If the current mode is child, nothing is done, because it is
      assumed that the sumbundle is already part of the parent. Thus,
      only root parts are considerd new and are added. This is only
      done, if the parenhandler accepts these kind of parts.
    
      When a contribution is added to a parent that is currently
      inactive or child, any respective parent's contributions to the
      parent's parent are first removed and then the mode of the
      parent is set to root. Thus, the parent has to call
      add_contributions afterwards, if it still wants to contribute to
      its own parent.
    
      add_contribution should only be called from
      SumBlockModel::sumbundle_contribution() with a normalized bundle,
      i.e., normalize_sumbundle() should have been called before.
source
ConicBundle.cb_add_delete_blocks!Function
cb_add_delete_blocks!(self::CBPSCAffineModification, del_ind::CBIndexmatrix, map_to_old::CBIndexmatrix)
  • @brief delete the rows indexed by the vector delind and return the index changes of the others in a vector mapto_old

      @a del_ind need not be ordered in any way, but any index in 0 to
      new_rowdim()-1 may appear at most once. On output the dimension
      of the column vector @a map_to_old gives the number of remaining
      rows and its entry i holds the index the row with new index i
      had before the deletion. The return value is the number of
      errors in @a del_ind. If such occured, this deletion is not
      performed and @a map_to_old may contain garbage.
source
ConicBundle.cb_add_delete_rows!Function
cb_add_delete_rows!(self::CBAFTModification, rows_del_ind::CBIndexmatrix, rows_map_to_old::CBIndexmatrix)

delete the rows indexed by @a rowsdelind; for each new index @a rowsmaptoold returns the old one; calls Modification::adddelete_rows

source
ConicBundle.cb_add_delete_vars!Function
cb_add_delete_vars!(self::CBAFTModification, del_ind::CBIndexmatrix, map_to_old::CBIndexmatrix)

delete the variables indexed by @a delind; for each new index @a maptoold returns the old one; calls Modification::adddelete_vars

source
cb_add_delete_vars!(self::CBGroundsetModification, del_ind::CBIndexmatrix, map_to_old::CBIndexmatrix)

delete the variables indexed by @a delind; for each new index @a maptoold returns the old one; calls Modification::adddelete_vars

source
cb_add_delete_vars!(self::CBNNCBoxSupportModification, del_ind::CBIndexmatrix, map_to_old::CBIndexmatrix)

delete the variables indexed by @a delind; for each new index @a maptoold returns the old one; calls Modification::adddelete_vars

source
cb_add_delete_vars!(self::CBPSCAffineModification, del_ind::CBIndexmatrix, map_to_old::CBIndexmatrix)
  • @brief delete the variables indexed by the vector delind and return the index changes of the others in a vector mapto_old

      @a del_ind need not be ordered in any way, but any index in 0 to
      new_vardim()-1 may appear at most once. On output the dimension
      of the column vector @a map_to_old gives the number of remaining
      variables and its entry i holds the index the variable with new
      index i had before the deletion. The return value is the number
      of errors in @a del_ind. If such occured, this deletion is
      not performed and @a map_to_old may contain garbage.
source
cb_add_delete_vars!(self::CBSOCSupportModification, del_ind::CBIndexmatrix, map_to_old::CBIndexmatrix)

delete the variables indexed by @a delind; for each new index @a maptoold returns the old one; calls Modification::adddelete_vars

source
ConicBundle.cb_add_diagonal_scalingFunction
cb_add_diagonal_scaling(self::CBAffineFunctionTransformation, diagscale::CBMatrix, indices::Union{<:CBIndexmatrix,Nothing}, alpha::Real, in_diagscale::CBMatrix)
  • @brief transform the scaling matrix indiagscale of the untransformed function model and add it as described in BundleMethod::adddiagonal_scaling.

      If indices are given, they must be sorted in striclty increasing order.
source
ConicBundle.cb_add_function!Method
cb_add_function!(self::CBMatrixCBSolver, function_::CBFunctionObject, fun_factor::Real = 1., fun_task::CBFunctionTask = cbft_objective_function, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing, argument_list_may_change_dynamically::Bool = false)
  • @brief Adds a function, typically derived from ConicBundle::FunctionOracle. If the dimension does not match the current one, specify an affine function transformation to map the current ground set to the argument of the function.

    Besides the standard ConicBundle::MatrixFunctionOracle the interface only accepts a few other prespecified derivations of the class FunctionObject that come along with the CHMatrixClasses interface (e.g. for semidefinite and second order cones). Functions not derived from these will fail to be added and return a value !=0.

    The @a funfactor allows to specify a scaling factor for the function. @a funfactor must be a strictly positive number.

    The ConicBundle::FunctionTask @a funtask specifies whether the function is to be used as a an ObjectiveFunction, a ConstantPenaltyFunction with @a funfactor as maximum penalty factor, or as an AdaptivePenaltyFunction with @a fun_factor at initial penalty guess that might be increased or decreased over time.

    The AffineFunctionTransformation @a aft may be used to modify the argument and give an additional affine term (linear term plus offset). For adding an affine term there are several other possibilities, e.g. in init_problem(), so there is no need to do so here. If, however, an existing function implementation requires only some subset of the variables, it is more convenient to supply a corresponding @a aft instead of reimplementing the function.

    @a argumentlistmaychangedynamically sets a flag on how to treat the function arguments when variables are added or deleted. If the arguments may not change, any changes in the variables are mapped to an adaptation of an internal AffineFunctionTransformation so that the function does not notice the changes in the variables. If arguments may change, the function oracle should be a ModifiableOracleObject and react accordingly to the changes in its ModifiableOracleObject::apply_modification() routine.

@return
  - 0 on success
  - != 0 otherwise
source
ConicBundle.cb_add_local_sys!Function
cb_add_local_sys!(self::CBUQPConeModelBlock, sysdy::CBSymmatrix, rhs::CBMatrix)
  • @brief add the local system informatoin

    on input:
             sysdy= A*barQ^{-1}*A^T    (barQ as returned in add_xinv_kron_z)
             rhs= A*barQ^{-1}*(c-Q*x-A^T*y)-(b-A*x)
    
    if the block uses additional internal variables
    (like an additional term + B*s with s>=0 in the primal feasibility constr)
    then the corresponding block terms have now to be added to sysdy and rhs, eg,
       sysdy +=  B*(t^{-1} kron s)*B^T     (if t is the dual variable to s)
       rhs   +=  B*s - B*(t^{-1} kron s)*B^T*y
source
cb_add_local_sys!(self::CBUQPSumModelBlock, sysdy::CBSymmatrix, rhs::CBMatrix)

add this for all subblocks

source
ConicBundle.cb_add_localrhs!Function
cb_add_localrhs!(self::CBQPConeModelBlock, globalrhs::CBMatrix, rhsmu::Real, rhscorr::Real, startindex_model::Integer, startindex_constraints::Integer, append::Bool, bundle::CBMinorantBundle, startindex_bundel::Integer)

If mu is not zero, always add the centering term for this mu as well, if append is false, add the Schur complement rhs for addBtinvsysB, if append is true, fill in the rhs of the local system starting at startindex for the model and at startindexconstraints for the modelconstraints

source
cb_add_localrhs!(self::CBQPSumModelBlock, globalrhs::CBMatrix, rhsmu::Real, rhscorr::Real, startindex_model::Integer, startindex_constraints::Integer, append::Bool, bundle::CBMinorantBundle, startindex_bundel::Integer)

If mu is not zero, always add the centering term for this mu as well, if append is false, add the Schur complement rhs for addBtinvsysB, if append is true, fill in the rhs of the local system starting at startindex for the model and at startindexconstraints for the modelconstraints

source
ConicBundle.cb_add_localsys!Function
cb_add_localsys!(self::CBQPConeModelBlock, globalsys::CBSymmatrix, startindex_model::Integer, startindex_constraints::Integer)

add the local system for the model at startindex, the local for the constraints at startindex_constraints

source
cb_add_localsys!(self::CBQPSumModelBlock, globalsys::CBSymmatrix, startindex_model::Integer, startindex_constraints::Integer)

virtual int addBtinvsysB(CHMatrix_Classes::Symmatrix& globalsys);

source
ConicBundle.cb_add_model!Function
cb_add_model!(self::CBSumModel, model::Union{<:CBSumBlockModel,Nothing})

adds the @a model as submodel to this model (if this model may have submodels); if any error occurs the model is not added

source
ConicBundle.cb_add_modelx_aggregate!Function
cb_add_modelx_aggregate!(self::CBQPConeModelBlock, vec::CBMatrix, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

adds opB transposed times modelx (with offsets but without constant affine term) to the arguments

source
cb_add_modelx_aggregate!(self::CBQPSumModelBlock, vec::CBMatrix, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

adds opB transposed times modelx (without constant affine term) to the arguments

source
cb_add_modelx_aggregate!(self::CBUQPConeModelBlock, gradient::CBMatrix)

adds opB transposed times modelx (with offsets but without constant affine term) to the arguments

source
cb_add_modelx_aggregate!(self::CBUQPSumModelBlock, gradient::CBMatrix)

do this for all subblocks

source
ConicBundle.cb_add_offset!Function
cb_add_offset!(self::CBAFTModification, delta::Real)

add to the currecnt offset the value @a delta

source
cb_add_offset!(self::CBGroundsetModification, delta::Real)

add to the current offset the value @a delta

source
cb_add_offset!(self::CBMinorantPointer, offset::Real)

add the offset; if empty, initialize to offset with zero linear part, if not the only user (use_cnt>1), clone it first

source
cb_add_offset!(self::CBMinorant, value::Real)

adds this value to the current offset value

source
ConicBundle.cb_add_projectionFunction
cb_add_projection(self::CBCMgramdense, S::CBSymmatrix, P::CBMatrix, alpha::Real = 1., start_row::Integer = 0)

computes S+=Q^T(*this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_add_projection(self::CBCMgramsparse, S::CBSymmatrix, P::CBMatrix, alpha::Real = 1., start_row::Integer = 0)

computes S+=Q^T(*this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_add_projection(self::CBCMgramsparse_withoutdiag, S::CBSymmatrix, P::CBMatrix, alpha::Real = 1., start_row::Integer = 0)

computes S+=Q^T(*this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_add_projection(self::CBCMlowrankdd, S::CBSymmatrix, P::CBMatrix, alpha::Real = 1., start_row::Integer = 0)

computes S+=Q^T(*this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_add_projection(self::CBCMlowranksd, S::CBSymmatrix, P::CBMatrix, alpha::Real = 1., start_row::Integer = 0)

computes S+=Q^T(*this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_add_projection(self::CBCMlowrankss, S::CBSymmatrix, P::CBMatrix, alpha::Real = 1., start_row::Integer = 0)

computes S+=Q^T(*this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_add_projection(self::CBCMsingleton, S::CBSymmatrix, P::CBMatrix, alpha::Real = 1., start_row::Integer = 0)

computes S+=Q^T(*this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_add_projection(self::CBCMsymdense, S::CBSymmatrix, P::CBMatrix, alpha::Real = 1., start_row::Integer = 0)

computes S+=Q^T(*this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_add_projection(self::CBCMsymsparse, S::CBSymmatrix, P::CBMatrix, alpha::Real = 1., start_row::Integer = 0)

computes S+=Q^T(*this)Q for Q=P.rows(startrow,startrow+dim-1)

source
ConicBundle.cb_add_reassign_blocks!Function
cb_add_reassign_blocks!(self::CBPSCAffineModification, map_to_old::CBIndexmatrix)
  • @brief reassign the current row indices (with modifications) as specified by @a maptoold

      @a map_to_old must specify an injective map (no two values
      match) into indices 0 up to new_rowdim()-1 (not all need to
      appear).  The row getting index i (for i=0 to
      map_to_old.dim()-1) is the row with current index map_to_old(i)
      (current refers to considering all previous modifications as
      having been carried out already). The return value is the number
      of errors in @a map_to_old. If such occured, this reassign is
      not performed.
source
ConicBundle.cb_add_reassign_rows!Function
cb_add_reassign_rows!(self::CBAFTModification, map_to_old::CBIndexmatrix)

reassign the rows as given in @a maptoold, calls Modification::addreassignvars

source
ConicBundle.cb_add_reassign_variables!Function
cb_add_reassign_variables!(self::CBAFTModification, new_dim::Integer, map_to_old_indices::Union{<:AbstractVector{Integer},Nothing})

reorder and resize the variables as given by the first newdim entries of maptooldindices; each former index may appear at most once in this list, so newdim < getnew_vardim()

source
cb_add_reassign_variables!(self::CBGroundsetModification, new_dim::Integer, map_to_old_indices::Union{<:AbstractVector{Integer},Nothing})

reorder and resize the variables as given by the first newdim entries of maptooldindices; each former index may appear at most once in this list, so newdim < getnew_vardim()

source
cb_add_reassign_variables!(self::CBNNCBoxSupportModification, new_dim::Integer, map_to_old_indices::Union{<:AbstractVector{Integer},Nothing})

reorder and resize the variables as given by the first newdim entries of maptooldindices; each former index may appear at most once in this list, so newdim < getnew_vardim()

source
cb_add_reassign_variables!(self::CBPSCAffineModification, new_dim::Integer, map_to_old_indices::Union{<:AbstractVector{Integer},Nothing})

reorder and resize the variables as given by the first newdim entries of maptooldindices; each former index may appear at most once in this list, so newdim < getnew_vardim()

source
cb_add_reassign_variables!(self::CBSOCSupportModification, new_dim::Integer, map_to_old_indices::Union{<:AbstractVector{Integer},Nothing})

reorder and resize the variables as given by the first newdim entries of maptooldindices; each former index may appear at most once in this list, so newdim < getnew_vardim()

source
ConicBundle.cb_add_reassign_vars!Function
cb_add_reassign_vars!(self::CBAFTModification, map_to_old::CBIndexmatrix)

reassign the variables/columns as given in @a maptoold, calls Modification::addreassignvars

source
cb_add_reassign_vars!(self::CBGroundsetModification, map_to_old::CBIndexmatrix)

reassign the variables as given in @a maptoold, calls Modification::addreassignvars

source
cb_add_reassign_vars!(self::CBNNCBoxSupportModification, map_to_old::CBIndexmatrix)

reassign the variables as given in @a maptoold, calls Modification::addreassignvars

source
cb_add_reassign_vars!(self::CBPSCAffineModification, map_to_old::CBIndexmatrix)
  • @brief reassign the current variable indices (with modifications) as specified by @a maptoold

      @a map_to_old must specify an injective map (no two values match)
      into indices 0 up to new_vardim()-1 (not all need to appear). The variable getting index
      i (for i=0 to map_to_old.dim()-1) is the variable with current
      index map_to_old(i) (current refers to considering all previous
      modifications as having been carried out already). The return
      value is the number of errors in @a map_to_old. If such occured, this
      reassign is not performed.
source
cb_add_reassign_vars!(self::CBSOCSupportModification, map_to_old::CBIndexmatrix)

reassign the variables as given in @a maptoold, calls Modification::addreassignvars

source
ConicBundle.cb_add_reset_generating_primal!Function
cb_add_reset_generating_primal!(self::CBPSCAffineModification, new_generating_primal::Union{<:CBPSCPrimal,Nothing})
  • @brief replace the current generating primal by newgeneratingprimal (on the heap, will be deleted here). It may be NULL to switch of generating primals.

      Any changes here cause the deletion of all current aggregate minorants.
      If not NULL, the object pointed to is on the heap and control over it
      is passed over to *this, so *this will make sure it is deleted at due
      time.
    
      PSCPrimal gives no information on the order of the matrices involved, so no consistency checks are done here.
source
ConicBundle.cb_add_solver!Function
cb_add_solver!(self::CBQPKKTSolverComparison, solver::Union{<:CBQPKKTSolverObject,Nothing}, name::Union{<:AbstractVector{UInt8},Nothing})

the first solver added is the reference solver

source
ConicBundle.cb_add_variable_metric!Function
cb_add_variable_metric!(self::CBBundleDenseTrustRegionProx, addH::CBSymmatrix)

see BundleProxObject::addvariablemetric()

source
cb_add_variable_metric!(self::CBBundleDenseTrustRegionProx, diagH::CBMatrix, vecH::CBMatrix)

see BundleProxObject::addlowrankvariable_metric()

source
cb_add_variable_metric!(self::CBBundleDiagonalTrustRegionProx, diagH::CBMatrix, vecH::CBMatrix)

see BundleProxObject::adddynamicscaling()

source
cb_add_variable_metric!(self::CBBundleDLRTrustRegionProx, diagH::CBMatrix, vecH::CBMatrix)

see BundleProxObject::addvariablemetric()

source
cb_add_variable_metric!(self::CBBundleLowRankTrustRegionProx, diagH::CBMatrix, vecH::CBMatrix)

see BundleProxObject::adddynamicscaling()

source
cb_add_variable_metric!(self::CBLPGroundset, H::CBVariableMetric, y_id::Integer, y::CBMatrix, descent_step::Bool, weightu::Real, model_maxviol::Real, indices::Union{<:CBIndexmatrix,Nothing} = nothing)

see VariableMetric

source
cb_add_variable_metric!(self::CBAFTModel, H::CBVariableMetric, center_id::Integer, y::CBMatrix, descent_step::Bool, weightu::Real, model_maxviol::Real, indices::Union{<:CBIndexmatrix,Nothing} = nothing)

see DynamicScaling

source
cb_add_variable_metric!(self::CBSumModel, H::CBVariableMetric, y_id::Integer, y::CBMatrix, descent_step::Bool, weightu::Real, model_maxviol::Real, indices::Union{<:CBIndexmatrix,Nothing} = nothing)

see BundleModel::adddynamicscaling

source
cb_add_variable_metric!(self::CBPSCVariableMetricSelection, H::CBVariableMetric, y_id::Integer, y::CBMatrix, descent_step::Bool, weightu::Real, model_maxviol::Real, indices::Union{<:CBIndexmatrix,Nothing}, bundle_data::CBVariableMetricBundleData)

see ConicBundle::VariableMetricSelection::addvariablemetric(); here it must be possible to cast bundledata to PSCData&, otherwise the routine returns an error. It only adds something after a descentstep

source
cb_add_variable_metric!(self::CBVariableMetricSVDSelection, H::CBVariableMetric, y_id::Integer, y::CBMatrix, descent_step::Bool, weightu::Real, model_maxviol::Real, indices::Union{<:CBIndexmatrix,Nothing}, bundle_data::CBVariableMetricBundleData)

see ConicBundle::VariableMetricSelection::addvariablemetric()

source
cb_add_variable_metric!(self::CBSumBundleHandler, ft::CBFunctionTask, H::CBVariableMetric, yid::Integer, y::CBMatrix, descent_step::Bool, weightu::Real, model_maxviol::Real, indices::Union{<:CBIndexmatrix,Nothing} = nothing)

see DynamicScaling

source
cb_add_variable_metric!(self::CBSumBundleHandler, H::CBVariableMetric, yid::Integer, center_y::CBMatrix, descent_step::Bool, weightu::Real, model_maxviol::Real, indices::Union{<:CBIndexmatrix,Nothing} = nothing)

see DynamicScaling

source
ConicBundle.cb_add_xinv_kron_z!Function
cb_add_xinv_kron_z!(self::CBUQPConeModelBlock, barQ::CBSymmatrix)

add the system term corresponding to (xinv kron z) (that arises from solving the linearized perturbed complementarity system xz =0 or =muI for dx in the preferred search direction) to the diagonal block corresponding to qpxrange x qpxrange

source
cb_add_xinv_kron_z!(self::CBUQPSumModelBlock, barQ::CBSymmatrix)

add this for all subblocks

source
ConicBundle.cb_addmetoFunction
cb_addmeto(self::CBCMgramdense, S::CBSymmatrix, d::Real = 1.)

computes S+=d(this);

source
cb_addmeto(self::CBCMgramsparse, S::CBSymmatrix, d::Real = 1.)

computes S+=d(this);

source
cb_addmeto(self::CBCMgramsparse_withoutdiag, S::CBSymmatrix, d::Real = 1.)

computes S+=d(this);

source
cb_addmeto(self::CBCMlowrankdd, S::CBSymmatrix, d::Real = 1.)

computes S+=d(this);

source
cb_addmeto(self::CBCMlowranksd, S::CBSymmatrix, d::Real = 1.)

computes S+=d(this);

source
cb_addmeto(self::CBCMlowrankss, S::CBSymmatrix, d::Real = 1.)

computes S+=d(this);

source
cb_addmeto(self::CBCMsingleton, S::CBSymmatrix, d::Real = 1.)

computes S+=d(this);

source
cb_addmeto(self::CBCMsymdense, S::CBSymmatrix, d::Real = 1.)

computes S+=d(this);

source
cb_addmeto(self::CBCMsymsparse, S::CBSymmatrix, d::Real = 1.)

computes S+=d(this);

source
ConicBundle.cb_addprodtoFunction
cb_addprodto(self::CBCMgramdense, B::CBMatrix, C::CBMatrix, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMgramdense, B::CBMatrix, C::CBSparsemat, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMgramsparse, B::CBMatrix, C::CBMatrix, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMgramsparse, B::CBMatrix, C::CBSparsemat, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMgramsparse_withoutdiag, B::CBMatrix, C::CBMatrix, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMgramsparse_withoutdiag, B::CBMatrix, C::CBSparsemat, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMlowrankdd, D::CBMatrix, C::CBMatrix, d::Real = 1.)

computes D+=d(this)*C

source
cb_addprodto(self::CBCMlowrankdd, D::CBMatrix, C::CBSparsemat, d::Real = 1.)

computes D+=d(this)*C

source
cb_addprodto(self::CBCMlowranksd, D::CBMatrix, C::CBMatrix, d::Real = 1.)

computes D+=d(this)*C

source
cb_addprodto(self::CBCMlowranksd, D::CBMatrix, C::CBSparsemat, d::Real = 1.)

computes D+=d(this)*C

source
cb_addprodto(self::CBCMlowrankss, D::CBMatrix, C::CBMatrix, d::Real = 1.)

computes D+=d(this)*C

source
cb_addprodto(self::CBCMlowrankss, D::CBMatrix, C::CBSparsemat, d::Real = 1.)

computes D+=d(this)*C

source
cb_addprodto(self::CBCMsingleton, B::CBMatrix, C::CBMatrix, d::Real = 1.)

comutes B+=d(this)*C

source
cb_addprodto(self::CBCMsingleton, B::CBMatrix, C::CBSparsemat, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMsymdense, B::CBMatrix, C::CBMatrix, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMsymdense, B::CBMatrix, C::CBSparsemat, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMsymsparse, B::CBMatrix, C::CBMatrix, d::Real = 1.)

computes B+=d(this)*C

source
cb_addprodto(self::CBCMsymsparse, B::CBMatrix, C::CBSparsemat, d::Real = 1.)

computes B+=d(this)*C

source
ConicBundle.cb_adjust_multiplier!Function
cb_adjust_multiplier!(self::CBMatrixCBSolver)
  • @brief Adjusts on all conic functions the penalty parameter for conic violations to twice the trace of the primal approximation.

      This routine is only needed for conic function objects such
      as the nonnegative cone, the second order cone and
      the semidefinite cone if no good upper bound on the trace of
      feasible points is known and has to be determined automatically.
    
      If after some time, the trace values settle, the upper bounds
      on the trace may be way to high and can then be reset with this
      call.
    
    @return
      - 0 on success
      - != 0 otherwise
source
cb_adjust_multiplier!(self::CBAFTModel, values_may_have_changed::Bool)

see SumBlockModel::adjust_multiplier

source
cb_adjust_multiplier!(self::CBSumModel, values_may_have_changed::Bool)

see SumBlockModel::adjust_multiplier()

source
cb_adjust_multiplier!(self::CBSumBundleHandler, values_may_have_changed::Bool)

see SumBlockModel::adjust_multiplier

source
ConicBundle.cb_adjust_trace!Function
cb_adjust_trace!(self::CBQPConeModelBlock, b::Real)

change the right hand side of the trace constraint to b

source
cb_adjust_trace!(self::CBUQPConeModelBlock, b::Real)

change the right hand side of the trace constraint to b

source
ConicBundle.cb_aggregateFunction
cb_aggregate(self::CBMinorantPointer)

*@brief returns ture if it points to a combination of minorants from the same function;

   A minorant is considered an aggregate if it is obtained from an aggregate
   or it was computed by a call to aggregate(MinorantBundle&,Real);
   It is not an aggregate if it is the sum of non aggregate minorants from
   different functions.

   An _empty_ pointer is not an aggregate.
source
cb_aggregate(self::CBMinorantUseData)

returns true if the minorant is an aggregate of several minorants

source
ConicBundle.cb_aggregate!Function
cb_aggregate!(self::CBMinorantPointer, minorants::CBMinorantBundle, coeff::CBMatrix, factor::Real = 1.)

*@brief collect the aggregate as the nonnegative linear combination of the bundle minorants (here *this may not be part of the bundle!). If *this is not empty, add this aggregate to *this. Only aggregation carries along primal data!

   All minorants in the bundle need to be valid. Aggregating over no minorants
   is treated as a zero minorant without any primal information.
source
cb_aggregate!(self::CBMinorantPointer, minorant::CBMinorantPointer, itsfactor::Real = 1.)

@brief aggregate the minorantitsfactor to *this, both must be valid for this. Only aggregation carries along primal data!

source
cb_aggregate!(self::CBMinorant, minorant::CBMinorant, factor::Real = 1.)

adds factor*minorant to this and does this also for the primal if it is availabe

source
ConicBundle.cb_aggregate_Gram_matrix!Function
cb_aggregate_Gram_matrix!(self::CBBlockPSCPrimal, P::CBMatrix, factor::Real = 1.)

@brief add factorP*P^T to this

   The rows of P corresponding to each block are passed on the
   with a corresponding call to the PSCPrimal of this block
source
cb_aggregate_Gram_matrix!(self::CBDensePSCPrimal, P::CBMatrix, factor::Real = 1.)

add factorPP^T to this

source
cb_aggregate_Gram_matrix!(self::CBGramSparsePSCPrimal, P::CBMatrix, factor::Real = 1.)

@brief add factorP*P^T to this, collecting all available information only in the sparse part, even the own Gram part.

   This operation more or less converts this to a SparsePSCPrimal. The point
   is that this routine is typically only called by PSCModel when aggregating
   the information in a single aggregate matrix over several steps and it is
   pointless to try to keep any gram information in this case.
source
cb_aggregate_Gram_matrix!(self::CBSparsePSCPrimal, P::CBMatrix, factor::Real = 1.)

add factorPP^T on the support to this

source
ConicBundle.cb_aggregate_primal_data!Function
cb_aggregate_primal_data!(self::CBPrimalMatrix, it::CBPrimalData, itsfactor::Real)

multiply this Matrix with myfactor and add itsfactorit (it must dynamic_cast to a PrimalMatrix)

source
cb_aggregate_primal_data!(self::CBBlockPSCPrimal, it::CBPrimalData, factor::Real = 1.)
  • add factor*it to this (it must also be a BlockPSCPrimal with the same block partition)
source
cb_aggregate_primal_data!(self::CBDensePSCPrimal, it::CBPrimalData, factor::Real = 1.)

add factor*it to this (it must also be a DensePSCPrimal)

source
cb_aggregate_primal_data!(self::CBGramSparsePSCPrimal, it::CBPrimalData, factor::Real = 1.)

@brief if it is a GramSparsePSCPrimal or SparseSDPRimal, add factorit to this on only the support of this sparsematrix

   Even if it is a GramSparsePSCPrimal and it has a nontirival Gram matrix part,
   this part is only added to the sparse part of this on the support of the
   sparse part of this. No attempt is made to enlarge the Gram part.
source
cb_aggregate_primal_data!(self::CBSparsePSCPrimal, it::CBPrimalData, factor::Real = 1.)

if it is a SparseSDPRimal, add factor*it to this on the support of this

source
ConicBundle.cb_analyze_modificationFunction
cb_analyze_modification(self::CBAffineFunctionTransformation, minorant_trafo_differs::Bool, aftmdf::Union{<:CBAFTModification,Nothing}, gsmdf::CBGroundsetModification)
  • @brief returns information on the changes in the ground set of the transformed arguments and checks whether after the modification the nonzero image of the transformed minorants will not differ from before; returns NULL on errors.

    If argtrafo==NULL (act as identity) and if aftmdf!=NULL adds any explicit matrix parts or has modifications not consistent with maintaining the identity, argtrafo is virtually first set to an explicit identity before executing the modification. If argtrafo==NULL and aftmdf==NULL, the transformations of gsmdf are applied to linearcost and arg_offset.

    If the input @a gsmdf and the AFT modifications in @a aftmdf result in a different GroundsetModification of the transformed space, this is computed into the member @a localgsmdf and the returned pointer points to this @a localgsmdf. If all transformations are passed on exactly as in @a gsmdf (because the trafo still acts as the identity), the returned pointer points to @a gsmdf.

      If the changes affect the transformation at all in its effect

    on the nonzero image of transformed minorants, @a minoranttrafodiffers will be set to true otherwise to false.

source
ConicBundle.cb_append!Function
cb_append!(self::CBQPSumModelBlock, inblock::Union{<:CBQPModelDataObject,Nothing})

add another model at the end of the list

source
cb_append!(self::CBUQPSumModelBlock, inblock::Union{<:CBQPModelDataObject,Nothing})

add another model at the end of the list

source
ConicBundle.cb_append_blocks!Function
cb_append_blocks!(self::CBSparseCoeffmatMatrix, append_mat::CBSparseCoeffmatMatrix, blocks::Union{<:CBIndexmatrix,Nothing} = nothing, cols::Union{<:CBIndexmatrix,Nothing} = nothing)
  • @brief append append_mat (or its submatrix given by blocks and/or cols) below

      If blocks or cols have negative entries, each of these represent a row of blocks of zeros whose order is the negative of the given value or a column of zeros of appropriate size (the size of the negative value does not matter for columns)
source
ConicBundle.cb_append_columns!Function
cb_append_columns!(self::CBSparseCoeffmatMatrix, append_mat::CBSparseCoeffmatMatrix, blocks::Union{<:CBIndexmatrix,Nothing} = nothing, cols::Union{<:CBIndexmatrix,Nothing} = nothing)
  • @brief append append_mat (or its submatrix given by blocks and/or cols) to the right

      If blocks or cols have negative entries, each of these represent a row of blocks of zeros whose order is the negative of the given value (if columns exist already, these need to match the order of the existing blocks) or a column of zeros of appropriate size (the size of the negative value does not matter for columns)
source
ConicBundle.cb_append_constraints!Function
cb_append_constraints!(self::CBMatrixCBSolver, append_n_rows::Integer, append_rows::Union{<:CBSparsemat,Nothing} = nothing, append_rhslb::Union{<:CBMatrix,Nothing} = nothing, append_rhsub::Union{<:CBMatrix,Nothing} = nothing)
  • @brief append \f$rhslb\le Ay \le rhsub\f$ as linear constraints on the groundset variables \f$y\f$. \f$A\f$ has @a appendnrows new rows with coefficients given in appendrows (if NULL, use default value), lower bounds appendrhslb (if NULL use default) and upper bounds append_rhsub (if NULL use default)

    @param[in] appendnrows (Integer) (nonnegative) number of rows to be appended as linear constraints on the ground set

    @param[in] appendrows (Sparsemat*) describes the coefficients of the linear constraints; the number of rows must match appendn_rows, the number of columns must match the current dimension of the groundset; if NULL, all coefficients are considered zero.

    @param[in] appendrhslb (Matrix*) specifies lower bounds on the values of the constraints; the number of rows must match appendnrows; if NULL, all coefficients are considered CBminus_infinity.

    @param[in] appendrhsub (Matrix*) specifies upper bound on the values of the constraints; the number of rows must match appendnrows; if NULL, all coefficients are considered CBplus_infinity.

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_append_to_oldFunction
cb_append_to_old(self::CBAFTModification)

returns true if this only contains appending operations and incorporating this is done with respect to the old dimension

source
cb_append_to_old(self::CBGroundsetModification)

returns true if this only contains appending operations and incorporating this is done with respect to the old dimension

source
cb_append_to_old(self::CBNNCBoxSupportModification)

returns true if this only contains appending operations and incorporating this is done with respect to the old dimension

source
cb_append_to_old(self::CBPSCAffineModification)

returns true if this only contains appending operations and incorporating this is done with respect to the old dimension

source
cb_append_to_old(self::CBSOCSupportModification)

returns true if this only contains appending operations and incorporating this is done with respect to the old dimension

source
ConicBundle.cb_append_variables!Method
cb_append_variables!(self::CBMatrixCBSolver, n_append::Integer, lbounds::Union{<:CBMatrix,Nothing} = nothing, ubounds::Union{<:CBMatrix,Nothing} = nothing, constraint_columns::Union{<:CBSparsemat,Nothing} = nothing, startval::Union{<:CBMatrix,Nothing} = nothing, costs::Union{<:CBMatrix,Nothing} = nothing)
  • @brief Append new variables (always in last postions in this order).

    @attention Be sure to include a desription of required changes to your functions via @a affectedfunctionswith_modifications

    @param[in] n_append (int) number of variables to append (always in last position in the same order)

    @param[in] lbounds (const Matrix*) If NULL, all appended variables are considered unbounded below, otherwise lbounds[i] gives the minimum feasible value for variable y[i], use ConicBundle::CBminusinfinity for unbounded below.

    @param[in] ubounds (const Matrix*) If NULL, all appended variables are considered unbounded above, otherwise ubounds[i] gives the maximum feasible value for variable y[i], use ConicBundle::CBplusinfinity for unbounded above.

    @param[in] constraintcolumns (const Sparsemat*) This must be NULL unless appendconstraints() has been used before for specifying linear constraints on the ground set; if there are constraints, NULL is interpreted as appending zero columns to the constraints, otherwise the the number of rows of the Sparsemant has to match the current number of linear constraints and the number of columns the must equal n_append.

    @param[in] startval (const Matrix*) If NULL, the starting values are obtained by projecting zero onto the feasible set given by the lower and upper bounds resulting from the arguments before

    @param[in] costs (const Matrix*) Use this in order to specify linear costs on the variables in addition to the functions (may be convenient in Lagrangean relaxation for the right hand side of coupling contsraints); NULL is equivalent to costs zero.

    @param[in,out] affectedfunctionswithmodifications (const FunObjModMap*) If NULL, default actions are performed on all functions. In particular, those admitting dynamic argument changes will get the new variables appended at the end of their argument vector and (eventually) their applymodification() routines will be called informing them about the groundset changes; for those not admitting changes in their arguments, their corresponding (possibly newly created) affine function transformation will be set up to ignore the new arguments. If !=NULL, for the listed functions (and their parents up to the root function) the default appending action is performed unless their FunctionObjectModification entry gives explicit modification instructions which are then applied instead. For all functions NOT listed in the map and not having modified offsprings their corresponding aft will be set up to ignore the new variables.

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_appended_blockdimFunction
cb_appended_blockdim(self::CBPSCAffineModification)

returns the number of rows that are appended (due to later reassignments they may no longer be located at the end)

source
ConicBundle.cb_appended_rowdimFunction
cb_appended_rowdim(self::CBAFTModification)

returns the number of rows that are appended (due to later reassignments they may no longer be located at the end)

source
ConicBundle.cb_appended_vardimFunction
cb_appended_vardim(self::CBAFTModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
cb_appended_vardim(self::CBGroundsetModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
cb_appended_vardim(self::CBNNCBoxSupportModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
cb_appended_vardim(self::CBPSCAffineModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
cb_appended_vardim(self::CBSOCSupportModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
ConicBundle.cb_apply_HinvFunction
cb_apply_Hinv(self::CBBundleDenseTrustRegionProx, x::CBMatrix)

returns \f$H^{-1}x\f$

source
cb_apply_Hinv(self::CBBundleDiagonalTrustRegionProx, x::CBMatrix)

returns \f$H^{-1}x\f$

source
cb_apply_Hinv(self::CBBundleDLRTrustRegionProx, x::CBMatrix)

returns \f$H^{-1}x\f$ where \f$H^{-1}=\frac1u(I-V(\Lambda/(\Lambda+u))V^\top)\f$

source
cb_apply_Hinv(self::CBBundleIdProx, x::CBMatrix)

returns \f$H^{-1}x\f$

source
cb_apply_Hinv(self::CBBundleLowRankTrustRegionProx, x::CBMatrix)

returns \f$H^{-1}x\f$ where \f$H^{-1}=\frac1u(I-V(\Lambda/(\Lambda+u))V^\top)\f$

source
ConicBundle.cb_apply_modification!Function
cb_apply_modification!(self::CBAffineFunctionTransformation, aftmdf::Union{<:CBAFTModification,Nothing}, gsmdf::CBGroundsetModification)
  • @brief if argtrafo==NULL (act as identity) and if aftmdf!=NULL adds any explicit matrix parts or has modifications not consistent with maintaining the identity, argtrafo is first set to an explicit identity before executing the modification. If argtrafo==NULL and aftmdf==NULL, the transformations of gsmdf are applied to linearcost and arg_offset.
source
cb_apply_modification!(self::CBMinorantPointer, gsmdf::CBGroundsetModification, mod_id::Integer, mex::Union{<:CBMinorantExtender,Nothing}, apply_gsmdf_costs::Bool = false)

if valid and the local modificationid is smaller than modid, it modifies the coefficients as described by GroundsetModification; if successful, the modid is assigend and the function returns 0; otherwise it is invalidated and returns !=0; the costs of gsmdf are used only if applygsmdf_costs=false in whic case mex must be NULL

source
cb_apply_modification!(self::CBBoxData, param0::CBGroundsetModification, mex::Union{<:CBMinorantExtender,Nothing})

rearrange/extend the minorants according to the given groundset modifications

source
cb_apply_modification!(self::CBNNCData, param0::CBGroundsetModification, mex::Union{<:CBMinorantExtender,Nothing})

rearrange/extend the minorants according to the given groundset modifications

source
cb_apply_modification!(self::CBPSCData, param0::CBGroundsetModification, mex::Union{<:CBMinorantExtender,Nothing})

rearrange/extend the minorants according to the given groundset modifications

source
cb_apply_modification!(self::CBSOCData, param0::CBGroundsetModification, mex::Union{<:CBMinorantExtender,Nothing})

rearrange/extend the minorants according to the given groundset modifications

source
cb_apply_modification!(self::CBBundleHKWeight, gsmdf::CBGroundsetModification)

reinitialize after modifications

source
cb_apply_modification!(self::CBBundleRQBWeight, gsmdf::CBGroundsetModification)

reinitialize after modifications

source
cb_apply_modification!(self::CBBundleDenseTrustRegionProx, gsmdf::CBGroundsetModification)

when BundleSolver is called to modify the groundset it also calls this

source
cb_apply_modification!(self::CBBundleDiagonalTrustRegionProx, gsmdf::CBGroundsetModification)

when BundleSolver is called to modify the groundset it also calls this

source
cb_apply_modification!(self::CBBundleDLRTrustRegionProx, gsmdf::CBGroundsetModification)

when BundleSolver is called to modify the groundset it also calls this

source
cb_apply_modification!(self::CBBundleIdProx, gsmdf::CBGroundsetModification)

when BundleSolver is called to modify the groundset it also calls this

source
cb_apply_modification!(self::CBBundleLowRankTrustRegionProx, gsmdf::CBGroundsetModification)

when BundleSolver is called to modify the groundset it also calls this

source
cb_apply_modification!(self::CBUQPSolver, param0::CBGroundsetModification)

does nothing here (unconstrained case)

source
cb_apply_modification!(self::CBLPGroundset, mdf::CBGroundsetModification)

change the groundset description as specified by the argument

source
cb_apply_modification!(self::CBUnconstrainedGroundset, mdf::CBGroundsetModification)

change the groundset description as specified by the argument

source
cb_apply_modification!(self::CBSumBundle, gsmdf::CBGroundsetModification, mod_id::Integer, mex::Union{<:CBMinorantExtender,Nothing}, ft::CBFunctionTask)

rearrange/extend the minorants according to the given groundset modifications

source
cb_apply_modification!(self::CBBundleSolver, gsmdf::CBGroundsetModification)

modify the groundset as described by GroundsetModification and inform the oracle function(s) about this change (calls the other apply_modification for an empty FunObjModMap)

source
ConicBundle.cb_apply_modified_transformFunction
cb_apply_modified_transform(self::CBAFTModification, out_y::CBMatrix, in_y::CBMatrix, arg_trafo::Union{<:CBSparsemat,Nothing}, arg_offset::Union{<:CBMatrix,Nothing})

transform the vector as if the Modification had been carried out

source
ConicBundle.cb_apply_to_PSCAffineFunction
cb_apply_to_PSCAffine(self::CBPSCAffineModification, offset::Union{<:CBSparseCoeffmatMatrix,Nothing}, matrix::Union{<:CBSparseCoeffmatMatrix,Nothing})
  • @brief carry out the collected modifications on the data describing the PSCAffineFunction

       If a specific parameter is NULL, no changes are performed on it,
       if it is not null, it must point to a SparseCoeffmatMatrix
       whose sizes correspond to the "old" data. Then the following
       operations will be performed on it in this sequence:
    
       1. new variables (columns) are appended to the matrix
    
       2. if reassignment information is given, the columns are
          mapped/reorderd as given by *map_to_old_variables()
    
       3. new blocks (rows) are appended to the offset and the matrix
    
       4. if reassignment information is given, the rows are
          mappen/reorderd as given by *map_to_old_blocks()
    
       @param[in,out] offset
          if not NULL, this points to the offset vector.
    
       @param[in,out] matrix
          if not NULL, this points to the old matrix.
    
       @return the number of dimension errors of non NULL inputs,
          if any, no modifications are made to any inputs.
source
ConicBundle.cb_apply_to_boundsFunction
cb_apply_to_bounds(self::CBNNCBoxSupportModification, lb::CBMatrix, ub::CBMatrix)

carry out the collected modifications on the given vectors of lower and upper bounds on the variables by calling Modification::applytovars

source
ConicBundle.cb_apply_to_costsFunction
cb_apply_to_costs(self::CBGroundsetModification, costs::CBMatrix)

carry out the collected modifications on the given vector by calling Modification::applytovars

source
ConicBundle.cb_apply_to_varsFunction
cb_apply_to_vars(self::CBGroundsetModification, vars::CBMatrix)

carry out the collected modifications on the given vector by calling Modification::applytovars

source
ConicBundle.cb_apply_variable_metric!Function
cb_apply_variable_metric!(self::CBBundleDenseTrustRegionProx, groundset::Union{<:CBVariableMetricModel,Nothing}, model::Union{<:CBVariableMetricModel,Nothing}, aggr::CBMatrix, y_id::Integer, y::CBMatrix, descent_step::Bool, model_maxviol::Real, new_indices::Union{<:CBIndexmatrix,Nothing} = nothing)

see DynamicScaling

source
cb_apply_variable_metric!(self::CBBundleDiagonalTrustRegionProx, groundset::Union{<:CBVariableMetricModel,Nothing}, model::Union{<:CBVariableMetricModel,Nothing}, aggr::CBMatrix, y_id::Integer, y::CBMatrix, descent_step::Bool, model_maxviol::Real, new_indices::Union{<:CBIndexmatrix,Nothing} = nothing)

see VariableMetric

source
cb_apply_variable_metric!(self::CBBundleDLRTrustRegionProx, groundset::Union{<:CBVariableMetricModel,Nothing}, model::Union{<:CBVariableMetricModel,Nothing}, aggr::CBMatrix, y_id::Integer, y::CBMatrix, descent_step::Bool, model_maxviol::Real, new_indices::Union{<:CBIndexmatrix,Nothing} = nothing)

see DynamicScaling

source
cb_apply_variable_metric!(self::CBBundleLowRankTrustRegionProx, groundset::Union{<:CBVariableMetricModel,Nothing}, model::Union{<:CBVariableMetricModel,Nothing}, aggr::CBMatrix, y_id::Integer, y::CBMatrix, descent_step::Bool, model_maxviol::Real, new_indices::Union{<:CBIndexmatrix,Nothing} = nothing)

see DynamicProx

source
ConicBundle.cb_assign_Gram_matrix!Function
cb_assign_Gram_matrix!(self::CBBlockPSCPrimal, P::CBMatrix)

*@brief for each element aij in the support set aij=<P.row(i),P.row(j)>

   The rows of P corresponding to each block are passed on the
   with a corresponding call to the PSCPrimal of this block
source
cb_assign_Gram_matrix!(self::CBDensePSCPrimal, P::CBMatrix)

assign P*P^T to this

source
cb_assign_Gram_matrix!(self::CBGramSparsePSCPrimal, P::CBMatrix)

Set the grammatrix part to \f$P\f$ and set all values on the sparse support to zero (but keep this support even if it is zero now!)

source
cb_assign_Gram_matrix!(self::CBSparsePSCPrimal, P::CBMatrix)

for each element aij in the support set aij=<P.row(i),P.row(j)>

source
ConicBundle.cb_blockFunction
cb_block(self::CBBlockPSCPrimal, i::Integer)

returns the PSCPrimal of block i if there is one, 0 otherwise

source
ConicBundle.cb_blockdimFunction
cb_blockdim(self::CBSparseCoeffmatMatrix)

returns a column vector with row i giving the order of block i

source
cb_blockdim(self::CBSparseCoeffmatMatrix, i::Integer)

returns the order of block i

source
cb_blockdim(self::CBBlockPSCPrimal, i::Integer)

returns the size of block i

source
ConicBundle.cb_bundle_sizeFunction
cb_bundle_size(self::CBSumBundle, ft::CBFunctionTask)

if BData exists for this mode it returns its bundle_size (possibly 0), otherwise 0

source
ConicBundle.cb_call_primal_extender!Function
cb_call_primal_extender!(self::CBMatrixCBSolver, function_::CBFunctionObject, primal_extender::CBPrimalExtender)
  • @brief Asks @a function to call @a primal_extender for each of its primal objects (see also FunctionOracle::evaluate() )

    If the function is the Lagrangian dual of a primal problem and primaldata returned previous calls to the oracle has now to be updated due to changes in the primal problem – e.g., this may happen in column generation – the call causes updates of all internally stored primaldata objects by calling PrimalExtender::extend on each of these.

    @param[in] function (const FunctionObject&)
      the function added in add_function()
    
    @param[in] primal_extender (PrimalExtender&)
      the object holding the extension function for primal_data
    
    @return
      - 0 on success
      - 1 if for this function it is not possible to use a primal_extender
      - 2 if the primal_extender would be applicable but there is no primal_data
source
cb_call_primal_extender!(self::CBMinorantPointer, prex::CBPrimalExtender, prex_id::Integer)

executes prex on the primal if its id is smaller then prex_id; returns != if this fails or not primal data is available

source
cb_call_primal_extender!(self::CBMinorantUseData, prex::CBPrimalExtender, in_prex_id::Integer)

apply the primal extender to the minorant if @a inprexid indicates a new extension

source
cb_call_primal_extender!(self::CBBoxData, prex::CBPrimalExtender, include_candidates::Bool = true)

see the last argument of BoxOracle::evaluate()

source
cb_call_primal_extender!(self::CBNNCData, prex::CBPrimalExtender, include_candidates::Bool = true)

see the last argument of FunctionOracle::evaluate()

source
cb_call_primal_extender!(self::CBPSCData, param0::CBPrimalExtender, include_candidates::Bool = true)

see the last argument of FunctionOracle::evaluate()

source
cb_call_primal_extender!(self::CBSOCData, param0::CBPrimalExtender, include_candidates::Bool = true)

see the last argument of FunctionOracle::evaluate()

source
cb_call_primal_extender!(self::CBAFTModel, param0::CBPrimalExtender)

an AFT has no primals, so it returns 1, see SumBlockModel::callprimalextender

source
cb_call_primal_extender!(self::CBBoxModel, prex::CBPrimalExtender)

see SumBlockModel::callprimalextender

source
cb_call_primal_extender!(self::CBNNCModel, prex::CBPrimalExtender)

see SumBlockModel::callprimalextender

source
cb_call_primal_extender!(self::CBPSCModel, prex::CBPrimalExtender)

see SumBlockModel::callprimalextender

source
cb_call_primal_extender!(self::CBSOCModel, prex::CBPrimalExtender)

see SumBlockModel::callprimalextender

source
cb_call_primal_extender!(self::CBSumModel, param0::CBPrimalExtender)

this has no primals, so it returns 1, see SumBlockModel::callprimalextender

source
cb_call_primal_extender!(self::CBSumBundle, prex::CBPrimalExtender, prex_id::Integer, ft::CBFunctionTask)

call this primal extender for the primals; if there minorants but no primals or if it fails, return 1

source
ConicBundle.cb_candidate!Function
cb_candidate!(self::CBLPGroundset, newy::CBMatrix, center_y::CBMatrix, center_value::Real, model_minorant::CBMinorantPointer, Hp::Union{<:CBBundleProxObject,Nothing}, delta_groundset_minorant::Union{<:CBMinorantPointer,Nothing} = nothing, delta_index::Union{<:CBIndexmatrix,Nothing} = nothing, relprec::Real = 1e-2)

computes the next ground set minorant and candidate, see Groundset::candidate()

source
cb_candidate!(self::CBUnconstrainedGroundset, newy::CBMatrix, center_y::CBMatrix, center_value::Real, model_minorant::CBMinorantPointer, Hp::Union{<:CBBundleProxObject,Nothing}, delta_groundset_minorant::Union{<:CBMinorantPointer,Nothing} = nothing, delta_index::Union{<:CBIndexmatrix,Nothing} = nothing, relprec::Real = 1e-2)
  • @brief for a given model aggregate compute the groundset aggregate and the resulting (feasible) candidate

    Let \f$ (\sigma,s) \f$ be the aggregate minorant \f$\sigma+s^\top y\le f(y)\f$ of the cost function described by @a modelsubgoffset and @a modelsubg, let \f$\hat y\f$ be the center of stability given by @a centery, let \f$H\f$ denote the positive definite scaling matrix with weight \f$u\f$ given by @a Hp, let \f$Y\f$ denote this (convex) feasible ground set and \f$i_Y\f$ its indicator function, then this computes a saddle point \f$(y,(\gamma,g))\f$ of

    \f[ \max{(\gamma,g)\in\partial iY}\min{y\in\mathbf{R}^n} [(s+g)^\top y + \gamma+\sigma +\frac{u}2\|y-\hat y\|H^2],\f]

    The resulting \f$y\f$ is feasible and stored in @a newy. @a linval gets \f$\gamma+\sigma+(g+s)^\top y\f$, @a subgnorm2 gets \f$u\|y-\hat x\|_H^2\f$, @a augval gets @a linval+@a subgnorm2 /2.

    If @a deltagroundsetsubg is not NULL, also @a eltagroundsetsubgoffset and @a delta index are assumed to be not NULL. Then all changes from the previous groundset aggregate minorant to the new groundset aggregate minorant \f$(\gamma,g)\f$ are stored in @a deltagroundsetsubgoffset and @a deltagroundsetsubg and @a deltaindex holds the indices of the nonzero changes (mostly the groundset aggregate is sparse, e.g. due to complementarity). This is used in BundleProxObject::updateQP_costs().

    On input \f$\varepsilon=\f$ @a relprec, \f$\bar f=\f$ @a center_value, and \f$\underline{f}=\f$ @a augval serve to form appropriate stopping criteria if solving the saddle point problem requires a nonlinear convex optimization method. The method is then assumed to produce a primal solution \f$y\in Y\f$ of value \f$\bar s\f$ and a dual solution \f$(\gamma,g)\f$ of value \f$\underline{g}\f$ with the properties \f$\underline g-\underline f\ge 0\f$ and \f$\bar f-\bar s\ge 0\f$ and \f$\bar s-\underline{g}\le\varepsilon(|\bar s|+1.)\f$. In particular \f$y\in Y\f$ is assumed to hold to machine precision.

    If useyfixing is true (the fixing heuristic is switched on), then \fyi=\hat yi\f$ is required to hold for all i with yfixed(i)!=0, so these coordinates are not allowed to change. In particular, this routine may also set yfixed(i)=2 for new coordinates i, where 2 is used to indicate newly fixed variables. These will be reset to 1 in BundlesScaling::computeQPcosts() and BundlesScaling::updateQP_costs() when this information has been digested.

    In some derived classes a scaling heuristic is called that may influence the scaling @a Hp so as to avoid going outside the feasible region too far.

    @param[out] gsid the current groundsetid

    @param[out] newy the next candidate y (feasible)

    @param[out] candgsval the value of the groundset minorant in the candidate y (=groundset objective)

    @param[out] linval (CHMatrixClasses::Real&) value of linear minorant in y

    @param[in,out] augvallb (CHMatrix_Classes::Real&) - on input: lower bound value of augmented model in previous (maybe infeasible) candidate - on output: lower bound value of augmented model in y

    @param[out] augvalub (CHMatrix_Classes::Real&) - on output: upper bound value of augmented model in y

    @param[out] subgnorm2 (CHMatrixClasses::Real&) squared Hp-norm (with weight) of joint groundset and model aggregate

    @param[in] centery (const CHMatrix_Classes::Matrix&) center of stability (feasible)

    @param[in] centervalue (CHMatrixClasses::Real) function value in centery

    @param[in] model_minorant (const MinorantPoiner&) aggregate linear minorant of the cost function

    @param[in,out] Hp (ConicBundle::BundleProxObject*) pointer to scaling matrix H, may be influenced by a scaling heuristic

    @param[in,out] deltagroundsetminorant (MinorantPointer*) if not NULL, the change in groundset aggregate will be stored here

    @param[in,out] deltaindex (CHMatrixClasses::Indexmatrix*) must be not NULL iff deltagroundsetsubg!=NULL or yfixed has changed, will store nonzero indices of deltagroundset_subg

    @param[in] relprec (CHMatrixClasses::Real) relative precision for termination in QP computations

    @return 0 on success, != 0 on failure

source
ConicBundle.cb_ceilFunction
cb_ceil(A::CBMatrix)

returns a matrix with elements (i,j)=ceil((*this)(i,j)) for all i,j

source
ConicBundle.cb_center_modified!Function
cb_center_modified!(self::CBAFTData, center_id::Integer)

check whether center computation is still valid for this point and modification id

source
cb_center_modified!(self::CBAFTModel, center_id::Integer)

see BundleModel::center_modified

source
cb_center_modified!(self::CBSumModel, center_id::Integer)

see BundleModel::center_modified

source
ConicBundle.cb_check_center_validity_by_candidate!Function
cb_check_center_validity_by_candidate!(self::CBAFTModel, cand_minorant_is_below::Bool, center_id::Integer, center_y::CBMatrix)

see BundleModel::checkcentervaliditybycandidate

source
cb_check_center_validity_by_candidate!(self::CBSumModel, cand_minorant_is_below::Bool, center_id::Integer, center_y::CBMatrix)

see BundleModel::checkcentervaliditybycandidate

source
ConicBundle.cb_check_correctnessFunction
cb_check_correctness(self::CBBoxOracle)

*@brief switch on/off some correctnes checks on the oracle

source
cb_check_correctness(self::CBNNCBoxSupportFunction)

see MatrixFunctionOracle::check_correctness() (true only needed for debugging)

source
cb_check_correctness(self::CBPSCAffineFunction)

see PSCOracle::check_correctness()

source
cb_check_correctness(self::CBSOCSupportFunction)

see SOCOracle::check_correctness() (true only needed for debugging)

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBAFTData, start_modification_id::Integer = 0)

reset to initial state (also used by the default constructor)

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBAFTModel)

overloads the SumBlockModel::clear calling the other clear with parameter 0

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBAFTModel, inaft::Union{<:CBAffineFunctionTransformation,Nothing}, start_modification_id::Integer = 0)

resets all data to the inital state, except for aft which is unchanged unless @a inaft ist not NULL, which then replaces aft

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBAFTModification, var_olddim::Integer, row_olddim::Integer)

reset modifications to an unmodified object currently having varolddim columns and rowolddim rows, calls Modification::clear

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBBoxData, start_modification_id::Integer = 0)

reset to initial state (also used by the default constructor)

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBBoxModel)

resets all data to initial status of this class, also the bundle parameters

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBBundleSolver)

resets all variables and pointers to classes to initial state and calls set_defaults()

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBGroundsetModification, var_olddim::Integer)

reset modifications to an unmodified object currently having var_olddim variables, calls Modification::clear

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBLPGroundset, indim::Integer = 0, in_groundset_id::Integer = 0)

resets all values as described in Groundset::clear()

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBMatrixCBSolver)
  • @brief Clears all data structures and problem information but keeps ouptut settings and algorithmic parameter settings
source
ConicBundle.cb_clear!Method
cb_clear!(self::CBNNCBoxSupportModification, var_olddim::Integer)

reset modifications to an unmodified object currently having var_olddim variables, calls Modification::clear

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBNNCData, start_modification_id::Integer = 0)

reset to initial state (also used by the default constructor)

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBNNCModel)

resets all data to initial status of this class, also the bundle parameters

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBPSCAffineModification, var_olddim::Integer, block_olddim::CBIndexmatrix)
  • @brief resets all variables so that the object to be modified has starting size varolddim (number of variables) and blockolddim (number of rows) and no modifications

      The actual old data is not needed at this point,
      the changes on it will be collected and excuted in the
      routines apply_to_vars and apply_to_blocks
    
      Setting the parameter ensure_start_val_box_feasibility to true
      will cause the algorithm to check in add_append_vars() whether
      the input values are within the given bounds and in
      apply_to_vars() it will project all start_values onto the bounds
      for all, old and new, indices (which might have been changed by
      then).  If it is false (default), all values will be accepted as
      given.
    
      Setting the parameter ensure_bounds_consistency to true
      (default) will raise errors in add_append_vars() and in
      apply_to_vars() whenever there are lower bounds greater than the
      respective upper bounds so as to avoid trivial
      infeasibilities. This check is omitted if set to false.
    
      The remaining values give the values of plus and minus infinity
      the no bounds should exceed. These are the default values at the
      same time (maybe it might be good to have a separate default value,
      but this is not implemented here).
source
ConicBundle.cb_clear!Method
cb_clear!(self::CBPSCData, start_modification_id::Integer = 0)

reset to initial state (also used by the default constructor)

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBPSCModel)

resets all data to initial status of this class, also the bundle parameters

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBSOCData, start_modification_id::Integer = 0)

reset to initial state (also used by the default constructor)

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBSOCModel)

resets all data to initial status of this class, also the bundle parameters

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBSOCSupportModification, var_olddim::Integer)

reset modifications to an unmodified object currently having var_olddim variables, calls Modification::clear

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBSumModel)

resets the SumModel to its initial state, in particular it removes but does not delete any Models added in add_model() (their AFTs are deleted if not explicitly denied)

source
ConicBundle.cb_clear!Method
cb_clear!(self::CBUnconstrainedGroundset, indim::Integer = 0, in_groundset_id::Integer = 0)
  • @brief reset everything to initial state for an unconstrained ground set of dimension @a indim

      Note that a ground set is allowed to have dimension zero. This
      will lead to evaluating a function without arguments and is
      a realistic scenario in Lagrangean relaxation of cutting plane
      approaches if no cutting planes have been added yet.
    
      If the changes to the ground set are to be counted by groundset_id,
      then it makes sense to enter the appropriate value in in_groundset_id.
source
ConicBundle.cb_clear_aggregates!Function
cb_clear_aggregates!(self::CBMatrixCBSolver, function_::Union{<:CBFunctionObject,Nothing} = nothing)
  • @brief Clears the aggregate parts of the cutting model of this @a function (but only for the given one, not recursively)

     There should be no need to call this if the modification
     routines of this interface were used correctly. If, however,
     the oracle is modified by other means outside this interface,
     this has to be called whenever the specified function was
     modified so that the old aggregate subgradients and/or primal
     generators are no longer valid.
    
    @param[in] function (const FunctionObject&)
      the function added in add_function()
    
    @return
      - 0 on success
      - != 0 otherwise
source
cb_clear_aggregates!(self::CBAFTData)

delete all kinds of aggregates but keep explicit parts of the cutting model

source
cb_clear_aggregates!(self::CBBoxData)

remove all aggregate minorants

source
cb_clear_aggregates!(self::CBNNCData)

remove all aggregate minorants

source
cb_clear_aggregates!(self::CBPSCData)

delete all kinds of aggregates but keep explicit parts of the cutting model

source
cb_clear_aggregates!(self::CBSOCData)

delete all kinds of aggregates but keep explicit parts of the cutting model

source
cb_clear_aggregates!(self::CBAFTModel)

see SumBlockModel::clear_aggregates

source
cb_clear_aggregates!(self::CBSumModel)

see SumBlockModel::clear_aggregates

source
cb_clear_aggregates!(self::CBSumBundleHandler)

first calls remove_contributions(), then discards all aggregate minorants in the current model

source
ConicBundle.cb_clear_fail_counts!Method
cb_clear_fail_counts!(self::CBMatrixCBSolver)
  • @brief clears all fail counts on numerical function oder model failures, may be useful if this caused premature termination.

    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_clear_model!Function
cb_clear_model!(self::CBAFTData, discard_minorants_only::Bool = false)

clear the cutting modle and all function evaluatoins

source
cb_clear_model!(self::CBBoxData, discard_minorants_only::Bool = false)

clear the cutting model and all function evaluations

source
cb_clear_model!(self::CBNNCData, discard_minorants_only::Bool = false)

clear the cutting model and all function evaluations

source
cb_clear_model!(self::CBPSCData, discard_minorants_only::Bool = false)

clear the cutting model and all function evaluations

source
cb_clear_model!(self::CBSOCData, discard_minorants_only::Bool = false)

clear the cutting model and all function evaluations

source
cb_clear_model!(self::CBAFTModel, discard_minorants_only::Bool = false)

see SumBlockModel::clear_model

source
cb_clear_model!(self::CBSumModel, discard_minorants_only::Bool = false)

see SumBlockModel::clear_model

source
cb_clear_model!(self::CBSumBundleHandler)

first calls remove_contributions(), then discards all current models

source
ConicBundle.cb_clear_terminated!Function
cb_clear_terminated!(self::CBBundleTerminator)

reset the termination code to zero (this does not remove the reason for the termination; for this, set other bounds or clear the numbers supplied by BundleTerminationData)

source
ConicBundle.cb_cloneFunction
cb_clone(self::CBCMgramdense)

makes an explicit copy of itself and returns a pointer to it

source
cb_clone(self::CBCMgramsparse)

makes an explicit copy of itself and returns a pointer to it

source
cb_clone(self::CBCMgramsparse_withoutdiag)

makes an explicit copy of itself and returns a pointer to it

source
cb_clone(self::CBCMlowrankdd)

makes an explicit copy of itself and returns a pointer to it

source
cb_clone(self::CBCMlowranksd)

makes an explicit copy of itself and returns a pointer to it

source
cb_clone(self::CBCMlowrankss)

makes an explicit copy of itself and returns a pointer to it

source
cb_clone(self::CBCMsingleton)

makes an explicit copy of itself and returns a pointer to it

source
cb_clone(self::CBCMsymdense)

makes an explicit copy of itself and returns a pointer to it

source
cb_clone(self::CBCMsymsparse)

makes an explicit copy of itself and returns a pointer to it

source
cb_clone(self::CBCoeffmatInfo)

generates a new copy of itself on the heap

source
cb_clone(self::CBAFTData)

return a pointer to a clone of this

source
cb_clone(self::CBBoxData)

return a pointer to a clone of this

source
cb_clone(self::CBNNCData)

return a pointer to a clone of this

source
cb_clone(self::CBPSCData)

return a pointer to a clone of this

source
cb_clone(self::CBSOCData)

return a pointer to a clone of this

source
ConicBundle.cb_clone!Function
cb_clone!(self::CBQPConeModelBlock)

return a cloned object on the heap

source
cb_clone!(self::CBQPSumModelBlock)

return a cloned object on the heap

source
ConicBundle.cb_clone_BundleParametersFunction
cb_clone_BundleParameters(self::CBBoxModelParameters)

clone

source
cb_clone_BundleParameters(self::CBNNCModelParameters)

clone

source
cb_clone_BundleParameters(self::CBPSCModelParameters)

clone

source
cb_clone_BundleParameters(self::CBSOCModelParameters)

clone

source
cb_clone_BundleParameters(self::CBSumBundleParameters)

clone

source
ConicBundle.cb_clone_VariableMetricSelection!Function
cb_clone_VariableMetricSelection!(self::CBPSCVariableMetricSelection)

clone: the values are only preserved for those contained in the constructor: nlatestminorants, selection_method and oldfactor

source
cb_clone_VariableMetricSelection!(self::CBVariableMetricSVDSelection)

clone: the values are only preserved for those contained in the constructor: nlatestminorants, selection_method and oldfactor

source
ConicBundle.cb_clone_minorantFunction
cb_clone_minorant(self::CBMinorant, factor::Real = 1., with_primal::Bool = true)

generates a full copy (multiplied by factor) on the heap and returns a pointer to it (it also includes a clone of the primal data if with_primal==true, otherwise the copy will have no primal data)

source
ConicBundle.cb_coeffFunction
cb_coeff(self::CBMinorantPointer, i::Integer)

returns coefficient i of the minorant (including the internal scalings) or 0. if empty

source
cb_coeff(self::CBMinorantUseData, i::Integer)

return coefficient @a i of the minorant

source
ConicBundle.cb_colFunction
cb_col(self::CBMatrix, i::Integer)

returns column i copied to a new matrix

source
cb_col(self::CBIndexmatrix, i::Integer)

returns column i copied to a new matrix

source
cb_col(self::CBSparsemat, i::Integer)

returns column i copied to a new sparse matrix

source
cb_col(self::CBSymmatrix, i::Integer)

returns column i copied to a new Matrix

source
ConicBundle.cb_col_nonzerosFunction
cb_col_nonzeros(self::CBSparsemat, i::Integer, startind::Union{<:AbstractVector{Cint},Nothing} = nothing)

returns the number of nonzeros in column i; if nonzeros>0 and startind!=0 then the index of the first nonzero in colindex/colval is stored there

source
ConicBundle.cb_coldimFunction
cb_coldim(self::CBMatrix)

returns the column dimension

source
cb_coldim(self::CBIndexmatrix)

returns the column dimension

source
cb_coldim(self::CBSparsemat)

returns the column dimension

source
cb_coldim(self::CBSymmatrix)

returns the column dimension

source
cb_coldim(self::CBSparsesym)

returns the column dimension

source
cb_coldim(self::CBSparseCoeffmatMatrix)

returns the number of columns (i.e. of blockdiagonal matrices)

source
ConicBundle.cb_colhouseFunction
cb_colhouse(A::CBMatrix, v::CBMatrix, i::Integer, j::Integer)

Housholder post-multiplication of A with Householder vector v; the first nonzero of v is index i, the multplication is applied to all rows of A with index >=j; always returns 0

source
ConicBundle.cb_colipFunction
cb_colip(A::CBMatrix, j::Integer, scaling::Union{<:CBMatrix,Nothing})

returns the squared Frobenius norm of column j of A, i.e., the sum of A(i,j)A(i,j) over all i with possibly (if scaling!=0) each term i multiplied by (scaling)(i)

source
cb_colip(A::CBSparsemat, j::Integer, scaling::Union{<:CBMatrix,Nothing})

returns the squared Frobenius norm of col i of A, i.e., the sum of A(i,j)A(i,j) over all i with possibly (if scaling!=0) each term i multiplied by (scaling)(i)

source
ConicBundle.cb_colsFunction
cb_cols(self::CBMatrix, vec::CBIndexmatrix)

returns a matrix of size this->rowdim() x vec.dim(), with column i a copy of column vec(i) of *this

source
cb_cols(self::CBIndexmatrix, vec::CBIndexmatrix)

returns a matrix of size this->rowdim() x vec.dim(), with column i a copy of column vec(i) of *this

source
cb_cols(self::CBSparsemat, ind::CBIndexmatrix)

returns a sparse matrix of size this->rowdim() x vec.dim(), with column i a copy of column vec(i) of *this

source
cb_cols(self::CBSymmatrix, vec::CBIndexmatrix)

returns a matrix of size this->rowdim() x vec.dim(), with column i a copy of column vec(i) of *this

source
ConicBundle.cb_colsipFunction
cb_colsip(A::CBMatrix)

returns the column vector of the squared Frobenius norm of all columns j of A, i.e., the sum of A(i,j)*A(i,j) over all i for each j

source
cb_colsip(A::CBSparsemat, scaling::Union{<:CBMatrix,Nothing})

returns the column vector of the squared Frobenius norm of all columns j of A, i.e., the sum of A(i,j)A(i,j) over all i for each j with possibly (if scaling~=0) each term i multiplied by (scaling)(i)

source
ConicBundle.cb_compute!Function
cb_compute!(self::CBMinRes, system::CBIterativeSystemObject, x::CBMatrix, termprec::Real, storex::Union{<:CBMatrix,Nothing} = nothing, storestep::Integer = 0)

compute the solution for system into x with (absolute) residual precision termprec

source
cb_compute!(self::CBPCG, system::CBIterativeSystemObject, x::CBMatrix, termprec::Real, storex::Union{<:CBMatrix,Nothing} = nothing, storestep::Integer = 0)

compute the solution for system into x with (absolute) residual precision termprec

source
cb_compute!(self::CBPsqmr, system::CBIterativeSystemObject, x::CBMatrix, termprec::Real, storex::Union{<:CBMatrix,Nothing} = nothing, storestep::Integer = 0)

compute the solution for system into x with (absolute) residual precision termprec

source
ConicBundle.cb_compute_QP_costs!Function
cb_compute_QP_costs!(self::CBBundleDenseTrustRegionProx, Q::CBSymmatrix, d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, y::CBMatrix, groundset_minorant::CBMinorantPointer, yfixed::Union{<:CBIndexmatrix,Nothing})

computes the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::computeQPcosts

source
cb_compute_QP_costs!(self::CBBundleDiagonalTrustRegionProx, Q::CBSymmatrix, d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, y::CBMatrix, groundset_minorant::CBMinorantPointer, yfixed::Union{<:CBIndexmatrix,Nothing})

computes the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::computeQPcosts

source
cb_compute_QP_costs!(self::CBBundleDLRTrustRegionProx, Q::CBSymmatrix, d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, y::CBMatrix, groundset_minorant::CBMinorantPointer, yfixed::Union{<:CBIndexmatrix,Nothing})

computes the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::computeQPcosts

source
cb_compute_QP_costs!(self::CBBundleIdProx, Q::CBSymmatrix, d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, y::CBMatrix, groundset_minorant::CBMinorantPointer, yfixed::Union{<:CBIndexmatrix,Nothing})

computes the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::computeQPcosts

source
cb_compute_QP_costs!(self::CBBundleLowRankTrustRegionProx, Q::CBSymmatrix, d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, y::CBMatrix, groundset_minorant::CBMinorantPointer, yfixed::Union{<:CBIndexmatrix,Nothing})

computes the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::computeQPcosts

source
ConicBundle.cb_compute_local_directions!Function
cb_compute_local_directions!(self::CBUQPConeModelBlock, qp_dx::CBMatrix, qp_dy::CBMatrix, rhs_resid::CBMatrix, dz::CBMatrix, duz::CBMatrix)

given the steps of the global part, compute the step of the local part

source
ConicBundle.cb_compute_step!Function
cb_compute_step!(self::CBQPConeModelBlock, ystep::CBMatrix, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

compute the step in the model space given the step in the design space

source
cb_compute_step!(self::CBQPSumModelBlock, ystep::CBMatrix, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

compute the step in the model space given the step in the design space

source
ConicBundle.cb_computed_Schur_step!Function
cb_computed_Schur_step!(self::CBQPConeModelBlock, xstep::CBMatrix, local_step::CBMatrix, startindex_model::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

use the computed step information to also compute the steps of the complemented parts

source
cb_computed_Schur_step!(self::CBQPSumModelBlock, xstep::CBMatrix, local_step::CBMatrix, startindex_model::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

for passing on the solution information after solvin the system

source
ConicBundle.cb_computed_step!Function
cb_computed_step!(self::CBQPConeModelBlock, modelxstep::CBMatrix, startindex_model::Integer, modelconstrstep::CBMatrix, startindex_constr::Integer)

store this computed step locally and compute the missing local dual step information

source
cb_computed_step!(self::CBQPSumModelBlock, modelxstep::CBMatrix, startindex_model::Integer, modelconstrstep::CBMatrix, startindex_constr::Integer)

store this computed step locally and compute the missing local dual step information

source
ConicBundle.cb_concat_belowFunction
cb_concat_below(A::CBMatrix, B::CBMatrix)

returns a bew matrix [A; B], i.e., it concats matrices A and B columnwise; A or B may be a 0x0 matrix

source
cb_concat_below(A::CBIndexmatrix, B::CBIndexmatrix)

returns the matrix [A; B], i.e., it concats matrices A and B columnwise; A or B may be a 0x0 matrix

source
cb_concat_below(A::CBSparsemat, B::CBSparsemat)

returns a new sparse matrix [A; B], i.e., it concats matrices A and B columnwise; A or B may be a 0x0 matrix

source
ConicBundle.cb_concat_below!Function
cb_concat_below!(self::CBMatrix, A::CBMatrix)

concats matrix A to the bottom of *this, A or *this may be the 0x0 matrix initally, returns *this

source
cb_concat_below!(self::CBMatrix, d::Real)

concat value d at the right of *this, *this must be a row vector or the 0x0 matrix, returns *this

source
cb_concat_below!(self::CBIndexmatrix, A::CBIndexmatrix)

concats matrix A to the bottom of *this, A or *this may be the 0x0 matrix initally, returns *this

source
cb_concat_below!(self::CBIndexmatrix, d::Integer)

concat value d at the bottom of *this, *this must be a column vector or the 0x0 matrix, returns *this

source
cb_concat_below!(self::CBSparsemat, A::CBSparsemat)

concats sparse matrix A to the bottom of *this, A or *this may be the 0x0 matrix initally, returns *this

source
ConicBundle.cb_concat_rightFunction
cb_concat_right(A::CBMatrix, B::CBMatrix)

returns a new matrix [A, B], i.e., it concats matrices A and B rowwise; A or B may be a 0x0 matrix

source
cb_concat_right(A::CBIndexmatrix, B::CBIndexmatrix)

returns a new matrix [A, B], i.e., it concats matrices A and B rowwise; A or B may be a 0x0 matrix

source
cb_concat_right(A::CBSparsemat, B::CBSparsemat)

returns a new sparse matrix [A, B], i.e., it concats matrices A and B rowwise; A or B may be a 0x0 matrix

source
ConicBundle.cb_concat_right!Function
cb_concat_right!(self::CBMatrix, A::CBMatrix, Atrans::Integer = 0)

concats matrix A (or its tranpose) to the right of *this, A or *this may be the 0x0 matrix initally, returns *this

source
cb_concat_right!(self::CBMatrix, d::Real)

concat value d at the bottom of *this, *this must be a column vector or the 0x0 matrix, returns *this

source
cb_concat_right!(self::CBIndexmatrix, A::CBIndexmatrix)

concats matrix A to the right of *this, A or *this may be the 0x0 matrix initally, returns *this

source
cb_concat_right!(self::CBIndexmatrix, d::Integer)

concat value d at the right of *this, *this must be a row vector or the 0x0 matrix, returns *this

source
cb_concat_right!(self::CBSparsemat, A::CBSparsemat)

concats sparse matrix A to the right of *this, A or *this may be the 0x0 matrix initally, returns *this

source
ConicBundle.cb_cond_number_mult!Function
cb_cond_number_mult!(self::CBQPKKTSubspaceHPrecond, vec::CBMatrix, KKTdiagx::CBMatrix, KKTdiagy::CBMatrix)

for estimating the condition number directly for the preconditioned part only

source
ConicBundle.cb_constrainedFunction
cb_constrained(self::CBLPGroundset)

returns false if the feasible set is the entire space (unconstrained optimization), true otherwise.

source
cb_constrained(self::CBUnconstrainedGroundset)
  • @brief returns false if the feasible set is the entire space (unconstrained optimization), true otherwise.

      The current class implements the unconstrained case and always returns false.
source
ConicBundle.cb_constraints_cost!Function
cb_constraints_cost!(self::CBQPConeModelBlock)

returns the dual upper bound to the model value (the trace weighted sum of the dual trace variables); it returns 0. if no model is contained

source
cb_constraints_cost!(self::CBQPSumModelBlock)

returns the dual upper bound to the model value (the trace weighted sum of the dual trace variables); it returns 0. if no model is contained

source
ConicBundle.cb_contains_supportFunction
cb_contains_support(self::CBSparsemat, A::CBSparsemat)

returns 1 if A is of the same dimension and the support of A is contained in the support of *this, 0 otherwise

source
cb_contains_support(self::CBSparsesym, A::CBSparsesym)

returns 1 if A is of the same dimension and the support of A is contained in the support of *this, 0 otherwise

source
ConicBundle.cb_contribute_initial_bundle!Function
cb_contribute_initial_bundle!(self::CBSumBundleHandler, ft::CBFunctionTask, bundle_minorants::CBMinorantBundle, coeff::CBMatrix)
  • @brief (re)initialize the bundle of the respective part

     This is only possible, if the handler handles a bundle for this.
     If not this causes an error. The main purpose is really
     to start the bundle on the fly if a parent starts a sumbundle
     in the middle of the computation. The information in coeff
     is assumed to yield the current aggregate.
    
     If this bundle part has been contributed berfore (its mode is child), the
     contribution is first removed from the parent. Then any existing
     information except for the function factor is discarded and replaced by
     the new bundle information with the number of contributions set to 1.
    
     If the size of primals is not zero, it must have one nonzero entry per
     column of minorants and all future calls via set_cand_minorant() also have
     to provide exactly one primal for each update.
source
ConicBundle.cb_copy_traforowsFunction
cb_copy_traforows(self::CBAffineFunctionTransformation, copy_to::CBMatrix, copy_from::CBMatrix)

only copies the elements that are effected by the image of arg_trafo

source
ConicBundle.cb_delete_blocks!Function
cb_delete_blocks!(self::CBSparseCoeffmatMatrix, delete_indices::CBIndexmatrix, map_to_old::Union{<:CBIndexmatrix,Nothing} = nothing)

generates a maptoold by deleting the specified indices and calls reassignblocks; this mapto_old will be returned if the corresponding pointer is not NULL

source
ConicBundle.cb_delete_cols!Function
cb_delete_cols!(self::CBMatrix, ind::CBIndexmatrix, sorted_increasingly::Bool = false)

all colmuns indexed by vector ind are deleted, no column should appear twice in ind, remaining columns are moved left keeping their order, returns *this

source
cb_delete_cols!(self::CBIndexmatrix, ind::CBIndexmatrix, sorted_increasingly::Bool = false)

all colmuns indexed by vector ind are deleted, no column should appear twice in ind, remaining columns are moved up keeping their order, returns *this

source
cb_delete_cols!(self::CBSparsemat, ind::CBIndexmatrix)

all colmuns indexed by vector ind are deleted, no column should appear twice in ind, remaining columns are moved up keeping their order, returns *this

source
ConicBundle.cb_delete_columns!Function
cb_delete_columns!(self::CBSparseCoeffmatMatrix, delete_indices::CBIndexmatrix, map_to_old::Union{<:CBIndexmatrix,Nothing} = nothing)

generates a maptoold by deleting the specified indices and calls reassigncolumns; this mapto_old will be returned if the corresponding pointer is not NULL

source
ConicBundle.cb_delete_principal_submatrix!Function
cb_delete_principal_submatrix!(self::CBSymmatrix, ind::CBIndexmatrix, sorted_increasingly::Bool = false)

returns this afte deleting the principal submatrix indexed by ind (no repetitions!);

source
ConicBundle.cb_delete_rows!Function
cb_delete_rows!(self::CBMatrix, ind::CBIndexmatrix, sorted_increasingly::Bool = false)

all rows indexed by vector ind are deleted, no row should appear twice in ind, remaining rows are moved up keeping their order, returns *this

source
cb_delete_rows!(self::CBIndexmatrix, ind::CBIndexmatrix, sorted_increasingly::Bool = false)

all rows indexed by vector ind are deleted, no row should appear twice in ind, remaining rows are moved up keeping their order, returns *this

source
cb_delete_rows!(self::CBSparsemat, ind::CBIndexmatrix)

all rows indexed by vector ind are deleted, no row should appear twice in ind, remaining rows are moved up keeping their order, returns *this

source
ConicBundle.cb_delete_variables!Method
cb_delete_variables!(self::CBMatrixCBSolver, delete_indices::CBIndexmatrix, map_to_old::CBIndexmatrix)
  • @brief Deletes variables corresponding to the specified indices.

      The indices of the remaining variables are reassigned so that they
      are consecutive again, the routine returns in @a map_to_old
      a vector giving for each new index of these remaining variables
      the old coordinate.

    @attention Be sure to include a desription of required changes to your functions via @a affectedfunctionswith_modifications

    @param[in] deleteindices (const Indexmatrix&) the entries deleteindices[i] specify the indices of the variables to be deleted

    @param[out] maptoold (Indexmatrix&) after the call, element maptoold[i] gives the old index (before the call) of the variable that now has index position i.

    @param[in] affectedfunctionswith_modifications (const FunObjModMap*) If NULL, default actions are performed on all functions. In particular, for those admitting dynamic argument changes all those variables will be deleted whose row in a corresponding updated affine function transformation (so after deletion of the columns of the incoming variables) corresponds to the zero map (i.e., offset and matrix row are both zero), furthermore identity transformations will be preserved. For those not admitting changes in their arguments, their corresponding (possibly newly created) affine function transformation will only get the columns deleted, but there will be no row deleltions. If !=NULL, for the listed functions (and their parents up to the root function) the default deletion action is performed unless their FunctionObjectModification entry gives explicit modification instructions which are then applied instead. For all functions NOT listed in the map and not having modified offsprings their corresponding aft will be set up to keep the arguments unchanged.

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_deleted_block_indicesFunction
cb_deleted_block_indices(self::CBPSCAffineModification)

returns null if there were no deletions, otherwise the Indexmatrix pointed to is a vector holding the deleted old row indices in increasing order

source
ConicBundle.cb_deleted_row_indicesFunction
cb_deleted_row_indices(self::CBAFTModification)

returns null if there were no deletions, otherwise the Indexmatrix pointed to is a vector holding the deleted old row indices in increasing order

source
ConicBundle.cb_deleted_var_indicesFunction
cb_deleted_var_indices(self::CBAFTModification)

returns null if there were no deletions, otherwise the Indexmatrix pointed to is a vector holding the deleted old variable indices in increasing order

source
cb_deleted_var_indices(self::CBGroundsetModification)

returns null if there were no deletions, otherwise the Indexmatrix pointed to is a vector holding the deleted old variable indices in increasing order

source
cb_deleted_var_indices(self::CBNNCBoxSupportModification)

returns null if there were no deletions, otherwise the Indexmatrix pointed to is a vector holding the deleted old variable indices in increasing order

source
cb_deleted_var_indices(self::CBPSCAffineModification)

returns null if there were no deletions, otherwise the Indexmatrix pointed to is a vector holding the deleted old variable indices in increasing order

source
cb_deleted_var_indices(self::CBSOCSupportModification)

returns null if there were no deletions, otherwise the Indexmatrix pointed to is a vector holding the deleted old variable indices in increasing order

source
ConicBundle.cb_deleted_variables_are_zeroFunction
cb_deleted_variables_are_zero(self::CBAFTModification, oldpoint::CBMatrix)

returns true if all entries deleted in @a oldpoint (must be a vector of length old_vardim()) are 0, false otherwise

source
cb_deleted_variables_are_zero(self::CBGroundsetModification, oldpoint::CBMatrix)

returns true if all entries deleted in @a oldpoint (must be a vector of length old_vardim()) are 0, false otherwise

source
cb_deleted_variables_are_zero(self::CBNNCBoxSupportModification, oldpoint::CBMatrix)

returns true if all entries deleted in @a oldpoint (must be a vector of length old_vardim()) are 0, false otherwise

source
cb_deleted_variables_are_zero(self::CBPSCAffineModification, oldpoint::CBMatrix, oldmat::CBSparseCoeffmatMatrix)

returns true if all entries deleted in @a oldpoint (must be a vector of length old_vardim()) or the corresponding entries in the old matrix are 0 and false otherwise

source
cb_deleted_variables_are_zero(self::CBSOCSupportModification, oldpoint::CBMatrix)

returns true if all entries deleted in @a oldpoint (must be a vector of length old_vardim()) are 0, false otherwise

source
ConicBundle.cb_denseFunction
cb_dense(self::CBCMgramdense)

returns 1 if its structure is as bad as its dense symmetric representation, otherwise 0

source
cb_dense(self::CBCMgramsparse)

returns 1 if its structure is as bad as its dense symmetric representation, otherwise 0

source
cb_dense(self::CBCMgramsparse_withoutdiag)

returns 1 if its structure is as bad as its dense symmetric representation, otherwise 0

source
cb_dense(self::CBCMlowrankdd)

returns 1 if its structure is as bad as its dense symmetric representation, otherwise 0

source
cb_dense(self::CBCMlowranksd)

returns 1 if its structure is as bad as its dense symmetric representation, otherwise 0

source
cb_dense(self::CBCMlowrankss)

returns 1 if its structure is as bad as its dense symmetric representation, otherwise 0

source
cb_dense(self::CBCMsingleton)

returns 1 if its structure is as bad as its dense symmetric representation, otherwise 0

source
cb_dense(self::CBCMsymdense)

returns 1 if its structure is as bad as its dense symmetric representation, otherwise 0

source
cb_dense(self::CBCMsymsparse)

returns 1 if its structure is as bad as its dense symmetric representation, otherwise 0

source
ConicBundle.cb_descent_update!Function
cb_descent_update!(self::CBBundleHKWeight, newval::Real, oldval::Real, modelval::Real, y::CBMatrix, newy::CBMatrix, normsubg2::Real, Hp::Union{<:CBBundleProxObject,Nothing})

determine next weight after a descent step

source
cb_descent_update!(self::CBBundleRQBWeight, newval::Real, oldval::Real, modelval::Real, y::CBMatrix, newy::CBMatrix, normsubg2::Real, Hp::Union{<:CBBundleProxObject,Nothing})

determine next weight after a descent step

source
ConicBundle.cb_destroy!Function
cb_destroy!(obj::CBMatrix)
source
cb_destroy!(obj::CBIndexmatrix)
source
cb_destroy!(obj::CBSparsemat)
source
cb_destroy!(obj::CBSymmatrix)
source
cb_destroy!(obj::CBSparsesym)
source
cb_destroy!(obj::CBCMgramdense)
source
cb_destroy!(obj::CBCMgramsparse)
source
cb_destroy!(obj::CBCMgramsparse_withoutdiag)
source
cb_destroy!(obj::CBCMlowrankdd)
source
cb_destroy!(obj::CBCMlowranksd)
source
cb_destroy!(obj::CBCMlowrankss)
source
cb_destroy!(obj::CBCMsingleton)
source
cb_destroy!(obj::CBCMsymdense)
source
cb_destroy!(obj::CBCMsymsparse)
source
cb_destroy!(obj::CBSparseCoeffmatMatrix)
source
cb_destroy!(obj::CBGB_rand)
source
cb_destroy!(obj::CBCoeffmatInfo)
source
cb_destroy!(obj::CBPrimalMatrix)
source
cb_destroy!(obj::CBMatrixCBSolver)
source
cb_destroy!(obj::CBBlockPSCPrimal)
source
cb_destroy!(obj::CBDensePSCPrimal)
source
cb_destroy!(obj::CBGramSparsePSCPrimal)
source
cb_destroy!(obj::CBSparsePSCPrimal)
source
cb_destroy!(obj::CBAFTModification)
source
cb_destroy!(obj::CBGroundsetModification)
source
cb_destroy!(obj::CBNNCBoxSupportModification)
source
cb_destroy!(obj::CBPSCAffineModification)
source
cb_destroy!(obj::CBSOCSupportModification)
source
cb_destroy!(obj::CBAffineFunctionTransformation)
source
cb_destroy!(obj::CBMinorantPointer)
source
cb_destroy!(obj::CBMinorantUseData)
source
cb_destroy!(obj::CBMinorant)
source
cb_destroy!(obj::CBBoxPrimalExtender)
source
cb_destroy!(obj::CBBoxOracle)
source
cb_destroy!(obj::CBPSCPrimalExtender)
source
cb_destroy!(obj::CBPSCBundleParameters)
source
cb_destroy!(obj::CBSOCPrimalExtender)
source
cb_destroy!(obj::CBSOCBundleParameters)
source
cb_destroy!(obj::CBCFunctionMinorantExtender)
source
cb_destroy!(obj::CBCFunction)
source
cb_destroy!(obj::CBNNCBoxSupportMinorantExtender)
source
cb_destroy!(obj::CBNNCBoxSupportFunction)
source
cb_destroy!(obj::CBPSCAffineMinorantExtender)
source
cb_destroy!(obj::CBPSCAffineFunction)
source
cb_destroy!(obj::CBSOCSupportMinorantExtender)
source
cb_destroy!(obj::CBSOCSupportFunction)
source
cb_destroy!(obj::CBBoxModelParameters)
source
cb_destroy!(obj::CBNNCModelParameters)
source
cb_destroy!(obj::CBPSCModelParameters)
source
cb_destroy!(obj::CBSOCModelParameters)
source
cb_destroy!(obj::CBSumBundleParameters)
source
cb_destroy!(obj::CBAFTData)
source
cb_destroy!(obj::CBBoxData)
source
cb_destroy!(obj::CBNNCData)
source
cb_destroy!(obj::CBPSCData)
source
cb_destroy!(obj::CBSOCData)
source
cb_destroy!(obj::CBBundleHKWeight)
source
cb_destroy!(obj::CBBundleRQBWeight)
source
cb_destroy!(obj::CBBundleDenseTrustRegionProx)
source
cb_destroy!(obj::CBBundleDiagonalTrustRegionProx)
source
cb_destroy!(obj::CBBundleDLRTrustRegionProx)
source
cb_destroy!(obj::CBBundleIdProx)
source
cb_destroy!(obj::CBBundleLowRankTrustRegionProx)
source
cb_destroy!(obj::CBQPSolverParameters)
source
cb_destroy!(obj::CBQPSolver)
source
cb_destroy!(obj::CBUQPSolver)
source
cb_destroy!(obj::CBLPGroundset)
source
cb_destroy!(obj::CBUnconstrainedGroundset)
source
cb_destroy!(obj::CBAFTModel)
source
cb_destroy!(obj::CBBoxModel)
source
cb_destroy!(obj::CBNNCModel)
source
cb_destroy!(obj::CBPSCModel)
source
cb_destroy!(obj::CBSOCModel)
source
cb_destroy!(obj::CBSumModel)
source
cb_destroy!(obj::CBPSCVariableMetricSelection)
source
cb_destroy!(obj::CBVariableMetricSVDSelection)
source
cb_destroy!(obj::CBQPDirectKKTSolver)
source
cb_destroy!(obj::CBQPIterativeKKTHAeqSolver)
source
cb_destroy!(obj::CBQPIterativeKKTHASolver)
source
cb_destroy!(obj::CBQPKKTSolverComparison)
source
cb_destroy!(obj::CBSumBundleHandler)
source
cb_destroy!(obj::CBQPConeModelBlock)
source
cb_destroy!(obj::CBQPSumModelBlock)
source
cb_destroy!(obj::CBUQPConeModelBlock)
source
cb_destroy!(obj::CBUQPSumModelBlock)
source
cb_destroy!(obj::CBMinRes)
source
cb_destroy!(obj::CBPCG)
source
cb_destroy!(obj::CBPsqmr)
source
cb_destroy!(obj::CBQPKKTSubspaceHPrecond)
source
cb_destroy!(obj::CBSumBundle)
source
cb_destroy!(obj::CBBundleSolver)
source
cb_destroy!(obj::CBBundleTerminator)
source
cb_destroy!(obj::CBClock)
source
cb_destroy!(obj::CBMicroseconds)
source
ConicBundle.cb_diagFunction
cb_diag(A::CBMatrix)

returns a column vector v consisting of the elements v(i)=(*this)(i,i), 0<=i<min(row dimension,column dimension)

source
cb_diag(A::CBIndexmatrix)

returns a column vector v consisting of the elements v(i)=A(i,i), 0<=i<min(row dimension,column dimension)

source
cb_diag(A::CBSymmatrix)

returns a column vector v consisting of the elements v(i)=(*this)(i,i), 0<=i<row dimension

source
cb_diag(A::CBSparsesym)

returns the diagonal of A as a dense Matrix vector

source
ConicBundle.cb_diagonal_bounds_scaling_update!Function
cb_diagonal_bounds_scaling_update!(self::CBBundleDenseTrustRegionProx, param0::CBMatrix)
  • @brief if supported, Dupdate has to contain nonnegative numbers that are permanently added to the diagonal here. It is important to keep track of this change only if afterwards updateQPcosts is called before computeQPcosts. In this case the only nonzero enries in Dupdate must be those of delta_index
source
cb_diagonal_bounds_scaling_update!(self::CBBundleDiagonalTrustRegionProx, D_update::CBMatrix)
  • @brief if supported, Dupdate has to contain nonnegative numbers that are permanently added to the diagonal here. It is important to keep track of this change only if afterwards updateQPcosts is called before computeQPcosts. In this case the only nonzero enries in Dupdate must be those of delta_index
source
cb_diagonal_bounds_scaling_update!(self::CBBundleDLRTrustRegionProx, param0::CBMatrix)
  • @brief if supported, Dupdate has to contain nonnegative numbers that are permanently added to the diagonal here. It is important to keep track of this change only if afterwards updateQPcosts is called before computeQPcosts. In this case the only nonzero enries in Dupdate must be those of delta_index
source
ConicBundle.cb_diagonal_scaling_heuristic_update!Function
cb_diagonal_scaling_heuristic_update!(self::CBBundleLowRankTrustRegionProx, param0::CBMatrix)
  • @brief if supported, Dupdate has to contain nonnegative numbers that are permanently added to the diagonal here. It is important to keep track of this change only if afterwards updateQPcosts is called before computeQPcosts. In this case the only nonzero enries in Dupdate must be those of delta_index
source
ConicBundle.cb_dimFunction
cb_dim(self::CBMatrix)

returns the dimension rows * columns when the matrix is regarded as a vector

source
cb_dim(self::CBIndexmatrix)

returns the dimension rows * columns when the matrix is regarded as a vector

source
cb_dim(self::CBSparsemat)

returns the dimension rows * columns when the matrix is regarded as a vector

source
cb_dim(self::CBSymmatrix)

returns the dimension rows * columns when the matrix is regarded as a vector

source
cb_dim(self::CBSparsesym)

returns the dimension rows * columns when the matrix is regarded as a vector

source
cb_dim(self::CBCMgramdense)

returns the order of the represented symmetric matrix

source
cb_dim(self::CBCMgramsparse)

returns the order of the represented symmetric matrix

source
cb_dim(self::CBCMgramsparse_withoutdiag)

returns the order of the represented symmetric matrix

source
cb_dim(self::CBCMlowrankdd)

returns the order of the represented symmetric matrix

source
cb_dim(self::CBCMlowranksd)

returns the order of the represented symmetric matrix

source
cb_dim(self::CBCMlowrankss)

returns the order of the represented symmetric matrix

source
cb_dim(self::CBCMsingleton)

returns the order of the represented symmetric matrix

source
cb_dim(self::CBCMsymdense)

returns the order of the represented symmetric matrix

source
cb_dim(self::CBCMsymsparse)

returns the order of the represented symmetric matrix

source
cb_dim(self::CBBundleDenseTrustRegionProx)

returns the order of the matrix

source
cb_dim(self::CBBundleDiagonalTrustRegionProx)

returns the dimension of the diagonal

source
ConicBundle.cb_dim2Function
cb_dim2(self::CBMatrix)

returns the number of rows in _nr and the number of columns in _nc

source
cb_dim2(self::CBIndexmatrix)

returns the number of rows in _nr and the number of columns in _nc

source
cb_dim2(self::CBSparsemat)

returns the number of rows in _nr and the number of columns in _nc

source
cb_dim2(self::CBSymmatrix)

returns the number of rows in _nr and _nc

source
cb_dim2(self::CBSparsesym)

returns the number of rows in _nr and the number of columns in _nc

source
ConicBundle.cb_dim_constraints!Function
cb_dim_constraints!(self::CBQPConeModelBlock)

returns the dimension of the system describing the model set (may contain further constraints)

source
cb_dim_constraints!(self::CBQPSumModelBlock)

returns the dimension of the system describing the model set (may contain further constraints)

source
ConicBundle.cb_dim_model!Function
cb_dim_model!(self::CBQPConeModelBlock)

returns the dimension of the model set (here the same as the bundle size)

source
cb_dim_model!(self::CBQPSumModelBlock)

returns the dimension of the model set (here the same as the bundle size)

source
ConicBundle.cb_displayFunction
cb_display(self::CBMatrix, precision::Integer = 0, width::Integer = 0, screenwidth::Integer = 0)
  • @brief displays a matrix in a pretty way for bounded screen widths; for variables of value zero default values are used.
source
cb_display(self::CBIndexmatrix, precision::Integer = 0, width::Integer = 0, screenwidth::Integer = 0)
  • @brief displays a matrix in a pretty way for bounded screen widths; for variables of value zero default values are used.
source
cb_display(self::CBSparsemat, precision::Integer = 0, width::Integer = 0, screenwidth::Integer = 0)
  • @brief displays a matrix in a pretty way for bounded screen widths; for variables of value zero default values are used.
source
cb_display(self::CBSymmatrix, precision::Integer = 0, width::Integer = 0, screenwidth::Integer = 0)
  • @brief displays a matrix in a pretty way for bounded screen widths; for variables of value zero default values are used.
source
cb_display(self::CBSparsesym, precision::Integer = 0, width::Integer = 0, screenwidth::Integer = 0)
  • @brief displays a matrix in a pretty way for bounded screen widths; for variables of value zero default values are used.
source
cb_display(self::CBCMgramdense)

display constraint information

source
cb_display(self::CBCMgramsparse)

display constraint information

source
cb_display(self::CBCMgramsparse_withoutdiag)

display constraint information

source
cb_display(self::CBCMlowrankdd)

display constraint information

source
cb_display(self::CBCMlowranksd)

display constraint information

source
cb_display(self::CBCMlowrankss)

display constraint information

source
cb_display(self::CBCMsingleton)

display constraint information

source
cb_display(self::CBCMsymdense)

display constraint information

source
cb_display(self::CBCMsymsparse)

display constraint information

source
cb_display(self::CBMinorantPointer, precision::Integer = 8)

output the Minorant in a nice format

source
ConicBundle.cb_dnorm_sqrFunction
cb_dnorm_sqr(self::CBBundleDenseTrustRegionProx, B::CBMinorantPointer)

returns $\|B\|^2_{H^{-1}}$ (with weightu included in H)

source
cb_dnorm_sqr(self::CBBundleDiagonalTrustRegionProx, B::CBMinorantPointer)

returns \f$\|B\|^2_{H^{-1}}\f$

source
cb_dnorm_sqr(self::CBBundleDLRTrustRegionProx, B::CBMinorantPointer)

returns $\|B\|^2_{H^{-1}}$ (with weight included)

source
cb_dnorm_sqr(self::CBBundleIdProx, B::CBMinorantPointer)

returns \f$\|B\|^2_{H^{-1}}\f$

source
cb_dnorm_sqr(self::CBBundleLowRankTrustRegionProx, B::CBMinorantPointer)

returns $\|B\|^2_{H^{-1}}$ (with weight included)

source
ConicBundle.cb_do_step!Function
cb_do_step!(self::CBAFTData, point_id::Integer)

if the candidate information is available and consitent for point_id, copy it from cand to center and return 0, otherwise return 1

source
cb_do_step!(self::CBBoxData, point_id::Integer)

if the candidate information is available and consitent for point_id, copy it from cand to center and return 0, otherwise return 1

source
cb_do_step!(self::CBNNCData, point_id::Integer)

if the candidate information is available and consitent for point_id, copy it from cand to center and return 0, otherwise return 1

source
cb_do_step!(self::CBPSCData, point_id::Integer)

if the candidate information is available and consitent for point_id, copy it from cand to center and return 0, otherwise return 1

source
cb_do_step!(self::CBSOCData, point_id::Integer)

if the candidate information is available and consitent for point_id, copy it from cand to center and return 0, otherwise return 1

source
cb_do_step!(self::CBQPConeModelBlock, alpha::Real, y::CBMatrix, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

move in the last computed step direction by a step of length alpha and compute and store the violation in this point for later use in

source
cb_do_step!(self::CBQPSumModelBlock, alpha::Real, y::CBMatrix, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

move in the last computed step direction by a step of length alpha and compute and store the violation in this point for later use in

source
ConicBundle.cb_dual_norm_squaredFunction
cb_dual_norm_squared(self::CBMinorantPointer, D::Union{<:CBMatrix,Nothing} = nothing)

Compute the dual norm squared of this for the given diagonal matrix D (identity if not given), i.e. \f$\|(*this)\|^2_{D^{-1}}\f$

source
ConicBundle.cb_dualviol_2normsqr!Function
cb_dualviol_2normsqr!(self::CBQPConeModelBlock)

return the squared Euclidean norm of the model violation

source
cb_dualviol_2normsqr!(self::CBQPSumModelBlock)

return the squared Euclidean norm of the dual model violation

source
ConicBundle.cb_eigFunction
cb_eig(self::CBSymmatrix, P::CBMatrix, d::CBMatrix, sort_non_decreasingly::Bool = true)

computes an eigenvalue decomposition PDiag(d)tranpose(P)=(*this) by symmetric QR; returns 0 on success,

source
ConicBundle.cb_elapsed_timeFunction
cb_elapsed_time(self::CBClock)

call time() and print the result in format "hh:mm:ss", togehter with current date and time, to out

source
ConicBundle.cb_enlarge_below!Function
cb_enlarge_below!(self::CBMatrix, addnr::Integer)

enlarge the matrix by addnr>=0 rows without intializaton of the new rows, returns *this (marked as not initialized if addnr>0)

source
cb_enlarge_below!(self::CBMatrix, addnr::Integer, d::Real)

enlarge the matrix by addnr>=0 rows intializing the new rows by value d, returns *this

source
cb_enlarge_below!(self::CBMatrix, addnr::Integer, dp::Union{<:AbstractVector{Cdouble},Nothing}, d::Real = 1.)

enlarge the matrix by addnr>=0 rows intializing the new rows by the values pointed to by dp times d, returns *this

source
cb_enlarge_below!(self::CBIndexmatrix, addnr::Integer)

enlarge the matrix by addnr>=0 rows without intializaton of the new rows, returns *this (marked as not initialized if nc>0)

source
cb_enlarge_below!(self::CBIndexmatrix, addnr::Integer, d::Integer)

enlarge the matrix by addnr>=0 rows intializing the new rows by value d, returns *this

source
cb_enlarge_below!(self::CBIndexmatrix, addnr::Integer, dp::Union{<:AbstractVector{Cint},Nothing}, d::Integer = 1)

enlarge the matrix by addnr>=0 rows intializing the new rows by the values pointed to by dp times d, returns *this

source
cb_enlarge_below!(self::CBSymmatrix, addn::Integer)

increases the order of the matrix by appending storage for further addn rows and columns (marked as not initiliazed if addn>0, no changes if addn<=0)

source
cb_enlarge_below!(self::CBSymmatrix, addn::Integer, d::Real)

increases the order of the matrix by appending storage for further addn rows and columns initialized to d (no changes if addn<=0);

source
ConicBundle.cb_enlarge_right!Function
cb_enlarge_right!(self::CBMatrix, addnc::Integer)

enlarge the matrix by addnc>=0 columns without intializaton of the new columns, returns *this (marked as not initialized if nr>0)

source
cb_enlarge_right!(self::CBMatrix, addnc::Integer, d::Real)

enlarge the matrix by addnc>=0 columns intializing the new columns by value d, returns *this

source
cb_enlarge_right!(self::CBMatrix, addnc::Integer, dp::Union{<:AbstractVector{Cdouble},Nothing}, d::Real = 1.)

enlarge the matrix by addnc>=0 columns intializing the new columns by the values pointed to by dp times d, returns *this

source
cb_enlarge_right!(self::CBIndexmatrix, addnc::Integer)

enlarge the matrix by addnc>=0 columns without intializaton of the new columns, returns *this (marked as not initialized if nr>0)

source
cb_enlarge_right!(self::CBIndexmatrix, addnc::Integer, d::Integer)

enlarge the matrix by addnc>=0 columns intializing the new columns by value d, returns *this

source
cb_enlarge_right!(self::CBIndexmatrix, addnc::Integer, dp::Union{<:AbstractVector{Cint},Nothing}, d::Integer = 1)

enlarge the matrix by addnc>=0 columns intializing the new columns by the values pointed to by dp times d, returns *this

source
ConicBundle.cb_ensure_feasibility!Function
cb_ensure_feasibility!(self::CBLPGroundset, y::CBMatrix, ychanged::Bool, Hp::Union{<:CBBundleProxObject,Nothing}, relprec::Real = 1e-10)

makes y feasible if not so, see Groundset::ensure_feasibility()

source
cb_ensure_feasibility!(self::CBUnconstrainedGroundset, y::CBMatrix, ychanged::Bool, Hp::Union{<:CBBundleProxObject,Nothing} = nothing, relprec::Real = 1e-10)
  • @brief if the groundset_id changed, it checks feasibility of y with respect to the given precision. If infeasible it replaces y by its projection with respect to the norm of Hp and sets ychanged to true.

    The routine is called by the internal bundle solver to check whether the given center is still valid (in some applications the groundset might change during the runtime of the bundle method), where, if @a ychanged is false on input, validity of @a y was already checked at a point in time when the groundset had the @a ingroundsetid. If @a ychanged==false and the groundsetid is still the same, then @a y is simply assumed to be still correct (the precision is not even looked at in this case). Otherwise the routine checks the validitiy of @a y with respect to the given precision. If feasible, it returns the new groundsetid in @a ingroundsetid and keeps @a ychanged unaltered. If @a y is infeasible, the rountine computes its projection onto the feasible set with respect to the norm of @a Hp (if ==0 then the Euclidean norm is used), stores it in @a y, sets @a ychanged to true, sets @a ingroundsetid to the current groundset_id and returns

    1. Should anything go wrong, it returns 1.

    This concrete base class represents the unconstrained case, so feasiblity only checks the dimension and never requires projections.

source
ConicBundle.cb_equalFunction
cb_equal(A::CBMatrix, B::CBMatrix)

returns true if both matrices have the same size and the same elements

source
cb_equal(A::CBIndexmatrix, b::CBIndexmatrix)

returns true if both matrices have the same size and the same elements

source
cb_equal(A::CBSparsemat, B::CBSparsemat, eqtol::Real)

returns 1 if both matrices are identical, 0 otherwise

source
cb_equal(A::CBSparsesym, B::CBSparsesym, eqtol::Real)

returns 1 if both matrices are identical, 0 otherwise

source
cb_equal(self::CBCMgramdense, p::Union{<:CBCoeffmat,Nothing}, tol::Real = 1e-6)

returns 1, if p is the same derived class and entries differ by less than tol, otherwise zero

source
cb_equal(self::CBCMgramsparse, p::Union{<:CBCoeffmat,Nothing}, tol::Real = 1e-6)

returns 1, if p is the same derived class and entries differ by less than tol, otherwise zero

source
cb_equal(self::CBCMgramsparse_withoutdiag, p::Union{<:CBCoeffmat,Nothing}, tol::Real = 1e-6)

returns 1, if p is the same derived class and entries differ by less than tol, otherwise zero

source
cb_equal(self::CBCMlowrankdd, p::Union{<:CBCoeffmat,Nothing}, tol::Real = 1e-6)

returns 1, if p is the same derived class and entries differ by less than tol, otherwise zero

source
cb_equal(self::CBCMlowranksd, p::Union{<:CBCoeffmat,Nothing}, tol::Real = 1e-6)

returns 1, if p is the same derived class and entries differ by less than tol, otherwise zero

source
cb_equal(self::CBCMlowrankss, p::Union{<:CBCoeffmat,Nothing}, tol::Real = 1e-6)

returns 1, if p is the same derived class and entries differ by less than tol, otherwise zero

source
cb_equal(self::CBCMsingleton, p::Union{<:CBCoeffmat,Nothing}, tol::Real = 1e-6)

returns 1, if p is the same derived class and entries differ by less than tol, otherwise zero

source
cb_equal(self::CBCMsymdense, p::Union{<:CBCoeffmat,Nothing}, tol::Real = 1e-6)

returns 1, if p is the same derived class and entries differ by less than tol, otherwise zero

source
cb_equal(self::CBCMsymsparse, p::Union{<:CBCoeffmat,Nothing}, tol::Real = 1e-6)

returns 1, if p is the same derived class and entries differ by less than tol, otherwise zero

source
ConicBundle.cb_equalsFunction
cb_equals(self::CBMinorantPointer, mp::CBMinorantPointer, tol::Real = 1e-10)

they are equal if they point to the same object or are both 0. If not, they differ if their matrix representations differ; if not, they differ if the entries differ by at least tol*(1.+fabs(this->offset())

source
ConicBundle.cb_eval_function!Function
cb_eval_function!(self::CBAFTModel, y_id::Integer, y::CBMatrix, nullstep_bound::Real, relprec::Real)

see BundleModel::eval_function

source
cb_eval_function!(self::CBSumModel, y_id::Integer, y::CBMatrix, nullstep_bound::Real, relprec::Real)

see BundleModel::eval_function

source
ConicBundle.cb_eval_model!Function
cb_eval_model!(self::CBAFTModel, y_id::Integer, y::CBMatrix, relprec::Real)

see BundleModel::eval_model

source
cb_eval_model!(self::CBSumModel, y_id::Integer, y::CBMatrix, relprec::Real)

see BundleModel::eval_model

source
ConicBundle.cb_evaluateFunction
cb_evaluate(self::CBMinorantPointer, yid::Integer, y::CBMatrix, with_constant::Bool = true)

negative ids are allowed and indicate there is no need to memorize this result, returns CBminusinfinity if empty, otherwise offset+ip(minorant,y)

source
cb_evaluate(self::CBMinorantUseData, yid::Integer, y::CBMatrix, with_constant::Bool = true)

evaluate the minorant for @a y unluess @a yid allows to retrieve a previous evaluation

source
ConicBundle.cb_evaluate_projection!Function
cb_evaluate_projection!(self::CBPSCAffineFunction, current_point::CBMatrix, P::CBMatrix, relprec::Real, projected_Ritz_vectors::CBMatrix, projected_Ritz_values::CBMatrix)

see PSCOracle::evaluate_projection()

source
cb_evaluate_projection!(self::CBSOCSupportFunction, current_point::CBMatrix, P::CBMatrix, relprec::Real)

see SOCOracle::evaluate()

source
ConicBundle.cb_evaluate_traceFunction
cb_evaluate_trace(self::CBQPConeModelBlock)

evaluate the left hand side of the trace constraint for modelx

source
cb_evaluate_trace(self::CBUQPConeModelBlock)

evaluate the left hand side of the trace constraint for modelx

source
ConicBundle.cb_extend!Function
cb_extend!(self::CBBoxPrimalExtender, param0::CBPrimalData)

like in PrimalExtender, called by ConicBundle to update internal PrimalData objects, has to return 0 on success

source
cb_extend!(self::CBPSCPrimalExtender, param0::CBPrimalData)

like in PrimalExtender, called by ConicBundle to update internal PrimalData objects, has to return 0 on success

source
cb_extend!(self::CBSOCPrimalExtender, param0::CBPrimalData)

like in PrimalExtender, called by ConicBundle to update internal PrimalData objects, has to return 0 on success

source
cb_extend!(self::CBCFunctionMinorantExtender, minorant::CBMinorant, n_coords::Integer, indices::Union{<:AbstractVector{Integer},Nothing})

see MinorantExtender::extend() for explanations

source
cb_extend!(self::CBNNCBoxSupportMinorantExtender, minorant::CBMinorant, n_coords::Integer, indices::Union{<:AbstractVector{Integer},Nothing})

@brief called by ConicBundle to update internal Minorant objects, has to return 0 on success

    for each relevant index i the minorant value is set to the projection

of 0 onto the interval [lowerbound(i),upperbound(i)]

    @param[in,out] minorant  (Minorant&)
        it holds a (possibly aggregated) minorant that was generated
        from minorants returned by oracle calls, e.g. as in
  FunctionOracle::evaluate()

    @param[in] n_coords (int)
        the number of coordinate positions that have to be filled in

    @param[out] new_subgradient_values  (DVector &)
  the indices of these coordinate positions (sorted in
  strictly increasing order)

@return - 0 on success, - 1 if extension/update is impossible

source
cb_extend!(self::CBPSCAffineMinorantExtender, minorant::CBMinorant, n_coords::Integer, indices::Union{<:AbstractVector{Integer},Nothing})

@brief called by ConicBundle to update internal Minorant objects, has to return 0 on success

    @param[in,out] minorant  (Minorant&)
        it holds a (possibly aggregated) minorant that was generated
        from minorants returned by oracle calls, e.g. as in
  FunctionOracle::evaluate() If PrimalData was provided in these
  minorants, this will be aggregated along and will also be
  available in this minorant.

    @param[in] n_coords (int)
        the number of coordinate positions that have to be filled in

    @param[out] new_subgradient_values  (DVector &)
  the indices of these coordinate positions (sorted in
  strictly increasing order)

@return - 0 on success, - 1 if extension/update is impossible

source
cb_extend!(self::CBSOCSupportMinorantExtender, minorant::CBMinorant, n_coords::Integer, indices::Union{<:AbstractVector{Integer},Nothing})

@brief called by ConicBundle to update internal Minorant objects, has to return 0 on success

    for each relevant index i the minorant value is set to the projection

of 0 onto the interval [lowerbound(i),upperbound(i)]

    @param[in,out] minorant  (Minorant&)
        it holds a (possibly aggregated) minorant that was generated
        from minorants returned by oracle calls, e.g. as in
  FunctionOracle::evaluate()

    @param[in] n_coords (int)
        the number of coordinate positions that have to be filled in

    @param[out] new_subgradient_values  (DVector &)
  the indices of these coordinate positions (sorted in
  strictly increasing order)

@return - 0 on success, - 1 if extension/update is impossible

source
ConicBundle.cb_extend_Box!Function
cb_extend_Box!(self::CBBoxPrimalExtender, param0::CBMatrix)

called by ConicBundle to update internal Ritz_vectors, has to return 0 on success

source
ConicBundle.cb_extend_Ritz!Function
cb_extend_Ritz!(self::CBPSCPrimalExtender, param0::CBMatrix)

called by ConicBundle to update internal Ritz_vectors, has to return 0 on success

source
ConicBundle.cb_extend_SOC!Function
cb_extend_SOC!(self::CBSOCPrimalExtender, param0::CBMatrix)

called by ConicBundle to update internal SOC vectors, has to return 0 on success

source
ConicBundle.cb_extract_SOCvector!Function
cb_extract_SOCvector!(self::CBSOCSupportFunction, SOCvec::CBMatrix, SOCminorant::Union{<:CBMinorant,Nothing})

see SOCOracle::extract_SOCvector()

source
ConicBundle.cb_findFunction
cb_find(self::CBMatrix, tol::Real = 1e-10)

returns an Indexmatrix ind so that (*this)(ind(i)) 0<=i<ind.dim() runs through all nonzero elements

source
cb_find(self::CBIndexmatrix)

returns an Indexmatrix ind so that (*this)(ind(i)) 0<=i<ind.dim() runs through all nonzero elements

source
ConicBundle.cb_find_numberFunction
cb_find_number(self::CBMatrix, num::Real = 0., tol::Real = 1e-10)

returns an Indexmatrix ind so that (*this)(ind(i)) 0<=i<ind.dim() runs through all elements of value num

source
cb_find_number(self::CBIndexmatrix, num::Integer = 0)

returns an Indexmatrix ind so that (*this)(ind(i)) 0<=i<ind.dim() runs through all elements having value num

source
ConicBundle.cb_from_dimFunction
cb_from_dim(self::CBAffineFunctionTransformation)

returns the dimension of the input argument or -1 if it is unknown

source
ConicBundle.cb_generate_minorant!Function
cb_generate_minorant!(self::CBPSCAffineFunction, P::CBMatrix)

see PSCOracle::generate_minorant()

source
cb_generate_minorant!(self::CBSOCSupportFunction, SOCvec::CBMatrix)

see SOCOracle::generate_minorant()

source
ConicBundle.cb_genmultFunction
cb_genmult(A::CBMatrix, B::CBMatrix, C::CBMatrix, alpha::Real, beta::Real, atrans::Integer, btrans::Integer)

returns C=betaC+alphaA*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBSymmatrix, B::CBMatrix, C::CBMatrix, alpha::Real, beta::Real, btrans::Integer)

returns C=betaC+alphaA*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBMatrix, B::CBSymmatrix, C::CBMatrix, alpha::Real, beta::Real, atrans::Integer)

returns C=betaC+alphaA*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBSparsesym, B::CBMatrix, C::CBMatrix, alpha::Real, beta::Real, btrans::Integer)

returns C=betaC+alphaA*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBMatrix, B::CBSparsesym, C::CBMatrix, alpha::Real, beta::Real, atrans::Integer)

returns C=betaC+alphaA*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBSparsemat, B::CBMatrix, C::CBMatrix, alpha::Real, beta::Real, atrans::Integer, btrans::Integer)

returns C=betaC+alphaA*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBSparsemat, B::CBMatrix, colB::Integer, C::CBMatrix, colC::Integer, alpha::Real, beta::Real, atrans::Integer, btrans::Integer)

returns C.col(colC)=betaC.col(colC)+alphaA*B.col(colB), where A and B may be transposed first; C must not be equal to A and B; if beta==0. then C is initialized, but the size of C must be correct already

source
cb_genmult(A::CBMatrix, B::CBSparsemat, C::CBMatrix, alpha::Real, beta::Real, atrans::Integer, btrans::Integer)

returns C=betaC+alphaA*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBIndexmatrix, B::CBIndexmatrix, C::CBIndexmatrix, alpha::Integer, beta::Integer, atrans::Integer, btrans::Integer)

returns C=betaC+alphaA*B, where A and B may be transposed; C must not be equal to A and B; if beta==0 then C is initialized to the correct size

source
cb_genmult(A::CBSparsemat, B::CBSparsemat, C::CBMatrix, alpha::Real, beta::Real, atrans::Integer, btrans::Integer)

returns C=betaC+alphaA*B, where A and B may be transposed; C must not be equal to A and B; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBSymmatrix, B::CBSparsemat, C::CBMatrix, alpha::Real, beta::Real, btrans::Integer)

returns C=betaC+alphaA*B, where B may be transposed; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBSparsemat, B::CBSymmatrix, C::CBMatrix, alpha::Real, beta::Real, atrans::Integer)

returns C=betaC+alphaA*B, where A may be transposed; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBSparsesym, B::CBSparsemat, C::CBMatrix, alpha::Real, beta::Real, btrans::Integer)

returns C=betaC+alphaA*B, where B may be transposed; if beta==0. then C is initialized to the correct size

source
cb_genmult(A::CBSparsemat, B::CBSparsesym, C::CBMatrix, alpha::Real, beta::Real, atrans::Integer)

returns C=betaC+alphaA*B, where A may be transposed; if beta==0. then C is initialized to the correct size

source
ConicBundle.cb_get_AFunction
cb_get_A(self::CBCMgramdense)

returns the const reference to the internal matrix A forming the Gram matrix

source
cb_get_A(self::CBCMgramsparse)

returns the const reference to the internal matrix A forming the Gram matrix

source
cb_get_A(self::CBCMgramsparse_withoutdiag)

returns the const reference to the internal matrix A forming the Gram matrix

source
cb_get_A(self::CBCMsymdense)

returns the const reference to the internal symmetric matrix

source
cb_get_A(self::CBCMsymsparse)

return the const reference to the internal sparse matrix

source
cb_get_A(self::CBQPSolver)

returns the constraint matrix of the feasible set

source
ConicBundle.cb_get_AbFunction
cb_get_Ab(self::CBUQPConeModelBlock, qp_A::CBMatrix, qp_b::CBMatrix)

store the local coefficients of matrices A and b in the positions corresponding to qpyrange (rows) and qpxrange (columns); returns 0 on success, 1 on failure

source
cb_get_Ab(self::CBUQPSumModelBlock, qp_A::CBMatrix, qp_b::CBMatrix)

get the A matrix of all subblocks and store it consistently

source
ConicBundle.cb_get_Bt!Function
cb_get_Bt!(self::CBQPConeModelBlock, Bt::CBMatrix, startindex_model::Integer, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

get the current matrix for the coupling matrix Bt in the first row of blocks

source
cb_get_Bt!(self::CBQPSumModelBlock, Bt::CBMatrix, startindex_model::Integer, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

get the current matrix for the coupling matrix Bt in the first row of blocks

source
ConicBundle.cb_get_C!Function
cb_get_C!(self::CBPSCAffineFunction)
  • returns the block representation of the coefficient matrices (each entry of the map represents a block by a SparseCoeffmatVector).
source
ConicBundle.cb_get_DFunction
cb_get_D(self::CBBundleDiagonalTrustRegionProx)

returns the diagonal D of the diagonal scaling matrix

source
ConicBundle.cb_get_HcholFunction
cb_get_Hchol(self::CBBundleDenseTrustRegionProx)

returns the stored factorization of H with weightu (up to date if get_factored()==true)

source
ConicBundle.cb_get_UVlambda!Function
cb_get_UVlambda!(self::CBVariableMetricSVDSelection, U::CBMatrix, V::CBMatrix, lam::CBMatrix, cand::CBMatrix)

for current ongoing experiments with variable metric routines

source
ConicBundle.cb_get_X!Function
cb_get_X!(self::CBUQPConeModelBlock, i::Integer, X::CBSymmatrix)

get the current primal positive semidefinite cone point to cone i (of the solution)

source
ConicBundle.cb_get_Z!Function
cb_get_Z!(self::CBUQPConeModelBlock, i::Integer, Z::CBSymmatrix)

get the current dual positive semidefinite cone point to cone i (of the solution)

source
ConicBundle.cb_get_additional_factorFunction
cb_get_additional_factor(self::CBAFTModification)

returns null if nothing or default values have to be appended, otherwise it points to a sparse matrix whose columns need to be appended to the matrix

source
ConicBundle.cb_get_aggr_dnormsqrFunction
cb_get_aggr_dnormsqr(self::CBBundleSolver)

returns the dual norm squared of the current aggregate (dual w.r.t. the quadratic proximal term)

source
cb_get_aggr_dnormsqr(self::CBBundleTerminator)

returns the current bound for the dual norm squared of the aggregate

source
ConicBundle.cb_get_aggregateFunction
cb_get_aggregate(self::CBSumBundle, ft::CBFunctionTask)

gets the corresponding aggregate (call only if a hasbundlefor(ft)==true)

source
cb_get_aggregate(self::CBBundleSolver, aggregate::CBMatrix)

returns the linear term of the current aggregate linear minorant (this should be called before any modifications, otherwise this may no longer be correct or may even cause an error)

source
ConicBundle.cb_get_aggregate_offsetFunction
cb_get_aggregate_offset(self::CBBundleSolver)

returns the offset of the current aggregate linear minorant (should be called before any modifications, otherwise this may no longer be correct)

source
ConicBundle.cb_get_append_colsFunction
cb_get_append_cols(self::CBAFTModification)

returns null if nothing or default values have to be appended, otherwise it points to a sparse matrix whose columns need to be appended to the matrix

source
ConicBundle.cb_get_append_costsFunction
cb_get_append_costs(self::CBAFTModification)

returns null if nothing or default values have to be appended, otherwise it points to a matrix whose entries need to be appended to the cost vector

source
cb_get_append_costs(self::CBGroundsetModification)

returns the change in the offste value of the groundset minorant

source
ConicBundle.cb_get_append_rhsFunction
cb_get_append_rhs(self::CBAFTModification)

returns null if nothing or default values have to be appended, otherwise it points to a matrix whose rows need to be appended to the argument offset

source
ConicBundle.cb_get_append_rowsFunction
cb_get_append_rows(self::CBAFTModification)

returns null if nothing or default values have to be appended, otherwise it points to a sparse matrix whose rows need to be appended to the matrix

source
ConicBundle.cb_get_appended_vardimFunction
cb_get_appended_vardim(self::CBAFTModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
cb_get_appended_vardim(self::CBGroundsetModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
cb_get_appended_vardim(self::CBNNCBoxSupportModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
cb_get_appended_vardim(self::CBPSCAffineModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
cb_get_appended_vardim(self::CBSOCSupportModification)

returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)

source
ConicBundle.cb_get_approximate_primalFunction
cb_get_approximate_primal(self::CBMatrixCBSolver, function_::CBFunctionObject)
  • @brief returns the current approximate primal solution corresponding to the aggregate subgradient of the specified @a function.

      PrimalData solutions must have been supplied in all previous
      calls to evaluate; In this case it returns the current approximate
      primal solution aggregated alongside with the aggregate subgradient.
      A primal solution may not be available after addition of constraints,
      if extension of the aggregate subgradient to the new coordinates failed.

    If no primal data is availalbe, the function returns NULL.

    @return - pointer to the primal data of the aggregate of this function object - 0 if no primal is available

source
cb_get_approximate_primal(self::CBBoxData)

return the PrimalData corresponding to the aggregate

source
cb_get_approximate_primal(self::CBNNCData)

return the PrimalData corresponding to the aggregate

source
cb_get_approximate_primal(self::CBPSCData)

return the PrimalData corresponding to the aggregate

source
cb_get_approximate_primal(self::CBSOCData)

return the PrimalData corresponding to the aggregate

source
cb_get_approximate_primal(self::CBAFTModel)

an AFT has no primals, so it returns 1, see SumBlockModel::getapproximateprimal

source
cb_get_approximate_primal(self::CBBoxModel)

see SumBlockModel::getapproximateprimal

source
cb_get_approximate_primal(self::CBNNCModel)

see SumBlockModel::getapproximateprimal

source
cb_get_approximate_primal(self::CBPSCModel)

see SumBlockModel::getapproximateprimal

source
cb_get_approximate_primal(self::CBSOCModel)

see SumBlockModel::getapproximateprimal

source
cb_get_approximate_primal(self::CBSumModel)

this has no primals, so it returns 1, see SumBlockModel::getapproximateprimal

source
ConicBundle.cb_get_approximate_slacksMethod
cb_get_approximate_slacks(self::CBMatrixCBSolver, param0::CBMatrix)
  • @brief Returns the multipliers for the box constraints on the design variables; in Lagrangean relaxation they may be interpreted as primal slacks

for inequality constraints. @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_get_arg_offsetFunction
cb_get_arg_offset(self::CBAffineFunctionTransformation)

returns the pointer to the constant offset added to the argument (not neeeded in the code)

source
ConicBundle.cb_get_arg_trafoFunction
cb_get_arg_trafo(self::CBAffineFunctionTransformation)

returns the pointer to the linear transformation of the argument (not neeeded in the code)

source
ConicBundle.cb_get_augvalfailsFunction
cb_get_augvalfails(self::CBBundleSolver)

returns the number of failures to increase the augmented model value since the last null/descent step

source
ConicBundle.cb_get_avg_reductionFunction
cb_get_avg_reduction(self::CBMinRes)

returns the average of the achieved reduction factor per iteration

source
cb_get_avg_reduction(self::CBPCG)

returns the average of the achieved reduction factor per iteration

source
cb_get_avg_reduction(self::CBPsqmr)

returns the average of the achieved reduction factor per iteration

source
ConicBundle.cb_get_block_appendFunction
cb_get_block_append(self::CBPSCAffineModification)

returns null if nothing or default values have to be appended, otherwise it points to a sparse matrix whose rows need to be appended to the matrix

source
ConicBundle.cb_get_boxx!Function
cb_get_boxx!(self::CBQPConeModelBlock, boxx::CBMatrix, linx_activity::Union{<:CBMatrix,Nothing} = nothing, cautious::Bool = false)

get the box part of modelx (and a guess, which of the bounds are active, in {0.,1.})

source
cb_get_boxx!(self::CBUQPConeModelBlock, param0::CBMatrix, param1::Union{<:CBMatrix,Nothing} = nothing, cautious::Bool = false)

get the box part of modelx (and a guess, which of the bounds are active, in {0.,1.})

source
ConicBundle.cb_get_bundleFunction
cb_get_bundle(self::CBSumBundle, ft::CBFunctionTask)

gets the corresponding minorants (call only if a hasbundlefor(ft)==true)

source
ConicBundle.cb_get_bundle_dataFunction
cb_get_bundle_data(self::CBMatrixCBSolver, function_::Union{<:CBFunctionObject,Nothing} = nothing)
  • @brief Returns all current bundle data of the cutting model of the specified @a function.

    This may differ for predefined special functions with derived classes.

    @param[in] function if the aggregate subgradient of a particular function is desired, provide the pointer here, otherwise this referrs to the root function (if there is only one function to be optimized over, this is this single function, otherwise it is the sum of functions)

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_get_bundle_parametersMethod
cb_get_bundle_parameters(self::CBMatrixCBSolver, function_::Union{<:CBFunctionObject,Nothing} = nothing)
  • @brief Retrieves current bundle parameters (not the actual size in use!) as set for the cutting model of the specified @a function.

This may differ for predefined special functions with derived BundleParameter classes.

If the code is asked to optimize over the sum of several functions, it usually does this with a separate model for each function. If there are too many function for this, it may be worth to consider using the SumBundle features. For this see also setsumbundleparameters(). If the root function is a sum of functions, passing a SumModelParametersObject here allows to specify how many local models should be kept by SumModelParametersObject::setmaxlocal_models() and how these should be selected. A possible implementation for this is given in SumModelParameters.

@param[in] function
  if the aggregate subgradient of a particular function is desired,
  provide the pointer here, otherwise this referrs to the root function
  (if there is only one function to be optimized over, this is this single
  function, otherwise it is the sum of functions)

@return
  - 0 on success
  - != 0 otherwise
source
ConicBundle.cb_get_cand_minorantFunction
cb_get_cand_minorant(self::CBSumBundle, ft::CBFunctionTask)

gets the corresponding candidate minorant (call only if a hasbundlefor(ft)==true)

source
ConicBundle.cb_get_cand_yFunction
cb_get_cand_y(self::CBBundleSolver)

returns the most recent candidate @a cand_y (after a descent step this is the same as the candidate)

source
ConicBundle.cb_get_candidateMethod
cb_get_candidate(self::CBMatrixCBSolver, center::CBMatrix)
  • @brief Returns the last point, the "candidate", at which the function was evaluated in solve().

      If this evaluation lead to a descent step, it is the same point as

    in get_center().

    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_get_candidate_primalFunction
cb_get_candidate_primal(self::CBMatrixCBSolver, function_::CBFunctionObject)
  • @brief Returns the primal solution corresponding to the best epsilon subgradient returned in the evaluation of the specified @a function at the point get_candidate. If no primal data is availalbe, the function returns NULL.

    @return - pointer to the primal data of the minorant returned on evaluation of this function object at the current candidate - 0 if no primal is available

source
cb_get_candidate_primal(self::CBBoxData)

return the PrimalData delivered by the last call of BoxOracle::evaluate()

source
cb_get_candidate_primal(self::CBNNCData)

return the PrimalData delivered by the last call of FunctionOracle::evaluate()

source
cb_get_candidate_primal(self::CBPSCData)

return the PrimalData delivered by the last call of FunctionOracle::evaluate()

source
cb_get_candidate_primal(self::CBSOCData)

return the PrimalData delivered by the last call of FunctionOracle::evaluate()

source
cb_get_candidate_primal(self::CBAFTModel)

an AFT has no primals, so it returns 1, see SumBlockModel::getcandidateprimal

source
cb_get_candidate_primal(self::CBBoxModel)

see SumBlockModel::getcandidateprimal

source
cb_get_candidate_primal(self::CBNNCModel)

see SumBlockModel::getcandidateprimal

source
cb_get_candidate_primal(self::CBPSCModel)

see SumBlockModel::getcandidateprimal

source
cb_get_candidate_primal(self::CBSOCModel)

see SumBlockModel::getcandidateprimal

source
cb_get_candidate_primal(self::CBSumModel)

this has no primals, so it returns 1, see SumBlockModel::getcandidateprimal

source
ConicBundle.cb_get_candidate_valueMethod
cb_get_candidate_value(self::CBMatrixCBSolver)
  • @brief Returns the objective value computed in the last step of solve(), independent of whether this was a descent step or a null step (initially undefined).

      If no problem modification routines were called since then, it is the
      objective value at the point returned by get_candidate(). If this
      last evaluation led to a descent step, then it is the same value as
      in get_objval().
source
ConicBundle.cb_get_centerMethod
cb_get_center(self::CBMatrixCBSolver, center::CBMatrix)
  • @brief Returns the next center point that was produced by the latest call to solve (in some problem modification routines the center point may be updated immediately, in others the center point will be corrected automatically directly before starting the next descent step and its values may be infeasible till then).

    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_get_center_minorant!Function
cb_get_center_minorant!(self::CBAFTModel, minorant::CBMinorantPointer, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

see SumBlockModel::getcenterminorant

source
cb_get_center_minorant!(self::CBSumModel, minorant::CBMinorantPointer, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

see SumBlockModel::getcenterminorant()

source
ConicBundle.cb_get_center_primalFunction
cb_get_center_primal(self::CBMatrixCBSolver, function_::CBFunctionObject)
  • @brief Returns the primal solution corresponding to the best epsilon subgradient returned in the evaluation of the specified @a function at the current center point. If no primal data is availalbe, the function returns NULL.

    @return - pointer to the primal data of the minorant returned on evaluation of this function object at the current center - 0 if no primal is available

source
cb_get_center_primal(self::CBBoxData)

return the PrimalData corresponding to the aggregate

source
cb_get_center_primal(self::CBNNCData)

return the PrimalData corresponding to the aggregate

source
cb_get_center_primal(self::CBPSCData)

return the PrimalData corresponding to the aggregate

source
cb_get_center_primal(self::CBSOCData)

return the PrimalData corresponding to the aggregate

source
cb_get_center_primal(self::CBAFTModel)

an AFT has no primals, so it returns 1, see SumBlockModel::getcenterprimal

source
cb_get_center_primal(self::CBBoxModel)

see SumBlockModel::getcneterprimal

source
cb_get_center_primal(self::CBNNCModel)

see SumBlockModel::getcenterprimal

source
cb_get_center_primal(self::CBPSCModel)

see SumBlockModel::getcenterprimal

source
cb_get_center_primal(self::CBSOCModel)

see SumBlockModel::getcenterprimal

source
cb_get_center_primal(self::CBSumModel)

this has no primals, so it returns 1, see SumBlockModel::getcenterprimal

source
ConicBundle.cb_get_center_yFunction
cb_get_center_y(self::CBBundleSolver)

returns the current center of stability @a center_y (after a descent step this is the same as the candidate)

source
ConicBundle.cb_get_coeffFunction
cb_get_coeff(self::CBSumBundle, ft::CBFunctionTask)

gets the corresponding aggregation coefficients (call only if a hasbundlefor(ft)==true)

source
ConicBundle.cb_get_colindexFunction
cb_get_colindex(self::CBSparsemat)

returns the index vector of the column representation holding the row index for each element

source
cb_get_colindex(self::CBSparsesym)

returns the index vector of the column representation holding the row index for each element

source
ConicBundle.cb_get_colinfoFunction
cb_get_colinfo(self::CBSparsemat)

returns information on nonzero columns, k by 3, listing: index, %#nonzeros, first index in colindex/colval

source
cb_get_colinfo(self::CBSparsesym)

returns information on nozero diagonal/columns, k by 4, listing: index (<0 for diagonal), # nonzeros, first index in colindex/colval, index in suppport submatrix

source
ConicBundle.cb_get_colvalFunction
cb_get_colval(self::CBSparsemat)

returns the value vector of the column representation holding the value for each element

source
cb_get_colval(self::CBSparsesym)

returns the value vector of the column representation holding the value for each element

source
ConicBundle.cb_get_contributed_model_aggregateFunction
cb_get_contributed_model_aggregate(self::CBSumBundle, aggregate::CBMinorantPointer, factor::Real = 1., aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

get the aggregate that is due to child parts of the sumbundle, which are contributed to parents

source
ConicBundle.cb_get_corr!Function
cb_get_corr!(self::CBUQPConeModelBlock, xcorr::CBMatrix, rhs::CBMatrix, mu::Real)
  • @brief supply the information for the corrector

    on input (w.r.t. corresponding positions) xcorr = 0 rhs as on output of addlocalsys

    on output the corresponding positions of xcorr should hold the corrector term of the search direction, eg, xcorr = mux^{-1} - x^{-1}dx*dz, and if the block holds additional local variables as in addlocalsys then

           rhs += B*(mu * t^{-1}- t^{-1}*dt*ds)

    has to be called after suggest_mu which computes the other directions

source
cb_get_corr!(self::CBUQPSumModelBlock, xcorr::CBMatrix, rhs::CBMatrix, mu::Real)

get this from all subblocks

source
ConicBundle.cb_get_costsFunction
cb_get_costs(self::CBMatrixCBSolver, costs::CBMatrix)
  • @brief If a linear cost vector was specified, costs will hold these values, otherwise the vector is initialized to zero (for the current dimension)
source
ConicBundle.cb_get_cutvalFunction
cb_get_cutval(self::CBMatrixCBSolver)
  • @brief Returns the cutting model value resulting from last call to solve() (initially undefined).
source
ConicBundle.cb_get_dataFunction
cb_get_data(self::CBAFTModel)

see SumBlockModel::get_data

source
cb_get_data(self::CBBoxModel)

see SumBlockModel::get_data

source
cb_get_data(self::CBNNCModel)

see SumBlockModel::get_data

source
cb_get_data(self::CBPSCModel)

see SumBlockModel::get_data

source
cb_get_data(self::CBSOCModel)

see SumBlockModel::get_data

source
cb_get_data(self::CBSumModel)

see SumBlockModel::get_data()

source
ConicBundle.cb_get_data!Function
cb_get_data!(self::CBAFTModel)

see SumBlockModel::get_data

source
cb_get_data!(self::CBBoxModel)

see SumBlockModel::get_data

source
cb_get_data!(self::CBNNCModel)

see SumBlockModel::get_data

source
cb_get_data!(self::CBPSCModel)

see SumBlockModel::get_data

source
cb_get_data!(self::CBSOCModel)

see SumBlockModel::get_data

source
cb_get_data!(self::CBSumModel)

see SumBlockModel::get_data()

source
ConicBundle.cb_get_dense_coeff_store!Function
cb_get_dense_coeff_store!(self::CBMinorant, n_elements::Integer)

*@brief If the returned pointer is not NULL it gives direct access to the array of current coefficient values with indices 0 up to n_elements-1;

  If the return value is NULL, the representation may not be
  available or access to the store may not be granted; in this case
  other routines like get_coeffs and add_coeffs have to be used.

  This routine is mainly intended for increasing efficiency in
  some internal computations; the validity of the pointer returned
  may get lost with any call to any other routine of this Minorant,
  so during manipulations of the stored values no other routines
  should be called. Needless to say, this routine should only be
  used by experts.
source
ConicBundle.cb_get_descent_stepFunction
cb_get_descent_step(self::CBMatrixCBSolver)
  • @brief returns true if the last evaluation of the last call to solve() resulted in a descent step

    Mind: if there was no (succesdful) evaluation, neither getdescentstep() nor getnullstep() will return true;

source
cb_get_descent_step(self::CBBundleSolver)

returns true if the latest iteration resulted in a descent step (note, getdescentstep() and getnullstep() may both return false e.g. if termination occurs)

source
ConicBundle.cb_get_dimMethod
cb_get_dim(self::CBLPGroundset)

returns the dimension of the ground set, i.e., the length of the variables vector y

source
ConicBundle.cb_get_dimMethod
cb_get_dim(self::CBMatrixCBSolver)
  • @brief Returns the current dimension of the design space/argument or -1 if no dimension is set.
source
ConicBundle.cb_get_dimMethod
cb_get_dim(self::CBUnconstrainedGroundset)

returns the dimension of the ground set, i.e., the length of the variables vector y

source
ConicBundle.cb_get_do_variable_metricFunction
cb_get_do_variable_metric(self::CBBundleSolver)

returns true if the proximal term is not of the type BundleIdProx, i.e. if it is not simply the squared Euclidean norm

source
ConicBundle.cb_get_edgeFunction
cb_get_edge(self::CBSparsemat, i::Integer)

stores element i of the getedgerep() function (ordered as in row representation); returns 1 if i is out of range, 0 otherwise.

source
ConicBundle.cb_get_edge_repFunction
cb_get_edge_rep(self::CBSparsemat, I::CBIndexmatrix, J::CBIndexmatrix, val::CBMatrix)

stores the nz nonzero values of *this in I,J,val so that this(I(i),J(i))=val(i) for i=0,...,nz-1 and dim(I)=dim(J)=dim(val)=nz (ordered as in row representation)

source
cb_get_edge_rep(self::CBSparsesym, I::CBIndexmatrix, J::CBIndexmatrix, val::CBMatrix)

stores the nz nonzero values of the lower triangle of *this in I,J,val so that this(I(i),J(i))=val(i) for i=0,...,nz-1 and dim(I)=dim(J)=dim(val)=nz (ordered as in row representation)

source
ConicBundle.cb_get_errFunction
cb_get_err(self::CBMinRes)

returns the error code of the last call

source
cb_get_err(self::CBPCG)

returns the error code of the last call

source
cb_get_err(self::CBPsqmr)

returns the error code of the last call

source
ConicBundle.cb_get_factoredFunction
cb_get_factored(self::CBBundleDenseTrustRegionProx)

returns true iff get_Hchol() returns the factord matrix of H with weightu

source
ConicBundle.cb_get_fixed_active_boundsMethod
cb_get_fixed_active_bounds(self::CBMatrixCBSolver)
  • @brief Returns NULL or (iff active bound fixing is turned on in setactivebounds_fixing()) the indicator vector of variables temporarily fixed to the center value due to significantly positive multipliers for the box constraints.

      A variable gets fixed to the bound only if the center is

    already a the bound and in some iteration the dual variables to the bound constraint indicate that the bound is strongly active also for the candidate. Of course this migh just hold for one candidate and there is no guarantee that the bound is also strongly active in an optimal solution. Thus, this mainly a heuristic to eliminate less important variables quickly from entering the subproblem.

source
ConicBundle.cb_get_function_minorant!Function
cb_get_function_minorant!(self::CBAFTModel, minorant::CBMinorantPointer, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

see SumBlockModel::getfunctionminorant

source
cb_get_function_minorant!(self::CBSumModel, minorant::CBMinorantPointer, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

see SumBlockModel::getfunctionminorant()

source
ConicBundle.cb_get_function_statusMethod
cb_get_function_status(self::CBMatrixCBSolver, function_::CBFunctionObject)
  • @brief Returns the return value of the latest evaluation call to this @a function.
source
ConicBundle.cb_get_generating_primalFunction
cb_get_generating_primal(self::CBPSCAffineModification)

returns the generating primal pointer stored here (may be NULL); if getresetprimal() is true, the PSCAffineFunction should either delete its generating primal (NULL) or replace its generating primal by a clone of this one

source
ConicBundle.cb_get_groundset_idFunction
cb_get_groundset_id(self::CBLPGroundset)

returns the current groundset_id, increased values indicate changes in the ground set

source
cb_get_groundset_id(self::CBUnconstrainedGroundset)

returns the current groundset_id, increased values indicate changes in the ground set

source
ConicBundle.cb_get_gs_aggregateFunction
cb_get_gs_aggregate(self::CBLPGroundset)

returns the groundset aggregate computed in candidate()

source
cb_get_gs_aggregate(self::CBUnconstrainedGroundset)

returns the groundset aggregate computed in candidate()

source
cb_get_gs_aggregate(self::CBBundleSolver)

returns the linear term of the current groundset aggregate linear minorant

source
ConicBundle.cb_get_gs_minorantFunction
cb_get_gs_minorant(self::CBLPGroundset)

returns the linear minorant valid on the entire ground set (e.g. a linear cost funciton)

source
cb_get_gs_minorant(self::CBUnconstrainedGroundset)

returns the linear minorant valid on the entire ground set (e.g. a linear cost funciton)

source
ConicBundle.cb_get_last_weightMethod
cb_get_last_weight(self::CBMatrixCBSolver)
  • @brief Returns the current weight for the quadratic term in the augmented subproblem (may be interpreted as 1./step_size or 1./trustregion-radius).
source
ConicBundle.cb_get_lboundsFunction
cb_get_lbounds(self::CBMatrixCBSolver)
  • @brief Returns a pointer to the vector of lower bounds or null if there is no such vector
source
ConicBundle.cb_get_lbyFunction
cb_get_lby(self::CBQPSolver)

returns the lower bounds on y

source
cb_get_lby(self::CBLPGroundset)

returns the lower bounds vector on y if it exists

source
ConicBundle.cb_get_linear_costFunction
cb_get_linear_cost(self::CBAffineFunctionTransformation)

returns the pointer to the linear term added to the funciton

source
cb_get_linear_cost(self::CBAffineFunctionTransformation, i::Integer)

returns the value of the linear cost coefficient for @a i>=0 and for i==-1 the constant offset

source
ConicBundle.cb_get_lmin_invM1!Function
cb_get_lmin_invM1!(self::CBQPKKTSubspaceHPrecond)

return (an estimate of) the minimum eigenvalue of the preconditioner M1^{-1}; this is used, e.g., to correct the precission in MINRES

source
ConicBundle.cb_get_local_dualcostFunction
cb_get_local_dualcost(self::CBUQPConeModelBlock)

returns the current local dual cost contribution

source
cb_get_local_dualcost(self::CBUQPSumModelBlock)

get joint dualcost of all subblocks

source
ConicBundle.cb_get_local_model_aggregateFunction
cb_get_local_model_aggregate(self::CBSumBundle, aggregate::CBMinorantPointer, factor::Real = 1., aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

get the aggregate that is due to root sumbundle parts handled here

source
ConicBundle.cb_get_local_primalcostFunction
cb_get_local_primalcost(self::CBUQPConeModelBlock)

returns the current local primal cost contribution <d,s>

source
cb_get_local_primalcost(self::CBUQPSumModelBlock)

get joint primalcost of all subblocks

source
ConicBundle.cb_get_lower_bounds!Function
cb_get_lower_bounds!(self::CBBoxOracle)
  • @brief returns the lower bounds vector of the box
source
cb_get_lower_bounds!(self::CBNNCBoxSupportFunction)

returns the column vector of lower bounds

source
ConicBundle.cb_get_map_to_old_variablesFunction
cb_get_map_to_old_variables(self::CBAFTModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
cb_get_map_to_old_variables(self::CBGroundsetModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
cb_get_map_to_old_variables(self::CBNNCBoxSupportModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
cb_get_map_to_old_variables(self::CBPSCAffineModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
cb_get_map_to_old_variables(self::CBSOCSupportModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
ConicBundle.cb_get_maxitFunction
cb_get_maxit(self::CBMinRes)

get maximum number of iterations

source
cb_get_maxit(self::CBPCG)

get maximum number of iterations

source
cb_get_maxit(self::CBPsqmr)

get maximum number of iterations

source
Missing docstring.

Missing docstring for cb_get_maxweight. Check Documenter's build log for details.

ConicBundle.cb_get_minorantFunction
cb_get_minorant(self::CBMinorantPointer)

returns the Minorant *this points to or 0 if empty

source
cb_get_minorant(self::CBMinorantPointer, mat::CBMatrix, column::Integer, alpha::Real = 1., add::Bool = false, skip_fixed::Union{<:CBIndexmatrix,Nothing} = nothing, fixed_vals::Union{<:CBMatrix,Nothing} = nothing)

*@brief store/add the minorant in offset and a matrix column, possibly skipping indices skip_fixed. The coordinats of the latter ones are multiplied by the given values or 0 and added to offset

   The dimensions of the matrix must already fit the requirements on input.
   If add is false (as by default), the full length of the column
   is initialized to the gradient and filled up with zeros where needed.
   skip_fixed and fixed_vals must both be given or both not be given.
   If they are both given, both must have the same length.
   If skip_fixed is given, it must have strictly increasing indices.
   The skip part of the routine is used in implementations of BundleScaling::get_QP_costs.
source
cb_get_minorant(self::CBMinorantPointer, mp::CBMinorantPointer, alpha::Real = 1.)

*@brief store/add the minorant in/to mp, possibly scaled by alpha

   If mp is empty, store it there, if mp is not empty, add it.

   if *this is empty, it causes an error.
source
cb_get_minorant(self::CBMinorantPointer, mp::CBMinorantPointer, alpha::Real, sp::Union{<:CBSparsemat,Nothing}, provided_row_indices::Union{<:CBIndexmatrix,Nothing} = nothing, needed_col_indices::Union{<:CBIndexmatrix,Nothing} = nothing, enforce_copy::Bool = false)

*@brief store/add the minorant in/to mp, possibly scaled by alpha and transformed by sp, which possibly requires only the indices of providedrowindices to compute possibly only the indices in neededcolindices

   If mp is empty, store it there, if mp is not empty, add it.

   if sp==0, it is treated as the identity

   If provided_row_indices or needed_col_indices is given, its indices must
   be in strictly increasing order.  For sp==0 both must coincide and will
   probably be ignored by just returning a scaled reference to *this in mp.

   if *this is empty, it causes an error.
source
cb_get_minorant(self::CBMinorantUseData)

return the final minorant (by a recursive call) or 0 if there is none

source
Missing docstring.

Missing docstring for cb_get_minweight. Check Documenter's build log for details.

ConicBundle.cb_get_modeFunction
cb_get_mode(self::CBSumBundle, ft::CBFunctionTask)

gets the corresponding mode (call only if a hasbundlefor(ft)==true)

source
ConicBundle.cb_get_model_aggregate!Function
cb_get_model_aggregate!(self::CBAFTModel, model_aggregate::CBMinorantPointer, all_parts::Bool = true, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

see SumBlockModle::getmodleaggregate(CHMatrixClasses::Integer&,CHMatrixClasses::Real&,CHMatrixClasses::Matrix&,bool,bool,const AffineFunctionTransformation*)

source
ConicBundle.cb_get_model_dataFunction
cb_get_model_data(self::CBNNCData, model_minorants::CBMinorantBundle, model_coeff::CBMatrix)

the minorants currently used in the model; the list may be empty or max contain other minorants than returned in getlatestminorants(); the minorants still need to be mutliplied by function_factor

source
ConicBundle.cb_get_modeldcstr!Function
cb_get_modeldcstr!(self::CBQPConeModelBlock, modeldcstr::CBMatrix, startindex_constraints::Integer)

set the local modeldcstr value in modeldcstr beginning with startindex (initialize it, do not add)

source
cb_get_modeldcstr!(self::CBQPSumModelBlock, modeldcstr::CBMatrix, startindex_constraints::Integer)

set the local modeldcstr value in modeldcstr beginning with startindex (initialize it, do not add)

source
ConicBundle.cb_get_modeldx!Function
cb_get_modeldx!(self::CBQPConeModelBlock, modeldx::CBMatrix, startindex_model::Integer)

set the local modeldx value in modeldx beginning with startindex (initialize it, do not add)

source
cb_get_modeldx!(self::CBQPSumModelBlock, modeldx::CBMatrix, startindex_model::Integer)

set the local modeldx value in modeldx beginning with startindex (initialize it, do not add)

source
ConicBundle.cb_get_modelvalFunction
cb_get_modelval(self::CBBundleSolver)

returns the model value in the candidate that was used for deciding on null/descent step

source
ConicBundle.cb_get_modelx!Function
cb_get_modelx!(self::CBQPConeModelBlock, modelx::CBMatrix, startindex_model::Integer)

set the local modelx value in modelx beginning with startindex (initialize it, do not add)

source
cb_get_modelx!(self::CBQPSumModelBlock, modelx::CBMatrix, startindex_model::Integer)

set the local modelx value in modelx beginning with startindex (initialize it, do not add)

source
ConicBundle.cb_get_mu_infoFunction
cb_get_mu_info(self::CBQPConeModelBlock)

add dimensions of the primal-dual pairs to mudim and add the "trace" (the inner product with center) of the respective primal-dual pair products for the current step; update the min and max values of xi*zi

source
cb_get_mu_info(self::CBQPSumModelBlock)

add dimensions of the primal-dual pairs to mudim and add the "trace" (the inner product with center) of the respective primal-dual pair products for the current step; update the min and max values of xi*zi

source
ConicBundle.cb_get_mu_stats!Function
cb_get_mu_stats!(self::CBQPKKTSolverComparison, lbmu::Real, ubmu::Real, dims::CBIndexmatrix, mu::CBMatrix, prepsecs::CBMatrix, predsecs::CBMatrix, corrsecs::CBMatrix, predcalls::CBIndexmatrix, corrcalls::CBIndexmatrix, cond::CBMatrix, pccols::CBIndexmatrix, sysviol::CBMatrix)

return those data columns (each a KKT system; columns are more efficient to append than lines) that fall into the given lower and upper bounds on mu

source
ConicBundle.cb_get_nbh_infoFunction
cb_get_nbh_info(self::CBQPConeModelBlock, mudim::Integer, tr_xz::Real, tr_xdzpdxz::Real, tr_dxdz::Real, nbh_ubnd::Real)

for limiting the stepsize with respect to the neighborhood this information about norms and inner products of x(.)z-trxz-trxz/mudim(.)1, x.()dz+dx(.)z-trxdzpdxz/mudim(.)1, and dx(.)dz-trdxdz/mudim(.)1 is required, each block *adds its contribution to the numbers

source
cb_get_nbh_info(self::CBQPSumModelBlock, mudim::Integer, tr_xz::Real, tr_xdzpdxz::Real, tr_dxdz::Real, nbh_ubnd::Real)

for limiting the stepsize with respect to the neighborhood this information about norms and inner products of x(.)z-trxz-trxz/mudim(.)1, x.()dz+dx(.)z-trxdzpdxz/mudim(.)1, and dx(.)dz-trdxdz/mudim(.)1 is required, each block *adds its contribution to the numbers

source
ConicBundle.cb_get_new_vardimFunction
cb_get_new_vardim(self::CBAFTModification)

returns the number of variables once all stored modifications have been performed

source
cb_get_new_vardim(self::CBGroundsetModification)

returns the number of variables once all stored modifications have been performed

source
cb_get_new_vardim(self::CBNNCBoxSupportModification)

returns the number of variables once all stored modifications have been performed

source
cb_get_new_vardim(self::CBPSCAffineModification)

returns the number of variables once all stored modifications have been performed

source
cb_get_new_vardim(self::CBSOCSupportModification)

returns the number of variables once all stored modifications have been performed

source
ConicBundle.cb_get_next_weightFunction
cb_get_next_weight(self::CBMatrixCBSolver)
  • @brief Returns the next weight for the quadratic term in the augmented subproblem suggested by the internal weight updating heuristic
source
ConicBundle.cb_get_next_weight_setFunction
cb_get_next_weight_set(self::CBBundleHKWeight)

true if the next weight was prespecified externally

source
cb_get_next_weight_set(self::CBBundleRQBWeight)

true if the next weight was prespecified externally

source
ConicBundle.cb_get_nmultFunction
cb_get_nmult(self::CBMinRes)

returns the number of matrix-vector multiplications of the last call

source
cb_get_nmult(self::CBPCG)

returns the number of matrix-vector multiplications of the last call

source
cb_get_nmult(self::CBPsqmr)

returns the number of matrix-vector multiplications of the last call

source
ConicBundle.cb_get_nncx!Function
cb_get_nncx!(self::CBQPConeModelBlock, nncx::CBMatrix, nncx_activity::Union{<:CBMatrix,Nothing} = nothing, cautious::Bool = false)

get the linear part of modelx (and a guess, which of them are active, in {0.,1.})

source
cb_get_nncx!(self::CBUQPConeModelBlock, nncx::CBMatrix, nncx_activity::Union{<:CBMatrix,Nothing} = nothing, cautious::Bool = false)

get the linear part of modelx (and a guess, which of them are active, in {0.,1.})

source
ConicBundle.cb_get_nncz!Function
cb_get_nncz!(self::CBUQPConeModelBlock, vecz::CBMatrix)

get the current dual non negative cone point (of the solution)

source
ConicBundle.cb_get_null_stepFunction
cb_get_null_step(self::CBMatrixCBSolver)
  • @brief returns true if the last evaluation of the last call to solve() resulted in a null step

    Mind: if there was no (successful) evaluation, neither getdescentstep() nor getnullstep() will return true;

source
cb_get_null_step(self::CBBundleSolver)

returns true if the latest iteration resulted in a null step (note, getdescentstep() and getnullstep() may both return false e.g. if termination occurs)

source
ConicBundle.cb_get_objvalMethod
cb_get_objval(self::CBMatrixCBSolver)
  • @brief Returns the objective value resulting from last descent step (initially undefined). If no problem modification routines were called since then, it is the objective value at the point returned by get_center().
source
ConicBundle.cb_get_offset_appendFunction
cb_get_offset_append(self::CBPSCAffineModification)

returns null if nothing or default values have to be appended, otherwise it points to a matrix whose entries need to be appended to the right hand side lower bounds vector

source
ConicBundle.cb_get_old_X!Function
cb_get_old_X!(self::CBUQPConeModelBlock, i::Integer, X::CBSymmatrix)

get the previous primal positive semidefinite cone point to cone i (of the solution)

source
ConicBundle.cb_get_old_Z!Function
cb_get_old_Z!(self::CBUQPConeModelBlock, i::Integer, Z::CBSymmatrix)

get the previous dual positive semidefinite cone point to cone i (of the solution)

source
ConicBundle.cb_get_old_nncx!Function
cb_get_old_nncx!(self::CBUQPConeModelBlock, vecx::CBMatrix)

get the previous primal non negative cone point (of the solution)

source
ConicBundle.cb_get_old_socx!Function
cb_get_old_socx!(self::CBUQPConeModelBlock, i::Integer, vecx::CBMatrix)

get the previous primal second order cone point to cone i (of the solution)

source
ConicBundle.cb_get_old_socz!Function
cb_get_old_socz!(self::CBUQPConeModelBlock, i::Integer, vecz::CBMatrix)

get the previous dual second order cone point to cone i (of the solution)

source
ConicBundle.cb_get_old_vardimFunction
cb_get_old_vardim(self::CBAFTModification)

returns the number of variables before modification

source
cb_get_old_vardim(self::CBGroundsetModification)

returns the number of variables before modification

source
cb_get_old_vardim(self::CBNNCBoxSupportModification)

returns the number of variables before modification

source
cb_get_old_vardim(self::CBPSCAffineModification)

returns the number of variables before modification

source
cb_get_old_vardim(self::CBSOCSupportModification)

returns the number of variables before modification

source
ConicBundle.cb_get_opAt!Function
cb_get_opAt!(self::CBPSCAffineFunction)
  • returns the row representation of the coefficient matrices (each entry of the map represents a row by a SparseCoeffmatVector).
source
ConicBundle.cb_get_oracle_object!Function
cb_get_oracle_object!(self::CBAFTModel)

as AFTModel has no oracle of its own, this returns the dummy oracle

source
cb_get_oracle_object!(self::CBBoxModel)

returns the oracle

source
cb_get_oracle_object!(self::CBNNCModel)

returns the oracle

source
cb_get_oracle_object!(self::CBPSCModel)

returns the oracle

source
cb_get_oracle_object!(self::CBSOCModel)

returns the oracle

source
cb_get_oracle_object!(self::CBSumModel)

as AFTModel has no oracle of its own, this returns the dummy oracle

source
ConicBundle.cb_get_positiveFunction
cb_get_positive(self::CBCMgramdense)

returns the flag on whether the Gram matrix is used in positive or negative form

source
cb_get_positive(self::CBCMgramsparse)

returns the flag on whether the Gram matrix is used in positive or negative form

source
cb_get_positive(self::CBCMgramsparse_withoutdiag)

returns the flag on whether the Gram matrix is used in positive or negative form

source
ConicBundle.cb_get_precond_rank!Function
cb_get_precond_rank!(self::CBQPKKTSubspaceHPrecond)

for evaluation purposes with iterative solvers, return the rank of the precondiontioner used (or the number of n-vector multiplications per call)

source
ConicBundle.cb_get_primalFunction
cb_get_primal(self::CBMinorant)

returns NULL if there is no primal data and otherwise a pointer to it (const version)

source
ConicBundle.cb_get_primal!Function
cb_get_primal!(self::CBMinorantPointer)

returns the primal of the Minorant *this points to or 0 if empty (first carrying out any pending scalings on the minorant)

source
cb_get_primal!(self::CBMinorant)

returns NULL if there is no primal data and otherwise a pointer to it

source
ConicBundle.cb_get_prob_stats!Function
cb_get_prob_stats!(self::CBQPKKTSolverComparison, dims::CBIndexmatrix, iterations::CBIndexmatrix, lastmu::CBMatrix, prepsecs::CBMatrix, predsecs::CBMatrix, corrsecs::CBMatrix, predcalls::CBIndexmatrix, corrcalls::CBIndexmatrix)

return one data column per subproblem (more efficient to append than lines) with the sum of the time/calls/etc.

source
ConicBundle.cb_get_proxFunction
cb_get_prox(self::CBMatrixCBSolver)
  • @brief Returns the pointer to the current prox term of the bundle solver
source
cb_get_prox(self::CBBundleSolver)

return a pointer to the quadratic term of the proximal term

source
ConicBundle.cb_get_pscx!Function
cb_get_pscx!(self::CBQPConeModelBlock, i::Integer, pscx_eigs::CBMatrix, pscx_vecs::CBMatrix, pscx_primalgrowth::CBMatrix, pscx_dualgrowth::CBMatrix)

get the PSC part of modelx (and a guess on the rank of the active part)

source
cb_get_pscx!(self::CBUQPConeModelBlock, i::Integer, pscx_eigs::CBMatrix, pscx_vecs::CBMatrix, pscx_primalgrowth::CBMatrix, pscx_dualgrowth::CBMatrix)

get the PSC part of modelx (and a guess on the rank of the active part)

source
ConicBundle.cb_get_qp_solver!Function
cb_get_qp_solver!(self::CBLPGroundset, solves_model_without_gs::Bool, Hp::Union{<:CBBundleProxObject,Nothing})

returns a pointer to an internal QPSolverObject that is able to solve bundle suproblems efficiently for this kind of groundset and scaling; if solvesmodelwithout_gs == true the qp solver does not include the groundset and the groundset has to be dealt with by the Gauss Seidel approach

source
cb_get_qp_solver!(self::CBUnconstrainedGroundset, solves_model_without_gs::Bool, Hp::Union{<:CBBundleProxObject,Nothing})

returns a pointer to an internal QPSolverObject that is able to solve bundle suproblems efficiently for this kind of groundset and scaling; if solvesmodelwithout_gs == true the qp solver does not include the groundset and the groundset has to be dealt with by the Gauss Seidel approach

source
ConicBundle.cb_get_recompFunction
cb_get_recomp(self::CBBundleSolver)

returns the number of oracle reevaluations for the center due to numerical problems since the last descent step

source
ConicBundle.cb_get_residual_normFunction
cb_get_residual_norm(self::CBMinRes)

returns the residual norm of last call

source
cb_get_residual_norm(self::CBPCG)

returns the residual norm of last call

source
cb_get_residual_norm(self::CBPsqmr)

returns the residual norm of last call

source
ConicBundle.cb_get_ret_codeFunction
cb_get_ret_code(self::CBBoxModel)

see SumBlockModel::getretcode()

source
cb_get_ret_code(self::CBNNCModel)

see SumBlockModel::getretcode()

source
cb_get_ret_code(self::CBPSCModel)

see SumBlockModel::getretcode()

source
cb_get_ret_code(self::CBSOCModel)

see SumBlockModel::getretcode()

source
ConicBundle.cb_get_rowindexFunction
cb_get_rowindex(self::CBSparsemat)

returns the index vector of the row representation holding the column index for each element

source
ConicBundle.cb_get_rowinfoFunction
cb_get_rowinfo(self::CBSparsemat)

returns information on nonzero rows, k by 3, listing: index, %#nonzeros, first index in rowindex/rowval

source
ConicBundle.cb_get_rowvalFunction
cb_get_rowval(self::CBSparsemat)

returns the value vector of the row representation holding the value for each element

source
ConicBundle.cb_get_shallowcutFunction
cb_get_shallowcut(self::CBBundleSolver)

returns the number of oracle evaluations that returned an epsilon subgradient that improved the model by a dangerously small amount (mostly this is due to solving the QP subproblems only approximately)

source
ConicBundle.cb_get_socx!Function
cb_get_socx!(self::CBQPConeModelBlock, i::Integer, socx::CBMatrix, socx_activity::Union{<:AbstractVector{Cdouble},Nothing}, cautious::Bool = false)

get the SOC part of modelx (and a guess whether the entire cone is active

source
cb_get_socx!(self::CBUQPConeModelBlock, i::Integer, socx::CBMatrix, socx_activity::Union{<:AbstractVector{Cdouble},Nothing}, cautious::Bool = false)

get the SOC part of modelx (and a guess whether the entire cone is active

source
ConicBundle.cb_get_socz!Function
cb_get_socz!(self::CBUQPConeModelBlock, i::Integer, vecz::CBMatrix)

get the current dual second order cone point to cone i (of the solution)

source
Missing docstring.

Missing docstring for cb_get_solver. Check Documenter's build log for details.

ConicBundle.cb_get_starting_pointFunction
cb_get_starting_point(self::CBLPGroundset)

returns a stored starting point, note: this need not be feasible; if generated automatically, its dimension is correct.

source
cb_get_starting_point(self::CBUnconstrainedGroundset)

returns a stored starting point, note: this need not be feasible; if generated automatically, its dimension is correct.

source
ConicBundle.cb_get_storeFunction
cb_get_store(self::CBMatrix)

returns the current address of the internal value array; use cautiously!

source
cb_get_store(self::CBIndexmatrix)

returns the current address of the internal value array; use cautiously!

source
cb_get_store(self::CBSymmatrix)

returns the current address of the internal value array; use cautiously!

source
ConicBundle.cb_get_subgradientMethod
cb_get_subgradient(self::CBMatrixCBSolver, subgradient::CBMatrix)
  • @brief Returns the latest aggregate subgradient (of the entire problem with groundset as provided by the solver)

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_get_sumaugvalfailsFunction
cb_get_sumaugvalfails(self::CBBundleSolver)

returns the number of failures to increase the augmented model value since the last clear() or clear_fails()

source
ConicBundle.cb_get_sumrecompFunction
cb_get_sumrecomp(self::CBBundleSolver)

returns the number of oracle reevaluations for the center due to numerical problems since the last clear() or clear_fails()

source
ConicBundle.cb_get_suppcolFunction
cb_get_suppcol(self::CBSparsesym)

returns the vector listing in ascending order the original column indices of the principal support submatrix

source
ConicBundle.cb_get_suppindFunction
cb_get_suppind(self::CBSparsesym)

returns the index vector of the column representation holding the row index w.r.t. the principal support submatrix for each element

source
ConicBundle.cb_get_sysviol_constraints!Function
cb_get_sysviol_constraints!(self::CBQPConeModelBlock, constrvec::CBMatrix, startindex_constr::Integer)

set the constraint violation for the current system solution starting at this index

source
cb_get_sysviol_constraints!(self::CBQPSumModelBlock, constrvec::CBMatrix, startindex_constr::Integer)

set the constraint violation for the current system solution starting at this index

source
ConicBundle.cb_get_sysviol_model!Function
cb_get_sysviol_model!(self::CBQPConeModelBlock, modelvec::CBMatrix, startindex_model::Integer, y_plus_dy::CBMatrix, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

set the model violation for the current system solution

source
cb_get_sysviol_model!(self::CBQPSumModelBlock, modelvec::CBMatrix, startindex_model::Integer, dy::CBMatrix, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

set the model violation for the current system solution

source
ConicBundle.cb_get_t_precond_mult!Function
cb_get_t_precond_mult!(self::CBQPKKTSubspaceHPrecond)

for evaluation purposes with iterative solvers, return the time spent in the multiplication with

source
ConicBundle.cb_get_term_corrFunction
cb_get_term_corr(self::CBBundleDenseTrustRegionProx)

returns a correction factor for termination precision if the quadratic term is strong

source
cb_get_term_corr(self::CBBundleDiagonalTrustRegionProx)

returns a correction factor for termination precision if the quadratic term is strong

source
cb_get_term_corr(self::CBBundleDLRTrustRegionProx)

returns a correction factor for termination precision if the quadratic term is strong

source
cb_get_term_corr(self::CBBundleIdProx)

returns the correction factor for the termination criterion, here min(1,1/weight)

source
cb_get_term_corr(self::CBBundleLowRankTrustRegionProx)

returns a correction factor for termination precision if the quadratic term is strong

source
cb_get_term_corr(self::CBBundleSolver)

returns the correction factor used in the termination criterion to compensate the strength of the proximal term

source
ConicBundle.cb_get_termepsFunction
cb_get_termeps(self::CBUQPSolver)

return the termination precision

source
cb_get_termeps(self::CBBundleTerminator)

returns the current termination precision

source
ConicBundle.cb_get_termprecFunction
cb_get_termprec(self::CBMinRes)

return the (absolute) precision requirement for termination used in the last call

source
cb_get_termprec(self::CBPCG)

return the (absolute) precision requirement for termination used in the last call

source
cb_get_termprec(self::CBPsqmr)

return the (absolute) precision requirement for termination used in the last call

source
ConicBundle.cb_get_trace!Function
cb_get_trace!(self::CBQPConeModelBlock)

get the right hand side of the trace constraint

source
cb_get_trace!(self::CBUQPConeModelBlock)

get the right hand side of the trace constraint

source
ConicBundle.cb_get_uboundsFunction
cb_get_ubounds(self::CBMatrixCBSolver)
  • @brief Returns a pointer to the vector of upper bounds or null if there is no such vector
source
ConicBundle.cb_get_ubyFunction
cb_get_uby(self::CBQPSolver)

returns the upper bounds on y

source
cb_get_uby(self::CBLPGroundset)

returns the upper bounds vector on y if it exists

source
ConicBundle.cb_get_upper_bounds!Function
cb_get_upper_bounds!(self::CBBoxOracle)
  • @brief returns the upper bounds vector of the box
source
cb_get_upper_bounds!(self::CBNNCBoxSupportFunction)

retunrs the column vector of upper bounds

source
ConicBundle.cb_get_use_yfixingFunction
cb_get_use_yfixing(self::CBLPGroundset)

true if the cooridinate fixing heuristic is switched on (only constrained cases)

source
cb_get_use_yfixing(self::CBUnconstrainedGroundset)

true if the cooridinate fixing heuristic is switched on (only constrained cases)

source
ConicBundle.cb_get_var_appendFunction
cb_get_var_append(self::CBPSCAffineModification)

returns null if nothing or default values have to be appended, otherwise it points to a sparse matrix whose columns need to be appended to the matrix

source
ConicBundle.cb_get_weightFunction
cb_get_weight(self::CBBundleHKWeight)

returns current value of the weight

source
cb_get_weight(self::CBBundleRQBWeight)

returns current value of the weight

source
cb_get_weight(self::CBBundleSolver)

returns the weight for the proximal term used in the last quadratic subproblem

source
ConicBundle.cb_get_weightuFunction
cb_get_weightu(self::CBBundleDenseTrustRegionProx)

returns the current weight of the proximal term

source
cb_get_weightu(self::CBBundleDiagonalTrustRegionProx)

returns the current weight of the proximal term

source
cb_get_weightu(self::CBBundleDLRTrustRegionProx)

returns the current weight in use

source
cb_get_weightu(self::CBBundleIdProx)

returns the current weight of the proximal term

source
cb_get_weightu(self::CBBundleLowRankTrustRegionProx)

returns the current weight in use

source
ConicBundle.cb_get_x!Function
cb_get_x!(self::CBUQPSolver)

return the joint model vector (primal solution) produced by the last solve

source
ConicBundle.cb_get_y!Function
cb_get_y!(self::CBUQPSolver)

return the joint dual vector (dual solution) produced by the last solve

source
cb_get_y!(self::CBUQPConeModelBlock)

get the current dual value of the trace constraint

source
ConicBundle.cb_get_yfixedFunction
cb_get_yfixed(self::CBLPGroundset)

if not NULL (iff getuseyfixing()==false) it returns the vector yfixed with yfixed(i)=0 if not fixed, =1 is fixed already, =2 if newly fixed

source
cb_get_yfixed(self::CBUnconstrainedGroundset)

if not NULL (iff getuseyfixing()==false) it returns the vector yfixed with yfixed(i)=0 if not fixed, =1 is fixed already, =2 if newly fixed

source
cb_get_yfixed(self::CBBundleSolver)

if the groundset has constraints and setdoyfixing was set with true enty i of the returned matrix is !=0 if the coordinate was fixed at one of its bounds and 0 if the coordinate is still free

source
ConicBundle.cb_gramipFunction
cb_gramip(self::CBCMgramdense, P::CBMatrix)

returns ip(this,PP^T)=trace P^T(this)P

source
cb_gramip(self::CBCMgramdense, P::CBMatrix, start_row::Integer, Lam::Union{<:CBMatrix,Nothing} = nothing)

returns ip(this,QQ^T)=trace Q^T(this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_gramip(self::CBCMgramsparse, P::CBMatrix)

returns ip(this,PP^T)=trace P^T(this)P

source
cb_gramip(self::CBCMgramsparse, P::CBMatrix, start_row::Integer, Lam::Union{<:CBMatrix,Nothing} = nothing)

returns ip(this,QQ^T)=trace Q^T(this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_gramip(self::CBCMgramsparse_withoutdiag, P::CBMatrix)

returns ip(this,PP^T)=trace P^T(this)P

source
cb_gramip(self::CBCMgramsparse_withoutdiag, P::CBMatrix, start_row::Integer, Lam::Union{<:CBMatrix,Nothing} = nothing)

returns ip(this,QQ^T)=trace Q^T(this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_gramip(self::CBCMlowrankdd, P::CBMatrix)

returns ip(this,PP^T)=trace P^T(this)P

source
cb_gramip(self::CBCMlowrankdd, P::CBMatrix, start_row::Integer, Lam::Union{<:CBMatrix,Nothing} = nothing)

returns ip(this,QQ^T)=trace Q^T(this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_gramip(self::CBCMlowranksd, P::CBMatrix)

returns ip(this,PP^T)=trace P^T(this)P

source
cb_gramip(self::CBCMlowranksd, P::CBMatrix, start_row::Integer, Lam::Union{<:CBMatrix,Nothing} = nothing)

returns ip(this,QQ^T)=trace Q^T(this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_gramip(self::CBCMlowrankss, P::CBMatrix)

returns ip(this,PP^T)=trace P^T(this)P

source
cb_gramip(self::CBCMlowrankss, P::CBMatrix, start_row::Integer, Lam::Union{<:CBMatrix,Nothing} = nothing)

returns ip(this,QQ^T)=trace Q^T(this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_gramip(self::CBCMsingleton, P::CBMatrix)

returns ip(this,PP^T)=trace P^T(this)P

source
cb_gramip(self::CBCMsingleton, P::CBMatrix, start_row::Integer, Lam::Union{<:CBMatrix,Nothing} = nothing)

returns ip(this,QQ^T)=trace Q^T(this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_gramip(self::CBCMsymdense, P::CBMatrix)

returns ip(this,PP^T)=trace P^T(this)P

source
cb_gramip(self::CBCMsymdense, P::CBMatrix, start_row::Integer, Lam::Union{<:CBMatrix,Nothing} = nothing)

returns ip(this,QQ^T)=trace Q^T(this)Q for Q=P.rows(startrow,startrow+dim-1)

source
cb_gramip(self::CBCMsymsparse, P::CBMatrix)

returns ip(this,PP^T)=trace P^T(this)P

source
cb_gramip(self::CBCMsymsparse, P::CBMatrix, start_row::Integer, Lam::Union{<:CBMatrix,Nothing} = nothing)

returns ip(this,QQ^T)=trace Q^T(this)Q for Q=P.rows(startrow,startrow+dim-1)

source
ConicBundle.cb_guess_curvatureFunction
cb_guess_curvature(self::CBSumBundleHandler, mnrts::CBMinorantBundle, selected_indices::CBIndexmatrix, cand_id::Integer, cand_y::CBMatrix, model_maxviol::Real)

computes an estimate of the current curvature to support SumModel in the selection of submodles

source
ConicBundle.cb_hhmmssFunction
cb_hhmmss(self::CBMicroseconds)

convert and store the value of (*this) to hours, minutes, seconds

source
ConicBundle.cb_hhmmssddFunction
cb_hhmmssdd(self::CBMicroseconds)

convert and store the value of (*this) to hours, minutes, seconds, hundredths

source
ConicBundle.cb_houseFunction
cb_house(A::CBMatrix, i::Integer, j::Integer, tol::Real)

returns the Householder vector of size A.rowdim() for the subcolumn A(i:A.rowdim(),j)

source
ConicBundle.cb_incorporate!Function
cb_incorporate!(self::CBAFTModification, m::CBAFTModification)

incorporate the AFTModification @a m into this one; after factor and offset are dealt with it calls Modification::incorporate

source
cb_incorporate!(self::CBAFTModification, m::CBOracleModification)

incorporate the OracleModification @a m (it should only contain variable changes, but this is not checked!) into this one; calls Modification::incorporate

source
cb_incorporate!(self::CBGroundsetModification, m::CBOracleModification)

incorporate the OracleModification @a m (it should only contain variable changes, but this is not checked!) into this one; calls Modification::incorporate

source
cb_incorporate!(self::CBNNCBoxSupportModification, m::CBOracleModification)

incorporate the OracleModification @a m (it should only contain variable changes, but this is not checked!) into this one; calls Modification::incorporate

source
cb_incorporate!(self::CBPSCAffineModification, m::CBOracleModification)
  • @brief add the modification specified in @a m on top of the modifications collected so far

      If m is in fact an PSCAffineModification,
      the old_vardim() of modification @a m must be
      identical to new_vardim() of this and
      old_rowdim() of modification @a m must be identical to
      new_rodim() of this.  The return value is the number of
      errors in this respect. If such occured, this incorporation
      is not performed.
    
      A general OracleModification @a m should only contain variable
      changes (this is not checked) and appending variables appends
      zero blocks.
source
cb_incorporate!(self::CBSOCSupportModification, m::CBOracleModification)

incorporate the OracleModification @a m (it should only contain variable changes, but this is not checked!) into this one; calls Modification::incorporate

source
ConicBundle.cb_init!Function
cb_init!(self::CBMatrix, A::CBMatrix, d::Real = 1., atrans::Integer = 0)

initialize to this=Ad where A may be transposed

source
cb_init!(self::CBMatrix, A::CBIndexmatrix, d::Real = 1.)

initialize to this=Ad

source
cb_init!(self::CBMatrix, A::CBSparsemat, d::Real = 1.)

initialize to this=Ad

source
cb_init!(self::CBMatrix, S::CBSymmatrix, d::Real = 1.)

initialize to this=Ad

source
cb_init!(self::CBMatrix, param0::CBSparsesym, d::Real = 1.)

initialize to this=Ad

source
cb_init!(self::CBMatrix, param0::AbstractRange{<:Real}, param0_tol::Real = 1e-8)

initialize *this to a column vector holding the elements of Realrange

source
cb_init!(self::CBMatrix, nr::Integer, nc::Integer, d::Real)

intialize *this to a matrix of size nr x nc initializing all elements to the value d

source
cb_init!(self::CBMatrix, nr::Integer, nc::Integer, dp::Union{<:AbstractVector{Cdouble},Nothing}, d::Real = 1.)

generate a matrix of size nr x nc initializing the elements from the (one dimensional) array dp with increment incr and scaled by d

source
cb_init!(self::CBIndexmatrix, A::CBIndexmatrix, d::Integer = 1)

initialize to this=Ad

source
cb_init!(self::CBIndexmatrix, param0::AbstractRange{<:Integer})

initialize *this to a column vector holding the indices of #CHMatrixClasses::Range

source
cb_init!(self::CBIndexmatrix, nr::Integer, nc::Integer, d::Integer)

intialize *this to a matrix of size nr x nc initializing all elements to the value d

source
cb_init!(self::CBIndexmatrix, nr::Integer, nc::Integer, dp::Union{<:AbstractVector{Cint},Nothing})

generate a matrix of size nr x nc initializing the elements from the (one dimensional) array dp with increment incr

source
cb_init!(self::CBSparsemat, A::CBSparsemat, d::Real = 1.)

initialize to this=Ad

source
cb_init!(self::CBSparsemat, A::CBMatrix, d::Real = 1.)

initialize to this=Ad, abs(values)<tol are removed from the support

source
cb_init!(self::CBSparsemat, A::CBIndexmatrix, d::Real = 1.)

initialize to this=Ad, zeros are removed from the support

source
cb_init!(self::CBSparsemat, param0::CBSymmatrix, d::Real = 1.)

initialize to this=Ad, abs(values)<tol are removed from the support

source
cb_init!(self::CBSparsemat, param0::CBSparsesym, d::Real = 1.)

initialize to this=Ad

source
cb_init!(self::CBSparsemat, nr::Integer, nc::Integer)

initialize to zero-matrix of size nr*nc

source
cb_init!(self::CBSparsemat, nr::Integer, nc::Integer, nz::Integer, ini::Union{<:AbstractVector{Cint},Nothing}, inj::Union{<:AbstractVector{Cint},Nothing}, va::Union{<:AbstractVector{Cdouble},Nothing})

initialize to size nr*nc and nz nonzeros so that this(ini[i],inj[i])=val[i] for i=0,..,nz-1; multiple elements are summed up.

source
cb_init!(self::CBSparsemat, nr::Integer, nc::Integer, nz::Integer, ini::CBIndexmatrix, inj::CBIndexmatrix, va::CBMatrix)

initialize to size nr*nc and nz nonzeros so that this(ini(i),inj(i))=val(i) for i=0,..,nz-1; multiple elements are summed up.

source
cb_init!(self::CBSymmatrix, A::CBSymmatrix, d::Real = 1.)

initialize to this=Ad

source
cb_init!(self::CBSymmatrix, A::CBMatrix, d::Real = 1.)

initialize to this=d(A+transpose(A))/2.

source
cb_init!(self::CBSymmatrix, A::CBIndexmatrix, d::Real = 1.)

initialize to this=d(A+transpose(A))/2.

source
cb_init!(self::CBSymmatrix, A::CBSparsesym, d::Real = 1.)

initialize to this=Ad

source
cb_init!(self::CBSymmatrix, nr::Integer, d::Real)

intialize *this to a matrix of size nr x nr initializing all elements to the value d

source
cb_init!(self::CBSymmatrix, nr::Integer, dp::Union{<:AbstractVector{Cdouble},Nothing})

generate a matrix of size nr x nc initializing the elements from the (one dimensional) array dp which must have the elements arranged consecutively in internal order

source
cb_init!(self::CBSparsesym, param0::CBSparsesym, d::Real = 1.)

initialize to this=Ad

source
cb_init!(self::CBSparsesym, param0::CBMatrix, d::Real = 1.)

initialize to this=d(A+transpose(A))/2., abs(values)<tol are removed from the support

source
cb_init!(self::CBSparsesym, param0::CBIndexmatrix, d::Real = 1.)

initialize to this=d(A+transpose(A))/2., zeros are removed from the support

source
cb_init!(self::CBSparsesym, param0::CBSymmatrix, d::Real = 1.)

initialize to this=Ad, abs(values)<tol are removed from the support

source
cb_init!(self::CBSparsesym, param0::CBSparsemat, d::Real = 1.)

initialize to this=d(A+transpose(A))/2.

source
cb_init!(self::CBSparsesym, nr::Integer)

initialize to zero-matrix of size nr*nr

source
cb_init!(self::CBSparsesym, nr::Integer, nz::Integer, ini::Union{<:AbstractVector{Cint},Nothing}, inj::Union{<:AbstractVector{Cint},Nothing}, va::Union{<:AbstractVector{Cdouble},Nothing})

initialize to size nr*nr and nz nonzeros so that this(ini[i],inj[i])=val[i] for i=0,..,nz-1; specify only one of (i,j) and (j,i), multiple elements are summed up.

source
cb_init!(self::CBSparsesym, nr::Integer, nz::Integer, ini::CBIndexmatrix, inj::CBIndexmatrix, va::CBMatrix)

initialize to size nr*nr and nz nonzeros so that this(ini(i),inj(i))=val[i] for i=0,..,nz-1; specify only one of (i,j) and (j,i), multiple elements are summed up.

source
cb_init!(self::CBSparseCoeffmatMatrix, block_dim::CBIndexmatrix, col_dim::Integer, block_ind::Union{<:CBIndexmatrix,Nothing} = nothing, col_ind::Union{<:CBIndexmatrix,Nothing} = nothing, coeff_vec::Union{<:CBCoeffmatVector,Nothing} = nothing)

first calls clear() and then it sets the new values (if one of blockind, colind, or coeff_vec is !=NULL, all must be !=NULL and of the same size)

source
cb_init!(self::CBGB_rand, seed::Integer = 1)

restart generator with seed

source
cb_init!(self::CBAffineFunctionTransformation, fun_coeff::Real = 1., fun_offset::Real = 0., linear_cost::Union{<:CBMatrix,Nothing} = nothing, arg_offset::Union{<:CBMatrix,Nothing} = nothing, arg_trafo::Union{<:CBSparsemat,Nothing} = nothing, model_calls_delete::Bool = true)

sets the parameters of the transformation. The ownership of objects pointed to is passed to *this (they will be deleted here). If *this is entered into an AFTModel, modelcallsdelete==true tells the AFTModel to delete this AffineFunctionTransformation at the end.

source
cb_init!(self::CBMinorantPointer, mp::CBMinorantPointer, factor::Real = 1., enforce_copy::Bool = false)

if factor!=1 it generates another MinorantUseData referring to the one of mp, otherwise it simply uses the same one (empty stays empty)

source
cb_init!(self::CBMinorantPointer, mp::Union{<:CBMinorant,Nothing}, modification_id::Integer = -1, factor::Real = 1.)

if mp==0 it becomes empty, otherwise it creates and then points to a MinorantUseData for holding mp with this modification_id and factor

source
cb_init!(self::CBPSCBundleParameters, bp::CBBundleParameters)

*@brief initialize to given values

source
cb_init!(self::CBAFTData, bd::Union{<:CBBundleData,Nothing})

initialize from other BundleData

source
cb_init!(self::CBBoxData, bd::Union{<:CBBundleData,Nothing})

if @a bd is of type BoxData, initialize to this data

source
cb_init!(self::CBNNCData, bd::Union{<:CBBundleData,Nothing})

if @a bd is of type NNCData, initialize to this data

source
cb_init!(self::CBPSCData, bd::Union{<:CBBundleData,Nothing})

if @a bd is of type PSCData, initialize to this data

source
cb_init!(self::CBSOCData, bd::Union{<:CBBundleData,Nothing})

if @a bd is of type SOCData, initialize to this data

source
cb_init!(self::CBBundleHKWeight, aggr_dnmormsqr::Real, groundset::Union{<:CBGroundset,Nothing}, model::Union{<:CBBundleModel,Nothing})

compute first weight and set some parameters

source
cb_init!(self::CBBundleRQBWeight, aggr_dnmormsqr::Real, groundset::Union{<:CBGroundset,Nothing}, model::Union{<:CBBundleModel,Nothing})

compute first weight and set some parameters

source
cb_init!(self::CBBundleDenseTrustRegionProx, in_H::CBSymmatrix)

set H with the information, whether it is factored

source
cb_init!(self::CBBundleDLRTrustRegionProx, in_D::CBMatrix, in_vecH::CBMatrix)

reset the prox information; the diagaonal part inD must be a nonnegative column vector, the low rank part invecH must have the same number of rows as in_D

source
cb_init!(self::CBBundleLowRankTrustRegionProx, in_vecH::CBMatrix, in_lamH::CBMatrix)

reset the prox information; invecH must be an orthogonal matrix with invecH.rowdim() matching the dimension but maybe with zero columns; inlamH must be a column vector with row dimension matching the column dimension of invecH and all entries positive

source
cb_init!(self::CBQPConeModelBlock, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, nnc_dim::Integer, soc_dim::CBIndexmatrix, psc_dim::CBIndexmatrix, box_lb::CBMatrix, box_ub::CBMatrix, b::Real, ft::CBFunctionTask, oracle_data::Union{<:CBQPModelOracleDataObject,Nothing} = nothing, scale_box::Bool = true)

sets up the model with bundle information and how to combine it, see QPConeModelDataObject::init() for a detailed description

source
cb_init!(self::CBUQPConeModelBlock, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, nnc_dim::Integer, soc_dim::CBIndexmatrix, sdp_dim::CBIndexmatrix, box_lb::CBMatrix, box_ub::CBMatrix, b::Real, ft::CBFunctionTask, oracle_data::Union{<:CBQPModelOracleDataObject,Nothing} = nothing, scale_box::Bool = true)

sets up the model with bundle information and how to combine it, see QPConeModelDataObject::init() for a detailed description

source
cb_init!(self::CBSumBundle, sb::CBSumBundle)

initialize

source
ConicBundle.cb_init_data!Function
cb_init_data!(self::CBQPKKTSubspaceHPrecond, Hp::Union{<:CBQPSolverProxObject,Nothing}, model::Union{<:CBQPModelBlockObject,Nothing}, A::Union{<:CBSparsemat,Nothing}, eq_indices::Union{<:CBIndexmatrix,Nothing}, SchurComplAineq::Bool)

returns 1 if this class is not applicable in the current data situation, otherwise it stores the data pointers and these need to stay valid throught the use of the other routines but are not deleted here

source
ConicBundle.cb_init_diag!Function
cb_init_diag!(self::CBMatrix, nr::Integer, d::Real = 1.)

initialize to a diagonal nr x nr matrix with constant diagonal value d

source
cb_init_diag!(self::CBMatrix, vec::CBMatrix, d::Real = 1.)

initialize to a diagonal matrix with diagonal given by vec

source
cb_init_diag!(self::CBMatrix, vec::CBIndexmatrix, d::Real = 1.)

initialize to a diagonal matrix with diagonal given by vec

source
ConicBundle.cb_init_problem!Method
cb_init_problem!(self::CBMatrixCBSolver, dim::Integer, lbounds::Union{<:CBMatrix,Nothing} = nothing, ubounds::Union{<:CBMatrix,Nothing} = nothing, startval::Union{<:CBMatrix,Nothing} = nothing, costs::Union{<:CBMatrix,Nothing} = nothing, offset::Real = 0.)
  • @brief Initializes the problem by setting up the design space (the dimension and possibly box constraints on the variables)

    Clears all data structures and sets the dimension @ m for a new problem. for solving min{y in R^m} f0(y) + f1(y) + ... Box constraints may be specified for y. (The functions fi must be added by add_function()).

    Lower and/or upper bounds must be speicified for all variables or for none of them. To specify no bounds at all, give Null pointers. Otherwise use ConicBundle::CBminusinfinity for unbounded below and ConicBundle::CBplusinfinity for unbounded above. For NULL pointers, unbounded will be used as default for all variables. Specifying bounds selectively is also possible by setlowerbound() or setupperbound(). For further constraints see append_constraints().

    @param[in] dim (int) the dimension of the argument/design space/the number of Lagrange multipliers

    @param[in] lbounds (const Matrix*) If NULL, all variables are considered unbounded below, otherwise lbounds[i] gives the minimum feasible value for variable y[i], use ConicBundle::CBminusinfinity for unbounded below.

    @param[in] ubounds (const Matrix*) If NULL, all variables are considered unbounded above, otherwise ubounds[i] gives the maximum feasible value for variable y[i], use ConicBundle::CBplusinfinity for unbounded above.

    @param[in] startval (const Matrix*) If NULL, the starting values are obtained by projecting zero onto the feasible set given by the lower and upper bounds resulting from the arguments before

    @param[in] costs (const Matrix*) Use this in order to specify linear costs on the variables in addition to the functions (may be convenient in Lagrangean relaxation for the right hand side of coupling contsraints); NULL is equivalent to costs zero.

    @param[in] offset (Real) Use this in order to specify linear costs on the variables in addition to the functions (may be convenient in Lagrangean relaxation for the right hand side of coupling contsraints); NULL is equivalent to costs zero.

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_init_support!Function
cb_init_support!(self::CBSparsesym, A::CBSparsesym, d::Real = 0.)

initialize to the same support as A but with constant value d; the same support will be generated even for d=0.

source
ConicBundle.cb_init_svec!Function
cb_init_svec!(self::CBSymmatrix, nr::Integer, dp::Union{<:AbstractVector{Cdouble},Nothing}, d::Real = 1.)

initialize from an svec stored in a real array (or matrix)

source
ConicBundle.cb_init_system!Function
cb_init_system!(self::CBQPKKTSubspaceHPrecond, KKTdiagx::CBMatrix, KKTdiagy::CBMatrix, Hfactor::Real, prec::Real, params::Union{<:CBQPSolverParameters,Nothing})

set up the primal dual KKT system for being solved for predictor and corrector rhs; the input objects KKTdiagx and KKTdiagy will not change during use of the preconditioner, so it suffices to store the address if they are need during application of the preconditioner

source
ConicBundle.cb_initialization_neededFunction
cb_initialization_needed(self::CBSumBundleHandler, ft::CBFunctionTask)

returns true if the corresponding part is root with contributions but has bundle_size 0

source
cb_initialization_needed(self::CBSumBundleHandler)

returns true if one of the parts is root with contributions but has bundle_size 0

source
ConicBundle.cb_initialize!Function
cb_initialize!(self::CBBundleSolver, dim::Integer, bp::Union{<:CBBundleModel,Nothing} = nothing)

calls clear(), initializes an unconstrained groundset to this dimension and sets the bundle model to bp

source
cb_initialize!(self::CBBundleSolver, gs::Union{<:CBGroundset,Nothing}, bp::Union{<:CBBundleModel,Nothing} = nothing)

calls clear(), initializes the groundset to gs and the bundle model to bp

source
ConicBundle.cb_inner_line_search!Function
cb_inner_line_search!(self::CBUQPConeModelBlock, qp_dx::CBMatrix, qp_dy::CBMatrix, dz::CBMatrix, duz::CBMatrix, box_ds::Real, ds::Real)

perform a line search for the given direction and return a feasible step length

source
ConicBundle.cb_insert_col!Function
cb_insert_col!(self::CBMatrix, i::Integer, v::CBMatrix)

insert a column before column i, 0<=i<= column dimension, for i==column dimension the column is appended at the right; appending to a 0x0 matrix is allowed, returns *this

source
cb_insert_col!(self::CBIndexmatrix, i::Integer, v::CBIndexmatrix)

insert a column before column i, 0<=i<= column dimension, for i==column dimension the column is appended at the right; appending to a 0x0 matrix is allowed, returns *this

source
cb_insert_col!(self::CBSparsemat, i::Integer, v::CBSparsemat)

insert a column before column i, 0<=i<= column dimension, for i==column dimension the column is appended at the right; appending to a 0x0 matrix is allowed, returns *this

source
ConicBundle.cb_insert_row!Function
cb_insert_row!(self::CBMatrix, i::Integer, v::CBMatrix)

insert the row vector v before row i, 0<=i<= row dimension, for i==row dimension the row is appended below; appending to a 0x0 matrix is allowed, returns *this

source
cb_insert_row!(self::CBIndexmatrix, i::Integer, v::CBIndexmatrix)

insert the row vector v before row i, 0<=i<= row dimension, for i==row dimension the row is appended below; appending to a 0x0 matrix is allowed, returns *this

source
cb_insert_row!(self::CBSparsemat, i::Integer, v::CBSparsemat)

insert the row vector v before row i, 0<=i<= row dimension, for i==row dimension the row is appended below; appending to a 0x0 matrix is allowed, returns *this

source
ConicBundle.cb_install_external_aggregate!Function
cb_install_external_aggregate!(self::CBSumBundleHandler, ft::CBFunctionTask, aggr::CBMinorantPointer, aggr_coeff::Real)
  • @brief replace the aggregate by one from outside

     This is only possible, if the handler handles a bundle for this and
     the bundle is not active. The main purpose is to switch from an
     external model to a newly contributing sumbundle that has been
     updated all along but not been in use. Installing the external
     aggregate then ensures convergence.
    
     If primal is not zero, it must already have one nonzero entry per
     column of existing minorants and all future calls via set_cand_minorant()
     also have to provide exactly one primal for each update.
source
ConicBundle.cb_invFunction
cb_inv(A::CBMatrix)

returns a matrix with elements (i,j)=1./((*this)(i,j)) for all i,j; ATTENTION: no check for division by zero

source
ConicBundle.cb_ipFunction
cb_ip(A::CBMatrix, B::CBMatrix)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBIndexmatrix, B::CBIndexmatrix)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBSparsemat, B::CBSparsemat)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBSparsemat, B::CBMatrix)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBMatrix, B::CBSparsemat)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBSymmatrix, B::CBSymmatrix)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBMatrix, B::CBSymmatrix)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBSymmatrix, B::CBMatrix)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBSymmatrix, B::CBSparsesym)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBSparsesym, B::CBSymmatrix)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBSparsesym, B::CBSparsesym)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBMatrix, B::CBSparsesym)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(A::CBSparsesym, B::CBMatrix)

returns the usual inner product of A and B, i.e., the sum of A(i,j)*B(i,j) over all i,j

source
cb_ip(self::CBCMgramdense, S::CBSymmatrix)

returns ip(this,S)=trace(this*S), the trace inner product

source
cb_ip(self::CBCMgramdense, S::CBSparsesym)

returns the inner product of the constraint matrix with S

source
cb_ip(self::CBCMgramsparse, S::CBSymmatrix)

returns ip(this,S)=trace(this*S), the trace inner product

source
cb_ip(self::CBCMgramsparse, S::CBSparsesym)

returns the inner product of the constraint matrix with S

source
cb_ip(self::CBCMgramsparse_withoutdiag, S::CBSymmatrix)

returns ip(this,S)=trace(this*S), the trace inner product

source
cb_ip(self::CBCMgramsparse_withoutdiag, S::CBSparsesym)

returns the inner product of the constraint matrix with S

source
cb_ip(self::CBCMlowrankdd, S::CBSymmatrix)

returns ip(this,S)=trace(this*S), the trace inner product

source
cb_ip(self::CBCMlowrankdd, S::CBSparsesym)

returns the inner product of the constraint matrix with S

source
cb_ip(self::CBCMlowranksd, S::CBSymmatrix)

returns ip(this,S)=trace(this*S), the trace inner product

source
cb_ip(self::CBCMlowranksd, S::CBSparsesym)

returns the inner product of the constraint matrix with S

source
cb_ip(self::CBCMlowrankss, S::CBSymmatrix)

returns ip(this,S)=trace(this*S), the trace inner product

source
cb_ip(self::CBCMlowrankss, S::CBSparsesym)

returns the inner product of the constraint matrix with S

source
cb_ip(self::CBCMsingleton, S::CBSymmatrix)

returns ip(this,S)=trace(this*S), the trace inner product

source
cb_ip(self::CBCMsingleton, S::CBSparsesym)

returns the inner product of the constraint matrix with S

source
cb_ip(self::CBCMsymdense, S::CBSymmatrix)

returns ip(this,S)=trace(this*S), the trace inner product

source
cb_ip(self::CBCMsymdense, S::CBSparsesym)

returns the inner product of the constraint matrix with S

source
cb_ip(self::CBCMsymsparse, S::CBSymmatrix)

returns ip(this,S)=trace(this*S), the trace inner product

source
cb_ip(self::CBCMsymsparse, S::CBSparsesym)

returns the inner product of the constraint matrix with S

source
cb_ip(self::CBMinorantPointer, mp::CBMinorantPointer, skip_fixed::Union{<:CBIndexmatrix,Nothing} = nothing, ipdiag::Union{<:CBMatrix,Nothing} = nothing)

@brief computes the inner product of the two minorants; if skipfixed!=NULL the corrsponding indices are not considered, if ipdiag!=0 the inner product is taken with respect to this diagonal matrix, i.e. sumi mp(i)(this)(i)(*ipdiag)(i)

source
cb_ip(self::CBMinorantPointer, m::CBMatrix, ipdiag::Union{<:CBMatrix,Nothing} = nothing, startindex_m::Integer = 0)

@brief computes the inner product with m; if ipdiag!=0 the inner product is taken with respect to this diagonal matrix, i.e. sumi mp(startindexm+i)(this)(i)(*ipdiag)(i)

source
ConicBundle.cb_ip_min_maxFunction
cb_ip_min_max(A::CBMatrix, B::CBMatrix)

returns in addition to the usual inner product of A and B the minimum and maximum value of A(i,j)*B(i,j) over all (i,j)

source
ConicBundle.cb_is_DLRFunction
cb_is_DLR(self::CBBundleDenseTrustRegionProx)

return true if H is of the form diagonal matrix plus Gram matrix of a low rank matrix

source
cb_is_DLR(self::CBBundleDiagonalTrustRegionProx)

return true if H is of the form diagonal matrix plus Gram matrix of a low rank matrix

source
cb_is_DLR(self::CBBundleDLRTrustRegionProx)

return true if H is of the form diagonal matrix plus Gram matrix of a low rank matrix

source
cb_is_DLR(self::CBBundleIdProx)

return true if H is of the form diagonal matrix plus Gram matrix of a low rank matrix

source
cb_is_DLR(self::CBBundleLowRankTrustRegionProx)

return true if H is of the form diagonal matrix plus Gram matrix of a low rank matrix

source
ConicBundle.cb_is_feasible!Function
cb_is_feasible!(self::CBLPGroundset, y::CBMatrix, relprec::Real = 1e-10)

returns true if still feasible, see Groundset::is_feasible()

source
cb_is_feasible!(self::CBUnconstrainedGroundset, y::CBMatrix, relprec::Real = 1e-10)
  • @brief on input value ingroundsetid the input y was feasible. Return true if the id did not change, otherwise check if y is still feasible for the given precision.

    The routine is called by the internal bundle solver to check whether the given center is still valid (in some applications the groundset might change during the runtime of the bundle method), where validity of y was already checked at a point in time when the groundset had the ingroundsetid. If the groundset_id is still the same, then y is simply assumed to be still correct (the precision is not even looked at in this case). Otherwise the routine checks the validitiy of y with respect to the given precision but does not enforce validity. It returns true if y is valid and false otherwise.

source
ConicBundle.cb_lb_function!Function
cb_lb_function!(self::CBAFTModel, y_id::Integer, y::CBMatrix)

see SumBlockModel::lb_function

source
cb_lb_function!(self::CBBoxModel, y_id::Integer, y::CBMatrix)

see SumBlockModel::lb_function

source
cb_lb_function!(self::CBNNCModel, y_id::Integer, y::CBMatrix)

see SumBlockModel::lb_function

source
cb_lb_function!(self::CBPSCModel, y_id::Integer, y::CBMatrix)

see SumBlockModel::lb_function

source
cb_lb_function!(self::CBSOCModel, y_id::Integer, y::CBMatrix)

see SumBlockModel::lb_function

source
cb_lb_function!(self::CBSumModel, y_id::Integer, y::CBMatrix)

see SumBlockModel::lb_function()

source
ConicBundle.cb_lb_modelFunction
cb_lb_model(self::CBSumBundleHandler, yid::Integer, y::CBMatrix)

returns a quick lower bound for the model value

source
ConicBundle.cb_left_genmultFunction
cb_left_genmult(self::CBMinorantPointer, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., thistrans::Integer = 0, btrans::Integer = 0, thisindex::Integer = 0)

computes and returns C=alpha(this)B+betaC where B and *this may be transposed and *this is considered to be a column with thisindex in a bigger matrix

source
ConicBundle.cb_left_right_prodFunction
cb_left_right_prod(self::CBCMgramdense, P::CBMatrix, Q::CBMatrix, R::CBMatrix)

computes R=P^T(this)*Q

source
cb_left_right_prod(self::CBCMgramsparse, P::CBMatrix, Q::CBMatrix, R::CBMatrix)

computes R=P^T(this)*Q

source
cb_left_right_prod(self::CBCMgramsparse_withoutdiag, P::CBMatrix, Q::CBMatrix, R::CBMatrix)

computes R=P^T(this)*Q

source
cb_left_right_prod(self::CBCMlowrankdd, P::CBMatrix, Q::CBMatrix, R::CBMatrix)

computes R=P^T(this)*Q

source
cb_left_right_prod(self::CBCMlowranksd, P::CBMatrix, Q::CBMatrix, R::CBMatrix)

computes R=P^T(this)*Q

source
cb_left_right_prod(self::CBCMlowrankss, P::CBMatrix, Q::CBMatrix, R::CBMatrix)

computes R=P^T(this)*Q

source
cb_left_right_prod(self::CBCMsingleton, P::CBMatrix, Q::CBMatrix, R::CBMatrix)

computes R=P^T(this)*Q

source
cb_left_right_prod(self::CBCMsymdense, P::CBMatrix, Q::CBMatrix, R::CBMatrix)

computes R=P^T(this)*Q

source
cb_left_right_prod(self::CBCMsymsparse, P::CBMatrix, Q::CBMatrix, R::CBMatrix)

computes R=P^T(this)*Q

source
ConicBundle.cb_line_search!Function
cb_line_search!(self::CBUQPConeModelBlock, qp_dx::CBMatrix, qp_dy::CBMatrix, rhs_residual::CBMatrix)
  • @brief perform a line search for the block variables

    dx,dy give the final step direction, alpha is on input
    an upper bound on the step size.
    
    On output alpha has to be no larger than on input and
    has to guarantee strict feasibility of the primal/dual step on
    the local variables.
    
    The block has to compute the step direction dz as well as
    for additional internal variables now and to choose alpha so
    that strict feasibility is guaranteed for the internal
    variables as well
source
cb_line_search!(self::CBUQPSumModelBlock, qp_dx::CBMatrix, qp_dy::CBMatrix, rhs_residual::CBMatrix)

get/do this from/for all subblocks

source
ConicBundle.cb_linesearchFunction
cb_linesearch(self::CBQPConeModelBlock)

if necessary, reduce alpha to the biggest value so that feasibility is maintained with this step size

source
cb_linesearch(self::CBQPSumModelBlock)

if necessary, reduce alpha to the biggest value so that feasibility is maintained with this step size

source
ConicBundle.cb_localsys_mult!Function
cb_localsys_mult!(self::CBQPConeModelBlock, in_vec::CBMatrix, out_vec::CBMatrix, startindex_model::Integer, startindex_constraints::Integer)
  • @brief multiply the local system diagonal block consisting of the model and local contraints rows and columns by invec[startindexmodel+0,...,+dimmodel(),startindexconstraints+0,...,+dimconstraints] into the same coordinates of outvec.
source
cb_localsys_mult!(self::CBQPSumModelBlock, in_vec::CBMatrix, out_vec::CBMatrix, startindex_model::Integer, startindex_constraints::Integer)
  • @brief multiply the local system diagonal block consisting of the model and local contraints rows and columns by invec[startindexmodel+0,...,+dimmodel(),startindexconstraints+0,...,+dimconstraints] into the same coordinates of outvec.
source
ConicBundle.cb_ls!Function
cb_ls!(self::CBMatrix, rhs::CBMatrix, tol::Real)

computes a least squares solution by #QRsolve, overwriting (*this). rhs is overwritten with the solution. In fact, the full code is return this->QRsolve(rhs,tol);

source
ConicBundle.cb_make_model_aggregate!Function
cb_make_model_aggregate!(self::CBAFTModel, penalty_parameter_increased::Bool, keep_penalty_fixed::Bool)

see SumBlockModel::makemodelaggregate

source
cb_make_model_aggregate!(self::CBSumModel, penalty_parameter_increased::Bool, keep_penalty_fixed::Bool)

see SumBlockModel::makemodelaggregate

source
cb_make_model_aggregate!(self::CBSumBundleHandler, increased::Bool, fixed::Bool)

see SumBlockModel::makemodelaggregate

source
ConicBundle.cb_make_symmatrixFunction
cb_make_symmatrix(self::CBCMgramdense, S::CBSymmatrix)

returns a dense symmetric constraint matrix

source
cb_make_symmatrix(self::CBCMgramsparse, S::CBSymmatrix)

returns a dense symmetric constraint matrix

source
cb_make_symmatrix(self::CBCMgramsparse_withoutdiag, S::CBSymmatrix)

returns a dense symmetric constraint matrix

source
cb_make_symmatrix(self::CBCMlowrankdd, S::CBSymmatrix)

returns a dense symmetric constraint matrix

source
cb_make_symmatrix(self::CBCMlowranksd, S::CBSymmatrix)

returns a dense symmetric constraint matrix

source
cb_make_symmatrix(self::CBCMlowrankss, S::CBSymmatrix)

returns a dense symmetric constraint matrix

source
cb_make_symmatrix(self::CBCMsingleton, S::CBSymmatrix)

returns a dense symmetric constraint matrix (useful for testing)

source
cb_make_symmatrix(self::CBCMsymdense, S::CBSymmatrix)

returns a dense symmetric constraint matrix

source
cb_make_symmatrix(self::CBCMsymsparse, S::CBSymmatrix)

returns a dense symmetric constraint matrix

source
ConicBundle.cb_map_to_old_blocksFunction
cb_map_to_old_blocks(self::CBPSCAffineModification)

returns null if there are index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th row (injective!), index values exceeding old_rowdim() refer to newly appended rows

source
ConicBundle.cb_map_to_old_rowsFunction
cb_map_to_old_rows(self::CBAFTModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th row (injective!), index values exceeding old_rowdim() refer to newly appended rows

source
ConicBundle.cb_map_to_old_variablesFunction
cb_map_to_old_variables(self::CBAFTModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
cb_map_to_old_variables(self::CBGroundsetModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
cb_map_to_old_variables(self::CBNNCBoxSupportModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
cb_map_to_old_variables(self::CBPSCAffineModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
cb_map_to_old_variables(self::CBSOCSupportModification)

returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables

source
ConicBundle.cb_mapped_variables_are_equalFunction
cb_mapped_variables_are_equal(self::CBAFTModification, newpoint::CBMatrix, oldpoint::CBMatrix)

returns true if the values in newpoint (must be a vector of length newvardim()) that correspond to old variables match the old values stored in oldpoint (must be a vector of length oldvardim()) and false otherwise

source
cb_mapped_variables_are_equal(self::CBGroundsetModification, newpoint::CBMatrix, oldpoint::CBMatrix)

returns true if the values in newpoint (must be a vector of length newvardim()) that correspond to old variables match the old values stored in oldpoint (must be a vector of length oldvardim()) and false otherwise

source
cb_mapped_variables_are_equal(self::CBNNCBoxSupportModification, newpoint::CBMatrix, oldpoint::CBMatrix)

returns true if the values in newpoint (must be a vector of length newvardim()) that correspond to old variables match the old values stored in oldpoint (must be a vector of length oldvardim()) and false otherwise

source
cb_mapped_variables_are_equal(self::CBPSCAffineModification, newpoint::CBMatrix, oldpoint::CBMatrix)

returns true if the values in newpoint (must be a vector of length newvardim()) that correspond to old variables match the old values stored in oldpoint (must be a vector of length oldvardim()) and false otherwise

source
cb_mapped_variables_are_equal(self::CBSOCSupportModification, newpoint::CBMatrix, oldpoint::CBMatrix)

returns true if the values in newpoint (must be a vector of length newvardim()) that correspond to old variables match the old values stored in oldpoint (must be a vector of length oldvardim()) and false otherwise

source
ConicBundle.cb_maxFunction
cb_max(A::CBMatrix, iindex::Union{<:AbstractVector{Cint},Nothing}, jindex::Union{<:AbstractVector{Cint},Nothing})

returns the maximum value over all elements of the matrix

source
cb_max(A::CBIndexmatrix, iindex::Union{<:AbstractVector{Cint},Nothing}, jindex::Union{<:AbstractVector{Cint},Nothing})

returns the maximum value over all elements of the matrix

source
cb_max(A::CBSymmatrix)

returns the maximum value over all elements of the matrix

source
ConicBundle.cb_maxcolsFunction
cb_maxcols(A::CBMatrix)

returns a column vector holding in each row the maximum over all columns in this row

source
cb_maxcols(A::CBIndexmatrix)

returns a column vector holding in each row the maximum over all columns in this row

source
cb_maxcols(A::CBSymmatrix)

returns a column vector holding in each row the maximum over all columns in this row

source
ConicBundle.cb_maxrowsFunction
cb_maxrows(A::CBMatrix)

returns a row vector holding in each column the maximum over all rows in this column

source
cb_maxrows(A::CBIndexmatrix)

returns a row vector holding in each column the maximum over all rows in this column

source
cb_maxrows(A::CBSymmatrix)

returns a row vector holding in each column the maximum over all rows in this column

source
ConicBundle.cb_mfile_dataFunction
cb_mfile_data(self::CBBundleDenseTrustRegionProx)

output the description of the scaling in mfile-suitable format

source
cb_mfile_data(self::CBBundleDiagonalTrustRegionProx)

output the description of the scaling in mfile-suitable format

source
cb_mfile_data(self::CBBundleDLRTrustRegionProx)

output the description of the scaling in mfile-suitable format

source
cb_mfile_data(self::CBBundleIdProx)

output the description of the prox term in mfile-suitable format

source
cb_mfile_data(self::CBBundleLowRankTrustRegionProx)

output the description of the prox term in mfile-suitable format

source
cb_mfile_data(self::CBQPSolver)

output the data describing the QP in m-file style

source
cb_mfile_data(self::CBLPGroundset)

m-file output routine for debugging or testing in Matlab (not yet working)

source
cb_mfile_data(self::CBUnconstrainedGroundset)

m-file output routine for debugging or testing in Matlab (not yet working)

source
ConicBundle.cb_mfile_outputFunction
cb_mfile_output(self::CBMatrix, precision::Integer = 16, width::Integer = 0)
  • @brief outputs a matrix A in the format "[ A(0,1) ... A(0,nc-1)\n ... A(nr-1,nc-1)];\n" so that it can be read e.g. by octave as an m-file
source
cb_mfile_output(self::CBIndexmatrix, precision::Integer = 16, width::Integer = 0)
  • @brief outputs a matrix A in the format "[ A(0,1) ... A(0,nc-1)\n ... A(nr-1,nc-1)];\n" so that it can be read e.g. by octave as an m-file
source
cb_mfile_output(self::CBSymmatrix, precision::Integer = 16, width::Integer = 0)
  • @brief outputs a matrix A in the format "[ A(0,1) ... A(0,nc-1)\n ... A(nr-1,nc-1)];\n" so that it can be read e.g. by octave as an m-file
source
ConicBundle.cb_minFunction
cb_min(A::CBMatrix, iindex::Union{<:AbstractVector{Cint},Nothing}, jindex::Union{<:AbstractVector{Cint},Nothing})

returns the minimum value over all elements of the matrix

source
cb_min(A::CBIndexmatrix, iindex::Union{<:AbstractVector{Cint},Nothing}, jindex::Union{<:AbstractVector{Cint},Nothing})

returns the minimum value over all elements of the matrix

source
cb_min(A::CBSymmatrix)

returns the minimum value over all elements of the matrix

source
ConicBundle.cb_mincolsFunction
cb_mincols(A::CBMatrix)

returns a column vector holding in each row the minimum over all columns in this row

source
cb_mincols(A::CBIndexmatrix)

returns a column vector holding in each row the minimum over all columns in this row

source
cb_mincols(A::CBSymmatrix)

returns a column vector holding in each row the minimum over all columns in this row

source
ConicBundle.cb_minrowsFunction
cb_minrows(A::CBMatrix)

returns a row vector holding in each column the minimum over all rows in this column

source
cb_minrows(A::CBIndexmatrix)

returns a row vector holding in each column the minimum over all rows in this column

source
cb_minrows(A::CBSymmatrix)

returns a row vector holding in each column the minimum over all rows in this column

source
ConicBundle.cb_modelFunction
cb_model(self::CBSumModel, fo::Union{<:CBFunctionObject,Nothing})

returns the submodel for FunctionObject fo if it in this model, otherwise 0

source
ConicBundle.cb_model_aggregate_modified!Function
cb_model_aggregate_modified!(self::CBAFTData, last_aggr_id::Integer)

check whether aggregate is available and has the same id

source
cb_model_aggregate_modified!(self::CBAFTModel, old_model_aggregate_id::Integer)

see BundleModel::modelaggregatemodified

source
cb_model_aggregate_modified!(self::CBSumModel, old_model_aggregate_id::Integer)

see BundleModel::modelaggregatemodified

source
ConicBundle.cb_modified_transform_argumentFunction
cb_modified_transform_argument(self::CBAffineFunctionTransformation, transformed_y::CBMatrix, input_y::CBMatrix, aftmdf::Union{<:CBAFTModification,Nothing}, gsmdf::CBGroundsetModification)
  • @brief given the modification aftmdf or if 0, gsmdf, compute the transformed argument that would arise after this modification as in transform_argument()

    On input @a transformedy is supposed to be of dimension zero. The matrix returned is transformedy unless the modification preserves the identity transformation. In this case, the returned matrix is input_y.

source
ConicBundle.cb_multiply!Function
cb_multiply!(self::CBCMgramdense, d::Real)

multiply constraint permanentely by d; this is to allow scaling or sign changes in the constraints

source
cb_multiply!(self::CBCMgramsparse, d::Real)

multiply constraint permanentely by d; this is to allow scaling or sign changes in the constraints

source
cb_multiply!(self::CBCMgramsparse_withoutdiag, d::Real)

multiply constraint permanentely by d; this is to allow scaling or sign changes in the constraints

source
cb_multiply!(self::CBCMlowrankdd, d::Real)

multiply constraint permanentely by d; this is to allow scaling or sign changes in the constraints

source
cb_multiply!(self::CBCMlowranksd, d::Real)

multiply constraint permanentely by d; this is to allow scaling or sign changes in the constraints

source
cb_multiply!(self::CBCMlowrankss, d::Real)

multiply constraint permanentely by d; this is to allow scaling or sign changes in the constraints

source
cb_multiply!(self::CBCMsingleton, d::Real)

multiply constraint permanentely by d; this is to allow scaling or sign changes in the constraints

source
cb_multiply!(self::CBCMsymdense, d::Real)

multiply constraint permanentely by d; this is to allow scaling or sign changes in the constraints

source
cb_multiply!(self::CBCMsymsparse, d::Real)

multiply constraint permanentely by d; this is to allow scaling or sign changes in the constraints

source
cb_multiply!(self::CBCoeffmatInfo, sf::Real)

scales the scale factor

source
ConicBundle.cb_new_block_indicesFunction
cb_new_block_indices(self::CBPSCAffineModification)

returns null if no rows were added, otherwise the Indexmatrix pointed ato is a vector holding the new indices of the new rows in increasing order

source
ConicBundle.cb_new_blockdimFunction
cb_new_blockdim(self::CBPSCAffineModification)

returns the number of rows once all stored modifications have been performed

source
ConicBundle.cb_new_initial_oraclemodificationFunction
cb_new_initial_oraclemodification(self::CBAFTModification, old_var_dim::Integer)

returns a new object on the heap, that allows to incorporate this but starts off from a function whose input argument dimension is oldvardim

source
cb_new_initial_oraclemodification(self::CBGroundsetModification, old_var_dim::Integer)

returns a new object on the heap, that allows to incorporate this but starts off from a function whose input argument dimension is oldvardim

source
cb_new_initial_oraclemodification(self::CBNNCBoxSupportModification, old_var_dim::Integer)

returns a new object on the heap, that allows to incorporate this but starts off from a function whose input argument dimension is oldvardim

source
cb_new_initial_oraclemodification(self::CBPSCAffineModification, old_var_dim::Integer)

returns a new object on the heap, that allows to incorporate this but starts off from a function whose input argument dimension is oldvardim

source
cb_new_initial_oraclemodification(self::CBSOCSupportModification, old_var_dim::Integer)

returns a new object on the heap, that allows to incorporate this but starts off from a function whose input argument dimension is oldvardim

source
ConicBundle.cb_new_row_indicesFunction
cb_new_row_indices(self::CBAFTModification)

returns null if no variables were added, otherwise the Indexmatrix pointed to is a vector holding the new indices of the new rows in increasing order

source
ConicBundle.cb_new_rowdimFunction
cb_new_rowdim(self::CBAFTModification)

returns the number of rows once all stored modifications have been performed

source
ConicBundle.cb_new_var_indicesFunction
cb_new_var_indices(self::CBAFTModification)

returns null if no variables were added, otherwise the Indexmatrix pointed to is a vector holding the new indices of the new variables in increasing order

source
cb_new_var_indices(self::CBGroundsetModification)

returns null if no variables were added, otherwise the Indexmatrix pointed ato is a vector holding the new indices of the new variables in increasing order

source
cb_new_var_indices(self::CBNNCBoxSupportModification)

returns null if no variables were added, otherwise the Indexmatrix pointed ato is a vector holding the new indices of the new variables in increasing order

source
cb_new_var_indices(self::CBPSCAffineModification)

returns null if no variables were added, otherwise the Indexmatrix pointed to is a vector holding the new indices of the new variables in increasing order

source
cb_new_var_indices(self::CBSOCSupportModification)

returns null if no variables were added, otherwise the Indexmatrix pointed ato is a vector holding the new indices of the new variables in increasing order

source
ConicBundle.cb_new_vardimFunction
cb_new_vardim(self::CBAFTModification)

returns the number of variables once all stored modifications have been performed

source
cb_new_vardim(self::CBGroundsetModification)

returns the number of variables once all stored modifications have been performed

source
cb_new_vardim(self::CBNNCBoxSupportModification)

returns the number of variables once all stored modifications have been performed

source
cb_new_vardim(self::CBPSCAffineModification)

returns the number of variables once all stored modifications have been performed

source
cb_new_vardim(self::CBSOCSupportModification)

returns the number of variables once all stored modifications have been performed

source
ConicBundle.cb_new_variables_are_zeroFunction
cb_new_variables_are_zero(self::CBAFTModification, newpoint::CBMatrix)

returns true if all entries in newpoint (must be a vector of length new_vardim()) that correspond to new variables have value 0 and false otherwise

source
cb_new_variables_are_zero(self::CBGroundsetModification, newpoint::CBMatrix)

returns true if all entries in newpoint (must be a vector of length new_vardim()) that correspond to new variables have value 0 and false otherwise

source
cb_new_variables_are_zero(self::CBNNCBoxSupportModification, newpoint::CBMatrix)

returns true if all entries in newpoint (must be a vector of length new_vardim()) that correspond to new variables have value 0 and false otherwise

source
cb_new_variables_are_zero(self::CBPSCAffineModification, newpoint::CBMatrix, newmat::CBSparseCoeffmatMatrix)

returns true if for all indices of new variables the entries in newpoint (must be a vector of length new_vardim()) or the matrices in newmat are 0 and false otherwise

source
cb_new_variables_are_zero(self::CBSOCSupportModification, newpoint::CBMatrix)

returns true if all entries in newpoint (must be a vector of length new_vardim()) that correspond to new variables have value 0 and false otherwise

source
ConicBundle.cb_newsize!Function
cb_newsize!(self::CBMatrix, nr::Integer, nc::Integer)
  • @brief resize the matrix to nr x nc elements but WITHOUT initializing the memory

      If initializing the memory externally and CONICBUNDLE_DEBUG is defined, please use
      set_init() via matrix.set_init(true) in order to avoid warnings concerning improper
      initialization
source
cb_newsize!(self::CBIndexmatrix, nr::Integer, nc::Integer)
  • @brief resize the matrix to nr x nc elements but WITHOUT initializing the memory

      If initializing the memory externally and CONICBUNDLE_DEBUG is defined, please use
      set_init() via matrix.set_init(true) in order to avoid warnings concerning improper
      initialization
source
cb_newsize!(self::CBSymmatrix, n::Integer)
  • @brief resize the matrix to nr x nr elements but WITHOUT initializing the memory

      If initializing the memory externally and CONICBUNDLE_DEBUG is defined, please use
      set_init() via matrix.set_init(true) in order to avoid warnings concerning improper
      initialization
source
ConicBundle.cb_nnlsFunction
cb_nnls(self::CBMatrix, rhs::CBMatrix, dual::Union{<:CBMatrix,Nothing} = nothing, tol::Real = 1e-10)
  • @brief computes a nonnegative least squares solution; rhs is overwritten by the solution; if dual!=0, the dual variables are stored there; returns 0 on success, 1 on failure

    Computes the least squares solution of min ||Ax-b|| s.t. x >=0;\n
    The KKT system A'*A*x - A'*b - l = 0; x >=0, l>=0, x'*l=0 is solved
    solved by interior point method with QR-solution of the extended system.
    
    The current implementation is based on
    [P. Matsoms, "Sparse Linear Least Squares Problems in Optimization",
    Comput. Opt. and Appl., 7, 89-110 (1997)] but is only
    a quick and rather sloppy implementation of it ...
source
ConicBundle.cb_no_additions_or_deletions_in_varsFunction
cb_no_additions_or_deletions_in_vars(self::CBAFTModification)

returns true if no columns/variables were added or deleted (allows permutations), false otherwise

source
cb_no_additions_or_deletions_in_vars(self::CBGroundsetModification)

returns true if no variables were added or deleted (allows permutations), false otherwise

source
cb_no_additions_or_deletions_in_vars(self::CBNNCBoxSupportModification)

returns true if no variables were added or deleted (allows permutations), false otherwise

source
cb_no_additions_or_deletions_in_vars(self::CBSOCSupportModification)

returns true if no variables were added or deleted (allows permutations), false otherwise

source
ConicBundle.cb_no_modificationFunction
cb_no_modification(self::CBAFTModification)

returns true if no modifications need to be executed

source
cb_no_modification(self::CBGroundsetModification)

returns true if no modifications need to be executed except possibly an offset change for the ground set minorant

source
cb_no_modification(self::CBNNCBoxSupportModification)

returns true if no modifications need to be executed except possibly an offset change for the ground set minorant

source
cb_no_modification(self::CBPSCAffineModification)

returns true if no modifications need to be executed

source
cb_no_modification(self::CBSOCSupportModification)

returns true if no modifications need to be executed except possibly an offset change for the ground set minorant

source
ConicBundle.cb_nonzerosFunction
cb_nonzeros(self::CBSparsemat)

returns the number of nonzeros

source
cb_nonzeros(self::CBSparsesym)

returns the number of nonzeros in the lower triangle (including diagonal)

source
cb_nonzeros(self::CBMinorantPointer)

returns the number of nonzero coefficients

source
ConicBundle.cb_normFunction
cb_norm(self::CBCMgramdense)

returns the Frobenius norm of the matrix

source
cb_norm(self::CBCMgramsparse)

returns the Frobenius norm of the matrix

source
cb_norm(self::CBCMgramsparse_withoutdiag)

returns the Frobenius norm of the matrix

source
cb_norm(self::CBCMlowrankdd)

returns the Frobenius norm of the matrix

source
cb_norm(self::CBCMlowranksd)

returns the Frobenius norm of the matrix

source
cb_norm(self::CBCMlowrankss)

returns the Frobenius norm of the matrix

source
cb_norm(self::CBCMsingleton)

returns the Frobenius norm of the matrix

source
cb_norm(self::CBCMsymdense)

returns the Frobenius norm of the matrix

source
cb_norm(self::CBCMsymsparse)

returns the Frobenius norm of the matrix

source
ConicBundle.cb_norm2Function
cb_norm2(A::CBMatrix)

returns the Frobenius norm of A, i.e., the square root of the sum of A(i,j)*A(i,j) over all i,j

source
cb_norm2(A::CBIndexmatrix)

returns the Frobenius norm of A, i.e., the square root of the sum of A(i,j)*A(i,j) over all i,j

source
cb_norm2(A::CBSparsemat)

returns the Frobenius norm of A, i.e., the square root of the sum of A(i,j)*A(i,j) over all i,j

source
cb_norm2(A::CBSymmatrix)

returns the Frobenius norm of A, i.e., the square root of the sum of A(i,j)*A(i,j) over all i,j

source
cb_norm2(A::CBSparsesym)

returns the Frobenius norm of A, i.e., the square root of the sum of A(i,j)*A(i,j) over all i,j

source
ConicBundle.cb_normDsquaredFunction
cb_normDsquared(A::CBMatrix, d::CBMatrix, atrans::Integer, dinv::Integer)

returns trace(A^TDA)=\|A\|^2_D with D=Diag(d). A may be transposed, D may be inverted but there is no check for division by zero

source
ConicBundle.cb_norm_sqrFunction
cb_norm_sqr(self::CBBundleDenseTrustRegionProx, B::CBMatrix)

returns $\|B\|^2_H$ (with weightu included in H)

source
cb_norm_sqr(self::CBBundleDiagonalTrustRegionProx, B::CBMatrix)

returns \f$\|B\|^2_H\f$

source
cb_norm_sqr(self::CBBundleDLRTrustRegionProx, B::CBMatrix)

returns $\|B\|^2_H$ (with weight included)

source
cb_norm_sqr(self::CBBundleIdProx, B::CBMatrix)

returns \f$\|B\|^2_H\f$

source
cb_norm_sqr(self::CBBundleLowRankTrustRegionProx, B::CBMatrix)

returns $\|B\|^2_H$ (with weight included)

source
ConicBundle.cb_norm_squaredFunction
cb_norm_squared(self::CBMinorantPointer, D::Union{<:CBMatrix,Nothing} = nothing)

Compute the norm squared of this for the given diagonal matrix D (identity if not given), i.e. \f$\|(*this)\|^2_{D}\f$

source
cb_norm_squared(self::CBMinorant)

return the squared Euclidean norm

source
ConicBundle.cb_normalize_sumbundle!Function
cb_normalize_sumbundle!(self::CBSumBundleHandler)
  • brief bring the bundle into a normal form so that contributions may be added and subtracted consistently

    The normal form has the aggregate w.r.t. to the last bundle cofficients stored in column aggr->index in scaled form so that in coeff all weight is set to it. No other columns are modified.

    When addcontributions is called, it is assumed that parent bundle and contributing bundle are in this form. Some care has to be taken that this normalization is happening for parent and children in coordinated form so that removecontribution() does not cause havoc. For this, the sumbundle should always be normalized in (or right before) calling SumBlockModel::sumbundle_contribution() before starting any interaction with the parent or the children.

source
ConicBundle.cb_nullstep_update!Function
cb_nullstep_update!(self::CBBundleHKWeight, newval::Real, oldval::Real, modelval::Real, y::CBMatrix, newy::CBMatrix, new_minorant::CBMinorantPointer, aggregate::CBMinorantPointer, nullstep_bound::Real, normsubg2::Real, Hp::Union{<:CBBundleProxObject,Nothing})

determine next weight after a null step

source
cb_nullstep_update!(self::CBBundleRQBWeight, newval::Real, oldval::Real, modelval::Real, y::CBMatrix, newy::CBMatrix, new_minorant::CBMinorantPointer, aggregate::CBMinorantPointer, nullstep_bound::Real, normsubg2::Real, Hp::Union{<:CBBundleProxObject,Nothing})

determine next weight after a null step

source
ConicBundle.cb_nzcoldimFunction
cb_nzcoldim(self::CBSparseCoeffmatMatrix)

returns the number of columns with nonzero coefficient matrices

source
ConicBundle.cb_objective_valueFunction
cb_objective_value(self::CBAffineFunctionTransformation, offset::Real, function_value::Real)
  • @brief if @a offset is the value computed in transformargument and @a functionvalue results form an evaluation in the respective point, the routine returns the objective value obtained by the affine transformation
source
ConicBundle.cb_offsetFunction
cb_offset(self::CBMinorantPointer)

returns the offset of the minorant (including the internal scalings) or CBminusinfinity if empty

source
cb_offset(self::CBMinorantUseData)

return the offset of the minorant

source
cb_offset(self::CBMinorant)

returns the current offset value

source
ConicBundle.cb_offset_gives_value_at_originFunction
cb_offset_gives_value_at_origin(self::CBMinorant)

true if the offset refers to origin and false, if the offset refers to the value of the minorant in the point of the oracle evaluation at which this minorant was supplied

source
ConicBundle.cb_old_vardimFunction
cb_old_vardim(self::CBAFTModification)

returns the number of variables before modification (given on initialization)

source
cb_old_vardim(self::CBGroundsetModification)

returns the number of variables before modification (given on initialization)

source
cb_old_vardim(self::CBNNCBoxSupportModification)

returns the number of variables before modification (given on initialization)

source
cb_old_vardim(self::CBPSCAffineModification)

returns the number of variables before modification (given on initialization)

source
cb_old_vardim(self::CBSOCSupportModification)

returns the number of variables before modification (given on initialization)

source
ConicBundle.cb_one_userFunction
cb_one_user(self::CBMinorantPointer)

returns true if not valid or this is the only active pointer to the minorant

source
cb_one_user(self::CBMinorantUseData)

returns true if not valid or use_cnt==1 recursively

source
ConicBundle.cb_outFunction
cb_out(self::CBCMgramdense)

put entire contents onto ostream with the class type in the beginning so that the derived class can be recognized by in().

source
cb_out(self::CBCMgramsparse)

put entire contents onto ostream with the class type in the beginning so that the derived class can be recognized by in().

source
cb_out(self::CBCMgramsparse_withoutdiag)

put entire contents onto ostream with the class type in the beginning so that the derived class can be recognized by in().

source
cb_out(self::CBCMlowrankdd)

put entire contents onto ostream with the class type in the beginning so that the derived class can be recognized by in().

source
cb_out(self::CBCMlowranksd)

put entire contents onto ostream with the class type in the beginning so that the derived class can be recognized by in().

source
cb_out(self::CBCMlowrankss)

put entire contents onto ostream with the class type in the beginning so that the derived class can be recognized by in().

source
cb_out(self::CBCMsingleton)

put entire contents onto outstream with the class type in the beginning so that the derived class can be recognized by in().

source
cb_out(self::CBCMsymdense)

put entire contents onto outstream with the class type in the beginning so that the derived class can be recognized by in().

source
cb_out(self::CBCMsymsparse)

put entire contents onto outstream with the class type in the beginning so that the derived class can be recognized by in().

source
ConicBundle.cb_output_bundle_dataFunction
cb_output_bundle_data(self::CBPSCModel)

this outputs the qp model data recursively for testing purposes

source
cb_output_bundle_data(self::CBSOCModel)

this outputs the qp model data recursively for testing purposes

source
ConicBundle.cb_pivot_permute!Function
cb_pivot_permute!(self::CBSymmatrix, piv::CBIndexmatrix, inverse::Bool = false)

for i=0 to rowdim row (and column) i of this matrix is swapped with row piv(j); for inverse=true the inverse permutation is generated

source
ConicBundle.cb_pivot_permute_cols!Function
cb_pivot_permute_cols!(self::CBMatrix, piv::CBIndexmatrix, inverse::Bool = false)

for j=0 to coldim column j of this matrix is swapped with column piv(j); for inverse =true the inverse permutation is generated

source
ConicBundle.cb_pivot_permute_rows!Function
cb_pivot_permute_rows!(self::CBMatrix, piv::CBIndexmatrix, inverse::Bool = false)

for i=0 to rowdim row i of this matrix is swapped with row piv(i); for inverse =true the inverse permutation is generated

source
ConicBundle.cb_pop_aft!Function
cb_pop_aft!(self::CBBundleDenseTrustRegionProx)

see BundleProxObject::pop_aft();

source
cb_pop_aft!(self::CBBundleDiagonalTrustRegionProx)

see BundleProxObject::pop_aft();

source
cb_pop_aft!(self::CBBundleDLRTrustRegionProx)

see BundleProxObject::pop_aft();

source
cb_pop_aft!(self::CBBundleLowRankTrustRegionProx)

see BundleProxObject::pop_aft();

source
ConicBundle.cb_postgenmultFunction
cb_postgenmult(self::CBCMgramdense, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alpha(this)B^(T if btrans) + betaC, C is also returned

source
cb_postgenmult(self::CBCMgramsparse, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alpha(this)B^(T if btrans) + betaC, C is also returned

source
cb_postgenmult(self::CBCMgramsparse_withoutdiag, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alpha(this)B^(T if btrans) + betaC, C is also returned

source
cb_postgenmult(self::CBCMlowrankdd, D::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., dtrans::Integer = 0)

computes C= alpha(this)D^(T if dtrans) + betaC, C is also returned

source
cb_postgenmult(self::CBCMlowranksd, D::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., dtrans::Integer = 0)

computes C= alpha(this)D^(T if dtrans) + betaC, C is also returned

source
cb_postgenmult(self::CBCMlowrankss, D::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., dtrans::Integer = 0)

computes C= alpha(this)D^(T if dtrans) + betaC, C is also returned

source
cb_postgenmult(self::CBCMsingleton, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alpha(this)B^(T if btrans) + betaC, C is also returned

source
cb_postgenmult(self::CBCMsymdense, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alpha(this)B^(T if btrans) + betaC, C is also returned

source
cb_postgenmult(self::CBCMsymsparse, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alpha(this)B^(T if btrans) + betaC, C is also returned

source
ConicBundle.cb_precond_invG1!Function
cb_precond_invG1!(self::CBQPKKTSubspaceHPrecond, vec::CBMatrix)

for estimating the condition number with M1=GG^T this returns G^{-1}vec; default: G=I

source
ConicBundle.cb_precond_invG1tran!Function
cb_precond_invG1tran!(self::CBQPKKTSubspaceHPrecond, vec::CBMatrix)

for estimating the condition number with M1=GG^T this returns G^{-T}vec; default: G=I

source
ConicBundle.cb_precond_size!Function
cb_precond_size!(self::CBQPKKTSubspaceHPrecond)

for estimating the condition number directly for the preconditioned part only; negative numbers indicate that the routine is not implemented

source
ConicBundle.cb_pregenmultFunction
cb_pregenmult(self::CBCMgramdense, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alphaB^(T if btrans)(this) + betaC, C is also returned

source
cb_pregenmult(self::CBCMgramsparse, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alphaB^(T if btrans)(this) + betaC, C is also returned

source
cb_pregenmult(self::CBCMgramsparse_withoutdiag, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alphaB^(T if btrans)(this) + betaC, C is also returned

source
cb_pregenmult(self::CBCMlowrankdd, D::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., dtrans::Integer = 0)

computes C= alphaD^(T if dtrans)(this) + betaC, C is also returned

source
cb_pregenmult(self::CBCMlowranksd, D::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., dtrans::Integer = 0)

computes C= alphaD^(T if dtrans)(this) + betaC, C is also returned

source
cb_pregenmult(self::CBCMlowrankss, D::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., dtrans::Integer = 0)

computes C= alphaD^(T if dtrans)(this) + betaC, C is also returned

source
cb_pregenmult(self::CBCMsingleton, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alphaB^(T if btrans)(this) + betaC, C is also returned

source
cb_pregenmult(self::CBCMsymdense, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alphaB^(T if btrans)(this) + betaC, C is also returned

source
cb_pregenmult(self::CBCMsymsparse, B::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., btrans::Integer = 0)

computes C= alphaB^(T if btrans)(this) + betaC, C is also returned

source
ConicBundle.cb_prepare_BCSchur_JLprecond!Function
cb_prepare_BCSchur_JLprecond!(self::CBQPConeModelBlock, glob_lowrank::CBMatrix, subspace::CBMatrix, append_globtransp_times_mat_to_subspace::Bool, globalbundle::CBMinorantBundle, startindex_bundle::Integer)
  • @brief compute the preconditioning low-rank representation of the Schur complementd blocks belonging to bundle and local constraints by adding a Johnson-Lindenstrauss projection onto the given subspace to glob_lowrank

source
cb_prepare_BCSchur_JLprecond!(self::CBQPSumModelBlock, glob_lowrank::CBMatrix, subspace::CBMatrix, append_globtransp_times_mat_to_subspace::Bool, globalbundle::CBMinorantBundle, startindex_bundle::Integer)
  • @brief compute the preconditioning low-rank representation of the Schur complementd blocks belonging to bundle and local constraints by adding a Johnson-Lindenstrauss projection onto the given subspace to glob_lowrank

source
ConicBundle.cb_preserves_identityFunction
cb_preserves_identity(self::CBAFTModification)

returns true if the modifications are consistent with the AffineFunctionTransformation matrix staying the identity

source
ConicBundle.cb_primal_ipFunction
cb_primal_ip(self::CBSparseCoeffmatMatrix, ipvec::CBMatrix, primal::Union{<:CBPSCPrimal,Nothing}, ind::Union{<:CBIndexmatrix,Nothing} = nothing)

computes the inner products of (selected) columns (which represent block diagonal symmetric matrices) with the primal into the column vector ipvec(j)=ip(primal,A.column((ind)(j)}) (j=0,...,ind->dim()-1); if ind==NULL, use all columns

source
cb_primal_ip(self::CBSparseCoeffmatMatrix, primal::Union{<:CBPSCPrimal,Nothing}, j::Integer)

computes the inner product of the block diagonal symmetric matrix stored in colummn j with the primal into ipval=ip(*primal,A.column(j))

source
cb_primal_ip(self::CBBlockPSCPrimal, A::CBSparseCoeffmatMatrix, column::Integer)

if compatible evaluate value=ip(*this,A.column[i])

source
cb_primal_ip(self::CBDensePSCPrimal, A::CBSparseCoeffmatMatrix, column::Integer)

if compatible evaluate value=ip(*this,A.column[i])

source
cb_primal_ip(self::CBGramSparsePSCPrimal, A::CBSparseCoeffmatMatrix, column::Integer)

if compatible evaluate value=ip(*this,A.column[i])

source
cb_primal_ip(self::CBSparsePSCPrimal, A::CBSparseCoeffmatMatrix, column::Integer)

if compatible evaluate value=ip(*this,A.column[i])

source
ConicBundle.cb_primalviol_2normsqr!Function
cb_primalviol_2normsqr!(self::CBQPConeModelBlock)

return squared Euclidean norm of constraint violation of modelx

source
cb_primalviol_2normsqr!(self::CBQPSumModelBlock)

return the squared Euclidean norm of constraint violation of modelx

source
ConicBundle.cb_principal_submatrixFunction
cb_principal_submatrix(self::CBSymmatrix, ind::CBIndexmatrix, S::CBSymmatrix)

returns S and in S the principal submatrix indexed by ind (multiple indices are allowed)

source
cb_principal_submatrix(self::CBSymmatrix, ind::CBIndexmatrix)

returns the principal submatrix indexed by ind (multiple indices are allowed)

source
ConicBundle.cb_print_line_summaryFunction
cb_print_line_summary(self::CBMatrixCBSolver)

print a one line summary of important evaluation data

source
cb_print_line_summary(self::CBBundleSolver)
  • @brief print a one line summary about the current state of progress of the algorithm to @a out

      Assuming that an external clock has been set, the line looks as follows
    
      hh:mm:ss.hh endit dd ii uu weightu aggr_dnorm modelval center_ub (N)
    
      These are
      - hh:mm:ss.hh hours, mintues, seconds, hundreth of secondes
      - "endit" this string is short for "end of iteration" and is
        convenient for the unix command grep; in the case the code
        has terminated it shows "_endit" instead
      - dd gives the number of descent steps as in @a descent_steps
      - ii gives the total number of iterations of the bundle method,
        counting descent steps and null steps
      - uu gives the total number of quadratic bundle subproblem
        evaluations as counted by @a sumupdatecnt
      - weight gives the value of the weight factor for the proximal
        term used in the last quadratic bundle subproblem
      - aggr_dnorm gives the dual norm of the aggregate (dual with
        respect to the quadratic proximal term)
      - modelval gives the model value used for deciding on null or
        descent step; this is @a linval if @a use_linval ==true and

    @a cutval otherwise - centerub gives the upper bound computed by the oracle on the function value in the center - "N" is only shown if the code has not terminated and a null step just occured before returning (nullstep is true)

source
ConicBundle.cb_print_problem_dataFunction
cb_print_problem_data(self::CBNNCBoxSupportFunction)

write the problem description to out so that it can be read again by readproblemdata()

source
cb_print_problem_data(self::CBPSCAffineFunction)

write the problem description to out so that it can be read again by readproblemdata()

source
cb_print_problem_data(self::CBSOCSupportFunction)

write the problem description to out so that it can be read again by readproblemdata()

source
ConicBundle.cb_print_problem_data_to_mfileFunction
cb_print_problem_data_to_mfile(self::CBNNCBoxSupportFunction, blocknr::Integer)

undocumented highly volatile variant for external testing

source
cb_print_problem_data_to_mfile(self::CBPSCAffineFunction, blocknr::Integer)

undocumented highly volatile variant for external testing

source
cb_print_problem_data_to_mfile(self::CBSOCSupportFunction, blocknr::Integer)

undocumented highly volatile variant for external testing

source
ConicBundle.cb_print_statisticsFunction
cb_print_statistics(self::CBMatrixCBSolver)

print a cryptic summary of computation times of important components

source
cb_print_statistics(self::CBUQPSolver)

output some statistical information on performance

source
cb_print_statistics(self::CBBundleSolver)

output some time statistic paramters

source
ConicBundle.cb_print_termination_codeMethod
cb_print_termination_code(self::CBMatrixCBSolver)
  • @brief Outputs a text version of termination code, see termination_code().

    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_print_timeFunction
cb_print_time(m::CBMicroseconds, secondsonly::Integer = 0)

print Microseconds in the format "hh:mm:ss.dd" or "hh:mm:ss"

source
ConicBundle.cb_prodvec_flopsFunction
cb_prodvec_flops(self::CBCMgramdense)

returns an estimate of number of flops to compute addprodto for a vector

source
cb_prodvec_flops(self::CBCMgramsparse)

returns an estimate of number of flops to compute addprodto for a vector

source
cb_prodvec_flops(self::CBCMgramsparse_withoutdiag)

returns an estimate of number of flops to compute addprodto for a vector

source
cb_prodvec_flops(self::CBCMlowrankdd)

returns an estimate of number of flops to compute addprodto for a vector

source
cb_prodvec_flops(self::CBCMlowranksd)

returns an estimate of number of flops to compute addprodto for a vector

source
cb_prodvec_flops(self::CBCMlowrankss)

returns an estimate of number of flops to compute addprodto for a vector

source
cb_prodvec_flops(self::CBCMsingleton)

returns an estimate of number of flops to compute addprodto for a vector

source
cb_prodvec_flops(self::CBCMsymdense)

returns an estimate of number of flops to compute addprodto for a vector

source
cb_prodvec_flops(self::CBCMsymsparse)

returns an estimate of number of flops to compute addprodto for a vector

source
ConicBundle.cb_projectFunction
cb_project(self::CBCMgramdense, S::CBSymmatrix, P::CBMatrix)

computes S=P^T(this)*P

source
cb_project(self::CBCMgramsparse, S::CBSymmatrix, P::CBMatrix)

computes S=P^T(this)*P

source
cb_project(self::CBCMgramsparse_withoutdiag, S::CBSymmatrix, P::CBMatrix)

computes S=P^T(this)*P

source
cb_project(self::CBCMlowrankdd, S::CBSymmatrix, P::CBMatrix)

computes S=P^T(this)*P

source
cb_project(self::CBCMlowranksd, S::CBSymmatrix, P::CBMatrix)

computes S=P^T(this)*P

source
cb_project(self::CBCMlowrankss, S::CBSymmatrix, P::CBMatrix)

computes S=P^T(this)*P

source
cb_project(self::CBCMsingleton, S::CBSymmatrix, P::CBMatrix)

computes S=P^T(this)*P

source
cb_project(self::CBCMsymdense, S::CBSymmatrix, P::CBMatrix)

computes S=P^T(this)*P

source
cb_project(self::CBCMsymsparse, S::CBSymmatrix, P::CBMatrix)

computes S=P^T(this)*P

source
cb_project(self::CBSparseCoeffmatMatrix, S::CBSymmatrix, P::CBMatrix, j::Integer)

computes S=P^TA.column(j)P

source
ConicBundle.cb_projected_clone!Function
cb_projected_clone!(self::CBBundleDenseTrustRegionProx, indices::CBIndexmatrix)
  • @brief in order to allow for fixed variables, this generates a clone restricted to the given indices
source
cb_projected_clone!(self::CBBundleDiagonalTrustRegionProx, indices::CBIndexmatrix)
  • @brief in order to allow for fixed variables, this generates a clone restricted to the given indices
source
cb_projected_clone!(self::CBBundleDLRTrustRegionProx, indices::CBIndexmatrix)
  • @brief in order to allow for fixed variables, this generates a clone restricted to the given indices
source
cb_projected_clone!(self::CBBundleIdProx, indices::CBIndexmatrix)
  • @brief in order to allow for fixed variables, this generates a clone restricted to the given indices
source
cb_projected_clone!(self::CBBundleLowRankTrustRegionProx, indices::CBIndexmatrix)
  • @brief in order to allow for fixed variables, this generates a clone restricted to the given indices
source
ConicBundle.cb_projection!Function
cb_projection!(self::CBSOCSupportFunction, offset::CBMatrix, coeffs::CBMatrix, bar_P::CBMatrix, index_subset::Union{<:CBIndexmatrix,Nothing} = nothing)

see SOCOracle::projection()

source
ConicBundle.cb_propose_BCSchur_pcsubspace!Function
cb_propose_BCSchur_pcsubspace!(self::CBQPConeModelBlock, lowrank::CBMatrix, sigma_guess::CBMatrix, Diag_inv::CBMatrix, minval::Real, diaginvval::Real, globalbundle::CBMinorantBundle, startindex_bundle::Integer)
  • @brief append to lowrank "large" columns that should serve well for generating a low rank projection of the Schur complemented model part. For each column i the coordinate sigmaguess(i) gives the Diaginv-norm for this column. The parameter minval asks to ignore columns whose norms are smaller than minval. If diaginvval is positive, the vector Diag_inv is this value times the all ones vector.

    On input lowrank must have the correct number of rows already but may
    have 0 columns.
source
cb_propose_BCSchur_pcsubspace!(self::CBQPSumModelBlock, lowrank::CBMatrix, sigma_guess::CBMatrix, Diag_inv::CBMatrix, minval::Real, diaginvval::Real, globalbundle::CBMinorantBundle, startindex_bundle::Integer)
  • @brief append to lowrank "large" columns that should serve well for generating a low rank projection of the Schur complemented model part. For each column i the coordinate sigmaguess(i) gives the Diaginv-norm for this column. The parameter minval asks to ignore columns whose norms are smaller than minval. If diaginvval is positive, the vector Diag_inv is this value times the all ones vector.

    On input lowrank must have the correct number of rows already but may
    have 0 columns.
source
ConicBundle.cb_provide_model_aggregate!Function
cb_provide_model_aggregate!(self::CBAFTModel, y_id::Integer, y::CBMatrix)

see BundleModel::providemodelaggregate

source
cb_provide_model_aggregate!(self::CBSumModel, y_id::Integer, y::CBMatrix)

see BundleModel::providemodelaggregate

source
cb_provide_model_aggregate!(self::CBSumBundleHandler)

see SumBlockModel::providemodelaggregate

source
ConicBundle.cb_push_aft!Function
cb_push_aft!(self::CBBundleDenseTrustRegionProx, aft::Union{<:CBAffineFunctionTransformation,Nothing})

see BundleProxObject::push_aft();

source
cb_push_aft!(self::CBBundleDiagonalTrustRegionProx, aft::Union{<:CBAffineFunctionTransformation,Nothing})

see BundleProxObject::push_aft();

source
cb_push_aft!(self::CBBundleDLRTrustRegionProx, aft::Union{<:CBAffineFunctionTransformation,Nothing})

see BundleProxObject::push_aft();

source
cb_push_aft!(self::CBBundleLowRankTrustRegionProx, aft::Union{<:CBAffineFunctionTransformation,Nothing})

see BundleProxObject::push_aft();

source
ConicBundle.cb_qp_cost_indicesFunction
cb_qp_cost_indices(self::CBAffineFunctionTransformation, provide_row_indices::CBIndexmatrix, needed_col_indices::Union{<:CBIndexmatrix,Nothing})
  • @brief if the algorithm only requires the indices given in @a neededcolindices (NULL means all indices) then it suffices to supply the @a providerowindices as @a indices in transform_minorant (a 0x0 return matrix again means all indices, while a 0x1 matrix means no indices). Any input or output indices must be in strictly increasing order.
source
ConicBundle.cb_qp_mfile_dataFunction
cb_qp_mfile_data(self::CBBundleSolver, center_y::CBMatrix, Hp::Union{<:CBBundleProxObject,Nothing}, gs_subg::CBMinorantPointer, Q::CBSymmatrix, c::CBMatrix, offset::Real, yfixed::CBIndexmatrix)

output the data of the Gauss-Seidel qp to in an m file format

source
ConicBundle.cb_randFunction
cb_rand(nr::Integer, nc::Integer, random_generator::Union{<:CBGB_rand,Nothing})

return a nr x nc matrix with (i,j) assigned a random number uniformly from [0,1] for all i,j

source
cb_rand(nr::Integer, nc::Integer, lb::Integer, ub::Integer, random_generator::Union{<:CBGB_rand,Nothing})

return a nr x nc matrix with (i,j) assigned a random number uniformly from [lowerb,upperb] for all i,j

source
ConicBundle.cb_rand!Function
cb_rand!(self::CBMatrix, nr::Integer, nc::Integer, random_generator::Union{<:CBGB_rand,Nothing} = nothing)

resize *this to an nr x nc matrix and assign to (i,j) a random number uniformly from [0,1] for all i,j

source
cb_rand!(self::CBIndexmatrix, nr::Integer, nc::Integer, lowerb::Integer, upperb::Integer, random_generator::Union{<:CBGB_rand,Nothing} = nothing)

resize *this to an nr x nc matrix and assign to (i,j) a random number uniformly from [lowerb,upperb] for all i,j

source
ConicBundle.cb_rand_normal!Function
cb_rand_normal!(self::CBMatrix, nr::Integer, nc::Integer, mean::Real = 0., variance::Real = 1., generator_type::Integer = 0)

resize *this to an nr x nc matrix and assign to (i,j) a random number from the normal distribution with given mean and variance (generators: 0 std, 1 mt, 2 mt64)

source
ConicBundle.cb_rank2addFunction
cb_rank2add(A::CBSparsemat, B::CBMatrix, C::CBSymmatrix, alpha::Real, beta::Real, trans::Integer)

returns C=betaC+alpha(AB^T+BA^T)/2 [or for transposed (A^TB+B^TA)/2]. If beta==0. then C is initiliazed to the correct size.

source
cb_rank2add(A::CBMatrix, B::CBMatrix, C::CBSymmatrix, alpha::Real, beta::Real, trans::Integer)

returns C=betaC+alpha(AB^T+BA^T)/2 [or for transposed (A^TB+B^TA)/2]. If beta==0. then C is initiliazed to the correct size.

source
ConicBundle.cb_rankaddFunction
cb_rankadd(A::CBSparsemat, C::CBSymmatrix, alpha::Real, beta::Real, trans::Integer)

returns C=betaC+alpha A*A^T, where A may be transposed; if beta==0. then C is initialized to the correct size

source
cb_rankadd(A::CBMatrix, C::CBSymmatrix, alpha::Real, beta::Real, trans::Integer)

returns C=betaC+alpha A*A^T, where A may be transposed. If beta==0. then C is initiliazed to the correct size.

source
ConicBundle.cb_reassign_blocks!Function
cb_reassign_blocks!(self::CBSparseCoeffmatMatrix, map_to_old::CBIndexmatrix)

afterwards the new block i is the previous block maptoold(i); no multiple appearances are allowed, but not all have to appear (these are deleted)

source
ConicBundle.cb_reassign_coeffs!Function
cb_reassign_coeffs!(self::CBMinorant, n_elements::Integer, map_to_old_coeffs::Union{<:AbstractVector{Integer},Nothing})

resorts (and deletes) coefficients so that afterwards it has nelements and the new coeff(i) has the previous value of coeff(maptooldcoeff(i))

source
ConicBundle.cb_reassign_columns!Function
cb_reassign_columns!(self::CBSparseCoeffmatMatrix, map_to_old::CBIndexmatrix)

afterwards the new column i is the previous column maptoold(i); no multiple appearances are allowed, but not all have to appear (these are deleted)

source
ConicBundle.cb_reassign_variables!Method
cb_reassign_variables!(self::CBMatrixCBSolver, assign_new_from_old::CBIndexmatrix)
  • @brief Reassigns variables to new index positions by mapping to position @a i the variable that previously had index @a assignnewfrom_old[i].

      Old variables, that are not mapped to any position will be deleted.
      It is not allowed to generate several copies of old variables.

    @attention Be sure to include a desription of required changes to your functions via @a affectedfunctionswith_modifications

    @param[in] assignnewfromold (const IVector&) entry assignnewfromold[i] specifies the old index of the variable, that has to be copied to index position i.

    @param[in] affectedfunctionswith_modifications (const FunObjModMap*) If NULL, default actions are performed on all functions. In particular, for those admitting dynamic argument changes all those variables will be deleted whose row in a corresponding updated affine function transformation (so after mapping the columns of the incoming variables) correspond to the zero map (i.e., offset and matrix row are both zero); furthermore, if the transformation was the identity to start with, this will be preserved by mapping the arguments in the same way. For those not admitting changes in their arguments, their corresponding (possibly newly created) affine function transformation will only get the columns mapped, but there will be no row deleltions. If !=NULL, for the listed functions (and their parents up to the root function) the default deletion action is performed unless their FunctionObjectModification entry gives explicit modification instructions which are then applied instead. For all functions NOT listed in the map and not having modified offsprings their corresponding aft will be set up to keep the arguments unchanged.

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_recompute_center!Function
cb_recompute_center!(self::CBAFTModel, center_id::Integer, y::CBMatrix, accept_only_higher_values::Bool = false, relprec::Real = -1.)

see BundleModel::recompute_center

source
cb_recompute_center!(self::CBSumModel, center_id::Integer, y::CBMatrix, accept_only_higher_values::Bool = false, relprec::Real = -1.)

see BundleModel::recompute_center

source
ConicBundle.cb_recursive_copy_data_of!Function
cb_recursive_copy_data_of!(self::CBQPConeModelBlock, param0::Union{<:CBQPModelBlockObject,Nothing})

sofar this is only needed for some comparative evaluations; to work *this must be a clone of the the argument and the content of the objects is copied recursively

source
cb_recursive_copy_data_of!(self::CBQPSumModelBlock, param0::Union{<:CBQPModelBlockObject,Nothing})

sofar this is only needed for some comparative evaluations

source
ConicBundle.cb_recursive_delete_and_clear!Function
cb_recursive_delete_and_clear!(self::CBQPConeModelBlock)

usually the objects of the recursive block structure and not deleted in a clear. If needed, this can be invoked explicitly here, e.g., in order to clean up clones

source
cb_recursive_delete_and_clear!(self::CBQPSumModelBlock)

usually the objects of the recursive block structure and not deleted in a clear. If needed, this can be invoked explicitly here, e.g., in order to clean up clones

source
ConicBundle.cb_reduce_length!Function
cb_reduce_length!(self::CBMatrix, n::Integer)

(*this) is set to a column vector of length min{max{0,n},dim()}; usually used to truncate a vector, returns *this

source
cb_reduce_length!(self::CBIndexmatrix, n::Integer)

(*this) is set to a column vector of length min{max{0,n},dim()}; usually used to truncate a vector, returns *this

source
ConicBundle.cb_reinit_function_model!Method
cb_reinit_function_model!(self::CBMatrixCBSolver, function_::Union{<:CBFunctionObject,Nothing} = nothing)
  • @brief Clears cutting model, subgradients and stored function values for the specified @a function (but only for the given one, not recursively)

     There should be no need to call this if the modification
     routines of this interface were used correctly. If, however,
     the oracle is modified by other means outside this interface,
     this has to be called whenever the specified function was
     modified so that the old subgradients and/or primal generators
     are no longer valid.

    @param[in] function if the aggregate subgradient of a particular function is desired, provide the pointer here, otherwise this referrs to the root function (if there is only one function to be optimized over, this is this single function, otherwise it is the sum of functions)

    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_remove_model!Function
cb_remove_model!(self::CBSumModel, fo::Union{<:CBFunctionObject,Nothing})

remove the submodel identified by @a fo from this model, this does NOT destruct the model. It returns the pointer to the model if there is one, otherwise 0

source
ConicBundle.cb_reset_starting_point!Function
cb_reset_starting_point!(self::CBQPConeModelBlock, y::CBMatrix, mu::Real, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

bundlevalues holds the negative evaluation of the bundle for the current y

source
cb_reset_starting_point!(self::CBQPSumModelBlock, y::CBMatrix, mu::Real, global_bundle::CBMinorantBundle, startindex_bundle::Integer)

reset the starting point for this value of the design variables y

source
ConicBundle.cb_reset_t_precond_mult!Function
cb_reset_t_precond_mult!(self::CBQPKKTSubspaceHPrecond)

for evaluation purposes with iterative solvers, reset the time spent in the multiplication with the preconditioner to zero

source
ConicBundle.cb_resolve!Function
cb_resolve!(self::CBUQPSolver)

resolve the QP for the same cost function as last time with slightly modified feasible set

source
ConicBundle.cb_restart_x!Function
cb_restart_x!(self::CBUQPConeModelBlock, qp_x::CBMatrix, qp_c::CBMatrix, qp_dc::CBMatrix)
  • @brief it is assumed that the problem was solved already once and is now resolved for a new linear cost term qpc that resulted from the old one by adding qpdc.

    on input qpx holds the old optimal solution and on output the coorespoind qpxrange should be replaced by a reasonable strictly feasible solution for x suitable for restarting (see also restart_yz)

    returns 0 on success, 1 on failure

source
cb_restart_x!(self::CBUQPSumModelBlock, qp_x::CBMatrix, qp_c::CBMatrix, qp_dc::CBMatrix)

get a good restarting x of all subblocks for this change in costs

source
ConicBundle.cb_restart_y!Function
cb_restart_y!(self::CBUQPConeModelBlock, qp_y::CBMatrix, qp_Qx::CBMatrix, qp_c::CBMatrix, qp_dc::CBMatrix)
  • @brief this is called after restart_x (see there)

     on input qp_y and qp_z hold the old optimal solution and on output
     the coorespoind qpy/qpx_range should be replaced by a reasonable
     strictly feasible solution for y/z suitable for restarting
    
     returns 0 on success, 1 on failure
source
cb_restart_y!(self::CBUQPSumModelBlock, qp_y::CBMatrix, qp_Qx::CBMatrix, qp_c::CBMatrix, qp_dc::CBMatrix)

get a good restarting y of all subblocks for this change in costs

source
ConicBundle.cb_right_genmultFunction
cb_right_genmult(self::CBMinorantPointer, A::CBMatrix, C::CBMatrix, alpha::Real = 1., beta::Real = 0., atrans::Integer = 0, thistrans::Integer = 0, thisindex::Integer = 0)

computes and returns C=alphaA(this)+betaC where A and *this may be transposed and *this is considered to be a column with thisindex in a bigger matrix

source
ConicBundle.cb_rintFunction
cb_rint(A::CBMatrix)

returns a matrix with elements (i,j)=rint((*this)(i,j)) for all i,j

source
ConicBundle.cb_rowFunction
cb_row(self::CBMatrix, i::Integer)

returns row i copied to a new matrix

source
cb_row(self::CBIndexmatrix, i::Integer)

returns row i copied to a new matrix

source
cb_row(self::CBSparsemat, i::Integer)

returns row i copied to a new sparse matrix

source
cb_row(self::CBSymmatrix, i::Integer)

returns row i copied to a new Matrix

source
ConicBundle.cb_row_nonzerosFunction
cb_row_nonzeros(self::CBSparsemat, i::Integer, startind::Union{<:AbstractVector{Cint},Nothing} = nothing)

returns the number of nonzeros in row i; if nonzeros>0 and startind!=0 then the index of the first nonzero in rowindex/rowval is stored there

source
ConicBundle.cb_rowdimFunction
cb_rowdim(self::CBMatrix)

returns the row dimension

source
cb_rowdim(self::CBIndexmatrix)

returns the row dimension

source
cb_rowdim(self::CBSparsemat)

returns the row dimension

source
cb_rowdim(self::CBSymmatrix)

returns the row dimension

source
cb_rowdim(self::CBSparsesym)

returns the row dimension

source
cb_rowdim(self::CBSparseCoeffmatMatrix)

returns the number of blocks

source
cb_rowdim(self::CBQPSolver)

number of linear constraints

source
ConicBundle.cb_rowhouseFunction
cb_rowhouse(A::CBMatrix, v::CBMatrix, i::Integer, j::Integer)

Housholder pre-multiplication of A with Householder vector v; the first nonzero of v is index i, the multplication is applied to all columns of A with index >=j; always returns 0

source
ConicBundle.cb_rowipFunction
cb_rowip(A::CBMatrix, i::Integer, scaling::Union{<:CBMatrix,Nothing})

returns the squared Frobenius norm of row i of A, i.e., the sum of A(i,j)A(i,j) over all j with possibly (if scaling!=0) each term j multiplied by (scaling)(j)

source
cb_rowip(A::CBSparsemat, i::Integer, scaling::Union{<:CBMatrix,Nothing})

returns the squared Frobenius norm of row i of A, i.e., the sum of A(i,j)A(i,j) over all j with possibly (if scaling!=0) each term j multiplied by (scaling)(j)

source
ConicBundle.cb_rowsFunction
cb_rows(self::CBMatrix, vec::CBIndexmatrix)

returns a matrix of size vec.dim() x this->coldim(), with row i a copy of row vec(i) of *this

source
cb_rows(self::CBIndexmatrix, vec::CBIndexmatrix)

returns a matrix of size vec.dim() x this->rowdim(), with row i a copy of row vec(i) of *this

source
cb_rows(self::CBSparsemat, ind::CBIndexmatrix)

returns a sparse matrix of size vec.dim() x this->rowdim(), with row i a copy of row vec(i) of *this

source
cb_rows(self::CBSymmatrix, vec::CBIndexmatrix)

returns a matrix of size vec.dim() x this->coldim(), with row i a copy of row vec(i) of *this

source
ConicBundle.cb_rowsipFunction
cb_rowsip(A::CBMatrix)

returns the row vector of the squared Frobenius norm of all rowd i of A, i.e., the sum of A(i,j)*A(i,j) over all j for each i

source
cb_rowsip(A::CBSparsemat, scaling::Union{<:CBMatrix,Nothing})

returns the row vector of the squared Frobenius norm of all rows i of A, i.e., the sum of A(i,j)A(i,j) over all j for each i with possibly (if scaling~=0) each term j multiplied by (scaling)(j)

source
ConicBundle.cb_saveFunction
cb_save(self::CBGB_rand)

save current configuration to out so as to continue identically after restore

source
cb_save(self::CBUQPSolver)

save the current settings and values

source
cb_save(self::CBBundleTerminator)

output current parameter settings

source
ConicBundle.cb_scale!Function
cb_scale!(self::CBMinorantPointer, val::Real)

multiply the MinorantPointer by val (this is an external factor for the minorant and possibly its primal information, but it will be used in aggreagation and when retrieving the approximate primal)

source
cb_scale!(self::CBMinorantUseData, factor::Real)

carries through the scaling for the underlying minorant, afterwards scaleval==1., may only be carried out if use_cnt==1

source
ConicBundle.cb_scale_cols!Function
cb_scale_cols!(self::CBMatrix, vec::CBMatrix)

scales each column i of (this) by vec(i), i.e., (this)=(this)diag(vec), and returns (*this)

source
cb_scale_cols!(self::CBSparsemat, vec::CBMatrix)

scales each column i of (this) by vec(i), i.e., (this)=(this)diag(vec), and returns (*this)

source
ConicBundle.cb_scale_primal_data!Function
cb_scale_primal_data!(self::CBPrimalMatrix, myfactor::Real)

multiply/scale *this with a nonnegative myfactor

source
cb_scale_primal_data!(self::CBBlockPSCPrimal, factor::Real)

multiply/scale *this with a nonnegative factor

source
cb_scale_primal_data!(self::CBDensePSCPrimal, factor::Real)

multiply/scale *this with a nonnegative factor

source
cb_scale_primal_data!(self::CBGramSparsePSCPrimal, factor::Real)

multiply/scale *this with a nonnegative factor

source
cb_scale_primal_data!(self::CBSparsePSCPrimal, factor::Real)

multiply/scale *this with a nonnegative factor

source
ConicBundle.cb_scale_rows!Function
cb_scale_rows!(self::CBMatrix, vec::CBMatrix)

scales each row i of (this) by vec(i), i.e., (this)=diag(vec)(this), and returns (*this)

source
cb_scale_rows!(self::CBSparsemat, vec::CBMatrix)

scales each row i of (this) by vec(i), i.e., (this)=diag(vec)(this), and returns (*this)

source
ConicBundle.cb_scaled_indexFunction
cb_scaled_index(self::CBAffineFunctionTransformation, index::Integer)
  • @brief returns false if index is mapped to more than one index, otherwise true with mapped_index==-1 if mapped to zero, else >=0 and @a coeff gives the coefficient
source
ConicBundle.cb_scaled_index_subsetFunction
cb_scaled_index_subset(self::CBAffineFunctionTransformation, col_ind::Union{<:CBIndexmatrix,Nothing}, row_ind::Union{<:CBIndexmatrix,Nothing})
  • @brief returns true if the transformation maps each index (in colind if !=0) onto at most one index and vice versa (out of rowind if !=0)
source
ConicBundle.cb_scaledrankaddFunction
cb_scaledrankadd(A::CBSparsemat, D::CBMatrix, C::CBSymmatrix, alpha::Real, beta::Real, trans::Integer)

returns C=betaC+alpha ADA^T, where D is a vector representing a diagonal matrix and A may be transposed; if beta==0. then C is initialized to the correct size

source
cb_scaledrankadd(A::CBMatrix, D::CBMatrix, C::CBSymmatrix, alpha::Real, beta::Real, trans::Integer)

returns C=betaC+alpha ADA^T, where D is a vector representing a diagonal matrix and A may be transposed; if beta==0. then C is initialized to the correct size

source
ConicBundle.cb_scaling_indicesFunction
cb_scaling_indices(self::CBAffineFunctionTransformation, row_indices::CBIndexmatrix, col_indices::CBIndexmatrix)
  • @brief if AFTModel::adddiagonalscaling() is called with @a indices specified by @a colindices, then AFTmodel has to provide a diagonal scaling matrix of dimension todim() as @a indiagscale in adddiagonalscaling() with the entries in the output vector @a rowindices computed correctly.
source
ConicBundle.cb_select_model!Function
cb_select_model!(self::CBBoxModelParameters, box_model::CBMinorantBundle, box_coeff::CBMatrix, box_indicators::CBMatrix, box_coords::CBIndexmatrix, box_complvalues::CBMatrix, nnc_model::CBMinorantBundle, nnc_coeff::CBMatrix, nnc_indicators::CBMatrix, coord_switching::CBMatrix, minorants::CBMinorantBundle, cand_minorant::CBMinorantPointer, cand_boxvec::CBPrimalMatrix, aggr_boxvec::CBPrimalMatrix, aggr_scaleval::Real, oracle::Union{<:CBBoxOracle,Nothing}, modification_id::Integer, function_task::CBFunctionTask, function_factor::Real, model_update::CBModelUpdate, center_id::Integer, center_y::CBMatrix, cand_id::Integer, cand_y::CBMatrix, model_maxviol::Real, H::CBBundleProxObject)
  • @brief BoxModel calls this for selecting the next coordinates for a specialized polyhedral model with a box part and an nnc part for aggregates, see the general explanation of the class.

       There is little experience on how to do this.
       The current routine is minimalistic and simply uses
       the weighted number of switches in each coordinate
       between lower and upper bounds to select coordinates.
    
       To allow maybe better choices in future implementations
       the arguments try to pass all potentially relevant
       information items.
    
       On putput the coefficient values of the new model must be
       feasible and have to generate the same aggregate (the aggregate
       is maintained), and the new candidate minorant must be in the
       feasible set.
    
    @param[in,out] box_model
       the boxmodel holds the minorants describing the BoxBlock part of
       the model for selected coordinates and, unless exact or empty,
       in the last position the complement coordinates of a feasible
       point (e.g. aggr_boxvec)
    
    @param[in,out] box_coeff
       - on input coefficients of BoxBlock determined in last
         BundleMethod::eval_augmodel giving rise (together with nnc_coeff)
         to the aggrgate,
       - on output they match the new model and still give rise to
         the same aggregate
    
    @param[in,out] box_indicators
       indicators for activity of box minorants, indicators may but need
       not be maintained
    
    @param[in,out] box_coords
       the coordinates selected to have their respective interval range
       in the model
    
    @param[in,out] box_complvalues
       a point with 0 in the box_coords and feasible
       coordinate values in the complement (if not empty)
    
    @param[in,out] nnc_model
       if box_model is empty, this spans at least the aggregate (if available)
       and the candidate (always); if box_model is not empty but not
       the entire box, nnc_model typically holds one of the candidate or
       the aggregate; if box_model is the entire box, nnc_model is empty
    
    @param[in,out] nnc_coeff
       - on input coefficients of BoxBlock determined in last
         BundleMethod::eval_augmodel giving rise (together with box_coeff)
         to the aggrgate,
       - on output they match the new model and still give rise to
         the same aggregate
    
    @param[in,out] nnc_indicators
       indicators for activity of minorants, indicators may but need
       not be maintained
    
    @param[in] coord_switching
       keeps track of which coordinates where changing the most in the past
       by forming a weighted average in BoxModel::eval_function()
    
    @param[in] minorants
        the vector of MinorantPointer gives additional minorants

    collected over time (some may be duplicates also of those in nnc_model)

    @param[in] candminorant the (eps)sugradient linear minorant returned by BoxModel::evalfunction for the candidate (without function factor)

    @param[in] cand_boxvec the maximizer over the box for the current candidate

    @param[in] aggrboxvec the primal aggregate vector in the box (without functionfactor) giving rise to the aggregate; not initialized if zerodimensional

    @param[in] aggrscaleval 0<= aggrscalevale <= functionfactor, ==functionfactor if functiontask==ObjectiveFunction; the aggregate with functionfactor is aggrboxvec*aggr_scaleval;

    @param[in] oracle
        gives access to lower and upper bounds of the box
    
    @param[in] modification_id
        the identifier of the current function version to be used in generating
        specialized minorants corresponding to the coordinate vectors
    
    @param[in] function_task
        see FunctionTask
    
    @param[in] function_factor
         interpreted according to function_task and the coefficients sum up to at most this value
    
    @param[in] model_update
        informs about whether cand_y is the result of a null_step or descent_step or a new set up.
    
    @param[in] center_id
        the identifier of the center point
    
    @param[in] center_y
        the center point
    
    @param[in] cand_id
        the identifier of the candidate point
    
    @param[in] cand_y
        the candidate (mostly differnt from the center), close to it the model should be good
    
    @param[in] model_maxviol
        a minorant violated by this would have caused a null step
    
    @param[in] H
        the variable metric used in the proximal term (function_factor is already removed in this)
    
    @return
     - 0 on success
     - 1 on failure
source
cb_select_model!(self::CBNNCModelParameters, model::CBMinorantBundle, coefficients::CBMatrix, activity_indicators::CBMatrix, aggregate::CBMinorantPointer, center_minorant::CBMinorantPointer, cand_minorants::CBMinorantBundle, old_minorants::CBMinorantBundle, oracle::Union{<:CBMatrixFunctionOracle,Nothing}, function_task::CBFunctionTask, function_factor::Real, model_update::CBModelUpdate, center_id::Integer, center_y::CBMatrix, cand_id::Integer, cand_y::CBMatrix, model_maxviol::Real, H::CBBundleProxObject)
  • @brief NNCModel calls this for selecting the next minorants for a polyhedral model

    @param[in,out] model
        contains the model of the previous subproblem or a minimal starting choice
    
    @param[in,out]  coefficients
        contains the coefficients resulting from the last bundel subproblem (on input and on output they should generate the aggregate, if the aggregate is valid)
    
    @param[in,out]  activity_indicators
        contains activity_indicators resulting from the last bundel subproblem (currently 1 if considered active and 0 otherwise). Those indicated active in the bundle on input will also be indicated active
    
    @param[in] aggregate
        if valid, it holds the current aggregate. It arises as nonnegative combinations of the model by the coefficients (so it inculde the current function_factor). This property of model and coefficients should be maintained on output
    
    @param[in] center_minorant
        if valid, it holds the current aggregate. It arises as nonnegative combinations of the model by the coefficients, and that should be maintained on output
    
    @param[in] cand_minorants
        holds the vector of minorants returned by evaluation in the candidate point
    
    @param[in] old_minorants
        the vector of MinorantPointer gives additional minorants

    collected over time (some may be duplicates, some are most certainly already contained in the bundle on input)

    @param[in] oracle
        gives access to the evaluation oracle
    
    @param[in] function_task
        see FunctionTask
    
    @param[in] function_factor
         interpreted according to function_task and the coefficients sum up to at most this value
    
    @param[in] model_update
        informs about whether cand_y is the result of a null_step or descent_step or a new set up.
    
    @param[in] center_id
        the identifier of the center point
    
    @param[in] center_y
        the center point
    
    @param[in] cand_id
        the identifier of the candidate point
    
    @param[in] cand_y
        the candidate (mostly differnt from the center), close to it the model should be good
    
    @param[in] model_maxviol
        a minorant violated by this would have caused a null step
    
    @param[in] H
        the variable metric used in the proximal term (function_factor is already removed in this)
    
    @return
     - 0 on success
     - 1 on failure
source
cb_select_model!(self::CBPSCModelParameters, modelvecs::CBMatrix, model_aggregate::CBMinorantPointer, topvecs::CBMatrix, Ritz_values::CBMatrix, primal_Ritzval::Real, primaleigs::CBMatrix, primalvecs::CBMatrix, primal_aggregate::CBMinorantPointer, primal_aggregate_coeff::Real, growthrate::Real, primalgrowth::CBMatrix, dualgrowth::CBMatrix, cand_Ritzvec::CBMatrix, cand_Ritzval::CBMatrix, oracle::Union{<:CBPSCOracle,Nothing}, modification_id::Integer, function_task::CBFunctionTask, function_factor::Real, model_update::CBModelUpdate, center_id::Integer, center_y::CBMatrix, cand_id::Integer, cand_y::CBMatrix, model_maxviol::Real, diffval_center_aggregate::Real, H::CBBundleProxObject)
  • @brief PSCModel calls this for selecting the next positive semidefinite model

    @param[in,out] modelvecs
        * on input: orthonormal basis of the subspace used in the last
          semidefinite model
        * on output: orthonormal subspace basis to be used in the next
          semidefinite model, it includes the subspace of the primalvecs of
          the keepsize largest primaleigs. In particular for null steps
    the remaining columns of primalvecs with nonzero primaleigs
          have to be included with the current aggregate in a new aggregate
          of the model; this will be taken care of outside this routine
          aftwards
    
    @param[in,out] model_aggregate (MinorantPointer)
        aggregate in use in the last and then the next model.
    
    @param[in,out] topvecs
        * on input: orthonormal basis of the collected subspace that is
          supposed to approximate the eigenspace to the largest eigenvalues,
    see Ritz_values
        * on output: same thing but maybe reduced in size
    
    @param[in,out] Ritz_values
        * on input: Ritz_values in cand_y for the vectors in topvecs
        * on output: same thing but maybe reduced in size as in topvecs
    
    @param[in,out] activedim
        * on input: the dimension of the subspace (first columns in topvecs)
           regarded as active in the last iterations of the bundle subproblem solution
    • on output: the dimension of the subspace (first columns of topvecs) regarded as (maybe weakly) active now (typically it will increase during null steps and may be tightened at descent steps)

      @param[out] keepsize columns 0..keepsize-1 of primalvecs (corresponding to the keepsize

    largest primaleigs) are included in modelvecs. The remaining columns need to be aggregated afterwards into the aggregate of the model

    @param[out] skippedsize
        columns activedim..activedim+skippedsize-1 of topvecs should be used
        for setting up the scaling matrix after descent steps.
    
    @param[in] primal_Ritzval
        the (common) Ritz value of the active subspace of the model
        (if not available use some guess like Ritz_values(0))
    
    @param[in] primaleigs
        eigenvalues of the last primal semdifinite model matrix
        (sorted nonincreasingly)
    
    @param[in] primalvecs
        corresponding (orthonormal) eigenvectors to primaleigs
    
    @param[in] primal_aggregate (MinorantPointer)
        aggregate in use in the last model.
    
    @param[in] primal_aggregate_coeff
        coefficient on how strongly the aggregated was used in the last
        primal solution to the model
    
    @param[in] growthrate (Real)
        factor <X,Z>/<X^-,Z^->, where X^- and Z^- are the last but one
        iterates of the interior point method
    
    @param[in] primalgrowth (Matrix)
        factor by which primaleigs changed in the last interior point iteration
    
    @param[in] dualgrowth (Matrix)
        factor by which the dual Ritz values to primalvecs changed

    during the last interior point iteration

    @param[in] cand_Ritzvec (const Matrix&)
        the (orthonormal) vectors returned by the evaluation call to the oracle
    
    @param[in] cand_Ritzval (const Matrix&)

    the Ritz values of cand_Ritzvec returned by the evaluation call to the oracle

    @param[in] oracle
        gives access to the evaluation oracle
    
    @param[in] modification_id
       the identifier for the current version of the function accounting for dynamic modifications
    
     @param[in] function_task
        see FunctionTask
    
    @param[in] function_factor
         interpreted according to function_task and the coefficients sum up to at most this value
    
    @param[in] model_update
        informs about whether cand_y is the result of a null_step or descent_step or a new set up.
    
    @param[in] center_id
        the identifier of the center point
    
    @param[in] center_y
        the center point
    
    @param[in] cand_id
        the identifier of the candidate point
    
    @param[in] cand_y
        the candidate (mostly differnt from the center), close to it the model should be good
    
    @param[in] model_maxviol
        a minorant violated by this would have caused a null step
    
    @param[in] diffval_center_aggregate
        difference of center value to aggregate value (nonnegative, without function_factor)
    
    @param[in] H
        the variable metric used in the proximal term (function_factor is already removed in this)
    
    @return
     - 0 on success
     - 1 on failure
source
cb_select_model!(self::CBSOCModelParameters, modelvecs::CBMatrix, aggrvec::CBMatrix, cand_SOCval::Real, cand_SOCvec::CBMatrix, center_SOCval::Real, center_SOCvec::CBMatrix, SOCvecs::CBMatrix, oracle::Union{<:CBSOCOracle,Nothing}, function_task::CBFunctionTask, function_factor::Real, model_update::CBModelUpdate, center_id::Integer, center_y::CBMatrix, cand_id::Integer, cand_y::CBMatrix, model_maxviol::Real, H::CBBundleProxObject)
  • @brief SOCModel calls this for selecting the next minorants for a polyhedral model

    @param[in,out] modelvecs the columns span the barx subspace of the SOC face (the model is initialized if modelvecs.coldim()>0). On output it has to span at least the subspace spanned by aggrvec and cand_SOCvec

    @param[in,out] aggrvec current aggregate soc vector (includes all coordinates and @a functionfactor according to @a functiontask); if not valid it has coldim==0.

    @param[in] cand_SOCval lower bound on the candidate value

    @param[in] candSOCvec the SOCvector generating candSOCval (includes all coordinates but no function_factor)

    @param[in] center_SOCval lower bound on the center value

    @param[in] centerSOCvec the SOCvector generating centerSOCval (includes all coordinates but no function_factor)

    @param[in] SOCvecs collects the barx parts of the old SOCvecs

    @param[in] oracle gives access to the evaluation oracle

    @param[in] function_task see FunctionTask

    @param[in] functionfactor interpreted according to functiontask and the coefficients sum up to at most this value

    @param[in] modelupdate informs about whether candy is the result of a nullstep or descentstep or a new set up.

    @param[in] center_id the identifier of the center point

    @param[in] center_y the center point

    @param[in] cand_id the identifier of the candidate point

    @param[in] cand_y the candidate (mostly differnt from the center), close to it the model should be good

    @param[in] model_maxviol a minorant violated by this would have caused a null step

    @param[in] H the variable metric used in the proximal term (function_factor is already removed in this)

@return
 - 0 on success
 - 1 on failure
source
cb_select_model!(self::CBSumBundleParameters, model_indices::CBIndexmatrix, cand_id::Integer, cand_y::CBMatrix, minorants::CBMinorantBundle, aggr_index::Integer, model_maxviol::Real, H::CBBundleProxObject, model_update::CBModelUpdate)
  • @brief FunctionModel and SumBundleHandler call this for selecting the next minorants for a polyhedral model

    @param[out] model_indices
        the indices of minorants selected for the model; index 0 is always the aggregate indicated by the input index aggr_index
    
    @param[in] cand_id
        the identifier of the candidate point supplied next
    
    @param[in] cand_y
        the candidate (differnte from the center), close to it the model should be good
    
    @param[in] minorants
        the vector of MinorantPointer gives the minorants

    out of which the model should be selected.

    @param[in] aggr_index
        the index of the aggregate within the minorants
    
    @param[in] model_maxviol
        a minorant violated by this would have caused a null step
    
    @param[in] H
        the proximal term used for determining the given cand_y
    
    @param[in] model_update
        informs about whether cand_y is the result of a null_step or descent_step or aomw other a new set up.
    
    @return
     - 0 on success
     - 1 on failure
source
ConicBundle.cb_set!Function
cb_set!(self::CBSparseCoeffmatMatrix, i::Integer, j::Integer, cm::CBCoeffmatPointer)

sets the CoeffmatPointer of block i in column j (blockdiagonal matrix j) (may be empty)

source
cb_set!(self::CBSparseCoeffmatMatrix, i::Integer, j::Integer, cm::Union{<:CBCoeffmat,Nothing})

sets the CoeffmatPointer of block i in column j (blockdiagonal matrix j) to point to cm (or deletes it if cm==0)

source
ConicBundle.cb_set_D!Function
cb_set_D!(self::CBBundleDiagonalTrustRegionProx, in_D::CBMatrix)

set the diagonal (it needs to be >=0 but this is not checked)

source
ConicBundle.cb_set_active_bounds_fixing!Method
cb_set_active_bounds_fixing!(self::CBMatrixCBSolver, allow_fixing::Bool)
  • @brief If set to true (the default is false), variables may be fixed automatically to active bounds if these are strongly active (i.e., the corresponding multipliers are big) and the center values are also right on these bounds already.

      The coordinates to be fixed are redetermined in each
      call following a descent step or a change of the function.
      An indicator vector of the variables fixed during the last call
      can be obtained via the routine get_fixed_active_bounds().
    
      Setting this value to true might improve the performance
      of the algorithm in some instances but there is no
      convergence theory. It might be particularly helpful
      within Lagrangian relaxation if a primal cutting plane
      approach is used and non-tight inequalities should be
      eliminated quickly (fixing then indicates large primal
      slack values as these are the dual variables to the bounds

    on the Lagrange mulitpliers). Furthermore, if the value of a variable is fixed to zero, the variable can typically be deleted without affecting the validity of the current cutting model and function values.

    @param[in] allow_fixing (bool)
    
    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_set_aggr_dnormsqr!Function
cb_set_aggr_dnormsqr!(self::CBBundleTerminator, sg::Real)

set an upper bound for the dual norm squared of the aggregate at termination (or <=0 if no such bound is desired)

source
ConicBundle.cb_set_append_to_old!Function
cb_set_append_to_old!(self::CBAFTModification, append_only::Bool)

if set to true, no deletions/reassignments may be present or specified in the future, only appensions are allowed

source
cb_set_append_to_old!(self::CBGroundsetModification, append_only::Bool)

if set to true, no deletions/reassignments may be present or specified in the future, only appensions are allowed

source
cb_set_append_to_old!(self::CBNNCBoxSupportModification, append_only::Bool)

if set to true, no deletions/reassignments may be present or specified in the future, only appensions are allowed

source
cb_set_append_to_old!(self::CBPSCAffineModification, append_only::Bool)

if set to true, no deletions/reassignments may be present or specified in the future, only appensions are allowed

source
cb_set_append_to_old!(self::CBSOCSupportModification, append_only::Bool)

if set to true, no deletions/reassignments may be present or specified in the future, only appensions are allowed

source
ConicBundle.cb_set_augvalfailslimit!Function
cb_set_augvalfailslimit!(self::CBBundleTerminator, al::Integer)

set upper bound on the value returned by BundleTerminatorData::get_sumaugvalfails(), <0 if no limit

source
ConicBundle.cb_set_bundle_parameters!Function
cb_set_bundle_parameters!(self::CBMatrixCBSolver, params::CBBundleParameters, function_::Union{<:CBFunctionObject,Nothing} = nothing)

*@brief Sets the maximum bundlesize and the maximum number of new subgradients added in a bundle update of the cutting model for the specified @a function. The meaning of this routine may differ from standard for predefined special functions with special bundle types.

 @param[in] params (const BundleParameters&)
   some update parameters for the cutting model, see e.g. ConicBundle::BundleParameters

 @param[in] function
   if the aggregate subgradient of a particular function is desired,
   provide the pointer here, otherwise this referrs to the root function
   (if there is only one function to be optimized over, this is this single
   function, otherwise it is the sum of functions)


 @return
   - 0 on success
   - != 0 otherwise
source
cb_set_bundle_parameters!(self::CBAFTModel, param0::CBBundleParameters)

an AFT has no bundle, so it returns 1, see SumBlockModel::setbundleparameters

source
cb_set_bundle_parameters!(self::CBBoxModel, bp::CBBundleParameters)

see SumBlockModel::setbundleparameters

source
cb_set_bundle_parameters!(self::CBNNCModel, bp::CBBundleParameters)

if bp is an NNCParametersObject, it is cloned, otherwise the paraemters are copied

source
cb_set_bundle_parameters!(self::CBPSCModel, bp::CBBundleParameters)

see SumBlockModel::setbundleparameters

source
cb_set_bundle_parameters!(self::CBSOCModel, bp::CBBundleParameters)

see SumBlockModel::setbundleparameters

source
cb_set_bundle_parameters!(self::CBSumModel, bp::CBBundleParameters)

if bp is a SumBundleParametersObject, it is cloned, otherwise the paraemters are copied

source
cb_set_bundle_parameters!(self::CBSumBundleHandler, bp::CBBundleParameters)

sets maxbundlesize and maxmodelsize for all parts; this may be increased internally if the mode and/or the parent handler require this

source
ConicBundle.cb_set_bundleweight!Function
cb_set_bundleweight!(self::CBBundleSolver, bw::Union{<:CBBundleWeight,Nothing})

replace the previous BundleWeight by bw; bw will be deleted when replaced or on destruction of this

source
ConicBundle.cb_set_cand_minorant!Function
cb_set_cand_minorant!(self::CBSumBundleHandler, ft::CBFunctionTask, minorant::CBMinorantPointer)
  • @brief set the new minorant information of the candidate

     Only one minorant can take this position.
     This is mainly due to that only one primal information can be associated
     with each minorant. Thus adding must involve compatible primals and
     this is easiest to guarantee if there is only one inital type at the
     lowest level. Contributions to parents will not care about the primals.
source
ConicBundle.cb_set_cbout!Function
cb_set_cbout!(self::CBGroundsetModification, incr::Integer = -1)

see CBout::set_out

source
cb_set_cbout!(self::CBNNCBoxSupportModification, incr::Integer = -1)

see CBout::set_out

source
cb_set_cbout!(self::CBPSCAffineModification, incr::Integer = -1)

see CBout::set_cbout

source
cb_set_cbout!(self::CBSOCSupportModification, incr::Integer = -1)

see CBout::set_out

source
cb_set_cbout!(self::CBNNCBoxSupportFunction, incr::Integer = -1)

see ConicBundle::CBout

source
cb_set_cbout!(self::CBPSCAffineFunction, incr::Integer = -1)

see ConicBundle::CBout

source
cb_set_cbout!(self::CBSOCSupportFunction, incr::Integer = -1)

see ConicBundle::CBout

source
cb_set_cbout!(self::CBQPSolver, incr::Integer = -1)

set output settings

source
cb_set_cbout!(self::CBLPGroundset, incr::Integer = -1)

output settings

source
cb_set_cbout!(self::CBUnconstrainedGroundset, incr::Integer = -1)

output settings

source
cb_set_cbout!(self::CBQPConeModelBlock, incr::Integer = -1)

output settings

source
cb_set_cbout!(self::CBUQPSumModelBlock, incr::Integer = -1)

do this for all subblocks

source
cb_set_cbout!(self::CBBundleSolver, incr::Integer)

set output and outputlevel of warnings and errors recursively with CBout

source
ConicBundle.cb_set_data!Function
cb_set_data!(self::CBAFTModel, bd::Union{<:CBBundleData,Nothing})

see SumBlockModel::set_data

source
cb_set_data!(self::CBBoxModel, bd::Union{<:CBBundleData,Nothing})

see SumBlockModel::set_data

source
cb_set_data!(self::CBNNCModel, bd::Union{<:CBBundleData,Nothing})

see SumBlockModel::set_data

source
cb_set_data!(self::CBPSCModel, bd::Union{<:CBBundleData,Nothing})

see SumBlockModel::set_data

source
cb_set_data!(self::CBSOCModel, bd::Union{<:CBBundleData,Nothing})

see SumBlockModel::set_data

source
cb_set_data!(self::CBSumModel, bd::Union{<:CBBundleData,Nothing})

see SumBlockModel::set_data()

source
ConicBundle.cb_set_defaults!Function
cb_set_defaults!(self::CBMatrixCBSolver)
  • @brief Sets default values for algorithmic parameters that are not function specific (e.g., relative precision, weight and weight bounds for the augmentedproblem, etc.)
source
cb_set_defaults!(self::CBBundleHKWeight)

set default values for 'constant' parameters, e.g. minweight and maxweight

source
cb_set_defaults!(self::CBBundleRQBWeight)

set default values for 'constant' parameters, e.g. minweight and maxweight

source
cb_set_defaults!(self::CBUQPSolver)

reset parameters to default values

source
cb_set_defaults!(self::CBBundleSolver)

resets all parameters to default values and calls BundleTerminator::setdefaults() for *terminator and BundleWeight::setdefaults() for *bundleweight

source
cb_set_defaults!(self::CBBundleTerminator)

sets the default parameter values

source
ConicBundle.cb_set_do_yfixing!Function
cb_set_do_yfixing!(self::CBBundleSolver, dofix::Bool)

if set to true, the groundset may use a heuristic to decide whether a variable is fixed to one of its bounds (often helps to reduce inner update iterations)

source
ConicBundle.cb_set_eval_limit!Method
cb_set_eval_limit!(self::CBMatrixCBSolver, eval_limit::Integer)
  • @brief Sets an upper bound on the number of calls to the oracle (use negative numbers for no limit).

      If this number is reached, the algorithm will terminate

    independently of whether the last step was a descent or a null step. A negative number will be interepreted as no limit.

    @param[in] eval_limit (Integer)
    
    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_set_groundset_id!Function
cb_set_groundset_id!(self::CBLPGroundset, gsid::Integer)

sets the groundset_id to the desired value, increasing it is safer here because this is used to indicate changes

source
cb_set_groundset_id!(self::CBUnconstrainedGroundset, gsid::Integer)

sets the groundset_id to the desired value, increasing it is safer here because this is used to indicate changes

source
ConicBundle.cb_set_inner_update_limit!Method
cb_set_inner_update_limit!(self::CBMatrixCBSolver, update_limit::Integer)
  • @brief Set an upper bound on the number of inner updates for the cutting model with primal slacks within one null step (use negative numbers for no limit).

      A negative number will be interepreted as no limit, i.e.,
      the updates will be done till a certain precision of the
      cutting model is achieved.
    
    @param[in] update_limit (Integer)
    
    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_set_lower_bound!Method
cb_set_lower_bound!(self::CBMatrixCBSolver, i::Integer, lb::Real)

*@brief Sets lower bound for variable i, use ConicBundle::CBminusinfinity for unbounded from below.

   The algorithm may have to adapt the center point aftwards.
   In this case the old function values will be marked as outdated and
   will be recomputed at the next call to e.g. solve().

@return
  - 0 on success
  - != 0 otherwise
source
ConicBundle.cb_set_mL!Function
cb_set_mL!(self::CBBundleSolver, in_mL::Real)

set the acceptance level for descent steps (rather don't change this!)

source
ConicBundle.cb_set_mN!Function
cb_set_mN!(self::CBBundleSolver, in_mN::Real)

set the acceptance level for null steps (mL<=in_mN<1., rather don't change this!)

source
ConicBundle.cb_set_max_Ritzvecs!Function
cb_set_max_Ritzvecs!(self::CBPSCAffineFunction, maxv::Integer)

set the maximum number of new Ritzvectors returned by evaluate(); values<1 default to 5

source
ConicBundle.cb_set_max_bundlesize!Method
cb_set_max_bundlesize!(self::CBMatrixCBSolver, max_bundlesize::Integer, function_::Union{<:CBFunctionObject,Nothing} = nothing)
  • @brief Sets the maximum number of subgradients stored for use in forming the model or determining scaling information, it must be as least as large as max_modelsize (and is increased to this if not)

    The meaning of this routine may differ from standard for predefined special functions with special bundle types.

 @param[in] max_bundlesize (int)
   maximum number of subgradients stored for use in forming the model

 @param[in] function
   if the aggregate subgradient of a particular function is desired,
   provide the pointer here, otherwise this referrs to the root function
   (if there is only one function to be optimized over, this is this single
   function, otherwise it is the sum of functions)



 @return
   - 0 on success
   - != 0 otherwise
source
ConicBundle.cb_set_max_modelsize!Method
cb_set_max_modelsize!(self::CBMatrixCBSolver, max_modelsize::Integer, function_::Union{<:CBFunctionObject,Nothing} = nothing)
  • @brief Sets the maximum number of subgradients used in forming the cutting model of the specified @a function

      Quite often a very small model, e.g., 2, yields very fast iterations
      and good progress in time (sometimes at the cost of more evaluations).
      By limited numerical experience, a significant reduction in the number of
      evaluations can  only be expected if the bundle is large enough to
      wrap the function rather tightly. Quite frequently, unfortunately,
      this entails that solving the quadratic subproblems
      is more expensive than function evaluation.
    
      The meaning of this routine may differ from standard for

    predefined special functions with special bundle types.

    @param[in] max_modelsize (int) maximum number of subgradients to be used in forming the cutting model

    @param[in] function if the aggregate subgradient of a particular function is desired, provide the pointer here, otherwise this referrs to the root function (if there is only one function to be optimized over, this is this single function, otherwise it is the sum of functions)

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_set_max_updates!Function
cb_set_max_updates!(self::CBBundleSolver, mu::Integer)

set the maximum number of Gauss-Seidel iterations until the next evaluations for descent/null step, use negative numbers for infinite, 0 or 1 for at most 1

source
ConicBundle.cb_set_max_weight!Method
cb_set_max_weight!(self::CBMatrixCBSolver, max_weight::Real)
  • @brief Sets an upper bound on the weight for the quadratic term of the augmented subproblem.

      Nonpositive values indicate no bound.
      The new value shows its effect only at first dynamic change of
      the weight.
    
    @param[in] max_weight (double)
    
    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_set_maxit!Function
cb_set_maxit!(self::CBMinRes, in_maxit::Integer)

set maximum number of iterations

source
cb_set_maxit!(self::CBPCG, in_maxit::Integer)

set maximum number of iterations

source
cb_set_maxit!(self::CBPsqmr, in_maxit::Integer)

set maximum number of iterations

source
ConicBundle.cb_set_maxiter!Function
cb_set_maxiter!(self::CBUQPSolver, mi::Integer)

sets the upper bound on the number of interior point iterations (<0 means no bound)

source
ConicBundle.cb_set_min_weight!Method
cb_set_min_weight!(self::CBMatrixCBSolver, min_weight::Real)
  • @brief Sets a lower bound on the weight for the quadratic term of the augmented subproblem.

      Nonpositive values indicate no bound.
      The new value shows its effect only at first dynamic change of
      the weight.

    @param[in] min_weight (double)

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_set_model!Function
cb_set_model!(self::CBBundleSolver, bp::Union{<:CBBundleModel,Nothing})

set/change the model that should be optimized over (for the existing groundset and starting point)

source
ConicBundle.cb_set_modelfailslimit!Function
cb_set_modelfailslimit!(self::CBBundleTerminator, ml::Integer)

set upper bound on the value returned by BundleTerminatorData::get_summodelfails, <0 if no limit

source
ConicBundle.cb_set_new_center!Function
cb_set_new_center!(self::CBBundleSolver, yp::Union{<:CBMatrix,Nothing} = nothing)

replace the current center by *yp or, if yp==0, by the default starting point

source
ConicBundle.cb_set_new_center_point!Method
cb_set_new_center_point!(self::CBMatrixCBSolver, center_point::CBMatrix)
  • @brief Set the starting point/center that will be used in the next call to solve(). Each call to this routine causes an immediate evaluation of all oracles.

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_set_next_weight!Method
cb_set_next_weight!(self::CBMatrixCBSolver, weight::Real)
  • @brief Sets the weight (>0) to be used in the quadratic term of the next augmented subproblem (may be interpreted as 1./step_size or 1./trustregion-radius).

      Independent of whether the weight violates current min- and max-bounds
      set in set_min_weight() and set_max_weight(), the next model will
      be computed for this value. Thereafter, however, it will be updated as
      usual; in particular, it may be truncated by min and max bounds
      immediately after the first subproblem.
    
      In order to guarantee a constant weight (e.g. 1 is frequently a reasonable
      choice if the automatic default heuristic performs poorly), set the min and max
       bounds to the same value, too.
    
    @param[in] weight (double)
    
    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_set_nullstep_updates!Function
cb_set_nullstep_updates!(self::CBBundleHKWeight, nu::Integer = 0)

set nullstep update strategy (0 ... original, 1 ... none, 2 ... enlarge if subsequence of three norm increases is found

source
ConicBundle.cb_set_objevallimit!Function
cb_set_objevallimit!(self::CBBundleTerminator, ol::Integer)

set upper bound on the value returned by BundleTerminatorData::get_cntobjeval, <0 if no limit

source
ConicBundle.cb_set_offset!Function
cb_set_offset!(self::CBClock, offs::CBMicroseconds)

allows to specify an offset, that will furtheron be added to all time measurements

source
ConicBundle.cb_set_oracle!Function
cb_set_oracle!(self::CBPSCVariableMetricSelection, psco::Union{<:CBPSCOracle,Nothing})

sets the oracle pointer to this value (NULL is allowed, but calling addvariablemetric() then results in a WARNING and an error is returned); this is called by PSCModel when installing this

source
ConicBundle.cb_set_oraclefailslimit!Function
cb_set_oraclefailslimit!(self::CBBundleTerminator, ol::Integer)

set upper bound on the value returned by BundleTerminatorData::get_sumoraclefails, <0 if no limit

source
ConicBundle.cb_set_out!Function
cb_set_out!(self::CBMatrixCBSolver, print_level::Integer = 1)
  • @brief Specifies the output level (out==NULL: no output at all, out!=NULL and level=0: errors and warnings, level>0 increasingly detailed information)

    @param[in] out (std::ostream) direct all output to (out). If out==NULL, there will be no output at all.

    @param[in] print_level (int)

    Output levels for print_level: - 0 ... no output except for errors and warnings - 1 ... line summary after each descent step - >1 ... undocumented and increasingly detailed log information. These higher levels should only be used if requested for debugging purposes.

    Example for level 1:

\verbatim 00:00:00.00 endit 1 1 1 563. 563. 39041.188 39043.162 00:00:00.00 endit 2 2 2 563. 559. 38488.165 38490.200 00:00:00.00 endit 3 3 3 56.3 555. 33014.533 33211.856 00:00:00.00 endit 4 4 4 5.63 517. -14306.459 2738.0343 00:00:00.00 endit 5 5 5 4.04 148. -2692.1131 2.2150883 00:00:00.00 endit 6 6 6 4.01 1.29 1.7908952 2.0000581 00:00:00.00 endit 7 7 7 3.95 0.0213 1.9999387 2.0000000 00:00:00.00 _endit 8 8 8 3.95 2.94e-05 2.0000000 2.0000000

Column 1 2 3 4 5 6 7 8 9 \endverbatim - Column 1: computation time in hh:mm:ss.dd, - Column 2: "endit" is convenient for grep and stands for "end of iteration". Iterations with terminationcode()!=0 are marked with "endit". - Column 3: number of descent steps - Column 4: number of descent and null steps. Up to initialization calls and reevaluations, this is the number of evaluation calls to the function oracles from within the bundle method. In the example all calls led to descent steps. - Column 5: number of innermost iterations. It differs from column 5 only in the case of variables with bounds in which case it gives the number of updates of the multipliers for the bounds (or primal slacks in Lagrangean relaxation). Exceedingly high numbers in this column indicate that some variables are constantly at their bounds and it might be possible to improve convergence by deleting them (i.e. set them as constants to this bound and remove the variable). - Column 6: the weight of the quadratic term in the augmented problem. - Column 7: the norm of the aggregate subgradient. If it is small, say below 0.1, then mostly this is good indication that the objective value is close to optimal. - Column 8: the value of the cutting model in the last candidate point. It is always a lower bound on the true function value in this point - Column 9: the objective value in the latest point that led to a descent step, i.e., the point returend by getcenter(). Whenever terminationcode() returns 0 this is also the objective value of the latest evaluation call to the function oracles and the value in the center point of the next iteration.

source
cb_set_out!(self::CBAFTModification, print_level::Integer = 1)

see CBout::set_out

source
cb_set_out!(self::CBGroundsetModification, print_level::Integer = 1)

see CBout::set_out

source
cb_set_out!(self::CBNNCBoxSupportModification, print_level::Integer = 1)

see CBout::set_out

source
cb_set_out!(self::CBPSCAffineModification, print_level::Integer = 1)

see CBout::set_out

source
cb_set_out!(self::CBSOCSupportModification, print_level::Integer = 1)

see CBout::set_out

source
cb_set_out!(self::CBNNCBoxSupportFunction, pril::Integer = 1)

see ConicBundle::CBout

source
cb_set_out!(self::CBPSCAffineFunction, pril::Integer = 1)

see ConicBundle::CBout

source
cb_set_out!(self::CBSOCSupportFunction, pril::Integer = 1)

see ConicBundle::CBout

source
cb_set_out!(self::CBAFTModel, pril::Integer = 1)

set output and outputlevel of warnings and errors recursively, see CBout

source
cb_set_out!(self::CBBoxModel, pril::Integer = 1)

set output and outputlevel of warnings and errors recursively, see CBout

source
cb_set_out!(self::CBNNCModel, pril::Integer = 1)

set output and outputlevel of warnings and errors recursively, see CBout

source
cb_set_out!(self::CBPSCModel, pril::Integer = 1)

set output and outputlevel of warnings and errors recursively, see CBout

source
cb_set_out!(self::CBSOCModel, pril::Integer = 1)

set output and outputlevel of warnings and errors recursively, see CBout

source
cb_set_out!(self::CBSumModel, pril::Integer = 1)

set output and outputlevel of warnings and errors recursively, see CBout

source
cb_set_out!(self::CBUQPSumModelBlock, pril::Integer = 1)

do this for all subblocks

source
cb_set_out!(self::CBMinRes, in_print_level::Integer = 1)

set output stream and level of detail of log output (for debugging)

source
cb_set_out!(self::CBPCG, in_print_level::Integer = 1)

set output stream and level of detail of log output (for debugging)

source
cb_set_out!(self::CBPsqmr, in_print_level::Integer = 1)

set output stream and level of detail of log output (for debugging)

source
cb_set_out!(self::CBBundleSolver, pril::Integer = 1)

set output and outputlevel of warnings and errors recursively, see CBout

source
ConicBundle.cb_set_parent_information!Function
cb_set_parent_information!(self::CBSumBundleHandler, parent_sbh::Union{<:CBSumBundleHandler,Nothing}, aft::Union{<:CBAffineFunctionTransformation,Nothing}, in_mode::CBMode)
  • @brief sets a parent handler, an aft and prepares for the next inmode. If the respective pointers are null and inmode is active, a part in child mode is changed to root.

    If the parent pointer is not null, the routine calls alignbundle in order to match the existing bundle to the parent's. Therefore, if the parent pointer is not null and the parent has a positive bundle size, setparent_information may only be called if all parts that have contributors also have a bundle containing an aggregate, i.e. they need a bundlesize of at least one.

    If in_mode==root, the handler has to perpare the sumbundle to serve as root.

    If in_mode==inactive, the handler has to remove any relevant contributions and to deactivate the sumbundle

    If inmode==child, the action depends on the the current mode. If the mode is child or root already, no changes are required. In particular, if the mode is root and the inmode child is desired, this needs to be achieved later by a call to addcontributions() (once all bundle components have been collected). If the current mode is inactive, the sumbundle's mode is changed to root and again an addcontributions() will be needed to change that to child.

source
ConicBundle.cb_set_point!Function
cb_set_point!(self::CBUQPConeModelBlock, qp_x::CBMatrix, qp_y::CBMatrix, alpha::Real)

x,y,z is the new point and has to be stored, alpha is the step size used in the step, it is passed so thatthe block can take the same step for internal variables if needed.

source
cb_set_point!(self::CBUQPSumModelBlock, qp_x::CBMatrix, qp_y::CBMatrix, alpha::Real)

do this for all subblocks

source
ConicBundle.cb_set_primal!Function
cb_set_primal!(self::CBMinorant, param0::Union{<:CBPrimalData,Nothing})

if the minorant is generated by PrimalData and this should be aggregated along, insert a heap object of it here (see PrimalData)

source
ConicBundle.cb_set_prox!Function
cb_set_prox!(self::CBMatrixCBSolver, proxp::Union{<:CBBundleProxObject,Nothing})
  • @brief For variable metric install the BundleProxObject pointed to; the object is passed to the solver who will delete it on termination or when replaced

    @param[in] proxp (BundleProxObject*)
        replace the current BundleProxObject by this object on the heap;

    NULL is allowed and results in the default choice; the object pointed to will be deleted by the solver

    @return
      - 0 on success
      - != 0 otherwise
source
cb_set_prox!(self::CBBundleSolver, bsp::Union{<:CBBundleProxObject,Nothing})

set the proximal term by replacing BundleProxObject with bsp, the latter is deleted when replaced or on destruction of this

source
ConicBundle.cb_set_qp_solver!Function
cb_set_qp_solver!(self::CBMatrixCBSolver, qpparams::Union{<:CBQPSolverParametersObject,Nothing}, newqpsolver::Union{<:CBQPSolverObject,Nothing} = nothing)
  • @brief Set parameters for the internal QP solver, possibly after first exchanging the solver with a new one

    The objects passed need to be heap objects; their ownership is transferred to the bundle code and they will be deleted there. The pointers may be null, in which case nothing is done for this object

    @param[in] qpparams (QPSolverParametersObject*)

    @param[in] newqpsolver (QPSolverObject*)

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_set_qp_solver_parameters!Function
cb_set_qp_solver_parameters!(self::CBLPGroundset, param0::Union{<:CBQPSolverParametersObject,Nothing})

set parameters for the QP_Solver

source
cb_set_qp_solver_parameters!(self::CBUnconstrainedGroundset, param0::Union{<:CBQPSolverParametersObject,Nothing})

set parameters for the QP_Solver

source
ConicBundle.cb_set_qp_xstart!Function
cb_set_qp_xstart!(self::CBUQPConeModelBlock, x_start_index::Integer)

the indices of the local variables correspond to the indices of the qp variables x and z starting with this index; returns 0 on success, 1 on failure

source
cb_set_qp_xstart!(self::CBUQPSumModelBlock, x_start_index::Integer)

set the starting index of x also for all subblocks

source
ConicBundle.cb_set_qp_ystart!Function
cb_set_qp_ystart!(self::CBUQPConeModelBlock, y_start_index::Integer)

the indices of the local variables correspond to the indices of the qp variables y starting with this index; returns 0 on success, 1 on failure

source
cb_set_qp_ystart!(self::CBUQPSumModelBlock, y_start_index::Integer)

set the starting index of y also for all subblocks

source
ConicBundle.cb_set_qpfailslimit!Function
cb_set_qpfailslimit!(self::CBBundleTerminator, ql::Integer)

set upper bound on the value returned by BundleTerminatorData::get_sumqpfails, <0 if no limit

source
ConicBundle.cb_set_qpsolver!Function
cb_set_qpsolver!(self::CBLPGroundset, qpparams::Union{<:CBQPSolverParametersObject,Nothing}, qpsolver::Union{<:CBQPSolverObject,Nothing} = nothing)

Set the qp solver's parameters to qpparams (if not null); if the second argument qpsolver is also given, the old solver is first discarded and replaced by this new solver and then the parameters are set (if given). Any object passed here will be owned and deleted by *this. For correct continuaton a new qpsolver needs to have the same feasible set as the current solver but this must be ensured by the caller.

source
ConicBundle.cb_set_recomplimit!Function
cb_set_recomplimit!(self::CBBundleTerminator, rl::Integer)

set upper bound on the value returned by BundleTerminatorData::get_sumrecomp, <0 if no limit

source
ConicBundle.cb_set_selection_method!Function
cb_set_selection_method!(self::CBPSCVariableMetricSelection, sm::Integer)

sets selection_method

source
cb_set_selection_method!(self::CBVariableMetricSVDSelection, sm::Integer)

sets selection_method

source
ConicBundle.cb_set_skip_extension!Function
cb_set_skip_extension!(self::CBPSCAffineModification, skip::Bool)
  • @brief if this time no extension is possible for newly added variables with the availabel generating primal, set this to true;
source
ConicBundle.cb_set_starting_point!Function
cb_set_starting_point!(self::CBLPGroundset, vec::CBMatrix)

stores the a new starting point irrespective of whether it is feasible or not and returns 0 if it feasible, 1 if it is infeasible

source
cb_set_starting_point!(self::CBUnconstrainedGroundset, vec::CBMatrix)

stores the a new starting point irrespective of whether it is feasible or not and returns 0 if it feasible, 1 if it is infeasible

source
ConicBundle.cb_set_subspace!Function
cb_set_subspace!(self::CBQPKKTSubspaceHPrecond, insubspace::CBMatrix)

if the method admits this, let the subspace be chosen externally

source
ConicBundle.cb_set_sumbundle!Function
cb_set_sumbundle!(self::CBMatrixCBSolver, use_sumbundle::Bool, n_local_models::Integer = -1, bundle_parameters::Union{<:CBBundleParameters,Nothing} = nothing, strategy::Integer = 1)
  • @brief Starts/ends the use of a common SumBundle of the given bundlesize with a heuristic rule for selecting up to nlocal_models in each bundle iteration

      If the function is the sum of many functions, having a local model for every one
      of them may result in a huge quadratic subproblem. It may then be better to

    form a common model of most of the functions, where a heuristic dynamically selects a few of the functions, for which a local model seems worth while. Whether such a common model should be used, how many subgradients it should contain, and how many local models are to be selected at most are the parameters set here.

    Setting these parameters only has an effect if bundle models of functions are present. If further functions are added later, the call should be repeated.

    This interface provides a simpler access to the SumBundle features by using some default parameter choices that could be set separately in setbundleparameters() and setsumbundleparameters() in a refined way.

    @param[in] use_sumbundle (bool) use value true to switch the sumbundle on, use value false to switch it off

    @param[in] nlocalmodels (int) upper bound on the number of local models to be used on top of the sumbundle's model, negative values correspond to no upper bound and all functions may have local models

    @param[in] bundle_parameters (const BundleParameters*) the maximum number of subgradients to be used in forming the SumBundle model, values <=1 are set to 2;

    @param[in] strategy (int) this is currently in experimental stage and allows to choose among some internal sumbundle strategies (currently 0,1,2,11 are available)

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_set_sumbundle_parameters!Function
cb_set_sumbundle_parameters!(self::CBMatrixCBSolver, params::CBSumBundleParametersObject, function_::Union{<:CBFunctionObject,Nothing} = nothing)

*@brief Specifies the behavior of the model (of the specified function) concerning requests to join or start a SumBundle that subsumes several models instead of providing a separate model for each funciton.

    The abstract interface for these Parameters is specified in
    SumBundleParametersObject, a concrete implementation is
    SumBundleParameters. Besides the usual BundleParameters
    the new main parameter is specified in

SumBundleParametersObject::setacceptablemode(), see there.

 @param[in] params (const BundleParameters&)
   some update parameters for the cutting model, see e.g. ConicBundle::BundleParameters

 @param[in] function
   if the aggregate subgradient of a particular function is desired,
   provide the pointer here, otherwise this referrs to the root function
   (if there is only one function to be optimized over, this is this single
   function, otherwise it is the sum of functions)


 @return
   - 0 on success
   - != 0 otherwise
source
ConicBundle.cb_set_term_relprec!Method
cb_set_term_relprec!(self::CBMatrixCBSolver, term_relprec::Real)
  • @brief Sets the relative precision requirements for successful termination (default 1e-5).

    @param[in] termrelprec (double) The algorithm stops with termination code 1, if predicted progress for the next step is less than termrelprec times absolute function value plus one.

    @return - 0 on success - != 0 otherwise

source
ConicBundle.cb_set_termeps!Function
cb_set_termeps!(self::CBUQPSolver, te::Real)

sets the termination precision

source
cb_set_termeps!(self::CBBundleTerminator, teps::Real)

set the termination precision (>0!)

source
ConicBundle.cb_set_terminator!Function
cb_set_terminator!(self::CBBundleSolver, bt::Union{<:CBBundleTerminator,Nothing})

replace the previous BundleTerminator by bt; bt will be deleted when replaced or on destruction of this

source
ConicBundle.cb_set_time_limit!Function
cb_set_time_limit!(self::CBMatrixCBSolver, time_limit::Integer)
  • @brief Set an upper bound on the number of seconds (user time, use negative numbers for no limit)

    @param[in] time_limit (Integer)
    
    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_set_timelimit!Function
cb_set_timelimit!(self::CBBundleTerminator, cp::Union{<:CBClock,Nothing}, tl::CBMicroseconds)

set cp==0 for no timelimit, otherwise specify clock and microseconds

source
ConicBundle.cb_set_tol!Function
cb_set_tol!(self::CBSparsemat, t::Real)

set tolerance for recognizing zero values to t

source
cb_set_tol!(self::CBSparsesym, t::Real)

set tolerance for recognizing zero values to t

source
ConicBundle.cb_set_upper_bound!Method
cb_set_upper_bound!(self::CBMatrixCBSolver, i::Integer, ub::Real)

*@brief Sets upper bound for variable i, use ConicBundle::CBplusinfinity for unbounded from below.

   The algorithm may have to adapt the center point aftwards.
   In this case the old function values will be marked as outdated and
   will be recomputed at the next call to e.g. solve().

 @return
  - 0 on success
  - != 0 otherwise
source
ConicBundle.cb_set_use_linval!Function
cb_set_use_linval!(self::CBBundleSolver, ul::Bool)

if set to true, the value of the aggregate in the candidate is used for deciding on null or descent step, otherwise the model value

source
ConicBundle.cb_set_use_yfixing!Function
cb_set_use_yfixing!(self::CBLPGroundset, uyf::Bool)

set to true to switch on the cooridinate fixing heuristic (only constrained cases)

source
cb_set_use_yfixing!(self::CBUnconstrainedGroundset, uyf::Bool)

set to true to switch on the cooridinate fixing heuristic (only constrained cases)

source
ConicBundle.cb_set_variable_metric!Method
cb_set_variable_metric!(self::CBBundleSolver, ds::Integer)

0 ... use no scaling, 1 ... use a scaling heuristic, 2 ... also allow groundset to influence the scaling so as to favor feasibility,

source
ConicBundle.cb_set_variable_metric!Method
cb_set_variable_metric!(self::CBMatrixCBSolver, do_variable_metric::Integer)
  • @brief Use a variable metric heuristic or switch off general metrics alltogether. (variable metric resets the quadratic term e.g. to some diagonal matrix, switching it off resets the quadratic term to the identity times the weight)

    @param[in] dovariablemetric (int) - 0 switch off the scaling heuristic - 1 use a diagonal scaling heuristic - 2 use a diagonal scaling heuristic combined with one for the bounds - 3 use a low rank scaling heuristic - 4 use a low rank scaling heuristic combined with a diagonal term - 5 use a dense scaling heuristic

    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_set_variable_metric_selection!Function
cb_set_variable_metric_selection!(self::CBLPGroundset, vms::Union{<:CBVariableMetricSelection,Nothing} = nothing)

delete old selector and set a new one (0 is allowed resulting in no local selector)

source
cb_set_variable_metric_selection!(self::CBPSCModel, vms::Union{<:CBVariableMetricSelection,Nothing} = nothing)

delete old selector and set a new one (0 is allowed resulting in no local selector); if vms casts to PSCVariableMetricSelection*, the oracle is immediately set to this one

source
ConicBundle.cb_set_weight_update!Function
cb_set_weight_update!(self::CBMatrixCBSolver, bw::Union{<:CBBundleWeight,Nothing})
  • @brief Replaces the internal update routine for choosing the weight used in the proximal term; input NULL reinstalls the default routine.

      The BundleWeight class instance pointed to will be deleted on
      construction, i.e., ownership is passe over to the solver.
    
    @param[in] bw
      replace internal update routine by bw, value 0 reinstalls the default routine
    
    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_set_weightu!Function
cb_set_weightu!(self::CBBundleDenseTrustRegionProx, in_weightu::Real)

set the weight of the proximal term

source
cb_set_weightu!(self::CBBundleDiagonalTrustRegionProx, in_weightu::Real)

set the weight of the proximal term

source
cb_set_weightu!(self::CBBundleDLRTrustRegionProx, in_weightu::Real)

sets the next weight

source
cb_set_weightu!(self::CBBundleIdProx, in_weightu::Real)

set the weight of the proximal term

source
cb_set_weightu!(self::CBBundleLowRankTrustRegionProx, in_weightu::Real)

sets the next weight

source
ConicBundle.cb_set_yfixed!Function
cb_set_yfixed!(self::CBLPGroundset)

if not NULL (iff getuseyfixing()==false) returns the vector yfixed with yfixed(i)=0 if not fixed, =1 is fixed already, =2 if newly fixed

source
cb_set_yfixed!(self::CBUnconstrainedGroundset)

if not NULL (iff getuseyfixing()==false) returns the vector yfixed with yfixed(i)=0 if not fixed, =1 is fixed already, =2 if newly fixed

source
ConicBundle.cb_shuffle!Function
cb_shuffle!(self::CBMatrix, random_generator::Union{<:CBGB_rand,Nothing} = nothing)

shuffle the elements randomly (does not change dimensions)

source
cb_shuffle!(self::CBIndexmatrix, random_generator::Union{<:CBGB_rand,Nothing} = nothing)

shuffle the elements randomly (does not change dimensions)

source
ConicBundle.cb_signFunction
cb_sign(A::CBMatrix, tol::Real)

returns a matrix with elements (i,j)=sign((*this)(i,j)) for all i,j using ::sign(double,double)

source
cb_sign(A::CBIndexmatrix)

return a matrix of the same size as A with (i,j)=sign(A(i,j)) for all i,j, see also CHMatrixClasses::sign()

source
ConicBundle.cb_sign!Function
cb_sign!(self::CBMatrix, tol::Real = 1e-12)

sets (this)(i,j)=sign((this)(i,j),tol) for all i,j using ::sign(double,double) and returns *this

source
cb_sign!(self::CBIndexmatrix)

using ::sign assign (this)(i,j)=sign((this)(i,j)) for all i,j

source
ConicBundle.cb_skronFunction
cb_skron(A::CBSymmatrix, B::CBSymmatrix, alpha::Real, add::Bool, startindex_S::Integer)

the symmetric Kronecker product, defined via (A skron B)svec(C)=(BCA'+ACB')/2; sets or adds (if add==true) the symmetric matrix a*(A skron B) into S starting at startindexS; if add==false and startindexS<0, S is initialzed to the correct size

source
cb_skron(A::CBSymmatrix, B::CBSymmatrix, S::CBSymmatrix, a::Real, add::Bool, startindex_S::Integer)

def symmetric Kronecker product (A skron B)svec(C)=(BCA'+ACB')/2; sets S=alpha(A skron B) or S=... (if add==true) possibly shifted to the block starting at startindexS; if add==false and startindexS<0, S is initialzed to the correct size

source
ConicBundle.cb_solve!Method
cb_solve!(self::CBBundleSolver, maxsteps::Integer = 0, stop_at_descent_steps::Bool = false)

execute at most maxsteps iterations of the bundle method stopping before if termination occurs or stopatdescent_steps==true and a descent step occurs; maxsteps<=0 indicates no bound on the steps

source
ConicBundle.cb_solve!Method
cb_solve!(self::CBMatrixCBSolver, maxsteps::Integer = 0, stop_at_descent_steps::Bool = false)
  • @brief solves or does a prescribed number of iterations

    Bundle methods solve a problem by a sequence of so called descent steps that actually bring progress by moving from the current "center point" to a new center with better objective. A descent step may consist of several function evaluations (null steps), that lead to no immediate progress but mainly improve a cutting model of the objective function close to the current center point. A minimizer to the model is accepted as descent step if the function value at this point satisfies a sufficient decrease criterion in comparison to the decrease predicted by the model. Having found a descent step, the next center is automatically shifted to this successful candidate. Termination criteria may stop the process of seeking for a descent step, in which case the current center is kept and the routine termination_code() returns the termination code.

      Restarting, after each descent step, the bundle method from scratch
      with the new center as starting point does not endanger convergence.
      Therefore, a descent step is the smallest unit, after which
      user interaction can take place safely. To allow this there

    is a flag stopatdescent_steps that will cause the code to return after the next descent step.

    If you know what your are doing, you may also use the input parameter maxsteps to force the algorithm to return after at most maxsteps null steps. Calling solve again without any intermediate problem configurations will then simply continue the process where it stopped and convergence is save. During null steps one may not decrease the weight or delete nonzero variables of the center or the current candidate!

      In a Lagrangean relaxation cutting plane approach one may want
      to separate and enlarge the dimension after a certain number
      of null steps. In this case the code will try to preserve the model,
      given appropriate subgradient extension routines have been
      provided. If the model cannot be extended, it has to be
      discarded (if subgradient extension is not successful
      this is done automatically), and the algorithm will be restarted
      from the current center point.
    
    @param[in] maxsteps (int)
        if maxsteps>0 the code returns after at most so many null steps
    
    @param[in] stop_at_descent_steps (int)
        if true the code also returns whenever a descent step occured
    
    @return
      - 0 on success
      - != 0 otherwise
source
ConicBundle.cb_solve!Method
cb_solve!(self::CBQPSolver, Hp::Union{<:CBBundleProxObject,Nothing}, c::CBMatrix, gamma::Real, lowerbound::Real, upperbound::Real, relprec::Real, skip_factor::Real)

solve the quadratic problem for the given cost function and precision (without cutting model, usually for finding feasible starting points)

source
ConicBundle.cb_solve!Method
cb_solve!(self::CBUQPSolver, Q::CBSymmatrix, c::CBMatrix, offset::Real)

solve the QP for this cost function from scratch

source
ConicBundle.cb_solve_constrsys!Function
cb_solve_constrsys!(self::CBQPConeModelBlock, ABchol::CBSymmatrix, LinvABrhs::CBMatrix, LinvABsol::CBMatrix, startindex_model::Integer, Crhs_and_sol::CBMatrix, startindex_constraints::Integer)
  • @brief given the Cholesky factorization LL' of minus the blocks A and B (contraints on design variables and Bundle-modelx) and LinvABrhs, solve for the local constraints C and add the new contribution of tracedual*LinvTrace to LinvABsol; store the tracedual in Crhsandsol but not yet locally (this will be done by computed_step() ).
source
cb_solve_constrsys!(self::CBQPSumModelBlock, ABchol::CBSymmatrix, LinvABrhs::CBMatrix, LinvABsol::CBMatrix, startindex_model::Integer, Crhs_and_sol::CBMatrix, startindex_constraints::Integer)
  • @brief given the Cholesky factorization LL' of minus the blocks A and B (contraints on design variables and Bundle-modelx) and LinvABrhs, solve for the local constraints C and add the new contribution of tracedual*LinvTrace to LinvABsol; store the tracedual in Crhsandsol but not yet locally (this will be done by computed_step() ).
source
ConicBundle.cb_sortindexFunction
cb_sortindex(vec::CBMatrix, nondecreasing::Bool)

returns an Indexmatrix ind so that vec(ind(0))<=vec(ind(1))<=...<=vec(ind(vec.dim()-1)) (vec may be rectangular, set nondecreasing=false for opposite order)

source
cb_sortindex(vec::CBMatrix, ind::CBIndexmatrix, nondecreasing::Bool)

sets ind so that vec(ind(0))<=vec(ind(1))<=...<=vec(ind(vec.dim()-1)) (vec may be rectangular, set nondecreasing=false for opposite order)

source
cb_sortindex(vec::CBIndexmatrix, nondecreasing::Bool)

returns an Indexmatrix ind so that vec(ind(0))<=vec(ind(1))<=...<=vec(ind(vec.dim()-1)) (vec may be rectangular, set nondecreasing=false for opposite order)

source
cb_sortindex(vec::CBIndexmatrix, ind::CBIndexmatrix, nondecreasing::Bool)

sets ind so that vec(ind(0))<=vec(ind(1))<=...<=vec(ind(vec.dim()-1)) (vec may be rectangular, set nondecreasing=false for opposite order)

source
ConicBundle.cb_sparseFunction
cb_sparse(self::CBCMgramdense)

returns 0 if not sparse, otherwise 1

source
cb_sparse(self::CBCMgramdense, param0::CBIndexmatrix, param1::CBIndexmatrix, param2::CBMatrix, param3::Real)

returns 0 if not sparse. If it is sparse it returns 1 and the nonzero structure in I,J and v, where v is multiplied by d. Only the upper triangle (including diagonal) is delivered

source
cb_sparse(self::CBCMgramsparse)

returns 0 if not sparse, otherwise 1

source
cb_sparse(self::CBCMgramsparse, param0::CBIndexmatrix, param1::CBIndexmatrix, param2::CBMatrix, param3::Real)

returns 0 if not sparse. If it is sparse it returns 1 and the nonzero structure in I,J and v, where v is multiplied by d. Only the upper triangle (including diagonal) is delivered

source
cb_sparse(self::CBCMgramsparse_withoutdiag)

returns 0 if not sparse, otherwise 1

source
cb_sparse(self::CBCMgramsparse_withoutdiag, param0::CBIndexmatrix, param1::CBIndexmatrix, param2::CBMatrix, param3::Real)

returns 0 if not sparse. If it is sparse it returns 1 and the nonzero structure in I,J and v, where v is multiplied by d. Only the upper triangle (including diagonal) is delivered

source
cb_sparse(self::CBCMlowrankdd)

returns 0 if not sparse, otherwise 1

source
cb_sparse(self::CBCMlowrankdd, param0::CBIndexmatrix, param1::CBIndexmatrix, param2::CBMatrix, param3::Real)

returns 0 if not sparse. If it is sparse it returns 1 and the nonzero structure in I,J and val, where val is multiplied by d. Only the upper triangle (including diagonal) is delivered

source
cb_sparse(self::CBCMlowranksd)

returns 0 if not sparse, otherwise 1

source
cb_sparse(self::CBCMlowranksd, param0::CBIndexmatrix, param1::CBIndexmatrix, param2::CBMatrix, param3::Real)

returns 0 if not sparse. If it is sparse it returns 1 and the nonzero structure in I,J and val, where val is multiplied by d. Only the upper triangle (including diagonal) is delivered

source
cb_sparse(self::CBCMlowrankss)

returns 0 if not sparse, otherwise 1

source
cb_sparse(self::CBCMlowrankss, param0::CBIndexmatrix, param1::CBIndexmatrix, param2::CBMatrix, param3::Real)

returns 0 if not sparse. If it is sparse it returns 1 and the nonzero structure in I,J and val, where val is multiplied by d. Only the upper triangle (including diagonal) is delivered

source
cb_sparse(self::CBCMsingleton)

returns 0 if not sparse, otherwise 1

source
cb_sparse(self::CBCMsingleton, I::CBIndexmatrix, J::CBIndexmatrix, v::CBMatrix, d::Real = 1.)

returns 0 if not sparse. If it is sparse it returns 1 and the nonzero structure in I,J and v, where v is multiplied by d. Only the upper triangle (including diagonal) is delivered

source
cb_sparse(self::CBCMsymdense)

returns 0 if not sparse, otherwise 1

source
cb_sparse(self::CBCMsymdense, param0::CBIndexmatrix, param1::CBIndexmatrix, param2::CBMatrix, param3::Real)

returns 0 if not sparse. If it is sparse it returns 1 and the nonzero structure in I,J and v, where v is multiplied by d. Only the upper triangle (including diagonal) is delivered

source
cb_sparse(self::CBCMsymsparse)

returns 0 if not sparse, otherwise 1

source
cb_sparse(self::CBCMsymsparse, I::CBIndexmatrix, J::CBIndexmatrix, val::CBMatrix, d::Real = 1.)

returns 0 if not sparse. If it is sparse it returns 1 and the nonzero structure in I,J and val, where val is multiplied by d. Only the upper triangle (including diagonal) is delivered

source
ConicBundle.cb_sparsify!Function
cb_sparsify!(self::CBMinorant, tol::Real = CB_minorant_zero_tolerance, sparsity_ratio::Real = CB_minorant_sparsity_ratio)

converts to sparse format with zeros of absolut value at most tol*(fabs(offset)+1) if the given ratio of elements is zero in relation to the maximum nonzero index

source
ConicBundle.cb_sqrFunction
cb_sqr(A::CBMatrix)

returns a matrix with elements (i,j)=sqr((*this)(i,j)) for all i,j

source
ConicBundle.cb_sqrtFunction
cb_sqrt(A::CBMatrix)

returns a matrix with elements (i,j)=sqrt((*this)(i,j)) for all i,j

source
ConicBundle.cb_start!Function
cb_start!(self::CBClock)

read current time, all further time measurements will be in relation to this time

source
ConicBundle.cb_start_augmodel!Function
cb_start_augmodel!(self::CBSumBundleHandler, bp::CBQPModelDataPointer, cand_id::Integer, cand_y::CBMatrix, indices::Union{<:CBIndexmatrix,Nothing}, ft::CBFunctionTask)

start the augmented model block for FunctionTask ft if to be handled here and increase xdim correspondingly; if there are several, use startaugmodel(QPSumBlock&,Integer&) instead

source
cb_start_augmodel!(self::CBSumBundleHandler, bp::CBQPModelDataPointer, sumblock::CBQPSumModelDataObject, cand_id::Integer, cand_y::CBMatrix, indices::Union{<:CBIndexmatrix,Nothing} = nothing)

add augmented model blocks to the sumblock for parts to be handled here and increase xdim correspondingly

source
ConicBundle.cb_start_modification!Function
cb_start_modification!(self::CBLPGroundset)

propagates the call to QPSolverObject::QPstart_modification() of the current qpsolver

source
cb_start_modification!(self::CBUnconstrainedGroundset)

return a new modification object on the heap that is initialized for modification of *this

source
ConicBundle.cb_start_sumaugmodel!Function
cb_start_sumaugmodel!(self::CBAFTModel, blockp::CBQPModelDataPointer, cand_id::Integer, cand_y::CBMatrix, indices::Union{<:CBIndexmatrix,Nothing} = nothing, bh::Union{<:CBSumBundleHandler,Nothing} = nothing, mode::CBMode = cbm_inactive, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

see BundleModel::startaugmodel() for the first four parameters; for the others see sumbundlecontribution()

source
cb_start_sumaugmodel!(self::CBSumModel, blockp::CBQPModelDataPointer, cand_id::Integer, cand_y::CBMatrix, indices::Union{<:CBIndexmatrix,Nothing} = nothing, bh::Union{<:CBSumBundleHandler,Nothing} = nothing, mode::CBMode = cbm_inactive, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

see BundleModel::startaugmodel() for the first four parameters; for the others see sumbundlecontribution()

source
ConicBundle.cb_starting_x!Function
cb_starting_x!(self::CBUQPConeModelBlock, qp_x::CBMatrix)

generate a strictly feasible primal starting point, store it in the qpx_range of x; returns 0 on success, 1 on failure

source
cb_starting_x!(self::CBUQPSumModelBlock, qp_x::CBMatrix)

get the starting x of all subblocks

source
ConicBundle.cb_starting_y!Function
cb_starting_y!(self::CBUQPConeModelBlock, qp_y::CBMatrix, qp_Qx::CBMatrix, qp_c::CBMatrix)

generate a strictly feasible dual starting point, store it in the qpyrange of y, x is fixed already by a previous call to startingx and Qx=Q*x; returns 0 on success, 1 on failure

source
cb_starting_y!(self::CBUQPSumModelBlock, qp_y::CBMatrix, qp_Qx::CBMatrix, qp_c::CBMatrix)

get the starting y information of all subblocks

source
ConicBundle.cb_store_SOCvec!Function
cb_store_SOCvec!(self::CBSOCData, SOCvec::CBMatrix)

if maxoldminorants > 0, it adds the SOCvec cyclically to SOCvecs keeping maxoldminorants of them

source
ConicBundle.cb_store_svecFunction
cb_store_svec(self::CBSymmatrix, dp::Union{<:AbstractVector{Cdouble},Nothing}, d::Real = 1.)

store in the form of an svec in the real array (or matrix)

source
ConicBundle.cb_subassign!Function
cb_subassign!(self::CBMatrix, vecrow::CBIndexmatrix, veccol::CBIndexmatrix, A::CBMatrix)

assigns A to a submatrix of this, (this)(vecrow(i),veccol(j))=A(i,j) for 0<=i<vecrow.dim(), 0<=j<veccol.dim()

source
cb_subassign!(self::CBMatrix, vec::CBIndexmatrix, A::CBMatrix)

assigns vector A to a subvector of this, (this)(vec(i))=A(i) for 0<=i<vec.dim(), *this, vec, and A may be rectangular matrices, their dimesions are not changed, returns *this

source
cb_subassign!(self::CBIndexmatrix, vecrow::CBIndexmatrix, veccol::CBIndexmatrix, A::CBIndexmatrix)

assigns A to a submatrix of this, (this)(vecrow(i),veccol(j))=A(i,j) for 0<=i<vecrow.dim(), 0<=j<veccol.dim()

source
cb_subassign!(self::CBIndexmatrix, vec::CBIndexmatrix, A::CBIndexmatrix)

assigns vector A to a subvector of this, (this)(vec(i))=A(i) for 0<=i<vec.dim(), *this, vec, and A may be rectangular matrices, their dimesions are not changed, returns *this

source
ConicBundle.cb_subspaceFunction
cb_subspace(self::CBCMgramdense, P::CBMatrix)

delivers a new object on the heap corresponding to the matrix P^T(*this)P, the caller is responsible for deleting the object

source
cb_subspace(self::CBCMgramsparse, P::CBMatrix)

delivers a new object on the heap corresponding to the matrix P^T(*this)P, the caller is responsible for deleting the object

source
cb_subspace(self::CBCMgramsparse_withoutdiag, P::CBMatrix)

delivers a new object on the heap corresponding to the matrix P^T(*this)P, the caller is responsible for deleting the object

source
cb_subspace(self::CBCMlowrankdd, P::CBMatrix)

delivers a new object on the heap corresponding to the matrix P^T(*this)P, the caller is responsible for deleting the object

source
cb_subspace(self::CBCMlowranksd, P::CBMatrix)

delivers a new object on the heap corresponding to the matrix P^T(*this)P, the caller is responsible for deleting the object

source
cb_subspace(self::CBCMlowrankss, P::CBMatrix)

delivers a new object on the heap corresponding to the matrix P^T(*this)P, the caller is responsible for deleting the object

source
cb_subspace(self::CBCMsingleton, P::CBMatrix)

delivers a new object on the heap corresponding to the matrix P^T(*this)P, the caller is responsible for deleting the object

source
cb_subspace(self::CBCMsymdense, P::CBMatrix)

delivers a new object on the heap corresponding to the matrix P^T(*this)P, the caller is responsible for deleting the object

source
cb_subspace(self::CBCMsymsparse, P::CBMatrix)

delivers a new object on the heap corresponding to the matrix P^T(*this)P, the caller is responsible for deleting the object

source
ConicBundle.cb_subtract_zFunction
cb_subtract_z(self::CBUQPConeModelBlock, dual_residual::CBMatrix, with_step::Bool = false)

add the contributions of the dual slacks and return dual_residual returns 0 on success, 1 on failure

source
cb_subtract_z(self::CBUQPSumModelBlock, dual_residual::CBMatrix, with_step::Bool = false)

do this for all subblocks

source
ConicBundle.cb_suggest_mu!Function
cb_suggest_mu!(self::CBUQPConeModelBlock, qp_dx::CBMatrix, qp_dy::CBMatrix, rhs_residual::CBMatrix)
  • @brief supply the information for the choice of the next barrier parameter value

     dx, dy is the predictor direction giving rise to the
     rhs_residual -(c-At(y+dy)-Q(x+dx)). Compute the direction dz and
     local step and based on the predictor (x+dx,y+dy,z+dz) suggest a
     value for mu by specifying the inner product of the dual cone
     variables ip_xz=ip(x,z)+ip(s,t), the dimension of the conic
     variable space mu_dim= cone_x.dim+cone_s.dim a value for the
     factor on mu to obtain the new target
source
cb_suggest_mu!(self::CBUQPSumModelBlock, qp_dx::CBMatrix, qp_dy::CBMatrix, rhs_residual::CBMatrix)

get this from all subblocks

source
ConicBundle.cb_sumFunction
cb_sum(A::CBMatrix)

returns the sum over all elements of A, i.e., (1 1 ... 1)A(1 1 ... 1)^T

source
cb_sum(A::CBIndexmatrix)

returns the sum over all elements of A, i.e., (1 1 ... 1)A(1 1 ... 1)^T

source
cb_sum(A::CBSparsemat)

returns the sum over all elements of A, i.e., (1 1 ... 1)A(1 1 ... 1)^T

source
cb_sum(A::CBSymmatrix)

returns the sum over all elements of A, i.e., (1 1 ... 1)A(1 1 ... 1)^T

source
cb_sum(A::CBSparsesym)

returns the sum over all elements of A, i.e., (1 1 ... 1)A(1 1 ... 1)^T

source
ConicBundle.cb_sumbundle_mode!Function
cb_sumbundle_mode!(self::CBAFTModel, bh::Union{<:CBSumBundleHandler,Nothing} = nothing, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

see SumBlockModel::sumbundle_mode

source
cb_sumbundle_mode!(self::CBSumModel, bh::Union{<:CBSumBundleHandler,Nothing} = nothing, aft::Union{<:CBAffineFunctionTransformation,Nothing} = nothing)

see SumBlockModel::sumbundle_mode

source
ConicBundle.cb_sumcolsFunction
cb_sumcols(A::CBMatrix)

returns a column vector holding the sum over all columns, i.e., A*(1 1 ... 1)^T

source
cb_sumcols(A::CBIndexmatrix)

returns a column vector holding the sum over all columns, i.e., A*(1 1 ... 1)^T

source
cb_sumcols(A::CBSparsemat)

returns a column vector holding the sum over all columns, i.e., A*(1 1 ... 1)^T

source
cb_sumcols(A::CBSymmatrix)

returns a column vector holding the sum over all columns, i.e., A*(1 1 ... 1)^T

source
cb_sumcols(A::CBSparsesym)

returns a column vector holding the sum over all columns, i.e., A*(1 1 ... 1)^T

source
ConicBundle.cb_sumrowsFunction
cb_sumrows(A::CBMatrix)

returns a row vector holding the sum over all rows, i.e., (1 1 ... 1)*A

source
cb_sumrows(A::CBIndexmatrix)

returns a row vector holding the sum over all rows, i.e., (1 1 ... 1)*A

source
cb_sumrows(A::CBSparsemat)

returns a row vector holding the sum over all rows, i.e., (1 1 ... 1)*A

source
cb_sumrows(A::CBSymmatrix)

returns a row vector holding the sum over all rows, i.e., (1 1 ... 1)*A

source
cb_sumrows(A::CBSparsesym)

returns a row vector holding the sum over all rows, i.e., (1 1 ... 1)*A

source
ConicBundle.cb_support_inFunction
cb_support_in(self::CBCMgramdense, param0::CBSparsesym)

returns 0 if the support of the costraint matrix is not contained in the support of the sparse symmetric matrix S, 1 if it is contained.

source
cb_support_in(self::CBCMgramsparse, param0::CBSparsesym)

returns 0 if the support of the costraint matrix is not contained in the support of the sparse symmetric matrix S, 1 if it is contained.

source
cb_support_in(self::CBCMgramsparse_withoutdiag, param0::CBSparsesym)

returns 0 if the support of the costraint matrix is not contained in the support of the sparse symmetric matrix S, 1 if it is contained.

source
cb_support_in(self::CBCMlowrankdd, param0::CBSparsesym)

returns 0 if the support of the costraint matrix is not contained in the support of the sparse symmetric matrix S, 1 if it is contained.

source
cb_support_in(self::CBCMlowranksd, param0::CBSparsesym)

returns 0 if the support of the costraint matrix is not contained in the support of the sparse symmetric matrix S, 1 if it is contained.

source
cb_support_in(self::CBCMlowrankss, param0::CBSparsesym)

returns 0 if the support of the costraint matrix is not contained in the support of the sparse symmetric matrix S, 1 if it is contained.

source
cb_support_in(self::CBCMsingleton, S::CBSparsesym)

returns 0 if the support of the costraint matrix is not contained in the support of the sparse symmetric matrix S, 1 if it is contained.

source
cb_support_in(self::CBCMsymdense, param0::CBSparsesym)

returns 0 if the support of the costraint matrix is not contained in the support of the sparse symmetric matrix S, 1 if it is contained.

source
cb_support_in(self::CBCMsymsparse, S::CBSparsesym)

returns 0 if the support of the costraint matrix is not contained in the support of the sparse symmetric matrix S, 1 if it is contained.

source
ConicBundle.cb_support_rankaddFunction
cb_support_rankadd(A::CBMatrix, C::CBSparsesym, alpha::Real, beta::Real, trans::Integer)

returns C=betaC+alphaAA^T (or A^TA), but only on the current support of C

source
ConicBundle.cb_support_xbpeya!Function
cb_support_xbpeya!(self::CBSparsesym, y::CBSparsesym, alpha::Real = 1., beta::Real = 0.)

returns this= alphay+beta(this) restricted to the curent support of *this; if beta==0, then *this is initialized to 0 on its support first

source
ConicBundle.cb_supports_dense_variable_metricFunction
cb_supports_dense_variable_metric(self::CBBundleDenseTrustRegionProx)

returns true if dynamic scaling with dense symmetric matrices is supported

source
cb_supports_dense_variable_metric(self::CBBundleDLRTrustRegionProx)

returns true if variable metric with dense symmetric matrices is supported

source
cb_supports_dense_variable_metric(self::CBBundleLowRankTrustRegionProx)

returns true if dynamic scaling with dense symmetric matrices is supported

source
ConicBundle.cb_supports_diagonal_bounds_scalingFunction
cb_supports_diagonal_bounds_scaling(self::CBBundleDenseTrustRegionProx)
  • @brief this implementation does not support a diagonal scaling heuristic, therefore the following routine has to return true.
source
cb_supports_diagonal_bounds_scaling(self::CBBundleDiagonalTrustRegionProx)
  • @brief this implementation supports a diagonal scaling heuristic for bounds in the groundset, therefore the following routine has to return true.
source
cb_supports_diagonal_bounds_scaling(self::CBBundleDLRTrustRegionProx)
  • @brief this implementation does not support a diagonal scaling heuristic, therefore the following routine has to return true.
source
cb_supports_diagonal_bounds_scaling(self::CBBundleLowRankTrustRegionProx)
  • @brief this implementation does not support a diagonal scaling heuristic, therefore the following routine has to return true.
source
ConicBundle.cb_supports_diagonal_variable_metricFunction
cb_supports_diagonal_variable_metric(self::CBBundleDenseTrustRegionProx)

returns true if dynamic scaling with diagonal matrices is supported

source
cb_supports_diagonal_variable_metric(self::CBBundleDiagonalTrustRegionProx)

returns true if dynamic scaling with diagonal matrices is supported

source
cb_supports_diagonal_variable_metric(self::CBBundleDLRTrustRegionProx)

returns true if variable metric with diagonal matrices is supported

source
cb_supports_diagonal_variable_metric(self::CBBundleLowRankTrustRegionProx)

returns true if dynamic scaling with diagonal matrices is supported

source
ConicBundle.cb_supports_lowrank_variable_metricFunction
cb_supports_lowrank_variable_metric(self::CBBundleDenseTrustRegionProx)

returns true if dynamic scaling with low rank structure is supported

source
cb_supports_lowrank_variable_metric(self::CBBundleDiagonalTrustRegionProx)

returns true if dynamic scaling with low rank matrices is supported

source
cb_supports_lowrank_variable_metric(self::CBBundleDLRTrustRegionProx)

returns true if variable metric with low rank structure is supported

source
cb_supports_lowrank_variable_metric(self::CBBundleLowRankTrustRegionProx)

returns true if dynamic scaling with low rank structure is supported

source
ConicBundle.cb_svecFunction
cb_svec(A::CBSymmatrix, v::CBMatrix, a::Real, add::Bool, startindex_vec::Integer, startindex_A::Integer, blockdim::Integer)

the symmetric vec operator stacks the lower triangle of A to a n*(n+1)/2 vector with the same norm2 as A; here it sets svec(A)=[a11,sqrt(2)a12,...,sqrt(2)a1n,a22,...,sqrt(2)a(n-1,n),ann]', multiplies it by a and sets or adds (if add==true) it to v starting from startindexvec possibly restricted to the subblock of order blockdim (whenever >=0, else blockdim is set to A.rowdim()-startindexA) starting from startindexA (must be >=0); if add==false and startindexvec<0 then vec is also reinitialzed to the appropriate size

source
cb_svec(A::CBSymmatrix)

the symmetric vec operator, stacks the lower triangle of A to a n*(n+1)/2 vector with the same norm2 as A; i.e., it returns svec(A)=[a11,sqrt(2)a12,...,sqrt(2)a1n,a22,...,sqrt(2)a(n-1,n),ann]'

source
ConicBundle.cb_svec_projection!Function
cb_svec_projection!(self::CBPSCAffineFunction, svec_offset::CBMatrix, svec_coeffs::CBMatrix, P::CBMatrix, index_subset::Union{<:CBIndexmatrix,Nothing} = nothing)

see PSCOracle::svec_projection()

source
ConicBundle.cb_sveciFunction
cb_sveci(v::CBMatrix, A::CBSymmatrix, a::Real, add::Bool, startindex_vec::Integer, startindex_A::Integer, blockdim::Integer)

the inverse operator to svec, extracts from v at startindexvec (>=0) the symmetric matrix of blockdim adding its mutliple by a into A starting at startindexA; if add==false and startindexA<0 A is initialized to the size of blockdim; if the latter is also negative then v.dim()-startindexvec must match an exact order and matrix A is initialized to this size. In all other cases the size of the symmetric matrix determines the missing parameters and vec.dim-startindex_vec

source
ConicBundle.cb_swapFunction
cb_swap(A::CBMatrix, B::CBMatrix)

swap the content of the two matrices A and B (involves no copying)

source
cb_swap(A::CBIndexmatrix, B::CBIndexmatrix)

swap the content of the two matrices A and B (involves no copying)

source
cb_swap(A::CBSparsemat, B::CBSparsemat)

swap the content of the two sparse matrices A and B (involves no copying)

source
cb_swap(A::CBSymmatrix, B::CBSymmatrix)

swap the content of the two matrices A and B (involves no copying)

source
cb_swap(A::CBSparsesym, B::CBSparsesym)

swap the content of the two sparse matrices A and B (involves no copying)

source
ConicBundle.cb_symscaleFunction
cb_symscale(A::CBSymmatrix, B::CBMatrix, S::CBSymmatrix, a::Real, b::Real, btrans::Integer)

sets S=betaS+alphaB'AB for symmatrix A and matrix B

source
ConicBundle.cb_synchronize_ids!Function
cb_synchronize_ids!(self::CBMinorantPointer, new_modification_id::Integer, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer, new_prex_id::Integer = 0)

if not empty it sets the modification_id to its new id and reinitializes the evaluation map

source
cb_synchronize_ids!(self::CBMinorantUseData, new_modification_id::Integer, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer, new_prex_id::Integer)

sets the modification_id to its new id and reinitializes the evaluation map

source
cb_synchronize_ids!(self::CBAFTData, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer, new_prex_id::Integer = 0)

synchronize ids in any case by discarding inconsistent parts but return number of errors

source
cb_synchronize_ids!(self::CBBoxData, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer, new_prex_id::Integer = 0)

synchronize ids in any case by discarding inconsistent parts but return number of errors

source
cb_synchronize_ids!(self::CBNNCData, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer, new_prex_id::Integer = 0)

synchronize ids in any case by discarding inconsistent parts but return number of errors

source
cb_synchronize_ids!(self::CBPSCData, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer, new_prex_id::Integer = 0)

synchronize ids in any case by discarding inconsistent parts but return number of errors

source
cb_synchronize_ids!(self::CBSOCData, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer, new_prex_id::Integer = 0)

synchronize ids in any case by discarding inconsistent parts but return number of errors

source
cb_synchronize_ids!(self::CBAFTModel, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer)

see BundleModel::synchronize_ids

source
cb_synchronize_ids!(self::CBSumModel, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer)

see BundleModel::synchronize_ids

source
cb_synchronize_ids!(self::CBSumBundle, new_modification_id::Integer, new_center_id::Integer, old_center_id::Integer, new_cand_id::Integer, old_cand_id::Integer, new_prex_id::Integer = 0)

sets the modification_id to id

source
ConicBundle.cb_termination_codeMethod
cb_termination_code(self::CBMatrixCBSolver)
  • @brief Returns the termination code of the bundle algorithm for the latest descent step

    For resetting all counters relevant for termination see clear_fail_counts() .
    
    @return
    -  0  :    Not terminated.
           (Continue with the next solve())
    -  1  :    Relative precision criterion satisfied. (See set_term_relprec())
    -  2  :    Timelimit exceeded.
           (Currently the C interface does not offer a timelimit.)
    -  4  :    Maximum number of function reevaluations exceeded.
           (Indicates that there is a problem with one of the function
           oracles that seems to deliver no valid upper bounds on the true
           function value for descent steps)
    -  8  :    Maximum number of quadratic subproblem failures exceeded.
           (Indicates that the numerical limits of the inner quadratic
           programming solver are reached, no further progress expected)
    - 16  :    maximum number of model evaluation failures exceeded
           (Indicates that the numerical limits of the setup of the
           subproblem are reached, no further progress expected)
    - 32  :    maximum number of failures to increase the augmented model value exceeded
           (Indicates that the numerical limits  of the interplay between
           subproblem and quadratic programming solver are reached,
           no further progress expected)
     - 64  :   maximum number of oracle calls (function evaluations) exceeded,
               see set_eval_limit()
     - 128  :   maximum number of oracle failures exceeded.
           This refers to function evaluations that terminate with insufficient
     precision but still provide a new approximate subgradient. A failure typically
           indicates numerical difficulties with the precision requirements.
           (Currently the interface does not allow to manipulate the limit, it is set to 10)
source
ConicBundle.cb_timeFunction
cb_time(self::CBClock)

return time elapsed since last call to start() in Microseconds (possibly adding an optional offset)

source
ConicBundle.cb_times_B!Function
cb_times_B!(self::CBQPConeModelBlock, A::CBMatrix, C::CBMatrix, alpha::Real, beta::Real, Atrans::Integer, Btrans::Integer, startindex_model::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

C=betaC+alphaA*B where A and B may be transposed; carry out the model part of this beginning at startindex_model

source
cb_times_B!(self::CBQPSumModelBlock, A::CBMatrix, C::CBMatrix, alpha::Real, beta::Real, Atrans::Integer, Btrans::Integer, startindex_model::Integer, globalbundle::CBMinorantBundle, startindex_bundle::Integer)

C=betaC+alphaA*B where A and B may be transposed; carry out the model part of this beginning at startindex_model

source
ConicBundle.cb_times_QFunction
cb_times_Q(self::CBMatrix, A::CBMatrix, r::Integer)

computes A=AQ, assuming a housholder Q is coded in the first r columns of the lower triangle of (this); it always returns 0

source
ConicBundle.cb_to_dimFunction
cb_to_dim(self::CBAffineFunctionTransformation)

returns the dimension of the output argument or -1 if it is unknown

source
ConicBundle.cb_traceFunction
cb_trace(A::CBMatrix)

returns the sum of the diagonal elements A(i,i) over all i

source
cb_trace(A::CBIndexmatrix)

returns the sum of the diagonal elements A(i,i) over all i

source
cb_trace(A::CBSparsemat)

returns the sum of the diagonal elements A(i,i) over all i

source
cb_trace(A::CBSymmatrix)

returns the sum of the diagonal elements A(i,i) over all i

source
cb_trace(A::CBSparsesym)

returns the sum of the diagonal elements A(i,i) over all i

source
ConicBundle.cb_tracedualFunction
cb_tracedual(self::CBQPConeModelBlock, prec::Union{<:AbstractVector{Cdouble},Nothing} = nothing)

return the value of the dual variable to the trace consrat == support function value

source
cb_tracedual(self::CBUQPConeModelBlock, prec::Union{<:AbstractVector{Cdouble},Nothing} = nothing)

return the value of the dual variable to the trace consrat == support function value

source
ConicBundle.cb_transform_argumentFunction
cb_transform_argument(self::CBAffineFunctionTransformation, transformed_y::CBMatrix, input_y::CBMatrix)
  • @brief computes @a transformedoffset and, if @a this is not the identity,@a transformedy and returns either @a inputy (id) or @a transformedy

    On input @a transformedy is supposed to be of dimension zero, unless it was already the result of a previous transformation for exactly this AFT with this data (no intermediate modifications). This is important, because if @a transformedy has the correct size, only the data changed by the transformation is overwritten and the constant parts are assumed to be already initialized. On output it is again of dimension 0 if the transformation is the identity.

      The @a transformed_offset = fun_offset+ip(linear_cost,@a input_y) is
      the value needed in objective_value() together with the result of the
      evaluation of the function for @a transformed_y in order to compute
      the transformed objective value.
source
ConicBundle.cb_transform_minorantFunction
cb_transform_minorant(self::CBAffineFunctionTransformation, out_minorant::CBMinorantPointer, in_minorant::CBMinorantPointer, alpha::Real = 1., add_trafo_minorant::Bool = false, provided_row_indices::Union{<:CBIndexmatrix,Nothing} = nothing, needed_column_indices::Union{<:CBIndexmatrix,Nothing} = nothing)
  • @brief transforms the in linear minorant (scaled by alpha) and initializes or adds it to the out linear minorant

      if out_minorant.empty()==true, the out_minorant is initialized,
      otherwise the information is added.
    
      the constant_minorant of the transformation is only added if
      add_trafo_minorant is set to true.

    If given, providedrowindices and neededcolumnindices must be as specified in qpcostindices, i.e. of inminorant only the providedrowindices (all if NULL) will be used to compute only the neededcolumnindices (as rows, all if NULL) of outminorant.

source
ConicBundle.cb_transform_minorantsFunction
cb_transform_minorants(self::CBAffineFunctionTransformation, out_minorants::CBMinorantBundle, in_minorants::CBMinorantBundle, alpha::Real = 1.)
  • @brief transforms several linear minorants (scaled by alpha) and initializes or adds them to the out linear minorants

      for out_minorant[i].empty()==true the out_minorant is initialized,
      otherwise the information is added.
source
ConicBundle.cb_transposeFunction
cb_transpose(A::CBSymmatrix)

(drop it or use a constructor instead)

source
cb_transpose(A::CBSparsesym)

(drop it or use a constructor instead)

source
ConicBundle.cb_transpose!Function
cb_transpose!(self::CBMatrix)

transposes itself (cheap for vectors, expensive for matrices)

source
cb_transpose!(self::CBIndexmatrix)

transposes itself (cheap for vectors, expensive for matrices)

source
cb_transpose!(self::CBSparsemat)

transposes itself (swaps row and column representations, thus cheap)

source
cb_transpose!(self::CBSymmatrix)

transposes itself (at almost no cost)

source
cb_transpose!(self::CBSparsesym)

transposes itself (at almost no cost)

source
ConicBundle.cb_trilFunction
cb_tril(A::CBMatrix, i::Integer)

retuns a matrix that keeps the lower triangle of A starting with diagonal d, i.e., (i,j)=A(i,j) for 0<=i<row dimension, 0<=j<min(i+d+1,column dimension), and sets (i,j)=0 otherwise

source
cb_tril(A::CBIndexmatrix, d::Integer)

retuns a matrix that keeps the lower triangle of A starting with diagonal d, i.e., (i,j)=A(i,j) for 0<=i<row dimension, 0<=j<min(i+d+1,column dimension), and sets (i,j)=0 otherwise

source
ConicBundle.cb_tril!Function
cb_tril!(self::CBMatrix, d::Integer = 0)

keeps everything below and including diagonal d, everything above is set to zero, returns *this

source
cb_tril!(self::CBIndexmatrix, d::Integer = 0)

keeps lower triangle starting with diagonal d; set (*this)(i,j)=0 for 0<=i<row dimension, max(0,i+d)<=j<column dimension, returns *this

source
ConicBundle.cb_tril_solve!Function
cb_tril_solve!(self::CBMatrix, rhs::CBMatrix, tol::Real = 1e-10)

solves (this)x=rhs for x by forward substitution regarding (this) as an upper triangle matrix and stores x in rhs. Returns 0 on success, otherwise i+1 if abs(this)(i,i)<tol and the reduced row of rhs is nonzero.

source
ConicBundle.cb_triuFunction
cb_triu(A::CBMatrix, i::Integer)

retuns a matrix that keeps the upper triangle of A starting with diagonal d, i.e., (i,j)=A(i,j) for 0<=i<row dimension, max(0,i+d)<=j<column dimension, and sets (i,j)=0 otherwise

source
cb_triu(A::CBIndexmatrix, d::Integer)

retuns a matrix that keeps the upper triangle of A starting with diagonal d, i.e., (i,j)=A(i,j) for 0<=i<row dimension, max(0,i+d)<=j<column dimension, and sets (i,j)=0 otherwise

source
ConicBundle.cb_triu!Function
cb_triu!(self::CBMatrix, d::Integer = 0)

keeps everything above and including diagonal d, everything below is set to zero, returns *this

source
cb_triu!(self::CBIndexmatrix, d::Integer = 0)

keeps upper triangle starting with diagonal d; set (*this)(i,j)=0 for 0<=i<row dimension, 0<=j<min(i+d,column dimension), returns *this

source
ConicBundle.cb_triu_solve!Function
cb_triu_solve!(self::CBMatrix, rhs::CBMatrix, tol::Real = 1e-10)

solves (this)x=rhs for x by back substitution regarding (this) as an upper triangle matrix and stores x in rhs. Returns 0 on success, otherwise i+1 if abs(this)(i,i)<tol and the remaining row of rhs is nonzero.

source
ConicBundle.cb_unif_long!Function
cb_unif_long!(self::CBGB_rand, m::Integer)

returns a random integer number "uniformly distributed" in {0,..,m-1}

source
ConicBundle.cb_update!Function
cb_update!(self::CBUQPSolver, dQ::CBSymmatrix, dc::CBMatrix, doffset::Real)

resolve the QP for the same feasible set but update the cost terms by the given argumetns first

source
ConicBundle.cb_update_QP_costs!Function
cb_update_QP_costs!(self::CBBundleDenseTrustRegionProx, delta_Q::CBSymmatrix, delta_d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, center_y::CBMatrix, groundset_minorant::CBMinorantPointer, delta_groundset_minorant::CBMinorantPointer, delta_index::CBIndexmatrix, yfixed::Union{<:CBIndexmatrix,Nothing})

updates the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::updateQPcosts

source
cb_update_QP_costs!(self::CBBundleDiagonalTrustRegionProx, delta_Q::CBSymmatrix, delta_d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, center_y::CBMatrix, groundset_minorant::CBMinorantPointer, delta_groundset_minorant::CBMinorantPointer, delta_index::CBIndexmatrix, yfixed::Union{<:CBIndexmatrix,Nothing})

updates the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::updateQPcosts

source
cb_update_QP_costs!(self::CBBundleDLRTrustRegionProx, delta_Q::CBSymmatrix, delta_d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, center_y::CBMatrix, groundset_minorant::CBMinorantPointer, delta_groundset_minorant::CBMinorantPointer, delta_index::CBIndexmatrix, yfixed::Union{<:CBIndexmatrix,Nothing})

updates the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::updateQPcosts

source
cb_update_QP_costs!(self::CBBundleIdProx, delta_Q::CBSymmatrix, delta_d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, center_y::CBMatrix, groundset_minorant::CBMinorantPointer, delta_groundset_minorant::CBMinorantPointer, delta_index::CBIndexmatrix, yfixed::Union{<:CBIndexmatrix,Nothing})

updates the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::updateQPcosts

source
cb_update_QP_costs!(self::CBBundleLowRankTrustRegionProx, delta_Q::CBSymmatrix, delta_d::CBMatrix, constant_minorant::CBMinorantPointer, bundle::CBMinorantBundle, center_y::CBMatrix, groundset_minorant::CBMinorantPointer, delta_groundset_minorant::CBMinorantPointer, delta_index::CBIndexmatrix, yfixed::Union{<:CBIndexmatrix,Nothing})

updates the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::updateQPcosts

source
ConicBundle.cb_update_model!Function
cb_update_model!(self::CBAFTModel, model_update::CBModelUpdate, center_id::Integer, center_y::CBMatrix, cand_id::Integer, cand_y::CBMatrix, model_maxviol::Real, H::CBBundleProxObject)

see BundleModel::update_model

source
cb_update_model!(self::CBSumModel, model_update::CBModelUpdate, center_id::Integer, center_y::CBMatrix, cand_id::Integer, cand_y::CBMatrix, model_maxviol::Real, H::CBBundleProxObject)

see BundleModel::update_model

source
cb_update_model!(self::CBSumBundleHandler, model_update::CBModelUpdate, center_id::Integer, center_y::CBMatrix, cand_id::Integer, cand_y::CBMatrix, model_maxviol::Real, H::CBBundleProxObject)

updates the sumbundle maybe even if not active; in this it tries to do the same as bh, storing the aggregate at the same place and providing new room at the same place; the new subgradient is not entered here but in setcandminorant()

source
ConicBundle.cb_validFunction
cb_valid(self::CBMinorantPointer)

returns true if the pointer is not empty and the data is valid

source
cb_valid(self::CBMinorantUseData)

check validity recursively

source
ConicBundle.cb_weight_changedFunction
cb_weight_changed(self::CBBundleHKWeight)

returns true if last call of *_update modified current value of tau, else 0

source
cb_weight_changed(self::CBBundleRQBWeight)

returns true if last call of *_update modified current value of tau, else 0

source
ConicBundle.cb_xbpeyaFunction
cb_xbpeya(x::CBMatrix, y::CBMatrix, alpha::Real, beta::Real, ytrans::Integer)

returns x= alphay+betax, where y may be transposed (ytrans=1); if beta==0. then x is initialized to the correct size

source
cb_xbpeya(x::CBIndexmatrix, y::CBIndexmatrix, alpha::Integer, beta::Integer, ytrans::Integer)

returns x= alphay+betax, where y may be transposed (ytrans=1); if beta==0. then x is initialized to the correct size

source
cb_xbpeya(x::CBSparsemat, y::CBSparsemat, alpha::Real, beta::Real, ytrans::Integer)

returns x= alphay+betax, where y may be transposed (ytrans=1); if beta==0. then x is initialized to the correct size

source
cb_xbpeya(x::CBSymmatrix, y::CBSymmatrix, alpha::Real, beta::Real)

returns x= alphay+betax; if beta==0. then x is initialized to the correct size

source
cb_xbpeya(x::CBSparsesym, y::CBSparsesym, alpha::Real, beta::Real)

returns x= alphay+betax; if beta==0. then x is initialized to the correct size

source
ConicBundle.cb_xdimFunction
cb_xdim(self::CBUQPConeModelBlock)

dimension of externally visible primal variables

source
cb_xdim(self::CBUQPSumModelBlock)

sum of all xdim of the sublocks

source
ConicBundle.cb_xetriu_yza!Function
cb_xetriu_yza!(self::CBSymmatrix, A::CBMatrix, B::CBMatrix, d::Real = 1.)

sets this(i,j), i<=j to the upper triangle of the matrix product dtranspose(A)*B

source
cb_xetriu_yza!(self::CBSymmatrix, A::CBSparsemat, B::CBMatrix, d::Real = 1.)

sets this(i,j), i<=j to the upper triangle of the matrix product dtranspose(A)*B

source
ConicBundle.cb_xeya!Function
cb_xeya!(self::CBMatrix, A::CBMatrix, d::Real = 1., atrans::Integer = 0)

sets this=dA where A may be transposed and returns *this

source
cb_xeya!(self::CBMatrix, A::CBIndexmatrix, d::Real = 1.)

sets this=dA and returns *this

source
cb_xeya!(self::CBMatrix, A::CBSymmatrix, d::Real = 1.)

sets this=dA and returns *this

source
cb_xeya!(self::CBMatrix, A::CBSparsesym, d::Real = 1.)

sets this=dA and returns *this

source
cb_xeya!(self::CBMatrix, A::CBSparsemat, d::Real = 1.)

sets this=dA and returns *this

source
cb_xeya!(self::CBIndexmatrix, A::CBIndexmatrix, d::Integer = 1)

sets this=dA and returns *this

source
cb_xeya!(self::CBSparsemat, A::CBSparsemat, d::Real = 1.)

sets this=dA and returns *this

source
cb_xeya!(self::CBSparsemat, A::CBMatrix, d::Real = 1.)

sets this=dA removing abs(values)<tol; returns *this

source
cb_xeya!(self::CBSparsemat, A::CBIndexmatrix, d::Real = 1.)

sets this=dA removing zeros; returns *this

source
cb_xeya!(self::CBSparsemat, A::CBSparsesym, d::Real = 1.)

sets this=Ad, abs(values)<tol are removed from the support, and returns *this,

source
cb_xeya!(self::CBSymmatrix, A::CBSymmatrix, d::Real = 1.)

sets this=dA and returns *this

source
cb_xeya!(self::CBSymmatrix, A::CBMatrix, d::Real = 1.)

sets this=d(A+transpose(A))/2. and returns *this

source
cb_xeya!(self::CBSymmatrix, A::CBIndexmatrix, d::Real = 1.)

sets this=d(A+transpose(A))/2. and returns *this

source
cb_xeya!(self::CBSymmatrix, A::CBSparsesym, d::Real = 1.)

sets this=dA and returns *this

source
cb_xeya!(self::CBSparsesym, A::CBSparsesym, d::Real = 1.)

sets this=dA and returns *this

source
cb_xeya!(self::CBSparsesym, A::CBMatrix, d::Real = 1.)

sets and returns this=d(A+transpose(A))/2. where abs(values)<tol are removed from the support

source
cb_xeya!(self::CBSparsesym, A::CBIndexmatrix, d::Real = 1.)

sets and returns this=d(A+transpose(A))/2. where zeros are removed from the support

source
cb_xeya!(self::CBSparsesym, A::CBSymmatrix, d::Real = 1.)

sets and returns this=Ad where abs(values)<tol are removed from the support

source
cb_xeya!(self::CBSparsesym, A::CBSparsemat, d::Real = 1.)

sets and returns this=d.(A+transpose(A))/2.

source
ConicBundle.cb_xeyapzbFunction
cb_xeyapzb(x::CBMatrix, y::CBMatrix, z::CBMatrix, alpha::Real, beta::Real)

returns x= alphay+betaz; x is initialized to the correct size

source
cb_xeyapzb(x::CBIndexmatrix, y::CBIndexmatrix, z::CBIndexmatrix, alpha::Integer, beta::Integer)

returns x= alphay+betaz; x is initialized to the correct size, see CHMatrixClasses::xeyapzb() for default values of alpha and beta.

source
cb_xeyapzb(x::CBSymmatrix, y::CBSymmatrix, z::CBSymmatrix, alpha::Real, beta::Real)

returns x= alphay+betaz; x is initialized to the correct size

source
cb_xeyapzb(x::CBSparsesym, y::CBSparsesym, z::CBSparsesym, alpha::Real, beta::Real)

returns x= alphay+betaz; x is initialized to the correct size

source
ConicBundle.cb_xpetriu_yza!Function
cb_xpetriu_yza!(self::CBSymmatrix, A::CBMatrix, B::CBMatrix, d::Real = 1.)

adds to this(i,j), i<=j the upper triangle of the matrix product dtranspose(A)*B

source
cb_xpetriu_yza!(self::CBSymmatrix, A::CBSparsemat, B::CBMatrix, d::Real = 1.)

adds to this(i,j), i<=j the upper triangle of the matrix product dtranspose(A)*B

source
ConicBundle.cb_xpeya!Function
cb_xpeya!(self::CBMatrix, A::CBMatrix, d::Real = 1.)

sets this+=dA and returns *this

source
cb_xpeya!(self::CBMatrix, A::CBIndexmatrix, d::Real = 1.)

sets this+=dA and returns *this

source
cb_xpeya!(self::CBMatrix, A::CBSymmatrix, d::Real = 1.)

sets this+=dA and returns *this

source
cb_xpeya!(self::CBMatrix, A::CBSparsesym, d::Real = 1.)

sets this+=dA and returns *this

source
cb_xpeya!(self::CBMatrix, A::CBSparsemat, d::Real = 1.)

sets this+=dA and returns *this

source
cb_xpeya!(self::CBIndexmatrix, A::CBIndexmatrix, d::Integer = 1)

sets this+=dA and returns *this

source
cb_xpeya!(self::CBSymmatrix, A::CBSymmatrix, d::Real = 1.)

sets this+=dA and returns *this

source
cb_xpeya!(self::CBSymmatrix, A::CBMatrix, d::Real = 1.)

sets this+=d(A+transpose(A))/2. and returns *this

source
cb_xpeya!(self::CBSymmatrix, A::CBIndexmatrix, d::Real = 1.)

sets this+=d(A+transpose(A))/2. and returns *this

source
cb_xpeya!(self::CBSymmatrix, A::CBSparsesym, d::Real = 1.)

sets this+=dA and returns *this

source
ConicBundle.cb_ydimFunction
cb_ydim(self::CBUQPConeModelBlock)

dimension of externally visible dual variables

source
cb_ydim(self::CBUQPSumModelBlock)

sum of all ydim of the sublocks

source
ConicBundle.cb_zeroFunction
cb_zero(self::CBMinorantPointer)

returns true if the pointer is not empty but all entrys (also the offset) are zero

source
Missing docstring.

Missing docstring for cbm_child. Check Documenter's build log for details.

Missing docstring.

Missing docstring for cbm_inactive. Check Documenter's build log for details.

Missing docstring.

Missing docstring for cbm_root. Check Documenter's build log for details.

Missing docstring.

Missing docstring for cbm_unavailable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for cbmu_descent_step. Check Documenter's build log for details.

Missing docstring.

Missing docstring for cbmu_new_subgradient. Check Documenter's build log for details.

Missing docstring.

Missing docstring for cbmu_null_step. Check Documenter's build log for details.