GNU Octave  8.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
gsvd< T > Class Template Reference

#include "gsvd.h"

Collaboration diagram for gsvd< T >:

Public Types

enum class  Type { std , economy , sigma_only }
 

Public Member Functions

 gsvd (const gsvd &a)
 
 gsvd (const T &a, const T &b, gsvd::Type gsvd_type=gsvd< T >::Type::std)
 
 gsvd (void)
 
 ~gsvd (void)=default
 
left_singular_matrix_A (void) const
 
left_singular_matrix_B (void) const
 
gsvdoperator= (const gsvd &a)
 
right_singular_matrix (void) const
 
T::real_matrix_type singular_values_A (void) const
 
T::real_matrix_type singular_values_B (void) const
 

Private Types

typedef T::value_type P
 
typedef T::real_matrix_type real_matrix
 

Private Member Functions

void ggsvd (char &jobu, char &jobv, char &jobq, F77_INT m, F77_INT n, F77_INT p, F77_INT &k, F77_INT &l, Complex *tmp_dataA, F77_INT m1, Complex *tmp_dataB, F77_INT p1, Matrix &alpha, Matrix &beta, Complex *u, F77_INT nrow_u, Complex *v, F77_INT nrow_v, Complex *q, F77_INT nrow_q, Complex *work, F77_INT lwork, F77_INT *iwork, F77_INT &info)
 
void ggsvd (char &jobu, char &jobv, char &jobq, F77_INT m, F77_INT n, F77_INT p, F77_INT &k, F77_INT &l, double *tmp_dataA, F77_INT m1, double *tmp_dataB, F77_INT p1, Matrix &alpha, Matrix &beta, double *u, F77_INT nrow_u, double *v, F77_INT nrow_v, double *q, F77_INT nrow_q, double *work, F77_INT lwork, F77_INT *iwork, F77_INT &info)
 
void ggsvd (char &jobu, char &jobv, char &jobq, F77_INT m, F77_INT n, F77_INT p, F77_INT &k, F77_INT &l, float *tmp_dataA, F77_INT m1, float *tmp_dataB, F77_INT p1, FloatMatrix &alpha, FloatMatrix &beta, float *u, F77_INT nrow_u, float *v, F77_INT nrow_v, float *q, F77_INT nrow_q, float *work, F77_INT lwork, F77_INT *iwork, F77_INT &info)
 
void ggsvd (char &jobu, char &jobv, char &jobq, F77_INT m, F77_INT n, F77_INT p, F77_INT &k, F77_INT &l, FloatComplex *tmp_dataA, F77_INT m1, FloatComplex *tmp_dataB, F77_INT p1, FloatMatrix &alpha, FloatMatrix &beta, FloatComplex *u, F77_INT nrow_u, FloatComplex *v, F77_INT nrow_v, FloatComplex *q, F77_INT nrow_q, FloatComplex *work, F77_INT lwork, F77_INT *iwork, F77_INT &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, P *work, octave_f77_int_type lwork, octave_f77_int_type *iwork, octave_f77_int_type &info)
 

Private Attributes

m_left_smA
 
m_left_smB
 
m_right_sm
 
real_matrix m_sigmaA
 
real_matrix m_sigmaB
 
gsvd::Type m_type
 

Detailed Description

template<typename T>
class gsvd< T >

Definition at line 36 of file gsvd.h.

Member Typedef Documentation

◆ P

template<typename T >
typedef T::value_type gsvd< T >::P
private

Definition at line 90 of file gsvd.h.

◆ real_matrix

template<typename T >
typedef T::real_matrix_type gsvd< T >::real_matrix
private

Definition at line 91 of file gsvd.h.

Member Enumeration Documentation

◆ Type

template<typename T >
enum gsvd::Type
strong
Enumerator
std 
economy 
sigma_only 

Definition at line 42 of file gsvd.h.

Constructor & Destructor Documentation

◆ gsvd() [1/3]

template<typename T >
gsvd< T >::gsvd ( void  )
inline

Definition at line 49 of file gsvd.h.

◆ gsvd() [2/3]

template<typename T >
gsvd< T >::gsvd ( const T &  a,
const T &  b,
gsvd< T >::Type  gsvd_type = gsvd<T>::Type::std 
)

◆ gsvd() [3/3]

template<typename T >
gsvd< T >::gsvd ( const gsvd< T > &  a)
inline

Definition at line 55 of file gsvd.h.

◆ ~gsvd()

template<typename T >
gsvd< T >::~gsvd ( void  )
default

Member Function Documentation

◆ ggsvd() [1/5]

void gsvd< ComplexMatrix >::ggsvd ( char &  jobu,
char &  jobv,
char &  jobq,
F77_INT  m,
F77_INT  n,
F77_INT  p,
F77_INT k,
F77_INT l,
Complex tmp_dataA,
F77_INT  m1,
Complex tmp_dataB,
F77_INT  p1,
Matrix alpha,
Matrix beta,
Complex u,
F77_INT  nrow_u,
Complex v,
F77_INT  nrow_v,
Complex q,
F77_INT  nrow_q,
Complex work,
F77_INT  lwork,
F77_INT iwork,
F77_INT info 
)
private

◆ ggsvd() [2/5]

void gsvd< Matrix >::ggsvd ( char &  jobu,
char &  jobv,
char &  jobq,
F77_INT  m,
F77_INT  n,
F77_INT  p,
F77_INT k,
F77_INT l,
double *  tmp_dataA,
F77_INT  m1,
double *  tmp_dataB,
F77_INT  p1,
Matrix alpha,
Matrix beta,
double *  u,
F77_INT  nrow_u,
double *  v,
F77_INT  nrow_v,
double *  q,
F77_INT  nrow_q,
double *  work,
F77_INT  lwork,
F77_INT iwork,
F77_INT info 
)
private

◆ ggsvd() [3/5]

void gsvd< FloatMatrix >::ggsvd ( char &  jobu,
char &  jobv,
char &  jobq,
F77_INT  m,
F77_INT  n,
F77_INT  p,
F77_INT k,
F77_INT l,
float *  tmp_dataA,
F77_INT  m1,
float *  tmp_dataB,
F77_INT  p1,
FloatMatrix alpha,
FloatMatrix beta,
float *  u,
F77_INT  nrow_u,
float *  v,
F77_INT  nrow_v,
float *  q,
F77_INT  nrow_q,
float *  work,
F77_INT  lwork,
F77_INT iwork,
F77_INT info 
)
private

◆ ggsvd() [4/5]

void gsvd< FloatComplexMatrix >::ggsvd ( char &  jobu,
char &  jobv,
char &  jobq,
F77_INT  m,
F77_INT  n,
F77_INT  p,
F77_INT k,
F77_INT l,
FloatComplex tmp_dataA,
F77_INT  m1,
FloatComplex tmp_dataB,
F77_INT  p1,
FloatMatrix alpha,
FloatMatrix beta,
FloatComplex u,
F77_INT  nrow_u,
FloatComplex v,
F77_INT  nrow_v,
FloatComplex q,
F77_INT  nrow_q,
FloatComplex work,
F77_INT  lwork,
F77_INT iwork,
F77_INT info 
)
private

◆ ggsvd() [5/5]

template<typename T >
void gsvd< T >::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,
P work,
octave_f77_int_type  lwork,
octave_f77_int_type *  iwork,
octave_f77_int_type &  info 
)
private

Referenced by gsvd< T >::gsvd().

◆ left_singular_matrix_A()

template<typename T >
T gsvd< T >::left_singular_matrix_A ( void  ) const

Definition at line 439 of file gsvd.cc.

References gsvd< T >::sigma_only.

◆ left_singular_matrix_B()

template<typename T >
T gsvd< T >::left_singular_matrix_B ( void  ) const

Definition at line 450 of file gsvd.cc.

References gsvd< T >::sigma_only.

◆ operator=()

template<typename T >
gsvd& gsvd< T >::operator= ( const gsvd< T > &  a)
inline

◆ right_singular_matrix()

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

Definition at line 461 of file gsvd.cc.

References gsvd< T >::sigma_only.

◆ singular_values_A()

template<typename T >
T::real_matrix_type gsvd< T >::singular_values_A ( void  ) const
inline

Definition at line 79 of file gsvd.h.

◆ singular_values_B()

template<typename T >
T::real_matrix_type gsvd< T >::singular_values_B ( void  ) const
inline

Definition at line 82 of file gsvd.h.

Member Data Documentation

◆ m_left_smA

template<typename T >
T gsvd< T >::m_left_smA
private

Definition at line 110 of file gsvd.h.

Referenced by gsvd< T >::operator=().

◆ m_left_smB

template<typename T >
T gsvd< T >::m_left_smB
private

Definition at line 110 of file gsvd.h.

Referenced by gsvd< T >::operator=().

◆ m_right_sm

template<typename T >
T gsvd< T >::m_right_sm
private

Definition at line 111 of file gsvd.h.

Referenced by gsvd< T >::operator=().

◆ m_sigmaA

template<typename T >
real_matrix gsvd< T >::m_sigmaA
private

Definition at line 109 of file gsvd.h.

Referenced by gsvd< T >::operator=().

◆ m_sigmaB

template<typename T >
real_matrix gsvd< T >::m_sigmaB
private

Definition at line 109 of file gsvd.h.

Referenced by gsvd< T >::operator=().

◆ m_type

template<typename T >
gsvd::Type gsvd< T >::m_type
private

Definition at line 108 of file gsvd.h.

Referenced by gsvd< T >::operator=().


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