26 #if ! defined (octave_gsvd_h)
27 #define octave_gsvd_h 1
29 #include "octave-config.h"
48 gsvd (
void) : sigmaA (), sigmaB (), left_smA (), left_smB (), right_sm ()
51 gsvd (
const T& a,
const T& b,
56 sigmaA (a.sigmaA), sigmaB (a.sigmaB),
57 left_smA (a.left_smA), left_smB (a.left_smB), right_sm (a.right_sm),
78 typename T::real_diag_matrix_type
81 typename T::real_diag_matrix_type
84 T left_singular_matrix_A (
void)
const;
85 T left_singular_matrix_B (
void)
const;
87 T right_singular_matrix (
void)
const;
88 T R_matrix (
void)
const;
91 typedef typename T::value_type
P;
95 typename T::real_diag_matrix_type
sigmaA, sigmaB;
99 void ggsvd (
char& jobu,
char& jobv,
char& jobq, octave_f77_int_type
m,
100 octave_f77_int_type
n, octave_f77_int_type p,
101 octave_f77_int_type& k, octave_f77_int_type& l,
102 P *tmp_dataA, octave_f77_int_type m1,
103 P *tmp_dataB, octave_f77_int_type p1,
105 P *u, octave_f77_int_type nrow_u,
106 P *v, octave_f77_int_type nrow_v,
107 P *q, octave_f77_int_type nrow_q,
108 T& work, octave_f77_int_type lwork,
109 octave_f77_int_type *iwork,
110 octave_f77_int_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 lwork, octave_f77_int_type *iwork, octave_f77_int_type &info)
T::real_matrix_type real_matrix
T::real_diag_matrix_type sigmaB
T::real_diag_matrix_type singular_values_A(void) const
T::real_diag_matrix_type singular_values_B(void) const
T::real_diag_matrix_type sigmaA
static octave::math::gsvd< T >::Type gsvd_type(int nargout)