00001 #ifndef MAXDET_H
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00025
00026
00027
00028 #ifndef SQR
00029 #define SQR(x) ((x)*(x))
00030 #endif
00031 #ifndef MAX
00032 #define MAX(x,y) ((x) > (y) ? (x) : (y))
00033 #endif
00034 #ifndef MIN
00035 #define MIN(x,y) ((x) < (y) ? (x) : (y))
00036 #endif
00037
00038
00039
00040
00041 #define NB 32
00042 #define MINABSTOL 1e-10
00043 #define MAXITERS 100
00044 #define CENTOL 1e-3
00045 #define LSTOL 1e-3
00046 #define TOLC 1e-5
00047 #define SIGTOL 1e-5
00048
00049 #define MINRCOND 1e-10
00050 #define LSITERUB 30
00051
00052 #define YES 1
00053 #define NO 0
00054
00055 #define VERSION "alpha (Apr. 1996)"
00056
00057
00058 #ifdef nounderscores
00059 #define daxpy_ daxpy
00060 #define dcopy_ dcopy
00061 #define ddot_ ddot
00062 #define dgemv_ dgemv
00063 #define dnrm2_ dnrm2
00064 #define dscal_ dscal
00065 #endif
00066
00067
00068 void mydlascl(double from,double to,int m,int n,double *A);
00069
00070 void disp_imat(FILE* fp, int* ip, int r, int c, int att);
00071 void disp_mat(FILE* fp, double* dp,int r, int c, int att);
00072
00073 double eig_val(double*sig, double* ap, int L, int* blck_szs, int Npd, double* work);
00074
00075 int maxdet(
00076 int m, int L, double *F, int *F_blkszs, int K, double *G, int *G_blkszs,
00077 double *c, double *x, double *Z, double *W, double *ul, double *hist,
00078 double gamma, double abstol, double reltol, int *NTiters, double *work,
00079 int lwork, int *iwork, int *info, int negativeFlag
00080 );
00081 #define MAXDET_H
00082 #endif