DSDP
|
00001 00002 /* 00003 * common functions 00004 */ 00005 #if !defined (min) 00006 #define min(a,b) ((a <= b)? (a) : (b)) 00007 #endif 00008 #if !defined (max) 00009 #define max(a,b) ((a >= b)? (a) : (b)) 00010 #endif 00011 #if !defined (sign) 00012 #define sign(a) ((a<0)? (-1) : (1)) 00013 #endif 00014 00015 /* 00016 * functions in sdpallo.c 00017 */ 00018 int iAlloc(int,char*,int**); 00019 void iFree(int**); 00020 int dAlloc(int,char*,double**); 00021 void dFree(double**); 00022 void cFree(char**); 00023 int LvalAlloc(chfac*,char*); 00024 int CfcAlloc(int,char*,chfac**); 00025 void CfcFree(chfac**); 00026 int dPtAlloc(int,char*,double ***); 00027 void dPtFree(double***); 00028 00029 /* 00030 * functions in sdpmain.c 00031 */ 00032 void GetUhat(chfac*,double*,double*); 00033 00034 /* 00035 * functions in sdpshut.c 00036 */ 00037 void ShutDown(void); 00038 int ExitProc(int,char*); 00039 00040 00041 /* 00042 * functions in sdplib.a 00043 */ 00044 void DotProd(double*,chfac*); 00045 00046 void ForwSubst(chfac*,double*,double*); 00047 int iSum(int,int*); 00048 void dCopy(int,double*,double*); 00049 int ChlFact(chfac*,int*,double*,int); 00050 void ChlSolve(chfac*,double*,double*); 00051 void ChlSolveForward(chfac*, double*, double*); 00052 void ChlSolveBackward(chfac*, double*, double*); 00053 int SymbProc(int*,int*,int,chfac**); 00054 void iCopy(int,int*,int*); 00055 00056 int OdAlloc(int,int,char*,order**); 00057 void OdFree(order**); 00058 void OdInit(order*,int*); 00059 void OdIndex(order*,int,int); 00060 void OdProc(order*,xlist*,int*,int*,int*,int*,int*, 00061 int*,int*,int*,int*,int*,int*,int*,int*); 00062 int GetOrder(order*,int*); 00063 00064 void DotProd(double*,chfac*); 00065 00066 /* void CfcInit(chfac*,symat*,double*); */ 00067 int ChlFact(chfac*,int*,double*,int); 00068 void copyChl(chfac *, chfac *); 00069 00070 /* void PermSmatx(smatx*,int*,int*); */ 00071 00072 int XtAlloc(int,int,char*,xlist**); 00073 void XtFree(xlist**); 00074 int XtSucc(xlist*); 00075 void XtDel(xlist*,int); 00076 void XtPut(xlist*,int,int); 00077 int XtLeast(xlist*); 00078 int XtGet(xlist*,int*,int*); 00079 00080 int IptAlloc(int,int,int**,char*); 00081 void IptFree(int,int**); 00082 int LocIntPos(int,int,int*); 00083 void PermTransSym(int,int*,int*,int*,int*,int,int*,int*,int*); 00084 00085 void iZero(int,int*,int*); 00086 void iFill(int,int,int*,int*,int*); 00087 void iSwap(int,int,int*); 00088 void iCopy(int,int*,int*); 00089 int iSum(int,int*); 00090 void dZero(int,double*,int*,int*); 00091 void dCopy(int,double*,double*); 00092 void dCat(int,int*,double*,double*); 00093 double dSum(int,double*); 00094 void PlusByOne(int,int*,int*,int*); 00095 00096 void iSet(int, int, int *, int *); 00097 void plusXs(int, int*, int*); 00098 00099 int MatMult4(chfac *,double *,double*,int); 00100 int Mat4LogDet(chfac *,double *); 00101 int MatZeroEntries4(chfac *); 00102 int MatSolve4(chfac *,double *,double*,int); 00103 void CfcFree(chfac**); 00104 int MatSetColumn4(chfac *, double *, int); 00105 int MatAddColumn4(chfac *, double,double *, int); 00106 int MchlSetup2(int m, chfac** A); 00107 int MatSetValue4(chfac *, int,int,double, int); 00108 int Mat4GetDiagonal(chfac*, double *,int); 00109 int Mat4SetDiagonal(chfac*, double *,int); 00110 int Mat4AddDiagonal(chfac*, double *,int); 00111 int MatAddDiagonalElement(chfac*,int, double); 00112 int Mat4View(chfac *); 00113 int Mat4DiagonalShift(chfac*, double);