GNU Octave 7.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
octave::math::svd< T > Class Template Reference

#include "svd.h"

Collaboration diagram for octave::math::svd< T >:

Public Types

typedef T::real_diag_matrix_type DM_T
 
enum class  Driver { GESVD , GESDD , GEJSV }
 
enum class  Type { std , economy , sigma_only }
 

Public Member Functions

 svd (const svd &a)
 
 svd (const T &a, svd::Type type=svd::Type::std, svd::Driver driver=svd::Driver::GESVD)
 
 svd (void)
 
 ~svd (void)=default
 
left_singular_matrix (void) const
 
svdoperator= (const svd &a)
 
right_singular_matrix (void) const
 
DM_T singular_values (void) const
 

Private Types

typedef DM_T::element_type DM_P
 
typedef T::element_type P
 

Private Member Functions

void gejsv (char &joba, char &jobu, char &jobv, char &jobr, char &jobt, char &jobp, octave_f77_int_type m, octave_f77_int_type n, P *tmp_data, octave_f77_int_type m1, DM_P *s_vec, P *u, P *v, octave_f77_int_type nrow_v1, std::vector< P > &work, octave_f77_int_type &lwork, std::vector< octave_f77_int_type > &iwork, octave_f77_int_type &info)
 
void gesdd (char &jobz, octave_f77_int_type m, octave_f77_int_type n, P *tmp_data, octave_f77_int_type m1, DM_P *s_vec, P *u, P *vt, octave_f77_int_type nrow_vt1, std::vector< P > &work, octave_f77_int_type &lwork, octave_f77_int_type *iwork, octave_f77_int_type &info)
 
void gesvd (char &jobu, char &jobv, octave_f77_int_type m, octave_f77_int_type n, P *tmp_data, octave_f77_int_type m1, DM_P *s_vec, P *u, P *vt, octave_f77_int_type nrow_vt1, std::vector< P > &work, octave_f77_int_type &lwork, octave_f77_int_type &info)
 

Private Attributes

svd::Driver m_driver
 
m_left_sm
 
m_right_sm
 
DM_T m_sigma
 
svd::Type m_type
 

Detailed Description

template<typename T>
class octave::math::svd< T >

Definition at line 38 of file svd.h.

Member Typedef Documentation

◆ DM_P

template<typename T >
typedef DM_T::element_type octave::math::svd< T >::DM_P
private

Definition at line 97 of file svd.h.

◆ DM_T

template<typename T >
typedef T::real_diag_matrix_type octave::math::svd< T >::DM_T

Definition at line 44 of file svd.h.

◆ P

template<typename T >
typedef T::element_type octave::math::svd< T >::P
private

Definition at line 96 of file svd.h.

Member Enumeration Documentation

◆ Driver

template<typename T >
enum class octave::math::svd::Driver
strong
Enumerator
GESVD 
GESDD 
GEJSV 

Definition at line 53 of file svd.h.

◆ Type

template<typename T >
enum class octave::math::svd::Type
strong
Enumerator
std 
economy 
sigma_only 

Definition at line 46 of file svd.h.

Constructor & Destructor Documentation

◆ svd() [1/3]

template<typename T >
octave::math::svd< T >::svd ( void  )
inline

Definition at line 60 of file svd.h.

◆ svd() [2/3]

◆ svd() [3/3]

template<typename T >
octave::math::svd< T >::svd ( const svd< T > &  a)
inline

Definition at line 67 of file svd.h.

◆ ~svd()

template<typename T >
octave::math::svd< T >::~svd ( void  )
default

Member Function Documentation

◆ gejsv()

template<typename T >
void octave::math::svd< T >::gejsv ( char &  joba,
char &  jobu,
char &  jobv,
char &  jobr,
char &  jobt,
char &  jobp,
octave_f77_int_type  m,
octave_f77_int_type  n,
P tmp_data,
octave_f77_int_type  m1,
DM_P s_vec,
P u,
P v,
octave_f77_int_type  nrow_v1,
std::vector< P > &  work,
octave_f77_int_type &  lwork,
std::vector< octave_f77_int_type > &  iwork,
octave_f77_int_type &  info 
)
private

◆ gesdd()

template<typename T >
void octave::math::svd< T >::gesdd ( char &  jobz,
octave_f77_int_type  m,
octave_f77_int_type  n,
P tmp_data,
octave_f77_int_type  m1,
DM_P s_vec,
P u,
P vt,
octave_f77_int_type  nrow_vt1,
std::vector< P > &  work,
octave_f77_int_type &  lwork,
octave_f77_int_type *  iwork,
octave_f77_int_type &  info 
)
private

◆ gesvd()

template<typename T >
void octave::math::svd< T >::gesvd ( char &  jobu,
char &  jobv,
octave_f77_int_type  m,
octave_f77_int_type  n,
P tmp_data,
octave_f77_int_type  m1,
DM_P s_vec,
P u,
P vt,
octave_f77_int_type  nrow_vt1,
std::vector< P > &  work,
octave_f77_int_type &  lwork,
octave_f77_int_type &  info 
)
private

◆ left_singular_matrix()

template<typename T >
T svd< T >::left_singular_matrix ( void  ) const

◆ operator=()

◆ right_singular_matrix()

template<typename T >
T svd< T >::right_singular_matrix ( void  ) const

◆ singular_values()

template<typename T >
DM_T octave::math::svd< T >::singular_values ( void  ) const
inline

Member Data Documentation

◆ m_driver

template<typename T >
svd::Driver octave::math::svd< T >::m_driver
private

Definition at line 100 of file svd.h.

Referenced by octave::math::svd< T >::svd(), and octave::math::svd< T >::operator=().

◆ m_left_sm

template<typename T >
T octave::math::svd< T >::m_left_sm
private

Definition at line 102 of file svd.h.

Referenced by octave::math::svd< T >::svd(), and octave::math::svd< T >::operator=().

◆ m_right_sm

template<typename T >
T octave::math::svd< T >::m_right_sm
private

Definition at line 104 of file svd.h.

Referenced by octave::math::svd< T >::svd(), and octave::math::svd< T >::operator=().

◆ m_sigma

template<typename T >
DM_T octave::math::svd< T >::m_sigma
private

Definition at line 103 of file svd.h.

Referenced by octave::math::svd< T >::svd(), and octave::math::svd< T >::operator=().

◆ m_type

template<typename T >
svd::Type octave::math::svd< T >::m_type
private

Definition at line 99 of file svd.h.

Referenced by octave::math::svd< T >::svd(), and octave::math::svd< T >::operator=().


The documentation for this class was generated from the following files: