# siconos.numerics.MLCP (Python class)¶

class siconos.numerics.MLCP(*args)[source]

Bases: object

The Structure that contains and defines MLCProblem.

Find $$(z,w)$$ such that: $$\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]$$ $$u, w_{1}$$ are vectors of size n. $$v, w_{2}$$ are vectors of size m.

Generated class (swig), based on C++ header Program listing for file numerics/src/MLCP/MixedLinearComplementarityProblem.h.

Attributes: A (array_like (np.float64, 1D)) – NumericsMatrix* Bblock;. < Bblock ? A matrix of the MLCP a (array_like (np.float64, 1D)) – a vector of the MLCP B (array_like (np.float64, 1D)) – B matrix of the MLCP. b (array_like (np.float64, 1D)) – b vector of the MLCP blocksIsComp (int *) – 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. blocksRows (int *) – 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 C (array_like (np.float64, 1D)) – C matrix of the MLCP. D (array_like (np.float64, 1D)) – D matrix of the MLCP. isStorageType1 (int) – boolean for storageType1 1 if the problem is saved using (M,q), 0 otherwise isStorageType2 (int) – boolean for storageType2 1 if the problem is saved using (A,B,C,D,a,b), 0 otherwise m (int) – number of complementarity constraints M (NumericsMatrix *) – M matrix of the MLCP. n (int) – number of equality constraints q (array_like (np.float64, 1D)) – q vector of the MLCP