10 std::cerr <<
"These two matrices cannot be solved." << std::endl
11 <<
"Your input was (" <<
m <<
"x" <<
n <<
") and (" << mat.
m <<
"x" << mat.
n <<
")." << std::endl;
16 CPPL_INT NRHS(mat.
n), LDA(
n), *IPIV(
new CPPL_INT[
n]), LDB(mat.
m), INFO(1);
17 zgesv_(&n, &NRHS,
array, &LDA, IPIV, mat.
array, &LDB, &INFO);
22 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
36 std::cerr <<
"These matrix and vector cannot be solved." << std::endl
37 <<
"Your input was (" <<
m <<
"x" <<
n <<
") and (" << vec.
l <<
")." << std::endl;
42 CPPL_INT NRHS(1), LDA(
n), *IPIV(
new CPPL_INT[
n]), LDB(vec.
l), INFO(1);
43 zgesv_(&n, &NRHS,
array, &LDA, IPIV, vec.
array, &LDB, &INFO);
48 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
64 std::cerr <<
"These two matrices cannot be solved." << std::endl
65 <<
"Your input was (" <<
m <<
"x" <<
n <<
") and (" << mat.
m <<
"x" << mat.
n <<
")." << std::endl;
72 for(CPPL_INT
i=0;
i<mat.
m;
i++){
73 for(CPPL_INT j=0; j<mat.
n; j++){
82 CPPL_INT NRHS(mat.
n), LDA(
m), LDB(mat.
m), LWORK(std::min(
m,
n)+std::max(std::min(
m,
n),NRHS)), INFO(1);
83 comple *WORK(
new comple[LWORK]);
84 zgels_(&TRANS, &
m, &
n, &NRHS,
array, &LDA, mat.
array, &LDB, WORK, &LWORK, &INFO);
89 for(CPPL_INT
i=0;
i<tmp.
m;
i++){
90 for(CPPL_INT j=0; j<tmp.
n; j++){
100 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
108 {CPPL_VERBOSE_REPORT;
112 std::cerr <<
"These matrix and vector cannot be solved." << std::endl
113 <<
"Your input was (" <<
m <<
"x" <<
n <<
") and (" << vec.
l <<
")." << std::endl;
120 for(CPPL_INT
i=0;
i<vec.
l;
i++){
128 CPPL_INT NRHS(1), LDA(
m), LDB(vec.
l), LWORK(std::min(
m,
n)+std::max(std::min(
m,
n),NRHS)), INFO(1);
129 comple *WORK(
new comple[LWORK]);
130 zgels_(&TRANS, &
m, &
n, &NRHS,
array, &LDA, vec.
array, &LDB, WORK, &LWORK, &INFO);
135 for(CPPL_INT
i=0;
i<tmp.
l;
i++){
144 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
157 {CPPL_VERBOSE_REPORT;
161 std::cerr <<
"These two matrices cannot be solved." << std::endl
162 <<
"Your input was (" <<
m <<
"x" <<
n <<
") and (" << mat.
m <<
"x" << mat.
n <<
")." << std::endl;
172 for(CPPL_INT
i=0;
i<mat.
m;
i++){
173 for(CPPL_INT j=0; j<mat.
n; j++){
182 CPPL_INT NRHS(mat.
n), LDA(
m), LDB(mat.
m), LWORK(std::min(
m,
n)+std::max(std::min(
m,
n),NRHS)), INFO(1);
183 comple *WORK(
new comple[LWORK]);
184 zgels_(&TRANS, &
m, &
n, &NRHS,
array, &LDA, mat.
array, &LDB, WORK, &LWORK, &INFO);
188 for(CPPL_INT
i=0;
i<residual.
l;
i++){
189 for(CPPL_INT j=0; j<
m-
n; j++){
190 residual(
i) += std::norm(mat(n+j,
i));
195 for(CPPL_INT
i=0;
i<tmp.
m;
i++){
196 for(CPPL_INT j=0; j<tmp.
n; j++){
206 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
218 {CPPL_VERBOSE_REPORT;
222 std::cerr <<
"These matrix and vector cannot be solved." << std::endl
223 <<
"Your input was (" <<
m <<
"x" <<
n <<
") and (" << vec.
l <<
")." << std::endl;
232 for(CPPL_INT
i=0;
i<vec.
l;
i++){
240 CPPL_INT NRHS(1), LDA(
m), LDB(vec.
l), LWORK(std::min(
m,
n)+std::max(std::min(
m,
n),NRHS)), INFO(1);
241 comple *WORK(
new comple[LWORK]);
242 zgels_(&TRANS, &
m, &
n, &NRHS,
array, &LDA, vec.
array, &LDB, WORK, &LWORK, &INFO);
246 for(CPPL_INT
i=0;
i<
m-
n;
i++){
247 residual += std::norm(vec(n+
i));
251 for(CPPL_INT
i=0;
i<tmp.
l;
i++){
260 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
273 const double RCOND =-1. )
274 {CPPL_VERBOSE_REPORT;
278 std::cerr <<
"These matrix and vector cannot be solved." << std::endl
279 <<
"Your input was (" <<
m <<
"x" <<
n <<
") and (" << B.
l <<
")." << std::endl;
286 for(CPPL_INT
i=0;
i<B.
l;
i++){
295 CPPL_INT NRHS(1), LDA(
m), LDB(B.
l), LWORK(2*std::min(
m,
n) +std::max(std::max(
m,
n),NRHS)), INFO(1);
296 double *RWORK(
new double[5*std::min(
m,
n)]);
297 comple *WORK(
new comple[LWORK]);
298 zgelss_(&
m, &
n, &NRHS,
array, &LDA, B.
array, &LDB, S.
array, &RCOND, &RANK, WORK, &LWORK, RWORK, &INFO);
304 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
313 const double RCOND =-1. )
314 {CPPL_VERBOSE_REPORT;
318 std::cerr <<
"These matrix and vector cannot be solved." << std::endl
319 <<
"Your input was (" <<
m <<
"x" <<
n <<
") and (" << B.
m <<
"x" << B.
n <<
")." << std::endl;
326 for(CPPL_INT
i=0;
i<B.
m;
i++){
327 for(CPPL_INT j=0; j<B.
n; j++){
337 CPPL_INT NRHS(B.
n), LDA(
m), LDB(B.
m), LWORK(2*std::min(
m,
n) +std::max(std::max(
m,
n),NRHS)), INFO(1);
338 double *RWORK(
new double[5*std::min(
m,
n)]);
339 comple *WORK(
new comple[LWORK]);
340 zgelss_(&
m, &
n, &NRHS,
array, &LDA, B.
array, &LDB, S.
array, &RCOND, &RANK, WORK, &LWORK, RWORK, &INFO);
346 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
361 {CPPL_VERBOSE_REPORT;
365 std::cerr <<
"This matrix cannot have eigenvalues." << std::endl
366 <<
"Your input was (" <<
m <<
"x" <<
n <<
")." << std::endl;
373 char JOBVL(
'n'), JOBVR(
'n');
374 CPPL_INT LDA(
n), LDVL(1), LDVR(1), LWORK(4*
n), INFO(1);
375 double *RWORK(
new double[2*
n]);
376 comple *VL(NULL), *VR(NULL), *WORK(
new comple[LWORK]);
377 zgeev_(&JOBVL, &JOBVR, &n,
array, &LDA, &w[0], VL, &LDVL, VR, &LDVR, WORK, &LWORK, RWORK, &INFO);
385 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
397 std::vector<zcovector>& vr)
398 {CPPL_VERBOSE_REPORT;
402 std::cerr <<
"This matrix cannot have eigenvalues." << std::endl
403 <<
"Your input was (" <<
m <<
"x" <<
n <<
")." << std::endl;
410 for(CPPL_INT
i=0;
i<
n;
i++){
415 char JOBVL(
'n'), JOBVR(
'V');
416 CPPL_INT LDA(n), LDVL(1), LDVR(n), LWORK(4*n), INFO(1);
417 double *RWORK(
new double[2*n]);
418 comple *VL(NULL), *WORK(
new comple[LWORK]);
419 zgeev_(&JOBVL, &JOBVR, &n,
array, &LDA, &w[0], VL, &LDVL, VR.
array, &LDVR, WORK, &LWORK, RWORK, &INFO);
425 for(CPPL_INT j=0; j<
n; j++){
426 for(CPPL_INT
i=0;
i<
n;
i++){
433 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
445 std::vector<zrovector>& vl)
446 {CPPL_VERBOSE_REPORT;
450 std::cerr <<
"This matrix cannot have eigenvalues." << std::endl
451 <<
"Your input was (" <<
m <<
"x" <<
n <<
")." << std::endl;
458 for(CPPL_INT
i=0;
i<
n;
i++){
463 char JOBVL(
'V'), JOBVR(
'n');
464 CPPL_INT LDA(n), LDVL(n), LDVR(1), LWORK(4*n), INFO(1);
465 double *RWORK(
new double[2*n]);
466 comple *VR(NULL), *WORK(
new comple[LWORK]);
467 zgeev_(&JOBVL, &JOBVR, &n,
array, &LDA, &w[0], VL.
array, &LDVL, VR, &LDVR, WORK, &LWORK, RWORK, &INFO);
473 for(CPPL_INT j=0; j<
n; j++){
474 for(CPPL_INT
i=0;
i<
n;
i++){
481 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
508 {CPPL_VERBOSE_REPORT;
509 char JOBU(
'A'), JOBVT(
'A');
510 CPPL_INT LDA(
m), LDU(
m), LDVT(
n), LWORK(std::max(3*std::min(
m,
n)+std::max(
m,
n),5*std::min(
m,
n))), INFO(1);
511 double *RWORK(
new double[5*std::min(
m,
n)]);
512 comple *WORK(
new comple[LWORK]);
517 zgesvd_(&JOBU, &JOBVT, &
m, &
n,
array, &LDA, S.
array, U.
array, &LDU, VT.
array, &LDVT, WORK, &LWORK, RWORK, &INFO);
523 std::cerr <<
"Serious trouble happend. INFO = " << INFO <<
"." << std::endl;
comple * array
1D array to store vector data
void resize(const CPPL_INT &, const CPPL_INT &)
dcovector & resize(const CPPL_INT &, const CPPL_INT=0)
friend _zgematrix i(const zgematrix &)
double * array
1D array to store vector data
_zcovector conj(const _zcovector &vec)
CPPL_INT zgels(zgematrix &)
CPPL_INT n
matrix column size
Complex Double-precision General Dence Matrix Class.
Real Double-precision Row Vector Class.
comple * array
1D array to store matrix data
CPPL_INT zgeev(std::vector< comple > &)
drovector & resize(const CPPL_INT &, const CPPL_INT=0)
CPPL_INT zgesvd(dcovector &, zgematrix &, zgematrix &)
CPPL_INT m
matrix row size
friend void swap(zgematrix &, zgematrix &)
Real Double-precision Column Vector Class.
Complex Double-precision Column Vector Class.
CPPL_INT zgelss(zcovector &, dcovector &, CPPL_INT &, const double)
CPPL_INT zgesv(zgematrix &)