GNU Octave  4.4.1
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  Driver { Driver::GESVD, Driver::GESDD }
 
enum  Type { Type::std, Type::economy, Type::sigma_only }
 

Public Member Functions

 svd (void)
 
 svd (const T &a, svd::Type type=svd::Type::std, svd::Driver driver=svd::Driver::GESVD)
 
 svd (const svd &a)
 
 ~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 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

left_sm
 
svd::Driver m_driver
 
svd::Type m_type
 
right_sm
 
DM_T sigma
 

Detailed Description

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

Definition at line 36 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 93 of file svd.h.

◆ DM_T

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

Definition at line 41 of file svd.h.

◆ P

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

Definition at line 92 of file svd.h.

Member Enumeration Documentation

◆ Driver

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

Definition at line 50 of file svd.h.

◆ Type

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

Definition at line 43 of file svd.h.

Constructor & Destructor Documentation

◆ svd() [1/3]

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

Definition at line 56 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 63 of file svd.h.

◆ ~svd()

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

Member Function Documentation

◆ 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

Definition at line 48 of file svd.cc.

References octave::math::svd< T >::sigma_only.

◆ operator=()

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

Definition at line 68 of file svd.h.

References a.

◆ right_singular_matrix()

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

Definition at line 59 of file svd.cc.

References octave::math::svd< T >::sigma_only.

Referenced by null().

◆ singular_values()

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

Definition at line 86 of file svd.h.

Referenced by null(), and svd_matrix_norm().

Member Data Documentation

◆ left_sm

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

Definition at line 98 of file svd.h.

Referenced by octave::math::svd< T >::svd().

◆ m_driver

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

Definition at line 96 of file svd.h.

Referenced by octave::math::svd< T >::svd().

◆ m_type

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

Definition at line 95 of file svd.h.

Referenced by octave::math::svd< T >::svd().

◆ right_sm

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

Definition at line 100 of file svd.h.

Referenced by octave::math::svd< T >::svd().

◆ sigma

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

Definition at line 99 of file svd.h.

Referenced by octave::math::svd< T >::svd().


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