DSDP
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
src
vecmat
numchol.h
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <math.h>
4
#include <string.h>
5
6
typedef
enum
{
7
CfcOk=0,
8
CfcSpace,
/* fail to allocate required space */
9
CfcIndef
/* indefinity is detected */
10
} cfc_sta;
11
12
typedef
struct
{
13
int
mrow;
/* number of rows allocated */
14
int
nrow;
/* number of rows used */
15
16
int
snnz;
/* number of indices for nonzeros in S */
17
int
*shead;
/* position of first nonzero in row i of S */
18
int
*ssize;
/* number of non-zeros in row i of S below */
19
/* the diagonal */
20
int
*ssub;
/* column index buffer for non-zeros in S */
21
double
*diag;
/* diagonal matrix D in the factorization */
22
double
*sqrtdiag;
/* sqrt o diagonal matrix D in the factorization */
23
24
int
unnz;
/* number of nonzeros in the upper factor */
25
int
ujnz;
/* number of column indices in the compressed */
26
/* indices buffer ujsub */
27
int
*ujbeg;
/* beginning position of indices in row i of U */
28
int
*uhead;
/* position of first nonzero in row i of U */
29
int
*ujsze;
/* number of indices in row i of U */
30
int
*usub;
/* compressed column index buffer of U */
31
double
*uval;
/* nonzero values in factor U */
32
33
int
*perm;
/* permutation order */
34
int
*invp;
/* inverse order of perm */
35
36
int
nsnds;
/* number of supernodes */
37
int
*subg;
/* index of the first column in supernode i */
38
int
ndens;
/* numer of dense rows */
39
int
nsndn;
/* number supernodes in dense rows */
40
int
*dhead;
/* pointer first column in each dense row */
41
int
*dsub;
/* indices in dense rows */
42
int
*dbeg;
/* beginning of column index */
43
int
sdens;
/* separate dense row */
44
45
int
alldense;
46
47
double
tolpiv;
48
int
cachesize;
49
int
cacheunit;
50
51
/* New */
52
int
n;
53
int
*iw;
54
double
*rw;
55
int
factor;
56
} chfac;
57
58
59
typedef
struct
{
60
int
idep;
61
int
last;
62
int
most;
63
int
cure;
64
int
loca;
65
int
lowp;
66
int
ntot;
67
68
int
*head;
69
int
*port;
70
int
*fwrd;
71
int
*bwrd;
72
} xlist;
73
74
typedef
struct
{
75
int
nnod;
76
int
nn0;
77
int
raft;
78
int
head;
79
int
last;
80
int
ntot;
81
82
int
*adjn;
83
int
*rbeg;
84
int
*rexs;
85
int
*rlen;
86
int
*rend;
87
int
*pres;
88
int
*succ;
89
} order;
90
91
typedef
enum
{
92
OptFound=0,
93
SysError=100,
94
OutOfSpc,CholErr
95
} xcode;
96
97
#if !defined (min)
98
#define min(a,b) ((a <= b)? (a) : (b))
99
#endif
100
#if !defined (max)
101
#define max(a,b) ((a >= b)? (a) : (b))
102
#endif
103
#if !defined (sign)
104
#define sign(a) ((a<0)? (-1) : (1))
105
#endif
106
#if !defined (TRUE)
107
#define TRUE 1
108
#endif
109
#if !defined (FALSE)
110
#define FALSE 0
111
#endif
112
113
#include "sdpfun.h"
Generated by
1.8.11