1 /*
2    matrix_st.h -- The `matrix' structure.
3 
4    Copyright (C) 1994-95  K. Scott Hunziker.
5    Copyright (C) 1990-94  The Boeing Company.
6 
7    See the file COPYING for license, warranty, and permission details.
8  */
9 
10 /* $Id: matrix_st.h,v 1.1.1.1 1996/04/17 05:56:19 ksh Exp $ */
11 
12 #ifndef  MATRIX_ST_H
13 #define  MATRIX_ST_H	1
14 
15 #include "entity.h"
16 
17 struct matrix
18   {
19     ENTITY entity;
20     SYMMETRY symmetry;
21     TYPE type;
22     ORDER order;
23     DENSITY density;
24     ENTITY *rid;
25     ENTITY *cid;
26     int nr;			/* number of rows */
27     int nc;			/* number of columns */
28     int nn;			/* number of nonzero elements */
29     int *ia;			/* integer vector of length nr+1 */
30     int *ja;			/* integer vector of length nn */
31     TABLE *stuff;
32     VAL_PTR a;			/* numeric/character components */
33     VAL_PTR d;			/* diagonal values (sparse_upper) */
34   };
35 
36 /*
37  * Each member of the MATRIX structure
38  * has a corresponding member in this
39  * enumeration.  `END_Matrix' marks
40  * the end of the enumeration.
41  */
42 
43 typedef enum
44   {
45     MatrixClass,
46     MatrixType,
47     MatrixSymmetry,
48     MatrixOrder,
49     MatrixDensity,
50     MatrixRid,
51     MatrixCid,
52     MatrixNr,
53     MatrixNc,
54     MatrixNn,
55     END_Matrix
56   }
57 MATRIX_MEMBER;
58 
59 #endif /* MATRIX_ST_H  */
60