# HG changeset patch # User John W. Eaton # Date 1482798211 18000 # Node ID eb01d01781887b694923d55a6593f89ea23fd927 # Parent 5126040e8f497bf292b0f98cab8560b6114ecb1b use F77_INT instead of octave_idx_type for liboctave gsvd class * gsvd.h, gsvd.cc: Use F77_INT instead of octave_idx_type for integer data passed to Fortran subroutines. Use octave_f77_int_type in public header file. diff -r 5126040e8f49 -r eb01d0178188 liboctave/numeric/gsvd.cc --- a/liboctave/numeric/gsvd.cc Mon Dec 26 19:15:31 2016 -0500 +++ b/liboctave/numeric/gsvd.cc Mon Dec 26 19:23:31 2016 -0500 @@ -45,17 +45,13 @@ { template <> void - gsvd::ggsvd (char& jobu, char& jobv, char& jobq, - octave_idx_type m, octave_idx_type n, - octave_idx_type p, - octave_idx_type& k, octave_idx_type& l, - double *tmp_dataA, octave_idx_type m1, - double *tmp_dataB, octave_idx_type p1, Matrix& alpha, - Matrix& beta, double *u, octave_idx_type nrow_u, - double *v, octave_idx_type nrow_v, double *q, - octave_idx_type nrow_q, - Matrix& work, octave_idx_type* iwork, - octave_idx_type& info) + gsvd::ggsvd (char& jobu, char& jobv, char& jobq, F77_INT m, + F77_INT n, F77_INT p, F77_INT& k, F77_INT& l, + double *tmp_dataA, F77_INT m1, double *tmp_dataB, + F77_INT p1, Matrix& alpha, Matrix& beta, double *u, + F77_INT nrow_u, double *v, F77_INT nrow_v, double *q, + F77_INT nrow_q, Matrix& work, F77_INT* iwork, + F77_INT& info) { F77_XFCN (dggsvd, DGGSVD, (F77_CONST_CHAR_ARG2 (&jobu, 1), F77_CONST_CHAR_ARG2 (&jobv, 1), @@ -72,17 +68,14 @@ template <> void - gsvd::ggsvd (char& jobu, char& jobv, char& jobq, - octave_idx_type m, octave_idx_type n, - octave_idx_type p, - octave_idx_type& k, octave_idx_type& l, - float *tmp_dataA, octave_idx_type m1, - float *tmp_dataB, octave_idx_type p1, - FloatMatrix& alpha, FloatMatrix& beta, float *u, - octave_idx_type nrow_u, float *v, - octave_idx_type nrow_v, float *q, - octave_idx_type nrow_q, FloatMatrix& work, - octave_idx_type* iwork, octave_idx_type& info) + gsvd::ggsvd (char& jobu, char& jobv, char& jobq, F77_INT m, + F77_INT n, F77_INT p, F77_INT& k, F77_INT& l, + float *tmp_dataA, F77_INT m1, float *tmp_dataB, + F77_INT p1, FloatMatrix& alpha, + FloatMatrix& beta, float *u, F77_INT nrow_u, + float *v, F77_INT nrow_v, float *q, + F77_INT nrow_q, FloatMatrix& work, + F77_INT* iwork, F77_INT& info) { F77_XFCN (sggsvd, SGGSVD, (F77_CONST_CHAR_ARG2 (&jobu, 1), F77_CONST_CHAR_ARG2 (&jobv, 1), @@ -100,16 +93,13 @@ template <> void gsvd::ggsvd (char& jobu, char& jobv, char& jobq, - octave_idx_type m, octave_idx_type n, - octave_idx_type p, octave_idx_type& k, - octave_idx_type& l, Complex *tmp_dataA, - octave_idx_type m1, Complex *tmp_dataB, - octave_idx_type p1, Matrix& alpha, - Matrix& beta, Complex *u, - octave_idx_type nrow_u, - Complex *v, octave_idx_type nrow_v, Complex *q, - octave_idx_type nrow_q, ComplexMatrix& work, - octave_idx_type* iwork, octave_idx_type& info) + F77_INT m, F77_INT n, F77_INT p, F77_INT& k, + F77_INT& l, Complex *tmp_dataA, F77_INT m1, + Complex *tmp_dataB, F77_INT p1, Matrix& alpha, + Matrix& beta, Complex *u, F77_INT nrow_u, + Complex *v, F77_INT nrow_v, Complex *q, + F77_INT nrow_q, ComplexMatrix& work, + F77_INT* iwork, F77_INT& info) { Matrix rwork(2*n, 1); F77_XFCN (zggsvd, ZGGSVD, (F77_CONST_CHAR_ARG2 (&jobu, 1), @@ -131,20 +121,16 @@ template <> void gsvd::ggsvd (char& jobu, char& jobv, char& jobq, - octave_idx_type m, octave_idx_type n, - octave_idx_type p, octave_idx_type& k, - octave_idx_type& l, - FloatComplex *tmp_dataA, - octave_idx_type m1, - FloatComplex *tmp_dataB, - octave_idx_type p1, FloatMatrix& alpha, - FloatMatrix& beta, FloatComplex *u, - octave_idx_type nrow_u, FloatComplex *v, - octave_idx_type nrow_v, FloatComplex *q, - octave_idx_type nrow_q, + F77_INT m, F77_INT n, F77_INT p, + F77_INT& k, F77_INT& l, + FloatComplex *tmp_dataA, F77_INT m1, + FloatComplex *tmp_dataB, F77_INT p1, + FloatMatrix& alpha, FloatMatrix& beta, + FloatComplex *u, F77_INT nrow_u, + FloatComplex *v, F77_INT nrow_v, + FloatComplex *q, F77_INT nrow_q, FloatComplexMatrix& work, - octave_idx_type* iwork, - octave_idx_type& info) + F77_INT* iwork, F77_INT& info) { FloatMatrix rwork(2*n, 1); F77_XFCN (cggsvd, CGGSVD, (F77_CONST_CHAR_ARG2 (&jobu, 1), @@ -222,11 +208,11 @@ template gsvd::gsvd (const T& a, const T& b, gsvd::Type gsvd_type) { - octave_idx_type info; + F77_INT info; - octave_idx_type m = a.rows (); - octave_idx_type n = a.cols (); - octave_idx_type p = b.rows (); + F77_INT m = to_f77_int (a.rows ()); + F77_INT n = to_f77_int (a.cols ()); + F77_INT p = to_f77_int (b.rows ()); T atmp = a; P *tmp_dataA = atmp.fortran_vec (); @@ -238,11 +224,11 @@ char jobv = 'V'; char jobq = 'Q'; - octave_idx_type nrow_u = m; - octave_idx_type nrow_v = p; - octave_idx_type nrow_q = n; + F77_INT nrow_u = m; + F77_INT nrow_v = p; + F77_INT nrow_q = n; - octave_idx_type k, l; + F77_INT k, l; switch (gsvd_type) { @@ -283,7 +269,7 @@ P *q = right_sm.fortran_vec (); - octave_idx_type lwork = 3*n; + F77_INT lwork = 3*n; lwork = lwork > m ? lwork : m; lwork = (lwork > p ? lwork : p) + n; @@ -291,7 +277,7 @@ real_matrix alpha (n, 1); real_matrix beta (n, 1); - std::vector iwork (n); + std::vector iwork (n); gsvd::ggsvd (jobu, jobv, jobq, m, n, p, k, l, tmp_dataA, m, tmp_dataB, p, alpha, beta, u, @@ -310,7 +296,7 @@ ("*ggsvd.f: Jacobi-type procedure failed to converge."); else { - octave_idx_type i, j; + F77_INT i, j; if (gsvd::Type::std == gsvd_type) { diff -r 5126040e8f49 -r eb01d0178188 liboctave/numeric/gsvd.h --- a/liboctave/numeric/gsvd.h Mon Dec 26 19:15:31 2016 -0500 +++ b/liboctave/numeric/gsvd.h Mon Dec 26 19:23:31 2016 -0500 @@ -95,13 +95,17 @@ T left_smA, left_smB; T right_sm, R; - void ggsvd (char& jobu, char& jobv, char& jobq, octave_idx_type m, - octave_idx_type n, octave_idx_type p, octave_idx_type& k, - octave_idx_type& l, P *tmp_dataA, octave_idx_type m1, - P *tmp_dataB, octave_idx_type p1, real_matrix& alpha, - real_matrix& beta, P *u, octave_idx_type nrow_u, P *v, - octave_idx_type nrow_v, P *q, octave_idx_type nrow_q, T& work, - octave_idx_type* iwork, octave_idx_type& info); + void ggsvd (char& jobu, char& jobv, char& jobq, octave_f77_int_type m, + octave_f77_int_type n, octave_f77_int_type p, + octave_f77_int_type& k, octave_f77_int_type& l, + P *tmp_dataA, octave_f77_int_type m1, + P *tmp_dataB, octave_f77_int_type p1, + real_matrix& alpha, real_matrix& beta, + P *u, octave_f77_int_type nrow_u, + P *v, octave_f77_int_type nrow_v, + P *q, octave_f77_int_type nrow_q, + T& work, octave_f77_int_type* iwork, + octave_f77_int_type& info); }; } }