-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLapack.cpp
More file actions
125 lines (90 loc) · 5.22 KB
/
Lapack.cpp
File metadata and controls
125 lines (90 loc) · 5.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// $Id: Lapack.cpp,v 1.1 2008/05/06 02:26:39 samn Exp $
#include "stdafx.h"
#include "Lapack.h"
#define F77NAME(x) x##_
//#define F77NAME(x) x
// Type dependend Lapack definitions:
namespace Lapack{
extern "C" {
void F77NAME(dgelsd)(long* m, long* n, long* nrhs, double* a, long* lda, double* b, long* ldb,
double* s, double* rcond, long* rank, double* work, long* lwork, long* iwork,
long* info);
void F77NAME(dggevx)(char* balanc, char* jobvl, char* jobvr, char* sense,
long* n, double* a, long* lda, double* b, long* ldb,
double* alphar, double* alphai, double* beta, double* vl, long* ldvl, double* vr, long* ldvr,
long* ilo, long* ihi, double* lscale, double* rscale, double* abnrm, double* bbnrm,
double* rconde, double* rcondv, double* work, long* lwork, long* iwork, bool* bwork, long* info);
void F77NAME(dsygvd)(long* itype, char* jobz, char* uplo, long* n, double* a, long* lda, double* b, long* ldb,
double* w, double* work, long* lwork, long* iwork, long* liwork, long* info);
void F77NAME(dgels)(char* trans, long* m, long* n, long* nrhs, double* A, long* lda,
double* B, long* ldb, double* work, long* lwork, long* info);
void F77NAME(sgels)(char* trans, long* m, long* n, long* nrhs, float* A, long* lda,
float* B, long* ldb, float* work, long* lwork, long* info);
void F77NAME(dgelss)(long* m, long* n, long* nrhs, double* A, long* lda, double* B, long* ldb,
double* s, double* rcond, long* rank, double* work, long* lwork, long* info);
void F77NAME(sgelss)(long* m, long* n, long* nrhs, float* A, long* lda, float* B, long* ldb,
float* s, float* rcond, long* rank, float* work, long* lwork, long* info);
void F77NAME(dgebrd)(long* m, long *n, double* a, long* lda, double* d, double* e,
double* tauq,double* taup, double* work, long* lwork,long* info);
void F77NAME(dbdsdc) (char* uplo, char* compq, long* n, double* d, double* e, double* u,
long* ldu, double* vt, long* ldvt, double* q, long* iq, double* work,
long* iwork, long* info );
void F77NAME(dgesdd) (char* jobz, long* m, long* n, double* a, long* lda, double* s,
double* u, long *ldu, double* vt, long* ldvt, double* work,
long* lwork, long* iwork, long* info );
}
void dgelsd(long* m, long* n, long* nrhs, double* a, long* lda, double* b, long* ldb,
double* s, double* rcond, long* rank, double* work, long* lwork, long* iwork, long* info){
F77NAME(dgelsd)( m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work,lwork, iwork, info);
}
void dggevx(char* balanc, char* jobvl, char* jobvr, char* sense,
long* n, double* a, long* lda, double* b, long* ldb,
double* alphar, double* alphai, double* beta, double* vl, long* ldvl, double* vr, long* ldvr,
long* ilo, long* ihi, double* lscale, double* rscale, double* abnrm, double* bbnrm,
double* rconde, double* rcondv, double* work, long* lwork, long* iwork, bool* bwork, long* info)
{
F77NAME(dggevx)(balanc, jobvl, jobvr, sense, n, a, lda, b, ldb,
alphar, alphai, beta, vl, ldvl, vr, ldvr,
ilo, ihi, lscale, rscale, abnrm, bbnrm,
rconde, rcondv, work, lwork, iwork, bwork, info);
}
void dsygvd(long* itype, char* jobz, char* uplo, long* n, double* a, long* lda, double* b, long* ldb,
double* w, double* work, long* lwork, long* iwork, long* liwork, long* info)
{
F77NAME(dsygvd)(itype, jobz, uplo, n, a, lda, b, ldb,
w, work, lwork, iwork, liwork, info);
}
void gels(char* trans, long* m, long* n, long* nrhs, double* A, long* lda,
double* B, long* ldb, double* work, long* lwork, long* info)
{
F77NAME(dgels)(trans, m, n, nrhs, A, lda, B, ldb, work, lwork, info);
}
void gels(char* trans, long* m, long* n, long* nrhs, float* A, long* lda,
float* B, long* ldb, float* work, long* lwork, long* info)
{
F77NAME(sgels)(trans, m, n, nrhs, A, lda, B, ldb, work, lwork, info);
}
void gelss(long* m, long* n, long* nrhs, double* A, long* lda, double* B, long* ldb,
double* s, double* rcond, long* rank, double* work, long* lwork, long* info)
{
F77NAME(dgelss)(m, n, nrhs, A, lda, B, ldb, s, rcond, rank, work, lwork, info);
}
void gelss(long* m, long* n, long* nrhs, float* A, long* lda, float* B, long* ldb,
float* s, float* rcond, long* rank, float* work, long* lwork, long* info)
{
F77NAME(sgelss)(m, n, nrhs, A, lda, B, ldb, s, rcond, rank, work, lwork, info);
}
void dgebrd(long* m, long *n, double* a, long* lda, double* d, double* e, double* tauq,
double* taup, double* work, long* lwork,long* info){
F77NAME(dgebrd)( m, n, a, lda, d, e, tauq, taup, work, lwork, info);
}
void dbdsdc ( char* uplo, char* compq, long* n, double* d, double* e, double* u, long* ldu,
double* vt, long* ldvt, double* q, long* iq, double* work, long* iwork, long* info ){
F77NAME(dbdsdc) (uplo, compq, n, d, e, u, ldu, vt, ldvt, q, iq, work, iwork, info );
}
void dgesdd( char* jobz, long* m, long* n, double* a, long* lda, double* s, double* u,
long *ldu, double* vt, long* ldvt, double* work, long* lwork, long* iwork,
long* info ){
F77NAME(dgesdd)(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info );
}
} //namespace