2 This file is part of the CSDP 5.0 package developed by Dr. Brian Borchers.
3 Which can be distributed under the LGPL licence. The source code and
4 manual can be downloaded at http://euler.nmt.edu/~brian/csdp.html.
6 This file contains definitions for the block matrix data structures used
7 in CSDP 3.0. Note that there are an additional set of definitions used
8 for sparse constraint matrices.
13 Each block is a diagonal block or a matrix
16 enum blockcat {DIAG, MATRIX, PACKEDMATRIX};
19 A block data record contains a pointer to the actual data for the block.
20 Note that matrices are stored in Fortran form, while vectors are stored
21 using indices 1, 2, ..., n.
30 A block record describes an individual block within a matrix.
34 union blockdatarec data;
35 enum blockcat blockcategory;
37 unsigned short blocksize;
44 A block matrix contains an entire matrix in block diagonal form.
49 struct blockrec *blocks;
53 Definition for constraint matrices.
57 * There's one of these for each nonzero block in each constraint matrix.
60 struct sparseblock *next;
61 struct sparseblock *nextbyblock;
64 unsigned short *iindices;
65 unsigned short *jindices;
67 unsigned short blocknum;
68 unsigned short blocksize;
69 unsigned short constraintnum;
70 unsigned short issparse;
84 * A constraint matrix is just an array of pointers to linked lists of
85 * the constraint blocks.
88 struct constraintmatrix {
89 struct sparseblock *blocks;