16.4 Class Task¶

mosek.Task
¶ Represents an optimization task.

Task.Task
¶ Task(env=None, maxnumcon=0, maxnumvar=0, other=None)
Task(other)
Constructor of a new optimization task.
Parameters:

Task.__del__
¶ def __del__ ()
Free the underlying native allocation.

Task.analyzenames
¶ def analyzenames (whichstream, nametype)
The function analyzes the names and issues an error if a name is invalid.
Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)
(nametype
mosek.nametype
) – The type of names e.g. valid in MPS or LP files. (input)
Groups:

Task.analyzeproblem
¶ def analyzeproblem (whichstream)
The function analyzes the data of a task and writes out a report.
Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)Groups: Task diagnostics

Task.analyzesolution
¶ def analyzesolution (whichstream, whichsol)
Print information related to the quality of the solution and other solution statistics.
By default this function prints information about the largest infeasibilites in the solution, the primal (and possibly dual) objective value and the solution status.
Following parameters can be used to configure the printed statistics:
iparam.ana_sol_basis
enables or disables printing of statistics specific to the basis solution (condition number, number of basic variables etc.). Default is on.iparam.ana_sol_print_violated
enables or disables listing names of all constraints (both primal and dual) which are violated by the solution. Default is off.dparam.ana_sol_infeas_tol
is the tolerance defining when a constraint is considered violated. If a constraint is violated more than this, it will be listed in the summary.
Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)
(whichsol
mosek.soltype
) – Selects a solution. (input)
Groups:

Task.appendbarvars
¶ def appendbarvars (dim)
Appends positive semidefinite matrix variables of dimensions given by
dim
to the problem.Parameters:
(dim
int
[]
) – Dimensions of symmetric matrix variables to be added. (input)Groups: Symmetric matrix variable data

Task.appendcone
¶ def appendcone (ct, conepar, submem)
Appends a new conic constraint to the problem. Hence, add a constraint
\[\hat{x} \in \K\]to the problem where \(\K\) is a convex cone. \(\hat{x}\) is a subset of the variables which will be specified by the argument
submem
.Depending on the value of
ct
this function appends a normal (conetype.quad
) or rotated quadratic cone (conetype.rquad
).Define
\[\hat{x} = x_{\mathtt{submem}[0]},\ldots,x_{\mathtt{submem}[\mathtt{nummem}1]}.\]Depending on the value of
ct
this function appends one of the constraints:Quadratic cone (
conetype.quad
) :\[\hat{x}_0 \geq \sqrt{\sum_{i=1}^{i<\mathtt{nummem}} \hat{x}_i^2}\]Rotated quadratic cone (
conetype.rquad
) :\[2 \hat{x}_0 \hat{x}_1 \geq \sum_{i=2}^{i<\mathtt{nummem}} \hat{x}^2_i, \quad \hat{x}_{0}, \hat{x}_1 \geq 0\]
Please note that the sets of variables appearing in different conic constraints must be disjoint.
For an explained code example see Section Conic Quadratic Optimization.
Parameters:
(ct
mosek.conetype
) – Specifies the type of the cone. (input)
(conepar
float
) – This argument is currently not used. It can be set to 0 (input)
(submem
int
[]
) – Variable subscripts of the members in the cone. (input)
Groups:

Task.appendconeseq
¶ def appendconeseq (ct, conepar, nummem, j)
Appends a new conic constraint to the problem, as in
Task.appendcone
. The function assumes the members of cone are sequential where the first member has indexj
and the lastj+nummem1
.Parameters:
(ct
mosek.conetype
) – Specifies the type of the cone. (input)
(conepar
float
) – This argument is currently not used. It can be set to 0 (input)
(nummem
int
) – Number of member variables in the cone. (input)
(j
int
) – Index of the first variable in the conic constraint. (input)
Groups:

Task.appendconesseq
¶ def appendconesseq (ct, conepar, nummem, j)
Appends a number of conic constraints to the problem, as in
Task.appendcone
. The \(k\)th cone is assumed to be of dimensionnummem[k]
. Moreover, it is assumed that the first variable of the first cone has index \(j\) and starting from there the sequentially following variables belong to the first cone, then to the second cone and so on.Parameters:
(ct
mosek.conetype
[]
) – Specifies the type of the cone. (input)
(conepar
float
[]
) – This argument is currently not used. It can be set to 0 (input)
(nummem
int
[]
) – Numbers of member variables in the cones. (input)
(j
int
) – Index of the first variable in the first cone to be appended. (input)
Groups:

Task.appendcons
¶ def appendcons (num)
Appends a number of constraints to the model. Appended constraints will be declared free. Please note that MOSEK will automatically expand the problem dimension to accommodate the additional constraints.
Parameters:
(num
int
) – Number of constraints which should be appended. (input)Groups: Linear constraint data

Task.appendsparsesymmat
¶ def appendsparsesymmat (dim, subi, subj, valij) > idx
MOSEK maintains a storage of symmetric data matrices that is used to build \(\barC\) and \(\barA\). The storage can be thought of as a vector of symmetric matrices denoted \(E\). Hence, \(E_i\) is a symmetric matrix of certain dimension.
This function appends a general sparse symmetric matrix on triplet form to the vector \(E\) of symmetric matrices. The vectors
subi
,subj
, andvalij
contains the row subscripts, column subscripts and values of each element in the symmetric matrix to be appended. Since the matrix that is appended is symmetric, only the lower triangular part should be specified. Moreover, duplicates are not allowed.Observe the function reports the index (position) of the appended matrix in \(E\). This index should be used for later references to the appended matrix.
Parameters:
(dim
int
) – Dimension of the symmetric matrix that is appended. (input)
(subi
int
[]
) – Row subscript in the triplets. (input)
(subj
int
[]
) – Column subscripts in the triplets. (input)
(valij
float
[]
) – Values of each triplet. (input)
Return:
(idx
int
) – Unique index assigned to the inputted matrix that can be used for later reference.Groups:

Task.appendvars
¶ def appendvars (num)
Appends a number of variables to the model. Appended variables will be fixed at zero. Please note that MOSEK will automatically expand the problem dimension to accommodate the additional variables.
Parameters:
(num
int
) – Number of variables which should be appended. (input)Groups: Scalar variable data

Task.asyncgetresult
¶ def asyncgetresult (server, port, token) > respavailable, resp, trm
Request a response from a remote job. If successful, solver response, termination code and solutions are retrieved.
Parameters:
(server
str
) – Name or IP address of the solver server. (input)
(port
str
) – Network port of the solver service. (input)
(token
str
) – The task token. (input)
Return:
(respavailable
int
) – Indicates if a remote response is available. If this is not true,resp
andtrm
should be ignored.
(resp
mosek.rescode
) – Is the response code from the remote solver.
(trm
mosek.rescode
) – Is eitherrescode.ok
or a termination response code.

Task.asyncoptimize
¶ def asyncoptimize (server, port) > token
Offload the optimization task to a solver server defined by
server:port
. The call will return immediately and not wait for the result.If the string parameter
sparam.remote_access_token
is not blank, it will be passed to the server as authentication.Parameters:
(server
str
) – Name or IP address of the solver server (input)
(port
str
) – Network port of the solver service (input)
Return:
(token
str
) – Returns the task token

Task.asyncpoll
¶ def asyncpoll (server, port, token) > respavailable, resp, trm
Requests information about the status of the remote job.
Parameters:
(server
str
) – Name or IP address of the solver server (input)
(port
str
) – Network port of the solver service (input)
(token
str
) – The task token (input)
Return:
(respavailable
int
) – Indicates if a remote response is available. If this is not true,resp
andtrm
should be ignored.
(resp
mosek.rescode
) – Is the response code from the remote solver.
(trm
mosek.rescode
) – Is eitherrescode.ok
or a termination response code.

Task.asyncstop
¶ def asyncstop (server, port, token)
Request that the job identified by the
token
is terminated.Parameters:
(server
str
) – Name or IP address of the solver server (input)
(port
str
) – Network port of the solver service (input)
(token
str
) – The task token (input)

Task.basiscond
¶ def basiscond () > nrmbasis, nrminvbasis
If a basic solution is available and it defines a nonsingular basis, then this function computes the 1norm estimate of the basis matrix and a 1norm estimate for the inverse of the basis matrix. The 1norm estimates are computed using the method outlined in [Ste98], pp. 388391.
By definition the 1norm condition number of a matrix \(B\) is defined as
\[\kappa_1(B) := \B\_1 \B^{1}\_1.\]Moreover, the larger the condition number is the harder it is to solve linear equation systems involving \(B\). Given estimates for \(\B\_1\) and \(\B^{1}\_1\) it is also possible to estimate \(\kappa_1(B)\).
Return:
(nrmbasis
float
) – An estimate for the 1norm of the basis.
(nrminvbasis
float
) – An estimate for the 1norm of the inverse of the basis.
Groups:

Task.checkconvexity
¶ def checkconvexity ()
This function checks if a quadratic optimization problem is convex. The amount of checking is controlled by
iparam.check_convexity
.The function reports an error if the problem is not convex.
Groups: Task diagnostics

Task.checkmem
¶ def checkmem (file, line)
Checks the memory allocated by the task.
Parameters:
(file
str
) – File from which the function is called. (input)
(line
int
) – Line in the file from which the function is called. (input)
Groups:

Task.chgbound
Deprecated¶ def chgbound (accmode, i, lower, finite, value)
Changes a bound for one constraint or variable. If
accmode
equalsaccmode.con
, a constraint bound is changed, otherwise a variable bound is changed.If
lower
is nonzero, then the lower bound is changed as follows:\[\begin{split}\mbox{new lower bound} = \left\{ \begin{array}{ll}  \infty, & \mathtt{finite}=0, \\ \mathtt{value} & \mbox{otherwise}. \end{array} \right.\end{split}\]Otherwise if
lower
is zero, then\[\begin{split}\mbox{new upper bound} = \left\{ \begin{array}{ll} \infty, & \mathtt{finite}=0, \\ \mathtt{value} & \mbox{otherwise}. \end{array} \right.\end{split}\]Please note that this function automatically updates the bound key for bound, in particular, if the lower and upper bounds are identical, the bound key is changed to
fixed
.Parameters:
(accmode
mosek.accmode
) – Defines if operations are performed rowwise (constraintoriented) or columnwise (variableoriented). (input)
(i
int
) – Index of the constraint or variable for which the bounds should be changed. (input)
(lower
int
) – If nonzero, then the lower bound is changed, otherwise the upper bound is changed. (input)
(finite
int
) – If nonzero, thenvalue
is assumed to be finite. (input)
(value
float
) – New value for the bound. (input)
Groups:

Task.chgconbound
¶ def chgconbound (i, lower, finite, value)
Changes a bound for one constraint.
If
lower
is nonzero, then the lower bound is changed as follows:\[\begin{split}\mbox{new lower bound} = \left\{ \begin{array}{ll}  \infty, & \mathtt{finite}=0, \\ \mathtt{value} & \mbox{otherwise}. \end{array} \right.\end{split}\]Otherwise if
lower
is zero, then\[\begin{split}\mbox{new upper bound} = \left\{ \begin{array}{ll} \infty, & \mathtt{finite}=0, \\ \mathtt{value} & \mbox{otherwise}. \end{array} \right.\end{split}\]Please note that this function automatically updates the bound key for the bound, in particular, if the lower and upper bounds are identical, the bound key is changed to
fixed
.Parameters:
(i
int
) – Index of the constraint for which the bounds should be changed. (input)
(lower
int
) – If nonzero, then the lower bound is changed, otherwise the upper bound is changed. (input)
(finite
int
) – If nonzero, thenvalue
is assumed to be finite. (input)
(value
float
) – New value for the bound. (input)
Groups:

Task.chgvarbound
¶ def chgvarbound (j, lower, finite, value)
Changes a bound for one variable.
If
lower
is nonzero, then the lower bound is changed as follows:\[\begin{split}\mbox{new lower bound} = \left\{ \begin{array}{ll}  \infty, & \mathtt{finite}=0, \\ \mathtt{value} & \mbox{otherwise}. \end{array} \right.\end{split}\]Otherwise if
lower
is zero, then\[\begin{split}\mbox{new upper bound} = \left\{ \begin{array}{ll} \infty, & \mathtt{finite}=0, \\ \mathtt{value} & \mbox{otherwise}. \end{array} \right.\end{split}\]Please note that this function automatically updates the bound key for the bound, in particular, if the lower and upper bounds are identical, the bound key is changed to
fixed
.Parameters:
(j
int
) – Index of the variable for which the bounds should be changed. (input)
(lower
int
) – If nonzero, then the lower bound is changed, otherwise the upper bound is changed. (input)
(finite
int
) – If nonzero, thenvalue
is assumed to be finite. (input)
(value
float
) – New value for the bound. (input)
Groups:

Task.commitchanges
¶ def commitchanges ()
Commits all cached problem changes to the task. It is usually not necessary to call this function explicitly since changes will be committed automatically when required.
Groups: Scalar variable data

Task.deletesolution
¶ def deletesolution (whichsol)
Undefine a solution and free the memory it uses.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Groups: Task management

Task.dualsensitivity
¶ def dualsensitivity (subj, leftpricej, rightpricej, leftrangej, rightrangej)
Calculates sensitivity information for objective coefficients. The indexes of the coefficients to analyze are
\[\{\mathtt{subj}[i] ~~ i = 0,\ldots,\mathtt{numj}1\}\]The type of sensitivity analysis to perform (basis or optimal partition) is controlled by the parameter
iparam.sensitivity_type
.For an example, please see Section Example: Sensitivity Analysis.
Parameters:
(subj
int
[]
) – Indexes of objective coefficients to analyze. (input)
(leftpricej
float
[]
) – \(\mathtt{leftpricej}[j]\) is the left shadow price for the coefficient with index \(\mathtt{subj[j]}\). (output)
(rightpricej
float
[]
) – \(\mathtt{rightpricej}[j]\) is the right shadow price for the coefficient with index \(\mathtt{subj[j]}\). (output)
(leftrangej
float
[]
) – \(\mathtt{leftrangej}[j]\) is the left range \(\beta_1\) for the coefficient with index \(\mathtt{subj[j]}\). (output)
(rightrangej
float
[]
) – \(\mathtt{rightrangej}[j]\) is the right range \(\beta_2\) for the coefficient with index \(\mathtt{subj[j]}\). (output)
Groups:

Task.getacol
¶ def getacol (j, subj, valj) > nzj
Obtains one column of \(A\) in a sparse format.
Parameters:
(j
int
) – Index of the column. (input)
(subj
int
[]
) – Row indices of the nonzeros in the column obtained. (output)
(valj
float
[]
) – Numerical values in the column obtained. (output)
Return:
(nzj
int
) – Number of nonzeros in the column obtained.Groups:

Task.getacolnumnz
¶ def getacolnumnz (i) > nzj
Obtains the number of nonzero elements in one column of \(A\).
Parameters:
(i
int
) – Index of the column. (input)Return:
(nzj
int
) – Number of nonzeros in the \(j\)th column of \(A\).Groups: Scalar variable data

Task.getacolslicetrip
¶ def getacolslicetrip (first, last, subi, subj, val)
Obtains a sequence of columns from \(A\) in sparse triplet format. The function returns the content of all columns whose index
j
satisfiesfirst <= j < last
. The triplets corresponding to nonzero entries are stored in the arrayssubi
,subj
andval
.Parameters:
(first
int
) – Index of the first column in the sequence. (input)
(last
int
) – Index of the last column in the sequence plus one. (input)
(subi
int
[]
) – Constraint subscripts. (output)
(subj
int
[]
) – Column subscripts. (output)
(val
float
[]
) – Values. (output)
Groups:

Task.getaij
¶ def getaij (i, j) > aij
Obtains a single coefficient in \(A\).
Parameters:
(i
int
) – Row index of the coefficient to be returned. (input)
(j
int
) – Column index of the coefficient to be returned. (input)
Return:
(aij
float
) – The required coefficient \(a_{i,j}\).Groups:

Task.getapiecenumnz
¶ def getapiecenumnz (firsti, lasti, firstj, lastj) > numnz
Obtains the number nonzeros in a rectangular piece of \(A\), i.e. the number of elements in the set
\[\{ (i,j)~:~ a_{i,j} \neq 0,~ \mathtt{firsti} \leq i \leq \mathtt{lasti}1, ~\mathtt{firstj} \leq j \leq \mathtt{lastj}1\}\]This function is not an efficient way to obtain the number of nonzeros in one row or column. In that case use the function
Task.getarownumnz
orTask.getacolnumnz
.Parameters:
(firsti
int
) – Index of the first row in the rectangular piece. (input)
(lasti
int
) – Index of the last row plus one in the rectangular piece. (input)
(firstj
int
) – Index of the first column in the rectangular piece. (input)
(lastj
int
) – Index of the last column plus one in the rectangular piece. (input)
Return:
(numnz
int
) – Number of nonzero \(A\) elements in the rectangular piece.

Task.getarow
¶ def getarow (i, subi, vali) > nzi
Obtains one row of \(A\) in a sparse format.
Parameters:
(i
int
) – Index of the row. (input)
(subi
int
[]
) – Column indices of the nonzeros in the row obtained. (output)
(vali
float
[]
) – Numerical values of the row obtained. (output)
Return:
(nzi
int
) – Number of nonzeros in the row obtained.Groups:

Task.getarownumnz
¶ def getarownumnz (i) > nzi
Obtains the number of nonzero elements in one row of \(A\).
Parameters:
(i
int
) – Index of the row. (input)Return:
(nzi
int
) – Number of nonzeros in the \(i\)th row of \(A\).Groups: Scalar variable data

Task.getarowslicetrip
¶ def getarowslicetrip (first, last, subi, subj, val)
Obtains a sequence of rows from \(A\) in sparse triplet format. The function returns the content of all rows whose index
i
satisfiesfirst <= i < last
. The triplets corresponding to nonzero entries are stored in the arrayssubi
,subj
andval
.Parameters:
(first
int
) – Index of the first row in the sequence. (input)
(last
int
) – Index of the last row in the sequence plus one. (input)
(subi
int
[]
) – Constraint subscripts. (output)
(subj
int
[]
) – Column subscripts. (output)
(val
float
[]
) – Values. (output)
Groups:

Task.getaslice
Deprecated¶ def getaslice (accmode, first, last, ptrb, ptre, sub, val)
Obtains a sequence of rows or columns from \(A\) in sparse format.
Parameters:
(accmode
mosek.accmode
) – Defines whether a column slice or a row slice is requested. (input)
(first
int
) – Index of the first row or column in the sequence. (input)
(last
int
) – Index of the last row or column in the sequence plus one. (input)
(ptrb
int
[]
) –ptrb[t]
is an index pointing to the first element in the \(t\)th row or column obtained. (output)
(ptre
int
[]
) –ptre[t]
is an index pointing to the last element plus one in the \(t\)th row or column obtained. (output)
(sub
int
[]
) – Contains the row or column subscripts. (output)
(val
float
[]
) – Contains the coefficient values. (output)
Groups:

Task.getaslicenumnz
Deprecated¶ def getaslicenumnz (accmode, first, last) > numnz
Obtains the number of nonzeros in a slice of rows or columns of \(A\).
Parameters:
(accmode
mosek.accmode
) – Defines whether nonzeros are counted in a column slice or a row slice. (input)
(first
int
) – Index of the first row or column in the sequence. (input)
(last
int
) – Index of the last row or column plus one in the sequence. (input)
Return:
(numnz
int
) – Number of nonzeros in the slice.

Task.getbarablocktriplet
¶ def getbarablocktriplet (subi, subj, subk, subl, valijkl) > num
Obtains \(\barA\) in block triplet form.
Parameters:
(subi
int
[]
) – Constraint index. (output)
(subj
int
[]
) – Symmetric matrix variable index. (output)
(subk
int
[]
) – Block row index. (output)
(subl
int
[]
) – Block column index. (output)
(valijkl
float
[]
) – The numerical value associated with each block triplet. (output)
Return:
(num
int
) – Number of elements in the block triplet form.Groups:

Task.getbaraidx
¶ def getbaraidx (idx, sub, weights) > i, j, num
Obtains information about an element in \(\barA\). Since \(\barA\) is a sparse matrix of symmetric matrices, only the nonzero elements in \(\barA\) are stored in order to save space. Now \(\barA\) is stored vectorized i.e. as one long vector. This function makes it possible to obtain information such as the row index and the column index of a particular element of the vectorized form of \(\barA\).
Please observe if one element of \(\barA\) is inputted multiple times then it may be stored several times in vectorized form. In that case the element with the highest index is the one that is used.
Parameters:
(idx
int
) – Position of the element in the vectorized form. (input)
(sub
int
[]
) – A list indexes of the elements from symmetric matrix storage that appear in the weighted sum. (output)
(weights
float
[]
) – The weights associated with each term in the weighted sum. (output)
Return:
(i
int
) – Row index of the element at positionidx
.
(j
int
) – Column index of the element at positionidx
.
(num
int
) – Number of terms in weighted sum that forms the element.
Groups:

Task.getbaraidxij
¶ def getbaraidxij (idx) > i, j
Obtains information about an element in \(\barA\). Since \(\barA\) is a sparse matrix of symmetric matrices, only the nonzero elements in \(\barA\) are stored in order to save space. Now \(\barA\) is stored vectorized i.e. as one long vector. This function makes it possible to obtain information such as the row index and the column index of a particular element of the vectorized form of \(\barA\).
Please note that if one element of \(\barA\) is inputted multiple times then it may be stored several times in vectorized form. In that case the element with the highest index is the one that is used.
Parameters:
(idx
int
) – Position of the element in the vectorized form. (input)Return:
(i
int
) – Row index of the element at positionidx
.
(j
int
) – Column index of the element at positionidx
.
Groups:

Task.getbaraidxinfo
¶ def getbaraidxinfo (idx) > num
Each nonzero element in \(\barA_{ij}\) is formed as a weighted sum of symmetric matrices. Using this function the number of terms in the weighted sum can be obtained. See description of
Task.appendsparsesymmat
for details about the weighted sum.Parameters:
(idx
int
) – The internal position of the element for which information should be obtained. (input)Return:
(num
int
) – Number of terms in the weighted sum that form the specified element in \(\barA\).Groups: Symmetric matrix variable data

Task.getbarasparsity
¶ def getbarasparsity (idxij) > numnz
The matrix \(\barA\) is assumed to be a sparse matrix of symmetric matrices. This implies that many of the elements in \(\barA\) are likely to be zero matrices. Therefore, in order to save space, only nonzero elements in \(\barA\) are stored on vectorized form. This function is used to obtain the sparsity pattern of \(\barA\) and the position of each nonzero element in the vectorized form of \(\barA\). From the index detailed information about each nonzero \(\barA_{i,j}\) can be obtained using
Task.getbaraidxinfo
andTask.getbaraidx
.Parameters:
(idxij
int
[]
) – Position of each nonzero element in the vectorized form of \(\barA\). (output)Return:
(numnz
int
) – Number of nonzero elements in \(\barA\).Groups: Symmetric matrix variable data

Task.getbarcblocktriplet
¶ def getbarcblocktriplet (subj, subk, subl, valjkl) > num
Obtains \(\barC\) in block triplet form.
Parameters:
(subj
int
[]
) – Symmetric matrix variable index. (output)
(subk
int
[]
) – Block row index. (output)
(subl
int
[]
) – Block column index. (output)
(valjkl
float
[]
) – The numerical value associated with each block triplet. (output)
Return:
(num
int
) – Number of elements in the block triplet form.Groups:

Task.getbarcidx
¶ def getbarcidx (idx, sub, weights) > j, num
Obtains information about an element in \(\barC\).
Parameters:
(idx
int
) – Index of the element for which information should be obtained. (input)
(sub
int
[]
) – Elements appearing the weighted sum. (output)
(weights
float
[]
) – Weights of terms in the weighted sum. (output)
Return:
(j
int
) – Row index in \(\barC\).
(num
int
) – Number of terms in the weighted sum.
Groups:

Task.getbarcidxinfo
¶ def getbarcidxinfo (idx) > num
Obtains the number of terms in the weighted sum that forms a particular element in \(\barC\).
Parameters:
(idx
int
) – Index of the element for which information should be obtained. The value is an index of a symmetric sparse variable. (input)Return:
(num
int
) – Number of terms that appear in the weighted sum that forms the requested element.Groups: Symmetric matrix variable data

Task.getbarcidxj
¶ def getbarcidxj (idx) > j
Obtains the row index of an element in \(\barC\).
Parameters:
(idx
int
) – Index of the element for which information should be obtained. (input)Return:
(j
int
) – Row index in \(\barC\).Groups: Symmetric matrix variable data

Task.getbarcsparsity
¶ def getbarcsparsity (idxj) > numnz
Internally only the nonzero elements of \(\barC\) are stored in a vector. This function is used to obtain the nonzero elements of \(\barC\) and their indexes in the internal vector representation (in
idx
). From the index detailed information about each nonzero \(\barC_j\) can be obtained usingTask.getbarcidxinfo
andTask.getbarcidx
.Parameters:
(idxj
int
[]
) – Internal positions of the nonzeros elements in \(\barC\). (output)Return:
(numnz
int
) – Number of nonzero elements in \(\barC\).Groups: Symmetric matrix variable data

Task.getbarsj
¶ def getbarsj (whichsol, j, barsj)
Obtains the dual solution for a semidefinite variable. Only the lower triangular part of \(\barS_j\) is returned because the matrix by construction is symmetric. The format is that the columns are stored sequentially in the natural order.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(j
int
) – Index of the semidefinite variable. (input)
(barsj
float
[]
) – Value of \(\barS_j\). (output)
Groups:

Task.getbarvarname
¶ def getbarvarname (i) > name
Obtains the name of a semidefinite variable.
Parameters:
(i
int
) – Index of the variable. (input)Return:
(name
str
) – The requested name is copied to this buffer.Groups: Naming

Task.getbarvarnameindex
¶ def getbarvarnameindex (somename) > asgn, index
Obtains the index of semidefinite variable from its name.
Parameters:
(somename
str
) – The name of the variable. (input)Return:
(asgn
int
) – Nonzero if the namesomename
is assigned to some semidefinite variable.
(index
int
) – The index of a semidefinite variable with the namesomename
(if one exists).
Groups:

Task.getbarvarnamelen
¶ def getbarvarnamelen (i) > len
Obtains the length of the name of a semidefinite variable.
Parameters:
(i
int
) – Index of the variable. (input)Return:
(len
int
) – Returns the length of the indicated name.Groups: Naming

Task.getbarxj
¶ def getbarxj (whichsol, j, barxj)
Obtains the primal solution for a semidefinite variable. Only the lower triangular part of \(\barX_j\) is returned because the matrix by construction is symmetric. The format is that the columns are stored sequentially in the natural order.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(j
int
) – Index of the semidefinite variable. (input)
(barxj
float
[]
) – Value of \(\barX_j\). (output)
Groups:

Task.getbound
Deprecated¶ def getbound (accmode, i) > bk, bl, bu
Obtains bound information for one constraint or variable.
Parameters:
(accmode
mosek.accmode
) – Defines if operations are performed rowwise (constraintoriented) or columnwise (variableoriented). (input)
(i
int
) – Index of the constraint or variable for which the bound information should be obtained. (input)
Return:
(bk
mosek.boundkey
) – Bound keys.
(bl
float
) – Values for lower bounds.
(bu
float
) – Values for upper bounds.
Groups:

Task.getboundslice
Deprecated¶ def getboundslice (accmode, first, last, bk, bl, bu)
Obtains bounds information for a slice of variables or constraints.
Parameters:
(accmode
mosek.accmode
) – Defines if operations are performed rowwise (constraintoriented) or columnwise (variableoriented). (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(bk
mosek.boundkey
[]
) – Bound keys. (output)
(bl
float
[]
) – Values for lower bounds. (output)
(bu
float
[]
) – Values for upper bounds. (output)
Groups:

Task.getc
¶ def getc (c)
Obtains all objective coefficients \(c\).
Parameters:
(c
float
[]
) – Linear terms of the objective as a dense vector. The length is the number of variables. (output)Groups: Scalar variable data

Task.getcfix
¶ def getcfix () > cfix
Obtains the fixed term in the objective.
Return:
(cfix
float
) – Fixed term in the objective.Groups: Scalar variable data

Task.getcj
¶ def getcj (j) > cj
Obtains one coefficient of \(c\).
Parameters:
(j
int
) – Index of the variable for which the \(c\) coefficient should be obtained. (input)Return:
(cj
float
) – The value of \(c_j\).Groups: Scalar variable data

Task.getconbound
¶ def getconbound (i) > bk, bl, bu
Obtains bound information for one constraint.
Parameters:
(i
int
) – Index of the constraint for which the bound information should be obtained. (input)Return:
(bk
mosek.boundkey
) – Bound keys.
(bl
float
) – Values for lower bounds.
(bu
float
) – Values for upper bounds.
Groups:

Task.getconboundslice
¶ def getconboundslice (first, last, bk, bl, bu)
Obtains bounds information for a slice of the constraints.
Parameters:
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(bk
mosek.boundkey
[]
) – Bound keys. (output)
(bl
float
[]
) – Values for lower bounds. (output)
(bu
float
[]
) – Values for upper bounds. (output)
Groups:

Task.getcone
¶ def getcone (k, submem) > ct, conepar, nummem
Obtains a cone.
Parameters:
(k
int
) – Index of the cone. (input)
(submem
int
[]
) – Variable subscripts of the members in the cone. (output)
Return:
(ct
mosek.conetype
) – Specifies the type of the cone.
(conepar
float
) – This argument is currently not used. It can be set to 0
(nummem
int
) – Number of member variables in the cone.
Groups:

Task.getconeinfo
¶ def getconeinfo (k) > ct, conepar, nummem
Obtains information about a cone.
Parameters:
(k
int
) – Index of the cone. (input)Return:
(ct
mosek.conetype
) – Specifies the type of the cone.
(conepar
float
) – This argument is currently not used. It can be set to 0
(nummem
int
) – Number of member variables in the cone.
Groups:

Task.getconename
¶ def getconename (i) > name
Obtains the name of a cone.
Parameters:
(i
int
) – Index of the cone. (input)Return:
(name
str
) – The required name.Groups: Naming

Task.getconenameindex
¶ def getconenameindex (somename) > asgn, index
Checks whether the name
somename
has been assigned to any cone. If it has been assigned to a cone, then the index of the cone is reported.Parameters:
(somename
str
) – The name which should be checked. (input)Return:
(asgn
int
) – Is nonzero if the namesomename
is assigned to some cone.
(index
int
) – If the namesomename
is assigned to some cone, thenindex
is the index of the cone.
Groups:

Task.getconenamelen
¶ def getconenamelen (i) > len
Obtains the length of the name of a cone.
Parameters:
(i
int
) – Index of the cone. (input)Return:
(len
int
) – Returns the length of the indicated name.Groups: Naming

Task.getconname
¶ def getconname (i) > name
Obtains the name of a constraint.
Parameters:
(i
int
) – Index of the constraint. (input)Return:
(name
str
) – The required name.Groups: Naming

Task.getconnameindex
¶ def getconnameindex (somename) > asgn, index
Checks whether the name
somename
has been assigned to any constraint. If so, the index of the constraint is reported.Parameters:
(somename
str
) – The name which should be checked. (input)Return:
(asgn
int
) – Is nonzero if the namesomename
is assigned to some constraint.
(index
int
) – If the namesomename
is assigned to a constraint, thenindex
is the index of the constraint.
Groups:

Task.getconnamelen
¶ def getconnamelen (i) > len
Obtains the length of the name of a constraint.
Parameters:
(i
int
) – Index of the constraint. (input)Return:
(len
int
) – Returns the length of the indicated name.Groups: Naming

Task.getcslice
¶ def getcslice (first, last, c)
Obtains a sequence of elements in \(c\).
Parameters:
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(c
float
[]
) – Linear terms of the requested slice of the objective as a dense vector. The length islastfirst
. (output)
Groups:

Task.getdimbarvarj
¶ def getdimbarvarj (j) > dimbarvarj
Obtains the dimension of a symmetric matrix variable.
Parameters:
(j
int
) – Index of the semidefinite variable whose dimension is requested. (input)Return:
(dimbarvarj
int
) – The dimension of the \(j\)th semidefinite variable.Groups: Symmetric matrix variable data

Task.getdouinf
¶ def getdouinf (whichdinf) > dvalue
Obtains a double information item from the task information database.
Parameters:
(whichdinf
mosek.dinfitem
) – Specifies a double information item. (input)Return:
(dvalue
float
) – The value of the required double information item.Groups: Optimizer statistics

Task.getdouparam
¶ def getdouparam (param) > parvalue
Obtains the value of a double parameter.
Parameters:
(param
mosek.dparam
) – Which parameter. (input)Return:
(parvalue
float
) – Parameter value.Groups: Parameters (get)

Task.getdualobj
¶ def getdualobj (whichsol) > dualobj
Computes the dual objective value associated with the solution. Note that if the solution is a primal infeasibility certificate, then the fixed term in the objective value is not included.
Moreover, since there is no dual solution associated with an integer solution, an error will be reported if the dual objective value is requested for the integer solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Return:
(dualobj
float
) – Objective value corresponding to the dual solution.Groups: Solution information

Task.getdualsolutionnorms
¶ def getdualsolutionnorms (whichsol) > nrmy, nrmslc, nrmsuc, nrmslx, nrmsux, nrmsnx, nrmbars
Compute norms of the dual solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Return:
(nrmy
float
) – The norm of the \(y\) vector.
(nrmslc
float
) – The norm of the \(s_l^c\) vector.
(nrmsuc
float
) – The norm of the \(s_u^c\) vector.
(nrmslx
float
) – The norm of the \(s_l^x\) vector.
(nrmsux
float
) – The norm of the \(s_u^x\) vector.
(nrmsnx
float
) – The norm of the \(s_n^x\) vector.
(nrmbars
float
) – The norm of the \(\barS\) vector.
Groups:

Task.getdviolbarvar
¶ def getdviolbarvar (whichsol, sub, viol)
Let \((\barS_j)^*\) be the value of variable \(\barS_j\) for the specified solution. Then the dual violation of the solution associated with variable \(\barS_j\) is given by
\[\max(\lambda_{\min}(\barS_j),\ 0.0).\]Both when the solution is a certificate of primal infeasibility and when it is dual feasible solution the violation should be small.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sub
int
[]
) – An array of indexes of \(\barX\) variables. (input)
(viol
float
[]
) –viol[k]
is the violation of the solution for the constraint \(\barS_{\mathtt{sub}[k]} \in \PSD\). (output)
Groups:

Task.getdviolcon
¶ def getdviolcon (whichsol, sub, viol)
The violation of the dual solution associated with the \(i\)th constraint is computed as follows
\[\max( \rho( (s_l^c)_i^*,(b_l^c)_i ),\ \rho( (s_u^c)_i^*, (b_u^c)_i ),\ y_i+(s_l^c)_i^*(s_u^c)_i^* )\]where
\[\begin{split}\rho(x,l) = \left\{ \begin{array}{ll} x, & l > \infty , \\ x, & \mbox{otherwise}.\\ \end{array} \right.\end{split}\]Both when the solution is a certificate of primal infeasibility or it is a dual feasible solution the violation should be small.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sub
int
[]
) – An array of indexes of constraints. (input)
(viol
float
[]
) –viol[k]
is the violation of dual solution associated with the constraintsub[k]
. (output)
Groups:

Task.getdviolcones
¶ def getdviolcones (whichsol, sub, viol)
Let \((s_n^x)^*\) be the value of variable \((s_n^x)\) for the specified solution. For simplicity let us assume that \(s_n^x\) is a member of a quadratic cone, then the violation is computed as follows
\[\begin{split}\left\{ \begin{array}{ll} \max(0,(\s_n^x\_{2:n}^*(s_n^x)_1^*) / \sqrt{2}, & (s_n^x)^* \geq \(s_n^x)_{2:n}^*\, \\ \(s_n^x)^*\, & \mbox{otherwise.} \end{array} \right.\end{split}\]Both when the solution is a certificate of primal infeasibility or when it is a dual feasible solution the violation should be small.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sub
int
[]
) – An array of indexes of conic constraints. (input)
(viol
float
[]
) –viol[k]
is the violation of the dual solution associated with the conic constraintsub[k]
. (output)
Groups:

Task.getdviolvar
¶ def getdviolvar (whichsol, sub, viol)
The violation of the dual solution associated with the \(j\)th variable is computed as follows
\[\max \left(\rho((s_l^x)_j^*,(b_l^x)_j),\ \rho((s_u^x)_j^*,(b_u^x)_j),\ \sum_{i=\idxbeg}^{\idxend{numcon}} a_{ij} y_i+(s_l^x)_j^*(s_u^x)_j^*  \tau c_j \right)\]where
\[\begin{split}\rho(x,l) = \left\{ \begin{array}{ll} x, & l > \infty , \\ x, & \mbox{otherwise} \end{array} \right.\end{split}\]and \(\tau=0\) if the solution is a certificate of primal infeasibility and \(\tau=1\) otherwise. The formula for computing the violation is only shown for the linear case but is generalized appropriately for the more general problems. Both when the solution is a certificate of primal infeasibility or when it is a dual feasible solution the violation should be small.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sub
int
[]
) – An array of indexes of \(x\) variables. (input)
(viol
float
[]
) –viol[k]
is the violation of dual solution associated with the variablesub[k]
. (output)
Groups:

Task.getintinf
¶ def getintinf (whichiinf) > ivalue
Obtains an integer information item from the task information database.
Parameters:
(whichiinf
mosek.iinfitem
) – Specifies an integer information item. (input)Return:
(ivalue
int
) – The value of the required integer information item.Groups: Optimizer statistics

Task.getintparam
¶ def getintparam (param) > parvalue
Obtains the value of an integer parameter.
Parameters:
(param
mosek.iparam
) – Which parameter. (input)Return:
(parvalue
int
) – Parameter value.Groups: Parameters (get)

Task.getlenbarvarj
¶ def getlenbarvarj (j) > lenbarvarj
Obtains the length of the \(j\)th semidefinite variable i.e. the number of elements in the lower triangular part.
Parameters:
(j
int
) – Index of the semidefinite variable whose length if requested. (input)Return:
(lenbarvarj
int
) – Number of scalar elements in the lower triangular part of the semidefinite variable.Groups: Scalar variable data

Task.getlintinf
¶ def getlintinf (whichliinf) > ivalue
Obtains a long integer information item from the task information database.
Parameters:
(whichliinf
mosek.liinfitem
) – Specifies a long information item. (input)Return:
(ivalue
int
) – The value of the required long integer information item.Groups: Optimizer statistics

Task.getmaxnumanz
¶ def getmaxnumanz () > maxnumanz
Obtains number of preallocated nonzeros in \(A\). When this number of nonzeros is reached MOSEK will automatically allocate more space for \(A\).
Return:
(maxnumanz
int
) – Number of preallocated nonzero linear matrix elements.Groups: Scalar variable data

Task.getmaxnumbarvar
¶ def getmaxnumbarvar () > maxnumbarvar
Obtains maximum number of symmetric matrix variables for which space is currently preallocated.
Return:
(maxnumbarvar
int
) – Maximum number of symmetric matrix variables for which space is currently preallocated.Groups: Symmetric matrix variable data

Task.getmaxnumcon
¶ def getmaxnumcon () > maxnumcon
Obtains the number of preallocated constraints in the optimization task. When this number of constraints is reached MOSEK will automatically allocate more space for constraints.
Return:
(maxnumcon
int
) – Number of preallocated constraints in the optimization task.Groups: Linear constraint data

Task.getmaxnumcone
¶ def getmaxnumcone () > maxnumcone
Obtains the number of preallocated cones in the optimization task. When this number of cones is reached MOSEK will automatically allocate space for more cones.
Return:
(maxnumcone
int
) – Number of preallocated conic constraints in the optimization task.Groups: Task management

Task.getmaxnumqnz
¶ def getmaxnumqnz () > maxnumqnz
Obtains the number of preallocated nonzeros for \(Q\) (both objective and constraints). When this number of nonzeros is reached MOSEK will automatically allocate more space for \(Q\).
Return:
(maxnumqnz
int
) – Number of nonzero elements preallocated in quadratic coefficient matrices.Groups: Scalar variable data

Task.getmaxnumvar
¶ def getmaxnumvar () > maxnumvar
Obtains the number of preallocated variables in the optimization task. When this number of variables is reached MOSEK will automatically allocate more space for variables.
Return:
(maxnumvar
int
) – Number of preallocated variables in the optimization task.Groups: Scalar variable data

Task.getmemusage
¶ def getmemusage () > meminuse, maxmemuse
Obtains information about the amount of memory used by a task.
Return:
(meminuse
int
) – Amount of memory currently used by thetask
.
(maxmemuse
int
) – Maximum amount of memory used by thetask
until now.
Groups:

Task.getnumanz
¶ def getnumanz () > numanz
Obtains the number of nonzeros in \(A\).
Return:
(numanz
int
) – Number of nonzero elements in the linear constraint matrix.Groups: Scalar variable data

Task.getnumanz64
¶ def getnumanz64 () > numanz
Obtains the number of nonzeros in \(A\).
Return:
(numanz
int
) – Number of nonzero elements in the linear constraint matrix.Groups: Scalar variable data

Task.getnumbarablocktriplets
¶ def getnumbarablocktriplets () > num
Obtains an upper bound on the number of elements in the block triplet form of \(\barA\).
Return:
(num
int
) – An upper bound on the number of elements in the block triplet form of \(\barA.\)Groups: Symmetric matrix variable data

Task.getnumbaranz
¶ def getnumbaranz () > nz
Get the number of nonzero elements in \(\barA\).
Return:
(nz
int
) – The number of nonzero block elements in \(\barA\) i.e. the number of \(\barA_{ij}\) elements that are nonzero.Groups: Symmetric matrix variable data

Task.getnumbarcblocktriplets
¶ def getnumbarcblocktriplets () > num
Obtains an upper bound on the number of elements in the block triplet form of \(\barC\).
Return:
(num
int
) – An upper bound on the number of elements in the block triplet form of \(\barC.\)Groups: Symmetric matrix variable data

Task.getnumbarcnz
¶ def getnumbarcnz () > nz
Obtains the number of nonzero elements in \(\barC\).
Return:
(nz
int
) – The number of nonzeros in \(\barC\) i.e. the number of elements \(\barC_j\) that are nonzero.Groups: Symmetric matrix variable data

Task.getnumbarvar
¶ def getnumbarvar () > numbarvar
Obtains the number of semidefinite variables.
Return:
(numbarvar
int
) – Number of semidefinite variables in the problem.Groups: Symmetric matrix variable data

Task.getnumcon
¶ def getnumcon () > numcon
Obtains the number of constraints.
Return:
(numcon
int
) – Number of constraints.Groups: Linear constraint data

Task.getnumcone
¶ def getnumcone () > numcone
Obtains the number of cones.
Return:
(numcone
int
) – Number of conic constraints.Groups: Conic constraint data

Task.getnumconemem
¶ def getnumconemem (k) > nummem
Obtains the number of members in a cone.
Parameters:
(k
int
) – Index of the cone. (input)Return:
(nummem
int
) – Number of member variables in the cone.Groups: Conic constraint data

Task.getnumintvar
¶ def getnumintvar () > numintvar
Obtains the number of integerconstrained variables.
Return:
(numintvar
int
) – Number of integer variables.Groups: Scalar variable data

Task.getnumparam
¶ def getnumparam (partype) > numparam
Obtains the number of parameters of a given type.
Parameters:
(partype
mosek.parametertype
) – Parameter type. (input)Return:
(numparam
int
) – The number of parameters of typepartype
.Groups: Parameter management

Task.getnumqconknz
¶ def getnumqconknz (k) > numqcnz
Obtains the number of nonzero quadratic terms in a constraint.
Parameters:
(k
int
) – Index of the constraint for which the number quadratic terms should be obtained. (input)Return:
(numqcnz
int
) – Number of quadratic terms.Groups: Scalar variable data

Task.getnumqobjnz
¶ def getnumqobjnz () > numqonz
Obtains the number of nonzero quadratic terms in the objective.
Return:
(numqonz
int
) – Number of nonzero elements in the quadratic objective terms.Groups: Scalar variable data

Task.getnumsymmat
¶ def getnumsymmat () > num
Obtains the number of symmetric matrices stored in the vector \(E\).
Return:
(num
int
) – The number of symmetric sparse matrices.Groups: Scalar variable data

Task.getnumvar
¶ def getnumvar () > numvar
Obtains the number of variables.
Return:
(numvar
int
) – Number of variables.Groups: Scalar variable data

Task.getobjname
¶ def getobjname () > objname
Obtains the name assigned to the objective function.
Return:
(objname
str
) – Assigned the objective name.Groups: Naming

Task.getobjnamelen
¶ def getobjnamelen () > len
Obtains the length of the name assigned to the objective function.
Return:
(len
int
) – Assigned the length of the objective name.Groups: Naming

Task.getobjsense
¶ def getobjsense () > sense
Gets the objective sense of the task.
Return:
(sense
mosek.objsense
) – The returned objective sense.Groups: Objective data

Task.getprimalobj
¶ def getprimalobj (whichsol) > primalobj
Computes the primal objective value for the desired solution. Note that if the solution is an infeasibility certificate, then the fixed term in the objective is not included.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Return:
(primalobj
float
) – Objective value corresponding to the primal solution.Groups: Solution information

Task.getprimalsolutionnorms
¶ def getprimalsolutionnorms (whichsol) > nrmxc, nrmxx, nrmbarx
Compute norms of the primal solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Return:
(nrmxc
float
) – The norm of the \(x^c\) vector.
(nrmxx
float
) – The norm of the \(x\) vector.
(nrmbarx
float
) – The norm of the \(\barX\) vector.
Groups:

Task.getprobtype
¶ def getprobtype () > probtype
Obtains the problem type.
Return:
(probtype
mosek.problemtype
) – The problem type.Groups: Task diagnostics

Task.getprosta
¶ def getprosta (whichsol) > prosta
Obtains the problem status.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Return:
(prosta
mosek.prosta
) – Problem status.Groups: Solution information

Task.getpviolbarvar
¶ def getpviolbarvar (whichsol, sub, viol)
Computes the primal solution violation for a set of semidefinite variables. Let \((\barX_j)^*\) be the value of the variable \(\barX_j\) for the specified solution. Then the primal violation of the solution associated with variable \(\barX_j\) is given by
\[\max(\lambda_{\min}(\barX_j),\ 0.0).\]Both when the solution is a certificate of dual infeasibility or when it is primal feasible the violation should be small.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sub
int
[]
) – An array of indexes of \(\barX\) variables. (input)
(viol
float
[]
) –viol[k]
is how much the solution violates the constraint \(\barX_{\mathtt{sub}[k]} \in \PSD\). (output)
Groups:

Task.getpviolcon
¶ def getpviolcon (whichsol, sub, viol)
Computes the primal solution violation for a set of constraints. The primal violation of the solution associated with the \(i\)th constraint is given by
\[\max(\tau l_i^c  (x_i^c)^*,\ (x_i^c)^*  \tau u_i^c),\ \sum_{j=\idxbeg}^{\idxend{numvar}} a_{ij} x_j^*  x_i^c)\]where \(\tau=0\) if the solution is a certificate of dual infeasibility and \(\tau=1\) otherwise. Both when the solution is a certificate of dual infeasibility and when it is primal feasible the violation should be small. The above formula applies for the linear case but is appropriately generalized in other cases.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sub
int
[]
) – An array of indexes of constraints. (input)
(viol
float
[]
) –viol[k]
is the violation associated with the solution for the constraintsub[k]
. (output)
Groups:

Task.getpviolcones
¶ def getpviolcones (whichsol, sub, viol)
Computes the primal solution violation for a set of conic constraints. Let \(x^*\) be the value of the variable \(x\) for the specified solution. For simplicity let us assume that \(x\) is a member of a quadratic cone, then the violation is computed as follows
\[\begin{split}\left\{ \begin{array}{ll} \max(0,\x_{2:n}\x_1) / \sqrt{2}, & x_1 \geq \x_{2:n}\, \\ \x\, & \mbox{otherwise.} \end{array} \right.\end{split}\]Both when the solution is a certificate of dual infeasibility or when it is primal feasible the violation should be small.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sub
int
[]
) – An array of indexes of conic constraints. (input)
(viol
float
[]
) –viol[k]
is the violation of the solution associated with the conic constraint numbersub[k]
. (output)
Groups:

Task.getpviolvar
¶ def getpviolvar (whichsol, sub, viol)
Computes the primal solution violation associated to a set of variables. Let \(x_j^*\) be the value of \(x_j\) for the specified solution. Then the primal violation of the solution associated with variable \(x_j\) is given by
\[\max( \tau l_j^x  x_j^*,\ x_j^*  \tau u_j^x,\ 0).\]where \(\tau=0\) if the solution is a certificate of dual infeasibility and \(\tau=1\) otherwise. Both when the solution is a certificate of dual infeasibility and when it is primal feasible the violation should be small.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sub
int
[]
) – An array of indexes of \(x\) variables. (input)
(viol
float
[]
) –viol[k]
is the violation associated with the solution for the variable \(x_\mathtt{sub[k]}\). (output)
Groups:

Task.getqconk
¶ def getqconk (k, qcsubi, qcsubj, qcval) > numqcnz
Obtains all the quadratic terms in a constraint. The quadratic terms are stored sequentially in
qcsubi
,qcsubj
, andqcval
.Parameters:
(k
int
) – Which constraint. (input)
(qcsubi
int
[]
) – Row subscripts for quadratic constraint matrix. (output)
(qcsubj
int
[]
) – Column subscripts for quadratic constraint matrix. (output)
(qcval
float
[]
) – Quadratic constraint coefficient values. (output)
Return:
(numqcnz
int
) – Number of quadratic terms.Groups:

Task.getqobj
¶ def getqobj (qosubi, qosubj, qoval) > numqonz
Obtains the quadratic terms in the objective. The required quadratic terms are stored sequentially in
qosubi
,qosubj
, andqoval
.Parameters:
(qosubi
int
[]
) – Row subscripts for quadratic objective coefficients. (output)
(qosubj
int
[]
) – Column subscripts for quadratic objective coefficients. (output)
(qoval
float
[]
) – Quadratic objective coefficient values. (output)
Return:
(numqonz
int
) – Number of nonzero elements in the quadratic objective terms.Groups:

Task.getqobjij
¶ def getqobjij (i, j) > qoij
Obtains one coefficient \(q_{ij}^o\) in the quadratic term of the objective.
Parameters:
(i
int
) – Row index of the coefficient. (input)
(j
int
) – Column index of coefficient. (input)
Return:
(qoij
float
) – The required coefficient.Groups:

Task.getreducedcosts
¶ def getreducedcosts (whichsol, first, last, redcosts)
Computes the reduced costs for a slice of variables and returns them in the array
redcosts
i.e.(1)¶\[\mathtt{redcosts}[j\mathtt{first}] = (s_l^x)_j(s_u^x)_j, ~j=\mathtt{first},\ldots,\mathtt{last}1\]Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – The index of the first variable in the sequence. (input)
(last
int
) – The index of the last variable in the sequence plus 1. (input)
(redcosts
float
[]
) – The reduced costs for the required slice of variables. (output)
Groups:

Task.getskc
¶ def getskc (whichsol, skc)
Obtains the status keys for the constraints.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(skc
mosek.stakey
[]
) – Status keys for the constraints. (output)
Groups:

Task.getskcslice
¶ def getskcslice (whichsol, first, last, skc)
Obtains the status keys for a slice of the constraints.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(skc
mosek.stakey
[]
) – Status keys for the constraints. (output)
Groups:

Task.getskx
¶ def getskx (whichsol, skx)
Obtains the status keys for the scalar variables.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(skx
mosek.stakey
[]
) – Status keys for the variables. (output)
Groups:

Task.getskxslice
¶ def getskxslice (whichsol, first, last, skx)
Obtains the status keys for a slice of the scalar variables.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(skx
mosek.stakey
[]
) – Status keys for the variables. (output)
Groups:

Task.getslc
¶ def getslc (whichsol, slc)
Obtains the \(s_l^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(slc
float
[]
) – Dual variables corresponding to the lower bounds on the constraints. (output)
Groups:

Task.getslcslice
¶ def getslcslice (whichsol, first, last, slc)
Obtains a slice of the \(s_l^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(slc
float
[]
) – Dual variables corresponding to the lower bounds on the constraints. (output)
Groups:

Task.getslx
¶ def getslx (whichsol, slx)
Obtains the \(s_l^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(slx
float
[]
) – Dual variables corresponding to the lower bounds on the variables. (output)
Groups:

Task.getslxslice
¶ def getslxslice (whichsol, first, last, slx)
Obtains a slice of the \(s_l^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(slx
float
[]
) – Dual variables corresponding to the lower bounds on the variables. (output)
Groups:

Task.getsnx
¶ def getsnx (whichsol, snx)
Obtains the \(s_n^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(snx
float
[]
) – Dual variables corresponding to the conic constraints on the variables. (output)
Groups:

Task.getsnxslice
¶ def getsnxslice (whichsol, first, last, snx)
Obtains a slice of the \(s_n^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(snx
float
[]
) – Dual variables corresponding to the conic constraints on the variables. (output)
Groups:

Task.getsolsta
¶ def getsolsta (whichsol) > solsta
Obtains the solution status.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Return:
(solsta
mosek.solsta
) – Solution status.Groups: Solution information

Task.getsolution
¶ def getsolution (whichsol, skc, skx, skn, xc, xx, y, slc, suc, slx, sux, snx) > prosta, solsta
Obtains the complete solution.
Consider the case of linear programming. The primal problem is given by
\[\begin{split}\begin{array}{lccccl} \mbox{minimize} & & & c^T x+c^f & & \\ \mbox{subject to} & l^c & \leq & A x & \leq & u^c, \\ & l^x & \leq & x & \leq & u^x. \\ \end{array}\end{split}\]and the corresponding dual problem is
\[\begin{split}\begin{array}{lccl} \mbox{maximize} & (l^c)^T s_l^c  (u^c)^T s_u^c & \\ & + (l^x)^T s_l^x  (u^x)^T s_u^x + c^f & \\ \mbox{subject to} & A^T y + s_l^x  s_u^x & = & c, \\ & y + s_l^c  s_u^c & = & 0, \\ & s_l^c,s_u^c,s_l^x,s_u^x \geq 0. & & \\ \end{array}\end{split}\]A conic optimization problem has the same primal variables as in the linear case. Recall that the dual of a conic optimization problem is given by:
\[\begin{split}\begin{array}{lccccc} \mbox{maximize} & (l^c)^T s_l^c  (u^c)^T s_u^c & & \\ & +(l^x)^T s_l^x  (u^x)^T s_u^x + c^f & & \\ \mbox{subject to} & A^T y + s_l^x  s_u^x + s_n^x & = & c, \\ & y + s_l^c  s_u^c & = & 0, \\ & s_l^c,s_u^c,s_l^x,s_u^x & \geq & 0, \\ & s_n^x \in \K^* & & \\ \end{array}\end{split}\]The mapping between variables and arguments to the function is as follows:
xx
: Corresponds to variable \(x\) (also denoted \(x^x\)).xc
: Corresponds to \(x^c:=Ax\).y
: Corresponds to variable \(y\).slc
: Corresponds to variable \(s_l^c\).suc
: Corresponds to variable \(s_u^c\).slx
: Corresponds to variable \(s_l^x\).sux
: Corresponds to variable \(s_u^x\).snx
: Corresponds to variable \(s_n^x\).
The meaning of the values returned by this function depend on the solution status returned in the argument
solsta
. The most important possible values ofsolsta
are:solsta.optimal
: An optimal solution satisfying the optimality criteria for continuous problems is returned.solsta.integer_optimal
: An optimal solution satisfying the optimality criteria for integer problems is returned.solsta.prim_feas
: A solution satisfying the feasibility criteria.solsta.prim_infeas_cer
: A primal certificate of infeasibility is returned.solsta.dual_infeas_cer
: A dual certificate of infeasibility is returned.
In order to retrieve the primal and dual values of semidefinite variables see
Task.getbarxj
andTask.getbarsj
.Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(skc
mosek.stakey
[]
) – Status keys for the constraints. (output)
(skx
mosek.stakey
[]
) – Status keys for the variables. (output)
(skn
mosek.stakey
[]
) – Status keys for the conic constraints. (output)
(xc
float
[]
) – Primal constraint solution. (output)
(xx
float
[]
) – Primal variable solution. (output)
(y
float
[]
) – Vector of dual variables corresponding to the constraints. (output)
(slc
float
[]
) – Dual variables corresponding to the lower bounds on the constraints. (output)
(suc
float
[]
) – Dual variables corresponding to the upper bounds on the constraints. (output)
(slx
float
[]
) – Dual variables corresponding to the lower bounds on the variables. (output)
(sux
float
[]
) – Dual variables corresponding to the upper bounds on the variables. (output)
(snx
float
[]
) – Dual variables corresponding to the conic constraints on the variables. (output)
Return:
(prosta
mosek.prosta
) – Problem status.
(solsta
mosek.solsta
) – Solution status.
Groups:

Task.getsolutioni
Deprecated¶ def getsolutioni (accmode, i, whichsol) > sk, x, sl, su, sn
Obtains the primal and dual solution information for a single constraint or variable.
Parameters:
(accmode
mosek.accmode
) – Defines whether solution information for a constraint or for a variable is retrieved. (input)
(i
int
) – Index of the constraint or variable. (input)
(whichsol
mosek.soltype
) – Selects a solution. (input)
Return:
(sk
mosek.stakey
) – Status key of the constraint of variable.
(x
float
) – Solution value of the primal variable.
(sl
float
) – Solution value of the dual variable associated with the lower bound.
(su
float
) – Solution value of the dual variable associated with the upper bound.
(sn
float
) – Solution value of the dual variable associated with the cone constraint.
Groups:

Task.getsolutioninfo
¶ def getsolutioninfo (whichsol) > pobj, pviolcon, pviolvar, pviolbarvar, pviolcone, pviolitg, dobj, dviolcon, dviolvar, dviolbarvar, dviolcone
Obtains information about a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Return:
(pobj
float
) – The primal objective value as computed byTask.getprimalobj
.
(pviolcon
float
) – Maximal primal violation of the solution associated with the \(x^c\) variables where the violations are computed byTask.getpviolcon
.
(pviolvar
float
) – Maximal primal violation of the solution for the \(x\) variables where the violations are computed byTask.getpviolvar
.
(pviolbarvar
float
) – Maximal primal violation of solution for the \(\barX\) variables where the violations are computed byTask.getpviolbarvar
.
(pviolcone
float
) – Maximal primal violation of solution for the conic constraints where the violations are computed byTask.getpviolcones
.
(pviolitg
float
) – Maximal violation in the integer constraints. The violation for an integer variable \(x_j\) is given by \(\min(x_j\lfloor x_j \rfloor,\lceil x_j \rceil  x_j)\). This number is always zero for the interiorpoint and basic solutions.
(dobj
float
) – Dual objective value as computed byTask.getdualobj
.
(dviolcon
float
) – Maximal violation of the dual solution associated with the \(x^c\) variable as computed byTask.getdviolcon
.
(dviolvar
float
) – Maximal violation of the dual solution associated with the \(x\) variable as computed byTask.getdviolvar
.
(dviolbarvar
float
) – Maximal violation of the dual solution associated with the \(\barS\) variable as computed byTask.getdviolbarvar
.
(dviolcone
float
) – Maximal violation of the dual solution associated with the dual conic constraints as computed byTask.getdviolcones
.
Groups:

Task.getsolutionslice
¶ def getsolutionslice (whichsol, solitem, first, last, values)
Obtains a slice of one item from the solution. The format of the solution is exactly as in
Task.getsolution
. The parametersolitem
determines which of the solution vectors should be returned.Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(solitem
mosek.solitem
) – Which part of the solution is required. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(values
float
[]
) – The values in the required sequence are stored sequentially invalues
. (output)
Groups:

Task.getsparsesymmat
¶ def getsparsesymmat (idx, subi, subj, valij)
Get a single symmetric matrix from the matrix store.
Parameters:
(idx
int
) – Index of the matrix to retrieve. (input)
(subi
int
[]
) – Row subscripts of the matrix nonzero elements. (output)
(subj
int
[]
) – Column subscripts of the matrix nonzero elements. (output)
(valij
float
[]
) – Coefficients of the matrix nonzero elements. (output)
Groups:

Task.getstrparam
¶ def getstrparam (param) > len, parvalue
Obtains the value of a string parameter.
Parameters:
(param
mosek.sparam
) – Which parameter. (input)Return:
(len
int
) – The length of the parameter value.
(parvalue
str
) – Parameter value.
Groups:

Task.getstrparamlen
¶ def getstrparamlen (param) > len
Obtains the length of a string parameter.
Parameters:
(param
mosek.sparam
) – Which parameter. (input)Return:
(len
int
) – The length of the parameter value.Groups: Parameters (get)

Task.getsuc
¶ def getsuc (whichsol, suc)
Obtains the \(s_u^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(suc
float
[]
) – Dual variables corresponding to the upper bounds on the constraints. (output)
Groups:

Task.getsucslice
¶ def getsucslice (whichsol, first, last, suc)
Obtains a slice of the \(s_u^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(suc
float
[]
) – Dual variables corresponding to the upper bounds on the constraints. (output)
Groups:

Task.getsux
¶ def getsux (whichsol, sux)
Obtains the \(s_u^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sux
float
[]
) – Dual variables corresponding to the upper bounds on the variables. (output)
Groups:

Task.getsuxslice
¶ def getsuxslice (whichsol, first, last, sux)
Obtains a slice of the \(s_u^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(sux
float
[]
) – Dual variables corresponding to the upper bounds on the variables. (output)
Groups:

Task.getsymmatinfo
¶ def getsymmatinfo (idx) > dim, nz, type
MOSEK maintains a vector denoted by \(E\) of symmetric data matrices. This function makes it possible to obtain important information about a single matrix in \(E\).
Parameters:
(idx
int
) – Index of the matrix for which information is requested. (input)Return:
(dim
int
) – Returns the dimension of the requested matrix.
(nz
int
) – Returns the number of nonzeros in the requested matrix.
(type
mosek.symmattype
) – Returns the type of the requested matrix.
Groups:

Task.gettaskname
¶ def gettaskname () > taskname
Obtains the name assigned to the task.
Return:
(taskname
str
) – Returns the task name.Groups: Naming

Task.gettasknamelen
¶ def gettasknamelen () > len
Obtains the length the task name.
Return:
(len
int
) – Returns the length of the task name.Groups: Naming

Task.getvarbound
¶ def getvarbound (i) > bk, bl, bu
Obtains bound information for one variable.
Parameters:
(i
int
) – Index of the variable for which the bound information should be obtained. (input)Return:
(bk
mosek.boundkey
) – Bound keys.
(bl
float
) – Values for lower bounds.
(bu
float
) – Values for upper bounds.
Groups:

Task.getvarboundslice
¶ def getvarboundslice (first, last, bk, bl, bu)
Obtains bounds information for a slice of the variables.
Parameters:
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(bk
mosek.boundkey
[]
) – Bound keys. (output)
(bl
float
[]
) – Values for lower bounds. (output)
(bu
float
[]
) – Values for upper bounds. (output)
Groups:

Task.getvarname
¶ def getvarname (j) > name
Obtains the name of a variable.
Parameters:
(j
int
) – Index of a variable. (input)Return:
(name
str
) – Returns the required name.Groups: Naming

Task.getvarnameindex
¶ def getvarnameindex (somename) > asgn, index
Checks whether the name
somename
has been assigned to any variable. If so, the index of the variable is reported.Parameters:
(somename
str
) – The name which should be checked. (input)Return:
(asgn
int
) – Is nonzero if the namesomename
is assigned to a variable.
(index
int
) – If the namesomename
is assigned to a variable, thenindex
is the index of the variable.
Groups:

Task.getvarnamelen
¶ def getvarnamelen (i) > len
Obtains the length of the name of a variable.
Parameters:
(i
int
) – Index of a variable. (input)Return:
(len
int
) – Returns the length of the indicated name.Groups: Naming

Task.getvartype
¶ def getvartype (j) > vartype
Gets the variable type of one variable.
Parameters:
(j
int
) – Index of the variable. (input)Return:
(vartype
mosek.variabletype
) – Variable type of the \(j\)th variable.Groups: Scalar variable data

Task.getvartypelist
¶ def getvartypelist (subj, vartype)
Obtains the variable type of one or more variables. Upon return
vartype[k]
is the variable type of variablesubj[k]
.Parameters:
(subj
int
[]
) – A list of variable indexes. (input)
(vartype
mosek.variabletype
[]
) – The variables types corresponding to the variables specified bysubj
. (output)
Groups:

Task.getxc
¶ def getxc (whichsol, xc)
Obtains the \(x^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(xc
float
[]
) – Primal constraint solution. (output)
Groups:

Task.getxcslice
¶ def getxcslice (whichsol, first, last, xc)
Obtains a slice of the \(x^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(xc
float
[]
) – Primal constraint solution. (output)
Groups:

Task.getxx
¶ def getxx (whichsol, xx)
Obtains the \(x^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(xx
float
[]
) – Primal variable solution. (output)
Groups:

Task.getxxslice
¶ def getxxslice (whichsol, first, last, xx)
Obtains a slice of the \(x^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(xx
float
[]
) – Primal variable solution. (output)
Groups:

Task.gety
¶ def gety (whichsol, y)
Obtains the \(y\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(y
float
[]
) – Vector of dual variables corresponding to the constraints. (output)
Groups:

Task.getyslice
¶ def getyslice (whichsol, first, last, y)
Obtains a slice of the \(y\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(y
float
[]
) – Vector of dual variables corresponding to the constraints. (output)
Groups:

Task.initbasissolve
¶ def initbasissolve (basis)
Prepare a task for use with the
Task.solvewithbasis
function.This function should be called
 immediately before the first call to
Task.solvewithbasis
, and  immediately before any subsequent call to
Task.solvewithbasis
if the task has been modified.
If the basis is singular i.e. not invertible, then the error
rescode.err_basis_singular
is reported.Parameters:
(basis
int
[]
) – The array of basis indexes to use. The array is interpreted as follows: If \(\mathtt{basis}[i] \leq \idxend{numcon}\), then \(x_{\mathtt{basis}[i]}^c\) is in the basis at position \(i\), otherwise \(x_{\mathtt{basis}[i]\mathtt{numcon}}\) is in the basis at position \(i\). (output)Groups: Basis matrix  immediately before the first call to

Task.inputdata
¶ def inputdata (maxnumcon, maxnumvar, c, cfix, aptrb, aptre, asub, aval, bkc, blc, buc, bkx, blx, bux)
Input the linear part of an optimization problem.
The nonzeros of \(A\) are inputted columnwise in the format described in Section Column or Row Ordered Sparse Matrix.
For an explained code example see Section Linear Optimization and Section Matrix Formats.
Parameters:
(maxnumcon
int
) – Number of preallocated constraints in the optimization task. (input)
(maxnumvar
int
) – Number of preallocated variables in the optimization task. (input)
(c
float
[]
) – Linear terms of the objective as a dense vector. The length is the number of variables. (input)
(cfix
float
) – Fixed term in the objective. (input)
(aptrb
int
[]
) – Row or column start pointers. (input)
(aptre
int
[]
) – Row or column end pointers. (input)
(asub
int
[]
) – Coefficient subscripts. (input)
(aval
float
[]
) – Coefficient values. (input)
(bkc
mosek.boundkey
[]
) – Bound keys for the constraints. (input)
(blc
float
[]
) – Lower bounds for the constraints. (input)
(buc
float
[]
) – Upper bounds for the constraints. (input)
(bkx
mosek.boundkey
[]
) – Bound keys for the variables. (input)
(blx
float
[]
) – Lower bounds for the variables. (input)
(bux
float
[]
) – Upper bounds for the variables. (input)
Groups:

Task.isdouparname
¶ def isdouparname (parname) > param
Checks whether
parname
is a valid double parameter name.Parameters:
(parname
str
) – Parameter name. (input)Return:
(param
mosek.dparam
) – Returns the parameter corresponding to the name, if one exists.Groups: Parameter management

Task.isintparname
¶ def isintparname (parname) > param
Checks whether
parname
is a valid integer parameter name.Parameters:
(parname
str
) – Parameter name. (input)Return:
(param
mosek.iparam
) – Returns the parameter corresponding to the name, if one exists.Groups: Parameter management

Task.isstrparname
¶ def isstrparname (parname) > param
Checks whether
parname
is a valid string parameter name.Parameters:
(parname
str
) – Parameter name. (input)Return:
(param
mosek.sparam
) – Returns the parameter corresponding to the name, if one exists.Groups: Parameter management

Task.linkfiletostream
¶ def linkfiletostream (whichstream, filename, append)
Directs all output from a task stream
whichstream
to a filefilename
.Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)
(filename
str
) – A valid file name. (input)
(append
int
) – If this argument is 0 the output file will be overwritten, otherwise it will be appended to. (input)
Groups:

Task.onesolutionsummary
¶ def onesolutionsummary (whichstream, whichsol)
Prints a short summary of a specified solution.
Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)
(whichsol
mosek.soltype
) – Selects a solution. (input)
Groups:

Task.optimize
¶ def optimize () > trmcode
Calls the optimizer. Depending on the problem type and the selected optimizer this will call one of the optimizers in MOSEK. By default the interior point optimizer will be selected for continuous problems. The optimizer may be selected manually by setting the parameter
iparam.optimizer
.Return:
(trmcode
mosek.rescode
) – Is eitherrescode.ok
or a termination response code.Groups: Optimization

Task.optimizermt
¶ def optimizermt (server, port) > trmcode
Offload the optimization task to a solver server defined by
server:port
. The call will block until a result is available or the connection closes.If the string parameter
sparam.remote_access_token
is not blank, it will be passed to the server as authentication.Parameters:
(server
str
) – Name or IP address of the solver server. (input)
(port
str
) – Network port of the solver server. (input)
Return:
(trmcode
mosek.rescode
) – Is eitherrescode.ok
or a termination response code.

Task.optimizersummary
¶ def optimizersummary (whichstream)
Prints a short summary with optimizer statistics from last optimization.
Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)Groups: Task diagnostics

Task.primalrepair
¶ def primalrepair (wlc, wuc, wlx, wux)
The function repairs a primal infeasible optimization problem by adjusting the bounds on the constraints and variables where the adjustment is computed as the minimal weighted sum of relaxations to the bounds on the constraints and variables. Observe the function only repairs the problem but does not solve it. If an optimal solution is required the problem should be optimized after the repair.
The function is applicable to linear and conic problems possibly with integer variables.
Observe that when computing the minimal weighted relaxation the termination tolerance specified by the parameters of the task is employed. For instance the parameter
iparam.mio_mode
can be used to make MOSEK ignore the integer constraints during the repair which usually leads to a much faster repair. However, the drawback is of course that the repaired problem may not have an integer feasible solution.Note the function modifies the task in place. If this is not desired, then apply the function to a cloned task.
Parameters:
(wlc
float
[]
) – \((w_l^c)_i\) is the weight associated with relaxing the lower bound on constraint \(i\). If the weight is negative, then the lower bound is not relaxed. Moreover, if the argument is NULL, then all the weights are assumed to be \(1\). (input)
(wuc
float
[]
) – \((w_u^c)_i\) is the weight associated with relaxing the upper bound on constraint \(i\). If the weight is negative, then the upper bound is not relaxed. Moreover, if the argument is NULL, then all the weights are assumed to be \(1\). (input)
(wlx
float
[]
) – \((w_l^x)_j\) is the weight associated with relaxing the lower bound on variable \(j\). If the weight is negative, then the lower bound is not relaxed. Moreover, if the argument is NULL, then all the weights are assumed to be \(1\). (input)
(wux
float
[]
) – \((w_l^x)_i\) is the weight associated with relaxing the upper bound on variable \(j\). If the weight is negative, then the upper bound is not relaxed. Moreover, if the argument is NULL, then all the weights are assumed to be \(1\). (input)
Groups:

Task.primalsensitivity
¶ def primalsensitivity (subi, marki, subj, markj, leftpricei, rightpricei, leftrangei, rightrangei, leftpricej, rightpricej, leftrangej, rightrangej)
Calculates sensitivity information for bounds on variables and constraints. For details on sensitivity analysis, the definitions of shadow price and linearity interval and an example see Section Sensitivity Analysis.
The type of sensitivity analysis to be performed (basis or optimal partition) is controlled by the parameter
iparam.sensitivity_type
.Parameters:
(subi
int
[]
) – Indexes of constraints to analyze. (input)
(marki
mosek.mark
[]
) – The value ofmarki[i]
indicates for which bound of constraintsubi[i]
sensitivity analysis is performed. Ifmarki[i]
=mark.up
the upper bound of constraintsubi[i]
is analyzed, and ifmarki[i]
=mark.lo
the lower bound is analyzed. Ifsubi[i]
is an equality constraint, eithermark.lo
ormark.up
can be used to select the constraint for sensitivity analysis. (input)
(subj
int
[]
) – Indexes of variables to analyze. (input)
(markj
mosek.mark
[]
) – The value ofmarkj[j]
indicates for which bound of variablesubj[j]
sensitivity analysis is performed. Ifmarkj[j]
=mark.up
the upper bound of variablesubj[j]
is analyzed, and ifmarkj[j]
=mark.lo
the lower bound is analyzed. Ifsubj[j]
is a fixed variable, eithermark.lo
ormark.up
can be used to select the bound for sensitivity analysis. (input)
(leftpricei
float
[]
) –leftpricei[i]
is the left shadow price for the boundmarki[i]
of constraintsubi[i]
. (output)
(rightpricei
float
[]
) –rightpricei[i]
is the right shadow price for the boundmarki[i]
of constraintsubi[i]
. (output)
(leftrangei
float
[]
) –leftrangei[i]
is the left range \(\beta_1\) for the boundmarki[i]
of constraintsubi[i]
. (output)
(rightrangei
float
[]
) –rightrangei[i]
is the right range \(\beta_2\) for the boundmarki[i]
of constraintsubi[i]
. (output)
(leftpricej
float
[]
) –leftpricej[j]
is the left shadow price for the boundmarkj[j]
of variablesubj[j]
. (output)
(rightpricej
float
[]
) –rightpricej[j]
is the right shadow price for the boundmarkj[j]
of variablesubj[j]
. (output)
(leftrangej
float
[]
) –leftrangej[j]
is the left range \(\beta_1\) for the boundmarkj[j]
of variablesubj[j]
. (output)
(rightrangej
float
[]
) –rightrangej[j]
is the right range \(\beta_2\) for the boundmarkj[j]
of variablesubj[j]
. (output)
Groups:

Task.printdata
¶ def printdata (whichstream, firsti, lasti, firstj, lastj, firstk, lastk, c, qo, a, qc, bc, bx, vartype, cones)
Prints a part of the problem data to a stream. This function is normally used for debugging purposes only, e.g. to verify that the correct data has been inputted.
Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)
(firsti
int
) – Index of first constraint for which data should be printed. (input)
(lasti
int
) – Index of last constraint plus 1 for which data should be printed. (input)
(firstj
int
) – Index of first variable for which data should be printed. (input)
(lastj
int
) – Index of last variable plus 1 for which data should be printed. (input)
(firstk
int
) – Index of first cone for which data should be printed. (input)
(lastk
int
) – Index of last cone plus 1 for which data should be printed. (input)
(c
int
) – If nonzero \(c\) is printed. (input)
(qo
int
) – If nonzero \(Q^o\) is printed. (input)
(a
int
) – If nonzero \(A\) is printed. (input)
(qc
int
) – If nonzero \(Q^k\) is printed for the relevant constraints. (input)
(bc
int
) – If nonzero the constraint bounds are printed. (input)
(bx
int
) – If nonzero the variable bounds are printed. (input)
(vartype
int
) – If nonzero the variable types are printed. (input)
(cones
int
) – If nonzero the conic data is printed. (input)
Groups:

Task.putacol
¶ def putacol (j, subj, valj)
Change one column of the linear constraint matrix \(A\). Resets all the elements in column \(j\) to zero and then sets
\[a_{\mathtt{subj}[k],\mathtt{j}} = \mathtt{valj}[k], \quad k=0,\ldots,\mathtt{nzj}1.\]Parameters:
(j
int
) – Index of a column in \(A\). (input)
(subj
int
[]
) – Row indexes of nonzero values in column \(j\) of \(A\). (input)
(valj
float
[]
) – New nonzero values of column \(j\) in \(A\). (input)
Groups:

Task.putacollist
¶ def putacollist (sub, ptrb, ptre, asub, aval)
Change a set of columns in the linear constraint matrix \(A\) with data in sparse triplet format. The requested columns are set to zero and then updated with:
\[\begin{split}\begin{array}{rl} \mathtt{for} & i=\idxbeg,\ldots,\idxend{num}\\ & a_{\mathtt{asub}[k],\mathtt{sub}[i]} = \mathtt{aval}[k],\quad k=\mathtt{ptrb}[i],\ldots,\mathtt{ptre}[i]1. \end{array}\end{split}\]Parameters:
(sub
int
[]
) – Indexes of columns that should be replaced, no duplicates. (input)
(ptrb
int
[]
) – Array of pointers to the first element in each column. (input)
(ptre
int
[]
) – Array of pointers to the last element plus one in each column. (input)
(asub
int
[]
) – Row indexes of new elements. (input)
(aval
float
[]
) – Coefficient values. (input)
Groups:

Task.putacolslice
¶ def putacolslice (first, last, ptrb, ptre, asub, aval)
Change a slice of columns in the linear constraint matrix \(A\) with data in sparse triplet format. The requested columns are set to zero and then updated with:
\[\begin{split}\begin{array}{rl} \mathtt{for} & i=\mathtt{first},\ldots,\mathtt{last}1\\ & a_{\mathtt{asub}[k],i} = \mathtt{aval}[k],\quad k=\mathtt{ptrb}[i],\ldots,\mathtt{ptre}[i]1. \end{array}\end{split}\]Parameters:
(first
int
) – First column in the slice. (input)
(last
int
) – Last column plus one in the slice. (input)
(ptrb
int
[]
) – Array of pointers to the first element in each column. (input)
(ptre
int
[]
) – Array of pointers to the last element plus one in each column. (input)
(asub
int
[]
) – Row indexes of new elements. (input)
(aval
float
[]
) – Coefficient values. (input)
Groups:

Task.putaij
¶ def putaij (i, j, aij)
Changes a coefficient in the linear coefficient matrix \(A\) using the method
\[a_{i,j} = \mathtt{aij}.\]Parameters:
(i
int
) – Constraint (row) index. (input)
(j
int
) – Variable (column) index. (input)
(aij
float
) – New coefficient for \(a_{i,j}\). (input)
Groups:

Task.putaijlist
¶ def putaijlist (subi, subj, valij)
Changes one or more coefficients in \(A\) using the method
\[a_{\mathtt{subi[k]},\mathtt{subj[k]}} = \mathtt{valij[k]}, \quad k=\idxbeg,\ldots,\idxend{num}.\]Duplicates are not allowed.
Parameters:
(subi
int
[]
) – Constraint (row) indices. (input)
(subj
int
[]
) – Variable (column) indices. (input)
(valij
float
[]
) – New coefficient values for \(a_{i,j}\). (input)
Groups:

Task.putarow
¶ def putarow (i, subi, vali)
Change one row of the linear constraint matrix \(A\). Resets all the elements in row \(i\) to zero and then sets
\[a_{\mathtt{i},\mathtt{subi}[k]} = \mathtt{vali}[k], \quad k=0,\ldots,\mathtt{nzi}1.\]Parameters:
(i
int
) – Index of a row in \(A\). (input)
(subi
int
[]
) – Column indexes of nonzero values in row \(i\) of \(A\). (input)
(vali
float
[]
) – New nonzero values of row \(i\) in \(A\). (input)
Groups:

Task.putarowlist
¶ def putarowlist (sub, ptrb, ptre, asub, aval)
Change a set of rows in the linear constraint matrix \(A\) with data in sparse triplet format. The requested rows are set to zero and then updated with:
\[\begin{split}\begin{array}{rl} \mathtt{for} & i=\idxbeg,\ldots,\idxend{num} \\ & a_{\mathtt{sub}[i],\mathtt{asub}[k]} = \mathtt{aval}[k],\quad k=\mathtt{ptrb}[i],\ldots,\mathtt{ptre}[i]1. \end{array}\end{split}\]Parameters:
(sub
int
[]
) – Indexes of rows that should be replaced, no duplicates. (input)
(ptrb
int
[]
) – Array of pointers to the first element in each row. (input)
(ptre
int
[]
) – Array of pointers to the last element plus one in each row. (input)
(asub
int
[]
) – Column indexes of new elements. (input)
(aval
float
[]
) – Coefficient values. (input)
Groups:

Task.putarowslice
¶ def putarowslice (first, last, ptrb, ptre, asub, aval)
Change a slice of rows in the linear constraint matrix \(A\) with data in sparse triplet format. The requested columns are set to zero and then updated with:
\[\begin{split}\begin{array}{rl} \mathtt{for} & i=\mathtt{first},\ldots,\mathtt{last}1 \\ & a_{\mathtt{sub}[i],\mathtt{asub}[k]} = \mathtt{aval}[k],\quad k=\mathtt{ptrb}[i],\ldots,\mathtt{ptre}[i]1. \end{array}\end{split}\]Parameters:
(first
int
) – First row in the slice. (input)
(last
int
) – Last row plus one in the slice. (input)
(ptrb
int
[]
) – Array of pointers to the first element in each row. (input)
(ptre
int
[]
) – Array of pointers to the last element plus one in each row. (input)
(asub
int
[]
) – Column indexes of new elements. (input)
(aval
float
[]
) – Coefficient values. (input)
Groups:

Task.putbarablocktriplet
¶ def putbarablocktriplet (num, subi, subj, subk, subl, valijkl)
Inputs the \(\barA\) matrix in block triplet form.
Parameters:
(num
int
) – Number of elements in the block triplet form. (input)
(subi
int
[]
) – Constraint index. (input)
(subj
int
[]
) – Symmetric matrix variable index. (input)
(subk
int
[]
) – Block row index. (input)
(subl
int
[]
) – Block column index. (input)
(valijkl
float
[]
) – The numerical value associated with each block triplet. (input)
Groups:

Task.putbaraij
¶ def putbaraij (i, j, sub, weights)
This function sets one element in the \(\barA\) matrix.
Each element in the \(\barA\) matrix is a weighted sum of symmetric matrices from the symmetric matrix storage \(E\), so \(\barA_{ij}\) is a symmetric matrix. By default all elements in \(\barA\) are 0, so only nonzero elements need be added. Setting the same element again will overwrite the earlier entry.
The symmetric matrices from \(E\) are defined separately using the function
Task.appendsparsesymmat
.Parameters:
(i
int
) – Row index of \(\barA\). (input)
(j
int
) – Column index of \(\barA\). (input)
(sub
int
[]
) – Indices in \(E\) of the matrices appearing in the weighted sum for \(\barA_{ij}\). (input)
(weights
float
[]
) –weights[k]
is the coefficient of thesub[k]
th element of \(E\) in the weighted sum forming \(\barA_{ij}\). (input)
Groups:

Task.putbarcblocktriplet
¶ def putbarcblocktriplet (num, subj, subk, subl, valjkl)
Inputs the \(\barC\) matrix in block triplet form.
Parameters:
(num
int
) – Number of elements in the block triplet form. (input)
(subj
int
[]
) – Symmetric matrix variable index. (input)
(subk
int
[]
) – Block row index. (input)
(subl
int
[]
) – Block column index. (input)
(valjkl
float
[]
) – The numerical value associated with each block triplet. (input)
Groups:

Task.putbarcj
¶ def putbarcj (j, sub, weights)
This function sets one entry in the \(\barC\) vector.
Each element in the \(\barC\) vector is a weighted sum of symmetric matrices from the symmetric matrix storage \(E\), so \(\barC_{j}\) is a symmetric matrix. By default all elements in \(\barC\) are 0, so only nonzero elements need be added. Setting the same element again will overwrite the earlier entry.
The symmetric matrices from \(E\) are defined separately using the function
Task.appendsparsesymmat
.Parameters:
(j
int
) – Index of the element in \(\barC\) that should be changed. (input)
(sub
int
[]
) – Indices in \(E\) of matrices appearing in the weighted sum for \(\barC_j\) (input)
(weights
float
[]
) –weights[k]
is the coefficient of thesub[k]
th element of \(E\) in the weighted sum forming \(\barC_j\). (input)
Groups:

Task.putbarsj
¶ def putbarsj (whichsol, j, barsj)
Sets the dual solution for a semidefinite variable.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(j
int
) – Index of the semidefinite variable. (input)
(barsj
float
[]
) – Value of \(\barS_j\). Format as inTask.getbarsj
. (input)
Groups:

Task.putbarvarname
¶ def putbarvarname (j, name)
Sets the name of a semidefinite variable.
Parameters:
(j
int
) – Index of the variable. (input)
(name
str
) – The variable name. (input)
Groups:

Task.putbarxj
¶ def putbarxj (whichsol, j, barxj)
Sets the primal solution for a semidefinite variable.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(j
int
) – Index of the semidefinite variable. (input)
(barxj
float
[]
) – Value of \(\barX_j\). Format as inTask.getbarxj
. (input)
Groups:

Task.putbound
Deprecated¶ def putbound (accmode, i, bk, bl, bu)
Changes the bound for either one constraint or one variable.
Parameters:
(accmode
mosek.accmode
) – Defines whether the bound for a constraint (accmode.con
) or variable (accmode.var
) is changed. (input)
(i
int
) – Index of the constraint or variable. (input)
(bk
mosek.boundkey
) – New bound key. (input)
(bl
float
) – New lower bound. (input)
(bu
float
) – New upper bound. (input)
Groups:

Task.putboundlist
Deprecated¶ def putboundlist (accmode, sub, bk, bl, bu)
Changes the bounds of constraints or variables.
Parameters:
(accmode
mosek.accmode
) – Defines whether bounds for constraints (accmode.con
) or variables (accmode.var
) are changed. (input)
(sub
int
[]
) – Subscripts of the constraints or variables that should be changed. (input)
(bk
mosek.boundkey
[]
) – Bound keys. (input)
(bl
float
[]
) – Values for lower bounds. (input)
(bu
float
[]
) – Values for upper bounds. (input)
Groups:

Task.putboundslice
Deprecated¶ def putboundslice (con, first, last, bk, bl, bu)
Changes the bounds for a slice of constraints or variables.
Parameters:
(con
mosek.accmode
) – Defines whether bounds for constraints (accmode.con
) or variables (accmode.var
) are changed. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(bk
mosek.boundkey
[]
) – Bound keys. (input)
(bl
float
[]
) – Values for lower bounds. (input)
(bu
float
[]
) – Values for upper bounds. (input)
Groups:

Task.putcfix
¶ def putcfix (cfix)
Replaces the fixed term in the objective by a new one.
Parameters:
(cfix
float
) – Fixed term in the objective. (input)Groups: Objective data

Task.putcj
¶ def putcj (j, cj)
Modifies one coefficient in the linear objective vector \(c\), i.e.
\[c_{\mathtt{j}} = \mathtt{cj}.\]If the absolute value exceeds
dparam.data_tol_c_huge
an error is generated. If the absolute value exceedsdparam.data_tol_cj_large
, a warning is generated, but the coefficient is inputted as specified.Parameters:
(j
int
) – Index of the variable for which \(c\) should be changed. (input)
(cj
float
) – New value of \(c_j\). (input)
Groups:

Task.putclist
¶ def putclist (subj, val)
Modifies the coefficients in the linear term \(c\) in the objective using the principle
\[c_{\mathtt{subj[t]}} = \mathtt{val[t]}, \quad t=\idxbeg,\ldots,\idxend{num}.\]If a variable index is specified multiple times in
subj
only the last entry is used. Data checks are performed as inTask.putcj
.Parameters:
(subj
int
[]
) – Indices of variables for which the coefficient in \(c\) should be changed. (input)
(val
float
[]
) – New numerical values for coefficients in \(c\) that should be modified. (input)
Groups:

Task.putconbound
¶ def putconbound (i, bk, bl, bu)
Changes the bounds for one constraint.
If the bound value specified is numerically larger than
dparam.data_tol_bound_inf
it is considered infinite and the bound key is changed accordingly. If a bound value is numerically larger thandparam.data_tol_bound_wrn
, a warning will be displayed, but the bound is inputted as specified.Parameters:
(i
int
) – Index of the constraint. (input)
(bk
mosek.boundkey
) – New bound key. (input)
(bl
float
) – New lower bound. (input)
(bu
float
) – New upper bound. (input)
Groups:

Task.putconboundlist
¶ def putconboundlist (sub, bk, bl, bu)
Changes the bounds for a list of constraints. If multiple bound changes are specified for a constraint, then only the last change takes effect. Data checks are performed as in
Task.putconbound
.Parameters:
(sub
int
[]
) – List of constraint indexes. (input)
(bk
mosek.boundkey
[]
) – Bound keys. (input)
(bl
float
[]
) – Values for lower bounds. (input)
(bu
float
[]
) – Values for upper bounds. (input)
Groups:

Task.putconboundslice
¶ def putconboundslice (first, last, bk, bl, bu)
Changes the bounds for a slice of the constraints. Data checks are performed as in
Task.putconbound
.Parameters:
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(bk
mosek.boundkey
[]
) – Bound keys. (input)
(bl
float
[]
) – Values for lower bounds. (input)
(bu
float
[]
) – Values for upper bounds. (input)
Groups:

Task.putcone
¶ def putcone (k, ct, conepar, submem)
Replaces a conic constraint.
Parameters:
(k
int
) – Index of the cone. (input)
(ct
mosek.conetype
) – Specifies the type of the cone. (input)
(conepar
float
) – This argument is currently not used. It can be set to 0 (input)
(submem
int
[]
) – Variable subscripts of the members in the cone. (input)
Groups:

Task.putconename
¶ def putconename (j, name)
Sets the name of a cone.
Parameters:
(j
int
) – Index of the cone. (input)
(name
str
) – The name of the cone. (input)
Groups:

Task.putconname
¶ def putconname (i, name)
Sets the name of a constraint.
Parameters:
(i
int
) – Index of the constraint. (input)
(name
str
) – The name of the constraint. (input)
Groups:

Task.putcslice
¶ def putcslice (first, last, slice)
Modifies a slice in the linear term \(c\) in the objective using the principle
\[c_{\mathtt{j}} = \mathtt{slice[jfirst]}, \quad j=first,..,\idxend{last}\]Data checks are performed as in
Task.putcj
.Parameters:
(first
int
) – First element in the slice of \(c\). (input)
(last
int
) – Last element plus 1 of the slice in \(c\) to be changed. (input)
(slice
float
[]
) – New numerical values for coefficients in \(c\) that should be modified. (input)
Groups:

Task.putdouparam
¶ def putdouparam (param, parvalue)
Sets the value of a double parameter.
Parameters:
(param
mosek.dparam
) – Which parameter. (input)
(parvalue
float
) – Parameter value. (input)
Groups:

Task.putintparam
¶ def putintparam (param, parvalue)
Sets the value of an integer parameter.
Parameters:
(param
mosek.iparam
) – Which parameter. (input)
(parvalue
int
) – Parameter value. (input)
Groups:

Task.putmaxnumanz
¶ def putmaxnumanz (maxnumanz)
Sets the number of preallocated nonzero entries in \(A\).
MOSEK stores only the nonzero elements in the linear coefficient matrix \(A\) and it cannot predict how much storage is required to store \(A\). Using this function it is possible to specify the number of nonzeros to preallocate for storing \(A\).
If the number of nonzeros in the problem is known, it is a good idea to set
maxnumanz
slightly larger than this number, otherwise a rough estimate can be used. In general, if \(A\) is inputted in many small chunks, setting this value may speed up the data input phase.It is not mandatory to call this function, since MOSEK will reallocate internal structures whenever it is necessary.
The function call has no effect if both
maxnumcon
andmaxnumvar
are zero.Parameters:
(maxnumanz
int
) – Number of preallocated nonzeros in \(A\). (input)Groups: Scalar variable data

Task.putmaxnumbarvar
¶ def putmaxnumbarvar (maxnumbarvar)
Sets the number of preallocated symmetric matrix variables in the optimization task. When this number of variables is reached MOSEK will automatically allocate more space for variables.
It is not mandatory to call this function. It only gives a hint about the amount of data to preallocate for efficiency reasons.
Please note that
maxnumbarvar
must be larger than the current number of symmetric matrix variables in the task.Parameters:
(maxnumbarvar
int
) – Number of preallocated symmetric matrix variables. (input)Groups: Symmetric matrix variable data

Task.putmaxnumcon
¶ def putmaxnumcon (maxnumcon)
Sets the number of preallocated constraints in the optimization task. When this number of constraints is reached MOSEK will automatically allocate more space for constraints.
It is never mandatory to call this function, since MOSEK will reallocate any internal structures whenever it is required.
Please note that
maxnumcon
must be larger than the current number of constraints in the task.Parameters:
(maxnumcon
int
) – Number of preallocated constraints in the optimization task. (input)Groups: Task management

Task.putmaxnumcone
¶ def putmaxnumcone (maxnumcone)
Sets the number of preallocated conic constraints in the optimization task. When this number of conic constraints is reached MOSEK will automatically allocate more space for conic constraints.
It is not mandatory to call this function, since MOSEK will reallocate any internal structures whenever it is required.
Please note that
maxnumcon
must be larger than the current number of conic constraints in the task.Parameters:
(maxnumcone
int
) – Number of preallocated conic constraints in the optimization task. (input)Groups: Task management

Task.putmaxnumqnz
¶ def putmaxnumqnz (maxnumqnz)
Sets the number of preallocated nonzero entries in quadratic terms.
MOSEK stores only the nonzero elements in \(Q\). Therefore, MOSEK cannot predict how much storage is required to store \(Q\). Using this function it is possible to specify the number nonzeros to preallocate for storing \(Q\) (both objective and constraints).
It may be advantageous to reserve more nonzeros for \(Q\) than actually needed since it may improve the internal efficiency of MOSEK, however, it is never worthwhile to specify more than the double of the anticipated number of nonzeros in \(Q\).
It is not mandatory to call this function, since MOSEK will reallocate internal structures whenever it is necessary.
Parameters:
(maxnumqnz
int
) – Number of nonzero elements preallocated in quadratic coefficient matrices. (input)Groups: Scalar variable data

Task.putmaxnumvar
¶ def putmaxnumvar (maxnumvar)
Sets the number of preallocated variables in the optimization task. When this number of variables is reached MOSEK will automatically allocate more space for variables.
It is not mandatory to call this function. It only gives a hint about the amount of data to preallocate for efficiency reasons.
Please note that
maxnumvar
must be larger than the current number of variables in the task.Parameters:
(maxnumvar
int
) – Number of preallocated variables in the optimization task. (input)Groups: Scalar variable data

Task.putnadouparam
¶ def putnadouparam (paramname, parvalue)
Sets the value of a named double parameter.
Parameters:
(paramname
str
) – Name of a parameter. (input)
(parvalue
float
) – Parameter value. (input)
Groups:

Task.putnaintparam
¶ def putnaintparam (paramname, parvalue)
Sets the value of a named integer parameter.
Parameters:
(paramname
str
) – Name of a parameter. (input)
(parvalue
int
) – Parameter value. (input)
Groups:

Task.putnastrparam
¶ def putnastrparam (paramname, parvalue)
Sets the value of a named string parameter.
Parameters:
(paramname
str
) – Name of a parameter. (input)
(parvalue
str
) – Parameter value. (input)
Groups:

Task.putobjname
¶ def putobjname (objname)
Assigns a new name to the objective.
Parameters:
(objname
str
) – Name of the objective. (input)Groups: Naming

Task.putobjsense
¶ def putobjsense (sense)
Sets the objective sense of the task.
Parameters:
(sense
mosek.objsense
) – The objective sense of the task. The valuesobjsense.maximize
andobjsense.minimize
mean that the problem is maximized or minimized respectively. (input)Groups: Objective data

Task.putparam
¶ def putparam (parname, parvalue)
Checks if
parname
is valid parameter name. If it is, the parameter is assigned the value specified byparvalue
.Parameters:
(parname
str
) – Parameter name. (input)
(parvalue
str
) – Parameter value. (input)
Groups:

Task.putqcon
¶ def putqcon (qcsubk, qcsubi, qcsubj, qcval)
Replace all quadratic entries in the constraints. The list of constraints has the form
\[l_k^c \leq \half \sum_{i=0}^{\idxend{numvar}} \sum_{j=0}^{\idxend{numvar}} q_{ij}^k x_i x_j + \sum_{j=0}^{\idxend{numvar}} a_{kj} x_j \leq u_k^c, ~\ k=0,\ldots,m1.\]This function sets all the quadratic terms to zero and then performs the update:
\[q_{\mathtt{qcsubi[t]},\mathtt{qcsubj[t]}}^{\mathtt{qcsubk[t]}} = q_{\mathtt{\mathtt{qcsubj[t]},qcsubi[t]}}^{\mathtt{qcsubk[t]}} = q_{\mathtt{\mathtt{qcsubj[t]},qcsubi[t]}}^{\mathtt{qcsubk[t]}} + \mathtt{qcval[t]},\]for \(t=\idxbeg,\ldots,\idxend{numqcnz}\).
Please note that:
 For large problems it is essential for the efficiency that the function
Task.putmaxnumqnz
is employed to preallocate space.  Only the lower triangular parts should be specified because the \(Q\) matrices are symmetric. Specifying entries where \(i < j\) will result in an error.
 Only nonzero elements should be specified.
 The order in which the nonzero elements are specified is insignificant.
 Duplicate elements are added together as shown above. Hence, it is usually not recommended to specify the same entry multiple times.
For a code example see Section Quadratic Optimization
Parameters:
(qcsubk
int
[]
) – Constraint subscripts for quadratic coefficients. (input)
(qcsubi
int
[]
) – Row subscripts for quadratic constraint matrix. (input)
(qcsubj
int
[]
) – Column subscripts for quadratic constraint matrix. (input)
(qcval
float
[]
) – Quadratic constraint coefficient values. (input)
Groups:  For large problems it is essential for the efficiency that the function

Task.putqconk
¶ def putqconk (k, qcsubi, qcsubj, qcval)
Replaces all the quadratic entries in one constraint. This function performs the same operations as
Task.putqcon
but only with respect to constraint numberk
and it does not modify the other constraints. See the description ofTask.putqcon
for definitions and important remarks.Parameters:
(k
int
) – The constraint in which the new \(Q\) elements are inserted. (input)
(qcsubi
int
[]
) – Row subscripts for quadratic constraint matrix. (input)
(qcsubj
int
[]
) – Column subscripts for quadratic constraint matrix. (input)
(qcval
float
[]
) – Quadratic constraint coefficient values. (input)
Groups:

Task.putqobj
¶ def putqobj (qosubi, qosubj, qoval)
Replace all quadratic terms in the objective. If the objective has the form
\[\half \sum_{i=0}^{\idxend{numvar}} \sum_{j=0}^{\idxend{numvar}} q_{ij}^o x_i x_j + \sum_{j=0}^{\idxend{numvar}} c_{j} x_j + c^f\]then this function sets all the quadratic terms to zero and then performs the update:
\[q_{\mathtt{qosubi[t]},\mathtt{qosubj[t]}}^{o} = q_{\mathtt{\mathtt{qosubj[t]},qosubi[t]}}^{o} = q_{\mathtt{\mathtt{qosubj[t]},qosubi[t]}}^{o} + \mathtt{qoval[t]},\]for \(t=\idxbeg,\ldots,\idxend{numqonz}\).
See the description of
Task.putqcon
for important remarks and example.Parameters:
(qosubi
int
[]
) – Row subscripts for quadratic objective coefficients. (input)
(qosubj
int
[]
) – Column subscripts for quadratic objective coefficients. (input)
(qoval
float
[]
) – Quadratic objective coefficient values. (input)
Groups:

Task.putqobjij
¶ def putqobjij (i, j, qoij)
Replaces one coefficient in the quadratic term in the objective. The function performs the assignment
\[q_{ij}^o = q_{ji}^o = \mathtt{qoij}.\]Only the elements in the lower triangular part are accepted. Setting \(q_{ij}\) with \(j>i\) will cause an error.
Please note that replacing all quadratic elements one by one is more computationally expensive than replacing them all at once. Use
Task.putqobj
instead whenever possible.Parameters:
(i
int
) – Row index for the coefficient to be replaced. (input)
(j
int
) – Column index for the coefficient to be replaced. (input)
(qoij
float
) – The new value for \(q_{ij}^o\). (input)
Groups:

Task.putskc
¶ def putskc (whichsol, skc)
Sets the status keys for the constraints.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(skc
mosek.stakey
[]
) – Status keys for the constraints. (input)
Groups:

Task.putskcslice
¶ def putskcslice (whichsol, first, last, skc)
Sets the status keys for a slice of the constraints.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(skc
mosek.stakey
[]
) – Status keys for the constraints. (input)
Groups:

Task.putskx
¶ def putskx (whichsol, skx)
Sets the status keys for the scalar variables.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(skx
mosek.stakey
[]
) – Status keys for the variables. (input)
Groups:

Task.putskxslice
¶ def putskxslice (whichsol, first, last, skx)
Sets the status keys for a slice of the variables.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(skx
mosek.stakey
[]
) – Status keys for the variables. (input)
Groups:

Task.putslc
¶ def putslc (whichsol, slc)
Sets the \(s_l^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(slc
float
[]
) – Dual variables corresponding to the lower bounds on the constraints. (input)
Groups:

Task.putslcslice
¶ def putslcslice (whichsol, first, last, slc)
Sets a slice of the \(s_l^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(slc
float
[]
) – Dual variables corresponding to the lower bounds on the constraints. (input)
Groups:

Task.putslx
¶ def putslx (whichsol, slx)
Sets the \(s_l^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(slx
float
[]
) – Dual variables corresponding to the lower bounds on the variables. (input)
Groups:

Task.putslxslice
¶ def putslxslice (whichsol, first, last, slx)
Sets a slice of the \(s_l^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(slx
float
[]
) – Dual variables corresponding to the lower bounds on the variables. (input)
Groups:

Task.putsnx
¶ def putsnx (whichsol, sux)
Sets the \(s_n^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sux
float
[]
) – Dual variables corresponding to the upper bounds on the variables. (input)
Groups:

Task.putsnxslice
¶ def putsnxslice (whichsol, first, last, snx)
Sets a slice of the \(s_n^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(snx
float
[]
) – Dual variables corresponding to the conic constraints on the variables. (input)
Groups:

Task.putsolution
¶ def putsolution (whichsol, skc, skx, skn, xc, xx, y, slc, suc, slx, sux, snx)
Inserts a solution into the task.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(skc
mosek.stakey
[]
) – Status keys for the constraints. (input)
(skx
mosek.stakey
[]
) – Status keys for the variables. (input)
(skn
mosek.stakey
[]
) – Status keys for the conic constraints. (input)
(xc
float
[]
) – Primal constraint solution. (input)
(xx
float
[]
) – Primal variable solution. (input)
(y
float
[]
) – Vector of dual variables corresponding to the constraints. (input)
(slc
float
[]
) – Dual variables corresponding to the lower bounds on the constraints. (input)
(suc
float
[]
) – Dual variables corresponding to the upper bounds on the constraints. (input)
(slx
float
[]
) – Dual variables corresponding to the lower bounds on the variables. (input)
(sux
float
[]
) – Dual variables corresponding to the upper bounds on the variables. (input)
(snx
float
[]
) – Dual variables corresponding to the conic constraints on the variables. (input)
Groups:

Task.putsolutioni
Deprecated¶ def putsolutioni (accmode, i, whichsol, sk, x, sl, su, sn)
Sets the primal and dual solution information for a single constraint or variable.
Parameters:
(accmode
mosek.accmode
) – Defines whether solution information for a constraint (accmode.con
) or for a variable (accmode.var
) is modified. (input)
(i
int
) – Index of the constraint or variable. (input)
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sk
mosek.stakey
) – Status key of the constraint or variable. (input)
(x
float
) – Solution value of the primal constraint or variable. (input)
(sl
float
) – Solution value of the dual variable associated with the lower bound. (input)
(su
float
) – Solution value of the dual variable associated with the upper bound. (input)
(sn
float
) – Solution value of the dual variable associated with the conic constraint. (input)
Groups:

Task.putsolutionyi
¶ def putsolutionyi (i, whichsol, y)
Inputs the dual variable of a solution.
Parameters:
(i
int
) – Index of the dual variable. (input)
(whichsol
mosek.soltype
) – Selects a solution. (input)
(y
float
) – Solution value of the dual variable. (input)

Task.putstrparam
¶ def putstrparam (param, parvalue)
Sets the value of a string parameter.
Parameters:
(param
mosek.sparam
) – Which parameter. (input)
(parvalue
str
) – Parameter value. (input)
Groups:

Task.putsuc
¶ def putsuc (whichsol, suc)
Sets the \(s_u^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(suc
float
[]
) – Dual variables corresponding to the upper bounds on the constraints. (input)
Groups:

Task.putsucslice
¶ def putsucslice (whichsol, first, last, suc)
Sets a slice of the \(s_u^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(suc
float
[]
) – Dual variables corresponding to the upper bounds on the constraints. (input)
Groups:

Task.putsux
¶ def putsux (whichsol, sux)
Sets the \(s_u^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(sux
float
[]
) – Dual variables corresponding to the upper bounds on the variables. (input)
Groups:

Task.putsuxslice
¶ def putsuxslice (whichsol, first, last, sux)
Sets a slice of the \(s_u^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(sux
float
[]
) – Dual variables corresponding to the upper bounds on the variables. (input)
Groups:

Task.puttaskname
¶ def puttaskname (taskname)
Assigns a new name to the task.
Parameters:
(taskname
str
) – Name assigned to the task. (input)Groups: Naming

Task.putvarbound
¶ def putvarbound (j, bk, bl, bu)
Changes the bounds for one variable.
If the bound value specified is numerically larger than
dparam.data_tol_bound_inf
it is considered infinite and the bound key is changed accordingly. If a bound value is numerically larger thandparam.data_tol_bound_wrn
, a warning will be displayed, but the bound is inputted as specified.Parameters:
(j
int
) – Index of the variable. (input)
(bk
mosek.boundkey
) – New bound key. (input)
(bl
float
) – New lower bound. (input)
(bu
float
) – New upper bound. (input)
Groups:

Task.putvarboundlist
¶ def putvarboundlist (sub, bkx, blx, bux)
Changes the bounds for one or more variables. If multiple bound changes are specified for a variable, then only the last change takes effect. Data checks are performed as in
Task.putvarbound
.Parameters:
(sub
int
[]
) – List of variable indexes. (input)
(bkx
mosek.boundkey
[]
) – Bound keys for the variables. (input)
(blx
float
[]
) – Lower bounds for the variables. (input)
(bux
float
[]
) – Upper bounds for the variables. (input)
Groups:

Task.putvarboundslice
¶ def putvarboundslice (first, last, bk, bl, bu)
Changes the bounds for a slice of the variables. Data checks are performed as in
Task.putvarbound
.Parameters:
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(bk
mosek.boundkey
[]
) – Bound keys. (input)
(bl
float
[]
) – Values for lower bounds. (input)
(bu
float
[]
) – Values for upper bounds. (input)
Groups:

Task.putvarname
¶ def putvarname (j, name)
Sets the name of a variable.
Parameters:
(j
int
) – Index of the variable. (input)
(name
str
) – The variable name. (input)
Groups:

Task.putvartype
¶ def putvartype (j, vartype)
Sets the variable type of one variable.
Parameters:
(j
int
) – Index of the variable. (input)
(vartype
mosek.variabletype
) – The new variable type. (input)
Groups:

Task.putvartypelist
¶ def putvartypelist (subj, vartype)
Sets the variable type for one or more variables. If the same index is specified multiple times in
subj
only the last entry takes effect.Parameters:
(subj
int
[]
) – A list of variable indexes for which the variable type should be changed. (input)
(vartype
mosek.variabletype
[]
) – A list of variable types that should be assigned to the variables specified bysubj
. (input)
Groups:

Task.putxc
¶ def putxc (whichsol, xc)
Sets the \(x^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(xc
float
[]
) – Primal constraint solution. (output)
Groups:

Task.putxcslice
¶ def putxcslice (whichsol, first, last, xc)
Sets a slice of the \(x^c\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(xc
float
[]
) – Primal constraint solution. (input)
Groups:

Task.putxx
¶ def putxx (whichsol, xx)
Sets the \(x^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(xx
float
[]
) – Primal variable solution. (input)
Groups:

Task.putxxslice
¶ def putxxslice (whichsol, first, last, xx)
Obtains a slice of the \(x^x\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(xx
float
[]
) – Primal variable solution. (input)
Groups:

Task.puty
¶ def puty (whichsol, y)
Sets the \(y\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(y
float
[]
) – Vector of dual variables corresponding to the constraints. (input)
Groups:

Task.putyslice
¶ def putyslice (whichsol, first, last, y)
Sets a slice of the \(y\) vector for a solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(first
int
) – First index in the sequence. (input)
(last
int
) – Last index plus 1 in the sequence. (input)
(y
float
[]
) – Vector of dual variables corresponding to the constraints. (input)
Groups:

Task.readdata
¶ def readdata (filename)
Reads an optimization problem and associated data from a file.
Parameters:
(filename
str
) – A valid file name. (input)Groups: Data file

Task.readdataformat
¶ def readdataformat (filename, format, compress)
Reads an optimization problem and associated data from a file.
Parameters:
(filename
str
) – A valid file name. (input)
(format
mosek.dataformat
) – File data format. (input)
(compress
mosek.compresstype
) – File compression type. (input)
Groups:

Task.readparamfile
¶ def readparamfile (filename)
Reads MOSEK parameters from a file. Data is read from the file
filename
if it is a nonempty string. Otherwise data is read from the file specified bysparam.param_read_file_name
.Parameters:
(filename
str
) – A valid file name. (input)Groups: Data file

Task.readsolution
¶ def readsolution (whichsol, filename)
Reads a solution file and inserts it as a specified solution in the task. Data is read from the file
filename
if it is a nonempty string. Otherwise data is read from one of the files specified bysparam.bas_sol_file_name
,sparam.itr_sol_file_name
orsparam.int_sol_file_name
depending on which solution is chosen.Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(filename
str
) – A valid file name. (input)
Groups:

Task.readsummary
¶ def readsummary (whichstream)
Prints a short summary of last file that was read.
Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)Groups: Task diagnostics

Task.readtask
¶ def readtask (filename)
Load task data from a file, replacing any data that already exists in the task object. All problem data, parameters and other settings are resorted, but if the file contains solutions, the solution status after loading a file is set to unknown, even if it was optimal or otherwise welldefined when the file was dumped.
See section The Task Format for a description of the Task format.
Parameters:
(filename
str
) – A valid file name. (input)

Task.removebarvars
¶ def removebarvars (subset)
The function removes a subset of the symmetric matrices from the optimization task. This implies that the remaining symmetric matrices are renumbered.
Parameters:
(subset
int
[]
) – Indexes of symmetric matrices which should be removed. (input)Groups: Symmetric matrix variable data

Task.removecones
¶ def removecones (subset)
Removes a number of conic constraints from the problem. This implies that the remaining conic constraints are renumbered. In general, it is much more efficient to remove a cone with a high index than a low index.
Parameters:
(subset
int
[]
) – Indexes of cones which should be removed. (input)Groups: Conic constraint data

Task.removecons
¶ def removecons (subset)
The function removes a subset of the constraints from the optimization task. This implies that the remaining constraints are renumbered.
Parameters:
(subset
int
[]
) – Indexes of constraints which should be removed. (input)Groups: Linear constraint data

Task.removevars
¶ def removevars (subset)
The function removes a subset of the variables from the optimization task. This implies that the remaining variables are renumbered.
Parameters:
(subset
int
[]
) – Indexes of variables which should be removed. (input)Groups: Scalar variable data

Task.resizetask
¶ def resizetask (maxnumcon, maxnumvar, maxnumcone, maxnumanz, maxnumqnz)
Sets the amount of preallocated space assigned for each type of data in an optimization task.
It is never mandatory to call this function, since it only gives a hint about the amount of data to preallocate for efficiency reasons.
Please note that the procedure is destructive in the sense that all existing data stored in the task is destroyed.
Parameters:
(maxnumcon
int
) – New maximum number of constraints. (input)
(maxnumvar
int
) – New maximum number of variables. (input)
(maxnumcone
int
) – New maximum number of cones. (input)
(maxnumanz
int
) – New maximum number of nonzeros in \(A\). (input)
(maxnumqnz
int
) – New maximum number of nonzeros in all \(Q\) matrices. (input)

Task.sensitivityreport
¶ def sensitivityreport (whichstream)
Reads a sensitivity format file from a location given by
sparam.sensitivity_file_name
and writes the result to the streamwhichstream
. Ifsparam.sensitivity_res_file_name
is set to a nonempty string, then the sensitivity report is also written to a file of this name.Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)Groups: Sensitivity analysis

Task.set_InfoCallback
¶ def set_InfoCallback (callback)
Receive callbacks with solver status and information during optimization.
For example:
task.set_Progress(lambda code,dinf,iinf,liinf: print("Called from: {0}".format(code)))
Parameters:
(callback
callbackfunc
) – The callback function. (input)

Task.set_Progress
¶ def set_Progress (callback)
Receive callbacks about current status of the solver during optimization.
For example:
task.set_Progress(lambda code: print("Called from: {0}".format(code)))
Parameters:
(callback
progresscallbackfunc
) – The callback function. (input)

Task.set_Stream
¶ def set_Stream (whichstream, callback)
Directs all output from a task stream to a callback function.
Parameters:
(whichstream
streamtype
) – Index of the stream. (input)
(callback
streamfunc
) – The callback function. (input)

Task.setdefaults
¶ def setdefaults ()
Resets all the parameters to their default values.
Groups: Parameter management

Task.solutiondef
¶ def solutiondef (whichsol) > isdef
Checks whether a solution is defined.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Return:
(isdef
int
) – Is nonzero if the requested solution is defined.Groups: Solution information

Task.solutionsummary
¶ def solutionsummary (whichstream)
Prints a short summary of the current solutions.
Parameters:
(whichstream
mosek.streamtype
) – Index of the stream. (input)Groups: Task diagnostics

Task.solvewithbasis
¶ def solvewithbasis (transp, numnz, sub, val) > numnz
If a basic solution is available, then exactly \(numcon\) basis variables are defined. These \(numcon\) basis variables are denoted the basis. Associated with the basis is a basis matrix denoted \(B\). This function solves either the linear equation system
(2)¶\[B \barX = b\]or the system
(3)¶\[B^T \barX = b\]for the unknowns \(\barX\), with \(b\) being a userdefined vector. In order to make sense of the solution \(\barX\) it is important to know the ordering of the variables in the basis because the ordering specifies how \(B\) is constructed. When calling
Task.initbasissolve
an ordering of the basis variables is obtained, which can be used to deduce how MOSEK has constructed \(B\). Indeed if the \(k\)th basis variable is variable \(x_j\) it implies that\[B_{i,k} = A_{i,j}, ~i=\idxbeg,\ldots,\idxend{numcon}.\]Otherwise if the \(k\)th basis variable is variable \(x_j^c\) it implies that
\[\begin{split}B_{i,k} = \left\{ \begin{array}{ll} 1, & i = j, \\ 0 , & i \neq j. \\ \end{array} \right.\end{split}\]The function
Task.initbasissolve
must be called before a call to this function. Please note that this function exploits the sparsity in the vector \(b\) to speed up the computations.Parameters:
(transp
int
) – If this argument is zero, then (2) is solved, if nonzero then (3) is solved. (input)
(numnz
int
) – As input it is the number of nonzeros in \(b\). As output it is the number of nonzeros in \(\barX\). (input/output)
(sub
int
[]
) – As input it contains the positions of nonzeros in \(b\). As output it contains the positions of the nonzeros in \(\barX\). It must have room for \(numcon\) elements. (input/output)
(val
float
[]
) – As input it is the vector \(b\) as a dense vector (although the positions of nonzeros are specified insub
it is required that \(\mathtt{val}[i] = 0\) when \(b[i] = 0\)). As outputval
is the vector \(\barX\) as a dense vector. It must have length \(numcon\). (input/output)
Return:
(numnz
int
) – As input it is the number of nonzeros in \(b\). As output it is the number of nonzeros in \(\barX\).Groups:

Task.strtoconetype
¶ def strtoconetype (str) > conetype
Obtains cone type code corresponding to a cone type string.
Parameters:
(str
str
) – String corresponding to the cone type codeconetype
. (input)Return:
(conetype
mosek.conetype
) – The cone type corresponding to the stringstr
.

Task.strtosk
¶ def strtosk (str) > sk
Obtains the status key corresponding to an explanatory string.
Parameters:
(str
str
) – Status key string. (input)Return:
(sk
int
) – Status key corresponding to the string.

Task.toconic
¶ def toconic ()
This function tries to reformulate a given Quadratically Constrained Quadratic Optimization problem (QCQP) as a Conic Quadratic Optimization problem (CQO). The first step of the reformulation is to convert the quadratic term of the objective function, if any, into a constraint. Then the following steps are repeated for each quadratic constraint:
 a conic constraint is added along with a suitable number of auxiliary variables and constraints;
 the original quadratic constraint is not removed, but all its coefficients are zeroed out.
Note that the reformulation preserves all the original variables.
The conversion is performed inplace, i.e. the task passed as argument is modified on exit. That also means that if the reformulation fails, i.e. the given QCQP is not representable as a CQO, then the task has an undefined state. In some cases, users may want to clone the task to ensure a clean copy is preserved.

Task.updatesolutioninfo
¶ def updatesolutioninfo (whichsol)
Update the information items related to the solution.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)Groups: Task diagnostics

Task.writedata
¶ def writedata (filename)
Writes problem data associated with the optimization task to a file in one of the supported formats. See Section Supported File Formats for the complete list.
By default the data file format is determined by the file name extension. This behaviour can be overridden by setting the
iparam.write_data_format
parameter. To write in compressed format append the extension.gz
. E.g to write a gzip compressed MPS file use the extensionmps.gz
.Please note that MPS, LP and OPF files require all variables to have unique names. If a task contains no names, it is possible to write the file with automatically generated anonymous names by setting the
iparam.write_generic_names
parameter toonoffkey.on
.Data is written to the file
filename
if it is a nonempty string. Otherwise data is written to the file specified bysparam.data_file_name
.Please note that if a general nonlinear function appears in the problem then such function cannot be written to file and MOSEK will issue a warning.
Parameters:
(filename
str
) – A valid file name. (input)Groups: Data file

Task.writejsonsol
¶ def writejsonsol (filename)
Saves the current solutions and solver information items in a JSON file.
Parameters:
(filename
str
) – A valid file name. (input)Groups: Data file

Task.writeparamfile
¶ def writeparamfile (filename)
Writes all the parameters to a parameter file.
Parameters:
(filename
str
) – A valid file name. (input)Groups: Data file

Task.writesolution
¶ def writesolution (whichsol, filename)
Saves the current basic, interiorpoint, or integer solution to a file.
Parameters:
(whichsol
mosek.soltype
) – Selects a solution. (input)
(filename
str
) – A valid file name. (input)
Groups:

Task.writetask
¶ def writetask (filename)
Write a binary dump of the task data. This format saves all problem data, coefficients and parameter settings but does not save callback functions and general nonlinear terms.
See section The Task Format for a description of the Task format.
Parameters:
(filename
str
) – A valid file name. (input)

Task.writetasksolverresult_file
¶ def writetasksolverresult_file (filename)
Internal
Parameters:
(filename
str
) – A valid file name. (input)