Mercurial > hg > octave-nkf
diff liboctave/dbleSCHUR.cc @ 1756:1af643fa00e3
[project @ 1996-01-22 04:55:17 by jwe]
author | jwe |
---|---|
date | Mon, 22 Jan 1996 04:55:17 +0000 |
parents | b0b22b6ce22f |
children | 2ffe49eb95a5 |
line wrap: on
line diff
--- a/liboctave/dbleSCHUR.cc +++ b/liboctave/dbleSCHUR.cc @@ -60,7 +60,7 @@ } int -SCHUR::init (const Matrix& a, const char *ord) +SCHUR::init (const Matrix& a, const string& ord) { int a_nr = a.rows (); int a_nc = a.cols (); @@ -73,7 +73,9 @@ char *jobvs = "V"; char *sort; - if (*ord == 'A' || *ord == 'D' || *ord == 'a' || *ord == 'd') + char ord_char = ord.empty () ? 'U' : ord[0]; + + if (ord_char == 'A' || ord_char == 'D' || ord_char == 'a' || ord_char == 'd') sort = "S"; else sort = "N"; @@ -99,20 +101,20 @@ int *iwork = 0; int *bwork = 0; - if (*ord == 'A' || *ord == 'D' || *ord == 'a' || *ord == 'd') + if (ord_char == 'A' || ord_char == 'D' || ord_char == 'a' || ord_char == 'd') { iwork = new int [liwork]; bwork = new int [n]; } - if (*ord == 'A' || *ord == 'a') + if (ord_char == 'A' || ord_char == 'a') { F77_FCN (dgeesx, DGEESX) (jobvs, sort, select_ana, sense, n, s, n, sdim, wr, wi, q, n, rconde, rcondv, work, lwork, iwork, liwork, bwork, info, 1L, 1L); } - else if (*ord == 'D' || *ord == 'd') + else if (ord_char == 'D' || ord_char == 'd') { F77_FCN (dgeesx, DGEESX) (jobvs, sort, select_dig, sense, n, s, n, sdim, wr, wi, q, n, rconde, rcondv,