26 #if ! defined (octave_svd_h)
27 #define octave_svd_h 1
29 #include "octave-config.h"
44 typedef typename T::real_diag_matrix_type
DM_T;
61 : m_type (), m_driver (), m_left_sm (), m_sigma (), m_right_sm ()
68 : m_type (a.m_type), m_driver (a.m_driver), m_left_sm (a.m_left_sm),
69 m_sigma (a.m_sigma), m_right_sm (a.m_right_sm)
77 m_left_sm = a.m_left_sm;
79 m_right_sm = a.m_right_sm;
80 m_driver = a.m_driver;
88 T left_singular_matrix ()
const;
92 T right_singular_matrix ()
const;
96 typedef typename T::element_type P;
97 typedef typename DM_T::element_type DM_P;
106 void gesvd (
char& jobu,
char& jobv, octave_f77_int_type
m,
107 octave_f77_int_type
n, P *tmp_data, octave_f77_int_type m1,
108 DM_P *s_vec, P *u, P *vt, octave_f77_int_type nrow_vt1,
109 std::vector<P>& work, octave_f77_int_type& lwork,
110 octave_f77_int_type& info);
112 void gesdd (
char& jobz, octave_f77_int_type
m, octave_f77_int_type
n,
113 P *tmp_data, octave_f77_int_type m1, DM_P *s_vec, P *u,
114 P *vt, octave_f77_int_type nrow_vt1, std::vector<P>& work,
115 octave_f77_int_type& lwork, octave_f77_int_type *iwork,
116 octave_f77_int_type& info);
118 void gejsv (
char& joba,
char& jobu,
char& jobv,
char& jobr,
char& jobt,
119 char& jobp, octave_f77_int_type
m, octave_f77_int_type
n,
120 P *tmp_data, octave_f77_int_type m1, DM_P *s_vec, P *u,
121 P *v, octave_f77_int_type nrow_v1, std::vector<P>& work,
122 octave_f77_int_type& lwork,
123 std::vector<octave_f77_int_type>& iwork,
124 octave_f77_int_type& info);
127 OCTAVE_END_NAMESPACE(math)
128 OCTAVE_END_NAMESPACE(
octave)
T::real_diag_matrix_type DM_T
DM_T singular_values() const
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn