11 std::cerr <<
"These two matrices cannot be solved." << std::endl
12 <<
"Your input was (" <<
n <<
"x" <<
n <<
") and (" << mat.
n <<
"x" << mat.
n <<
")." << std::endl;
18 CPPL_INT NRHS(mat.
n), LDA(
n), *IPIV(
new CPPL_INT[
n]), LDB(mat.
m), LWORK(-1), INFO(1);
19 double *WORK(
new double[1] );
20 dsysv_(&UPLO, &n, &NRHS,
array, &LDA, IPIV, mat.
array, &LDB, WORK, &LWORK, &INFO);
23 LWORK = CPPL_INT(WORK[0]);
25 WORK =
new double[LWORK];
26 dsysv_(&UPLO, &n, &NRHS,
array, &LDA, IPIV, mat.
array, &LDB, WORK, &LWORK, &INFO);
32 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
47 std::cerr <<
"These matrix and vector cannot be solved." << std::endl
48 <<
"Your input was (" <<
n <<
"x" <<
n <<
") and (" << vec.
l <<
")." << std::endl;
54 CPPL_INT NRHS(1), LDA(
n), *IPIV(
new CPPL_INT[
n]), LDB(vec.
l), LWORK(-1), INFO(1);
55 double *WORK(
new double[1] );
56 dsysv_(&UPLO, &n, &NRHS,
array, &LDA, IPIV, vec.
array, &LDB, WORK, &LWORK, &INFO);
59 LWORK = CPPL_INT(WORK[0]);
61 WORK =
new double[LWORK];
62 dsysv_(&UPLO, &n, &NRHS,
array, &LDA, IPIV, vec.
array, &LDB, WORK, &LWORK, &INFO);
68 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
88 if(jobz==0){ JOBZ=
'n'; }
else{ JOBZ=
'V'; }
89 CPPL_INT LDA(
n), INFO(1), LWORK(-1);
90 double *WORK(
new double[1]);
91 dsyev_(&JOBZ, &UPLO, &
n,
array, &LDA, &w[0], WORK, &LWORK, &INFO);
94 LWORK = CPPL_INT(WORK[0]);
96 WORK =
new double[LWORK];
97 dsyev_(&JOBZ, &UPLO, &
n,
array, &LDA, &w[0], WORK, &LWORK, &INFO);
102 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
115 {CPPL_VERBOSE_REPORT;
118 for(CPPL_INT
i=0;
i<
n;
i++){
122 char JOBZ(
'V'), UPLO(
'l');
123 CPPL_INT LDA(n), INFO(1), LWORK(-1);
124 double *WORK(
new double[1]);
125 dsyev_(&JOBZ, &UPLO, &n,
array, &LDA, &w[0], WORK, &LWORK, &INFO);
128 LWORK = CPPL_INT(WORK[0]);
130 WORK =
new double[LWORK];
131 dsyev_(&JOBZ, &UPLO, &n,
array, &LDA, &w[0], WORK, &LWORK, &INFO);
135 for(CPPL_INT j=0; j<
n; j++){
136 for(CPPL_INT
i=0;
i<
n;
i++){
143 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
156 {CPPL_VERBOSE_REPORT;
159 for(CPPL_INT
i=0;
i<
n;
i++){
163 char JOBZ(
'V'), UPLO(
'l');
164 CPPL_INT LDA(n), INFO(1), LWORK(-1);
165 double *WORK(
new double[1]);
166 dsyev_(&JOBZ, &UPLO, &n,
array, &LDA, &w[0], WORK, &LWORK, &INFO);
169 LWORK = CPPL_INT(WORK[0]);
171 WORK =
new double[LWORK];
172 dsyev_(&JOBZ, &UPLO, &n,
array, &LDA, &w[0], WORK, &LWORK, &INFO);
176 for(CPPL_INT j=0; j<
n; j++){
177 for(CPPL_INT
i=0;
i<
n;
i++){
184 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
199 {CPPL_VERBOSE_REPORT;
203 std::cerr <<
"The matrix B is not a matrix having the same size as \"this\" matrix." << std::endl
204 <<
"The B matrix is (" << matB.
n <<
"x" << matB.
n <<
")." << std::endl;
210 char JOBZ(
'n'), UPLO(
'l');
211 CPPL_INT ITYPE(1), LDA(
n), LDB(
n), LWORK(-1), INFO(1);
212 double *WORK(
new double[1]);
213 dsygv_(&ITYPE, &JOBZ, &UPLO, &
n,
array, &LDA, matB.
array, &LDB, &w[0], WORK, &LWORK, &INFO);
216 LWORK = CPPL_INT(WORK[0]);
218 WORK =
new double[LWORK];
219 dsygv_(&ITYPE, &JOBZ, &UPLO, &
n,
array, &LDA, matB.
array, &LDB, &w[0], WORK, &LWORK, &INFO);
224 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
235 std::vector<dcovector>& v)
236 {CPPL_VERBOSE_REPORT;
240 std::cerr <<
"The matrix B is not a matrix having the same size as \"this\" matrix." << std::endl
241 <<
"The B matrix is (" << matB.
n <<
"x" << matB.
n <<
")." << std::endl;
248 char JOBZ(
'V'), UPLO(
'l');
249 CPPL_INT ITYPE(1), LDA(
n), LDB(
n), LWORK(-1), INFO(1);
250 double *WORK(
new double[1]);
251 dsygv_(&ITYPE, &JOBZ, &UPLO, &
n,
array, &LDA, matB.
array, &LDB, &w[0], WORK, &LWORK, &INFO);
254 LWORK = CPPL_INT(WORK[0]);
256 WORK =
new double[LWORK];
257 dsygv_(&ITYPE, &JOBZ, &UPLO, &
n,
array, &LDA, matB.
array, &LDB, &w[0], WORK, &LWORK, &INFO);
261 for(
int i=0;
i<
n;
i++){
263 for(
int j=0; j<
n; j++){
270 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
CPPL_INT m
matrix row size
double * array
1D array to store matrix data
CPPL_INT dsyev(std::vector< double > &, const bool &)
CPPL_INT dsygv(dsymatrix &, std::vector< double > &)
CPPL_INT n
matrix column size
Real Double-precision General Dence Matrix Class.
double * array
1D array to store vector data
Real Double-precision Symmetric Matrix Class [l-type (UPLO=l) Strage].
CPPL_INT dsysv(dgematrix &)
friend _dsymatrix i(const dsymatrix &)
CPPL_INT n
matrix column size
Real Double-precision Column Vector Class.
double * array
1D array to store matrix data
double ** darray
array of pointers of column head addresses