DSDP
sdpfun.h
1 
2 /*
3  * common functions
4  */
5 #if !defined (min)
6 #define min(a,b) ((a <= b)? (a) : (b))
7 #endif
8 #if !defined (max)
9 #define max(a,b) ((a >= b)? (a) : (b))
10 #endif
11 #if !defined (sign)
12 #define sign(a) ((a<0)? (-1) : (1))
13 #endif
14 
15 /*
16  * functions in sdpallo.c
17  */
18 int iAlloc(int,char*,int**);
19 void iFree(int**);
20 int dAlloc(int,char*,double**);
21 void dFree(double**);
22 void cFree(char**);
23 int LvalAlloc(chfac*,char*);
24 int CfcAlloc(int,char*,chfac**);
25 void CfcFree(chfac**);
26 int dPtAlloc(int,char*,double ***);
27 void dPtFree(double***);
28 
29 /*
30  * functions in sdpmain.c
31  */
32 void GetUhat(chfac*,double*,double*);
33 
34 /*
35  * functions in sdpshut.c
36  */
37 void ShutDown(void);
38 int ExitProc(int,char*);
39 
40 
41 /*
42  * functions in sdplib.a
43  */
44 void DotProd(double*,chfac*);
45 
46 void ForwSubst(chfac*,double*,double*);
47 int iSum(int,int*);
48 void dCopy(int,double*,double*);
49 int ChlFact(chfac*,int*,double*,int);
50 void ChlSolve(chfac*,double*,double*);
51 void ChlSolveForward(chfac*, double*, double*);
52 void ChlSolveBackward(chfac*, double*, double*);
53 int SymbProc(int*,int*,int,chfac**);
54 void iCopy(int,int*,int*);
55 
56 int OdAlloc(int,int,char*,order**);
57 void OdFree(order**);
58 void OdInit(order*,int*);
59 void OdIndex(order*,int,int);
60 void OdProc(order*,xlist*,int*,int*,int*,int*,int*,
61  int*,int*,int*,int*,int*,int*,int*,int*);
62 int GetOrder(order*,int*);
63 
64 void DotProd(double*,chfac*);
65 
66 /* void CfcInit(chfac*,symat*,double*); */
67 int ChlFact(chfac*,int*,double*,int);
68 void copyChl(chfac *, chfac *);
69 
70 /* void PermSmatx(smatx*,int*,int*); */
71 
72 int XtAlloc(int,int,char*,xlist**);
73 void XtFree(xlist**);
74 int XtSucc(xlist*);
75 void XtDel(xlist*,int);
76 void XtPut(xlist*,int,int);
77 int XtLeast(xlist*);
78 int XtGet(xlist*,int*,int*);
79 
80 int IptAlloc(int,int,int**,char*);
81 void IptFree(int,int**);
82 int LocIntPos(int,int,int*);
83 void PermTransSym(int,int*,int*,int*,int*,int,int*,int*,int*);
84 
85 void iZero(int,int*,int*);
86 void iFill(int,int,int*,int*,int*);
87 void iSwap(int,int,int*);
88 void iCopy(int,int*,int*);
89 int iSum(int,int*);
90 void dZero(int,double*,int*,int*);
91 void dCopy(int,double*,double*);
92 void dCat(int,int*,double*,double*);
93 double dSum(int,double*);
94 void PlusByOne(int,int*,int*,int*);
95 
96 void iSet(int, int, int *, int *);
97 void plusXs(int, int*, int*);
98 
99 int MatMult4(chfac *,double *,double*,int);
100 int Mat4LogDet(chfac *,double *);
101 int MatZeroEntries4(chfac *);
102 int MatSolve4(chfac *,double *,double*,int);
103 void CfcFree(chfac**);
104 int MatSetColumn4(chfac *, double *, int);
105 int MatAddColumn4(chfac *, double,double *, int);
106 int MchlSetup2(int m, chfac** A);
107 int MatSetValue4(chfac *, int,int,double, int);
108 int Mat4GetDiagonal(chfac*, double *,int);
109 int Mat4SetDiagonal(chfac*, double *,int);
110 int Mat4AddDiagonal(chfac*, double *,int);
111 int MatAddDiagonalElement(chfac*,int, double);
112 int Mat4View(chfac *);
113 int Mat4DiagonalShift(chfac*, double);