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