00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00030 #include "mkl_blas.h"
00031 #include "mkl_lapack.h"
00032
00033 static __inline void daxpy(int n,double da,double *dx,int incx,double *dy,
00034 int incy)
00035 {
00036 daxpy(&n,&da,dx,&incx,dy,&incy);
00037 }
00038
00039 static __inline void dcopy(int n,double *dx,int incx,double *dy,int incy)
00040 {
00041 dcopy(&n,dx,&incx,dy,&incy);
00042 }
00043
00044 static __inline double ddot(int n,double *dx,int incx,double *dy,int incy)
00045 {
00046 return ddot(&n,dx,&incx,dy,&incy);
00047 }
00048
00049 static __inline void dgels(char *trans,int m,int n,int nrhs,double *a,
00050 int lda,double *b,int ldb,double *work,
00051 int lwork,int *info)
00052 {
00053 dgels(trans,&m,&n,&nrhs,a,&lda,b,&ldb,work,&lwork,info);
00054 }
00055
00056 static __inline void dgelss(int m, int n, int nrhs,
00057 double *a, int lda, double *b, int ldb, double *s,
00058 double rcond, int *rank,
00059 double *work, int lwork, int *info)
00060 {
00061 dgelss(&m, &n, &nrhs, a, &lda, b, &ldb, s, &rcond, rank, work, &lwork, info);
00062 }
00063
00064
00065 static __inline void dgemm(char *transa,char *transb,int m,int n,int k,
00066 double alpha,double *a,int lda,double *b,int ldb,
00067 double beta,double *c,int ldc)
00068 {
00069 dgemm(transa,transb,&m,&n,&k,&alpha,a,&lda,b,&ldb,&beta,c,&ldc);
00070 }
00071
00072
00073 static __inline void dgemv(char *trans,int m,int n,double alpha,
00074 double *a,int lda,double *dx,int incx,
00075 double beta,double *dy,int incy)
00076 {
00077 dgemv(trans,&m,&n,&alpha,a,&lda,dx,&incx,&beta,dy,&incy);
00078 }
00079
00080
00081 static __inline void dgesv(int n, int nrhs, double *a, int lda, int *ipiv,
00082 double *b, int ldb, int *info)
00083 {
00084 dgesv(&n,&nrhs,a,&lda,ipiv,b,&ldb,info);
00085 }
00086
00087
00088 static __inline void dgesvd(char *jobu,char *jobvt, int m, int n, double *a,
00089 int lda, double *s, double *u, int ldu, double *vt,
00090 int ldvt,double *work, int lwork, int *info)
00091 {
00092 dgesvd(jobu,jobvt,&m,&n,a,&lda,s,u,&ldu,vt,&ldvt,work,&lwork,info);
00093 }
00094
00095
00096
00097 static __inline void dgetrf(int m,int n,double *a,int lda,int *ipiv,int *info)
00098 {
00099 dgetrf(&m,&n,a,&lda,ipiv,info);
00100 }
00101
00102
00103
00104 static __inline void dgetri(int n,double *a,int lda,int *ipiv,double *work,
00105 int lwork,int *info)
00106 {
00107 dgetri(&n,a,&lda,ipiv,work,&lwork,info);
00108 }
00109
00110
00111
00112 static __inline void dlascl(char *type,int kl,int ku,double from,double to,
00113 int m,int n,double *a,int lda,int *info)
00114 {
00115 dlascl(type,&kl,&ku,&from,&to,&m,&n,a,&lda,info);
00116 }
00117
00118
00119
00120 static __inline double dnrm2(int n,double *dx,int incx)
00121 {
00122 return dnrm2(&n,dx,&incx);
00123 }
00124
00125
00126
00127 static __inline void dpptrf(char *uplo,int n,double *ap,int *info)
00128 {
00129 dpptrf(uplo,&n,ap,info);
00130 }
00131
00132
00133 static __inline void dscal(int n,double da,double *dx,int incx)
00134 {
00135 dscal(&n,&da,dx,&incx);
00136 }
00137
00138 static __inline void dspgst(int itype,char *uplo,int n,double *ap,
00139 double *bp,int *info)
00140 {
00141 dspgst(&itype,uplo,&n,ap,bp,info);
00142 }
00143
00144
00145
00146 static __inline void dspev(char *jobz,char *uplo, int n, double *ap,
00147 double *w, double *z, int ldz, double *work,
00148 int *info)
00149 {
00150 dspev(jobz,uplo,&n,ap,w,z,&ldz,work,info);
00151 }
00152
00153
00154
00155 static __inline void dspgv(int itype,char *jobz,char *uplo, int n, double *ap,
00156 double *bp, double *w,double *z, int ldz,
00157 double *work,int *info)
00158 {
00159 dspgv(&itype,jobz,uplo,&n,ap,bp,w,z,&ldz,work,info);
00160 }
00161
00162
00163
00164 static __inline void dtptri(char *uplo,char *diag,int n,double *ap,int *info)
00165 {
00166 dtptri(uplo,diag,&n,ap,info);
00167 }
00168
00169
00170 static __inline void dtrcon(char *norm,char *uplo,char *diag,int n,double *a,
00171 int lda,double *rcond,double *work,int *iwork,
00172 int *info)
00173 {
00174 dtrcon(norm,uplo,diag,&n,a,&lda,rcond,work,iwork,info);
00175 }
00176
00177 static __inline void dorgqr(int m, int n, int k, double *a, int lda,
00178 double *tau, double *work, int lwork, int *info)
00179 {
00180 dorgqr(&m, &n, &k, a, &lda, tau, work, &lwork, info);
00181 }
00182
00183 static __inline void dgeqp3(int m, int n, double *a, int lda, int *jpvt,
00184 double *tau, double *work, int lwork, int *info)
00185 {
00186 dgeqp3(&m, &n, a, &lda, jpvt, tau, work, &lwork, info);
00187 }
00188
00189 static __inline void dtrtrs(char *uplo, char *trans, char *diag, int n,
00190 int nrhs, double *a, int lda, double *b,
00191 int ldb, int *info)
00192 {
00193 dtrtrs(uplo, trans, diag, &n, &nrhs, a, &lda, b, &ldb, info);
00194 }