Struct MixedLinearComplementarityProblem#

Defined in Program listing for file numerics/src/MLCP/MixedLinearComplementarityProblem.h

struct MixedLinearComplementarityProblem

The Structure that contains and defines MLCProblem.

Find \( (z,w) \) such that:

\[\begin{split} \left\{ \begin{array}{l} M \ z + q = w \\ w_1=0 \\ 0 \le w_{2} \perp v \ge 0 \end{array} \right. \text{ with } z= \left[ \begin{array}{c} u\\ v\\ \end{array} \right] \text{ and } w= \left[ \begin{array}{c} w_{1}\\ w_{2}\\ \end{array} \right] \end{split}\]

\( u, w_{1} \) are vectors of size n. \( v, w_{2} \) are vectors of size m.

ABCD format (see “R. W. {Cottle} and J. {Pang} and R. E. {Stone}”, “The Linear Complementarity Problem, Academic Press, Inc., 1992, Section 1.5 )

\[\begin{split} \left[ \begin{array}{cc} A & C \\ D & B \\ \end{array} \right] \end{split}\]

Public Members

int isStorageType1

boolean for storageType1 1 if the problem is saved using (M,q), 0 otherwise

int isStorageType2

boolean for storageType2 1 if the problem is saved using (A,B,C,D,a,b), 0 otherwise

int n

number of equality constraints

int m

number of complementarity constraints

int *blocksRows

The rows from blocksRows[i] to blocksRows[i+1]-1 forms a block of equalities iif bloksIsComp[i]=0, else the block is a complementarity block.

The number of total blocks is given by NbBlocks such that blocksRows[NbBlocks] = n+m

int *blocksIsComp

if bloksIsComp[i]=0, then block i formed by the rows from blocksRows[i] to blocksRows[i+1]-1 is an equality block else the block is a complementarity block.

NumericsMatrix *M

M matrix of the MLCP.

double *q

q vector of the MLCP

double *A

A matrix of the MLCP.

double *B

B matrix of the MLCP.

double *C

C matrix of the MLCP.

double *D

D matrix of the MLCP.

double *a

a vector of the MLCP

double *b

b vector of the MLCP