25 #if ! defined (octave_gsvd_h) 26 #define octave_gsvd_h 1 28 #include "octave-config.h" 47 gsvd (
void) : sigmaA (), sigmaB (), left_smA (), left_smB (), right_sm ()
50 gsvd (
const T&
a,
const T&
b,
55 sigmaA (
a.sigmaA), sigmaB (
a.sigmaB),
56 left_smA (
a.left_smA), left_smB (
a.left_smB), right_sm (
a.right_sm),
66 left_smA =
a.left_smA;
67 left_smB =
a.left_smB;
68 right_sm =
a.right_sm;
75 ~
gsvd (
void) =
default;
77 typename T::real_diag_matrix_type
80 typename T::real_diag_matrix_type
83 T left_singular_matrix_A (
void)
const;
84 T left_singular_matrix_B (
void)
const;
86 T right_singular_matrix (
void)
const;
87 T R_matrix (
void)
const;
90 typedef typename T::value_type
P;
94 typename T::real_diag_matrix_type sigmaA,
sigmaB;
98 void ggsvd (
char& jobu,
char& jobv,
char& jobq, octave_f77_int_type m,
99 octave_f77_int_type n, octave_f77_int_type
p,
100 octave_f77_int_type&
k, octave_f77_int_type& l,
101 P *tmp_dataA, octave_f77_int_type m1,
102 P *tmp_dataB, octave_f77_int_type p1,
104 P *
u, octave_f77_int_type nrow_u,
105 P *v, octave_f77_int_type nrow_v,
106 P *q, octave_f77_int_type nrow_q,
107 T& work, octave_f77_int_type lwork,
108 octave_f77_int_type *iwork,
109 octave_f77_int_type& info);
T::real_diag_matrix_type singular_values_B(void) const
T::real_matrix_type real_matrix
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
static octave::math::gsvd< T >::Type gsvd_type(int nargout)
T::real_diag_matrix_type sigmaB
T::real_diag_matrix_type singular_values_A(void) const