ViennaCL - The Vienna Computing Library  1.5.1
Data Structures | Functions
viennacl::linalg::host_based::detail Namespace Reference

Helper functions for the host-based linear algebra backend. More...

Data Structures

class  vector_array_wrapper
 Helper class for accessing a strided subvector of a larger vector. More...
 
struct  majority_struct_for_orientation
 Returns the row_major or column_major class of a dense matrix based on the majority-tag (layout-tag) provided. More...
 
class  matrix_array_wrapper
 Helper array for accessing a strided submatrix embedded in a larger matrix. More...
 

Functions

template<typename T , typename VectorType >
T * extract_raw_pointer (VectorType &vec)
 
template<typename T , typename VectorType >
T const * extract_raw_pointer (VectorType const &vec)
 
bool is_row_major (viennacl::row_major_tag)
 
bool is_row_major (viennacl::column_major_tag)
 
template<typename MatrixType1 , typename MatrixType2 >
void upper_inplace_solve_matrix (MatrixType1 &A, MatrixType2 &B, vcl_size_t A_size, vcl_size_t B_size, bool unit_diagonal)
 
template<typename MatrixType1 , typename MatrixType2 >
void inplace_solve_matrix (MatrixType1 &A, MatrixType2 &B, vcl_size_t A_size, vcl_size_t B_size, viennacl::linalg::unit_upper_tag)
 
template<typename MatrixType1 , typename MatrixType2 >
void inplace_solve_matrix (MatrixType1 &A, MatrixType2 &B, vcl_size_t A_size, vcl_size_t B_size, viennacl::linalg::upper_tag)
 
template<typename MatrixType1 , typename MatrixType2 >
void lower_inplace_solve_matrix (MatrixType1 &A, MatrixType2 &B, vcl_size_t A_size, vcl_size_t B_size, bool unit_diagonal)
 
template<typename MatrixType1 , typename MatrixType2 >
void inplace_solve_matrix (MatrixType1 &A, MatrixType2 &B, vcl_size_t A_size, vcl_size_t B_size, viennacl::linalg::unit_lower_tag)
 
template<typename MatrixType1 , typename MatrixType2 >
void inplace_solve_matrix (MatrixType1 &A, MatrixType2 &B, vcl_size_t A_size, vcl_size_t B_size, viennacl::linalg::lower_tag)
 
template<typename MatrixType , typename VectorType >
void upper_inplace_solve_vector (MatrixType &A, VectorType &b, vcl_size_t A_size, bool unit_diagonal)
 
template<typename MatrixType , typename VectorType >
void inplace_solve_vector (MatrixType &A, VectorType &b, vcl_size_t A_size, viennacl::linalg::unit_upper_tag)
 
template<typename MatrixType , typename VectorType >
void inplace_solve_vector (MatrixType &A, VectorType &b, vcl_size_t A_size, viennacl::linalg::upper_tag)
 
template<typename MatrixType , typename VectorType >
void lower_inplace_solve_vector (MatrixType &A, VectorType &b, vcl_size_t A_size, bool unit_diagonal)
 
template<typename MatrixType , typename VectorType >
void inplace_solve_vector (MatrixType &A, VectorType &b, vcl_size_t A_size, viennacl::linalg::unit_lower_tag)
 
template<typename MatrixType , typename VectorType >
void inplace_solve_vector (MatrixType &A, VectorType &b, vcl_size_t A_size, viennacl::linalg::lower_tag)
 
template<typename A , typename B , typename C , typename NumericT >
void prod (A &a, B &b, C &c, vcl_size_t C_size1, vcl_size_t C_size2, vcl_size_t A_size2, NumericT alpha, NumericT beta)
 
template<typename ScalarType >
void level_scheduling_substitute (vector< ScalarType > &vec, viennacl::backend::mem_handle const &row_index_array, viennacl::backend::mem_handle const &row_buffer, viennacl::backend::mem_handle const &col_buffer, viennacl::backend::mem_handle const &element_buffer, vcl_size_t num_rows)
 
template<typename ScalarType , unsigned int MAT_ALIGNMENT>
void row_info (compressed_matrix< ScalarType, MAT_ALIGNMENT > const &mat, vector_base< ScalarType > &vec, viennacl::linalg::detail::row_info_types info_selector)
 
template<typename NumericT , typename ConstScalarTypeArray , typename ScalarTypeArray , typename SizeTypeArray >
void csr_inplace_solve (SizeTypeArray const &row_buffer, SizeTypeArray const &col_buffer, ConstScalarTypeArray const &element_buffer, ScalarTypeArray &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_lower_tag)
 
template<typename NumericT , typename ConstScalarTypeArray , typename ScalarTypeArray , typename SizeTypeArray >
void csr_inplace_solve (SizeTypeArray const &row_buffer, SizeTypeArray const &col_buffer, ConstScalarTypeArray const &element_buffer, ScalarTypeArray &vec_buffer, vcl_size_t num_cols, viennacl::linalg::lower_tag)
 
template<typename NumericT , typename ConstScalarTypeArray , typename ScalarTypeArray , typename SizeTypeArray >
void csr_inplace_solve (SizeTypeArray const &row_buffer, SizeTypeArray const &col_buffer, ConstScalarTypeArray const &element_buffer, ScalarTypeArray &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_upper_tag)
 
template<typename NumericT , typename ConstScalarTypeArray , typename ScalarTypeArray , typename SizeTypeArray >
void csr_inplace_solve (SizeTypeArray const &row_buffer, SizeTypeArray const &col_buffer, ConstScalarTypeArray const &element_buffer, ScalarTypeArray &vec_buffer, vcl_size_t num_cols, viennacl::linalg::upper_tag)
 
template<typename NumericT , typename ConstScalarTypeArray , typename ScalarTypeArray , typename SizeTypeArray >
void csr_trans_inplace_solve (SizeTypeArray const &row_buffer, SizeTypeArray const &col_buffer, ConstScalarTypeArray const &element_buffer, ScalarTypeArray &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_lower_tag)
 
template<typename NumericT , typename ConstScalarTypeArray , typename ScalarTypeArray , typename SizeTypeArray >
void csr_trans_inplace_solve (SizeTypeArray const &row_buffer, SizeTypeArray const &col_buffer, ConstScalarTypeArray const &element_buffer, ScalarTypeArray &vec_buffer, vcl_size_t num_cols, viennacl::linalg::lower_tag)
 
template<typename NumericT , typename ConstScalarTypeArray , typename ScalarTypeArray , typename SizeTypeArray >
void csr_trans_inplace_solve (SizeTypeArray const &row_buffer, SizeTypeArray const &col_buffer, ConstScalarTypeArray const &element_buffer, ScalarTypeArray &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_upper_tag)
 
template<typename NumericT , typename ConstScalarTypeArray , typename ScalarTypeArray , typename SizeTypeArray >
void csr_trans_inplace_solve (SizeTypeArray const &row_buffer, SizeTypeArray const &col_buffer, ConstScalarTypeArray const &element_buffer, ScalarTypeArray &vec_buffer, vcl_size_t num_cols, viennacl::linalg::upper_tag)
 
template<typename ScalarType , unsigned int MAT_ALIGNMENT>
void block_inplace_solve (const matrix_expression< const compressed_matrix< ScalarType, MAT_ALIGNMENT >, const compressed_matrix< ScalarType, MAT_ALIGNMENT >, op_trans > &L, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< ScalarType > const &, vector_base< ScalarType > &vec, viennacl::linalg::unit_lower_tag)
 
template<typename ScalarType , unsigned int MAT_ALIGNMENT>
void block_inplace_solve (const matrix_expression< const compressed_matrix< ScalarType, MAT_ALIGNMENT >, const compressed_matrix< ScalarType, MAT_ALIGNMENT >, op_trans > &L, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< ScalarType > const &L_diagonal, vector_base< ScalarType > &vec, viennacl::linalg::lower_tag)
 
template<typename ScalarType , unsigned int MAT_ALIGNMENT>
void block_inplace_solve (const matrix_expression< const compressed_matrix< ScalarType, MAT_ALIGNMENT >, const compressed_matrix< ScalarType, MAT_ALIGNMENT >, op_trans > &U, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< ScalarType > const &, vector_base< ScalarType > &vec, viennacl::linalg::unit_upper_tag)
 
template<typename ScalarType , unsigned int MAT_ALIGNMENT>
void block_inplace_solve (const matrix_expression< const compressed_matrix< ScalarType, MAT_ALIGNMENT >, const compressed_matrix< ScalarType, MAT_ALIGNMENT >, op_trans > &U, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< ScalarType > const &U_diagonal, vector_base< ScalarType > &vec, viennacl::linalg::upper_tag)
 
template<typename ScalarType , unsigned int MAT_ALIGNMENT>
void row_info (coordinate_matrix< ScalarType, MAT_ALIGNMENT > const &mat, vector_base< ScalarType > &vec, viennacl::linalg::detail::row_info_types info_selector)
 
template<class T >
conjIfComplex (T x)
 
template<typename ScalarType >
bool isHermitian (ScalarType **const A, vcl_size_t n)
 
template<typename ScalarType >
vcl_size_t getHermitianBandwidth (ScalarType **const A, vcl_size_t n)
 
template<typename ScalarType >
void eliminateHermitian (ScalarType **A, vcl_size_t row, vcl_size_t from, vcl_size_t to, vcl_size_t width, ScalarType *ss)
 
template<typename ScalarType >
void tridiagonalizeHermitianBandedMatrix (ScalarType **A, vcl_size_t n, vcl_size_t bandwidth)
 
template<typename ScalarType >
void reduceHermitianToBandedMatrix (ScalarType **A, vcl_size_t n, vcl_size_t block_size, vcl_size_t num_threads)
 
template<typename NumericT >
NumericT flip_sign (NumericT val)
 
unsigned long flip_sign (unsigned long val)
 
unsigned int flip_sign (unsigned int val)
 
unsigned short flip_sign (unsigned short val)
 
unsigned char flip_sign (unsigned char val)
 

Detailed Description

Helper functions for the host-based linear algebra backend.

Function Documentation

void viennacl::linalg::host_based::detail::block_inplace_solve ( const matrix_expression< const compressed_matrix< ScalarType, MAT_ALIGNMENT >, const compressed_matrix< ScalarType, MAT_ALIGNMENT >, op_trans > &  L,
viennacl::backend::mem_handle const &  ,
vcl_size_t  ,
vector_base< ScalarType > const &  ,
vector_base< ScalarType > &  vec,
viennacl::linalg::unit_lower_tag   
)
void viennacl::linalg::host_based::detail::block_inplace_solve ( const matrix_expression< const compressed_matrix< ScalarType, MAT_ALIGNMENT >, const compressed_matrix< ScalarType, MAT_ALIGNMENT >, op_trans > &  L,
viennacl::backend::mem_handle const &  ,
vcl_size_t  ,
vector_base< ScalarType > const &  L_diagonal,
vector_base< ScalarType > &  vec,
viennacl::linalg::lower_tag   
)
void viennacl::linalg::host_based::detail::block_inplace_solve ( const matrix_expression< const compressed_matrix< ScalarType, MAT_ALIGNMENT >, const compressed_matrix< ScalarType, MAT_ALIGNMENT >, op_trans > &  U,
viennacl::backend::mem_handle const &  ,
vcl_size_t  ,
vector_base< ScalarType > const &  ,
vector_base< ScalarType > &  vec,
viennacl::linalg::unit_upper_tag   
)
void viennacl::linalg::host_based::detail::block_inplace_solve ( const matrix_expression< const compressed_matrix< ScalarType, MAT_ALIGNMENT >, const compressed_matrix< ScalarType, MAT_ALIGNMENT >, op_trans > &  U,
viennacl::backend::mem_handle const &  ,
vcl_size_t  ,
vector_base< ScalarType > const &  U_diagonal,
vector_base< ScalarType > &  vec,
viennacl::linalg::upper_tag   
)
T viennacl::linalg::host_based::detail::conjIfComplex ( x)
inline
void viennacl::linalg::host_based::detail::csr_inplace_solve ( SizeTypeArray const &  row_buffer,
SizeTypeArray const &  col_buffer,
ConstScalarTypeArray const &  element_buffer,
ScalarTypeArray &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::unit_lower_tag   
)
void viennacl::linalg::host_based::detail::csr_inplace_solve ( SizeTypeArray const &  row_buffer,
SizeTypeArray const &  col_buffer,
ConstScalarTypeArray const &  element_buffer,
ScalarTypeArray &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::lower_tag   
)
void viennacl::linalg::host_based::detail::csr_inplace_solve ( SizeTypeArray const &  row_buffer,
SizeTypeArray const &  col_buffer,
ConstScalarTypeArray const &  element_buffer,
ScalarTypeArray &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::unit_upper_tag   
)
void viennacl::linalg::host_based::detail::csr_inplace_solve ( SizeTypeArray const &  row_buffer,
SizeTypeArray const &  col_buffer,
ConstScalarTypeArray const &  element_buffer,
ScalarTypeArray &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::upper_tag   
)
void viennacl::linalg::host_based::detail::csr_trans_inplace_solve ( SizeTypeArray const &  row_buffer,
SizeTypeArray const &  col_buffer,
ConstScalarTypeArray const &  element_buffer,
ScalarTypeArray &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::unit_lower_tag   
)
void viennacl::linalg::host_based::detail::csr_trans_inplace_solve ( SizeTypeArray const &  row_buffer,
SizeTypeArray const &  col_buffer,
ConstScalarTypeArray const &  element_buffer,
ScalarTypeArray &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::lower_tag   
)
void viennacl::linalg::host_based::detail::csr_trans_inplace_solve ( SizeTypeArray const &  row_buffer,
SizeTypeArray const &  col_buffer,
ConstScalarTypeArray const &  element_buffer,
ScalarTypeArray &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::unit_upper_tag   
)
void viennacl::linalg::host_based::detail::csr_trans_inplace_solve ( SizeTypeArray const &  row_buffer,
SizeTypeArray const &  col_buffer,
ConstScalarTypeArray const &  element_buffer,
ScalarTypeArray &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::upper_tag   
)
void viennacl::linalg::host_based::detail::eliminateHermitian ( ScalarType **  A,
vcl_size_t  row,
vcl_size_t  from,
vcl_size_t  to,
vcl_size_t  width,
ScalarType *  ss 
)
T* viennacl::linalg::host_based::detail::extract_raw_pointer ( VectorType &  vec)
T const* viennacl::linalg::host_based::detail::extract_raw_pointer ( VectorType const &  vec)
NumericT viennacl::linalg::host_based::detail::flip_sign ( NumericT  val)
unsigned long viennacl::linalg::host_based::detail::flip_sign ( unsigned long  val)
inline
unsigned int viennacl::linalg::host_based::detail::flip_sign ( unsigned int  val)
inline
unsigned short viennacl::linalg::host_based::detail::flip_sign ( unsigned short  val)
inline
unsigned char viennacl::linalg::host_based::detail::flip_sign ( unsigned char  val)
inline
vcl_size_t viennacl::linalg::host_based::detail::getHermitianBandwidth ( ScalarType **const  A,
vcl_size_t  n 
)
void viennacl::linalg::host_based::detail::inplace_solve_matrix ( MatrixType1 &  A,
MatrixType2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
viennacl::linalg::unit_upper_tag   
)
void viennacl::linalg::host_based::detail::inplace_solve_matrix ( MatrixType1 &  A,
MatrixType2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
viennacl::linalg::upper_tag   
)
void viennacl::linalg::host_based::detail::inplace_solve_matrix ( MatrixType1 &  A,
MatrixType2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
viennacl::linalg::unit_lower_tag   
)
void viennacl::linalg::host_based::detail::inplace_solve_matrix ( MatrixType1 &  A,
MatrixType2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
viennacl::linalg::lower_tag   
)
void viennacl::linalg::host_based::detail::inplace_solve_vector ( MatrixType &  A,
VectorType &  b,
vcl_size_t  A_size,
viennacl::linalg::unit_upper_tag   
)
void viennacl::linalg::host_based::detail::inplace_solve_vector ( MatrixType &  A,
VectorType &  b,
vcl_size_t  A_size,
viennacl::linalg::upper_tag   
)
void viennacl::linalg::host_based::detail::inplace_solve_vector ( MatrixType &  A,
VectorType &  b,
vcl_size_t  A_size,
viennacl::linalg::unit_lower_tag   
)
void viennacl::linalg::host_based::detail::inplace_solve_vector ( MatrixType &  A,
VectorType &  b,
vcl_size_t  A_size,
viennacl::linalg::lower_tag   
)
bool viennacl::linalg::host_based::detail::is_row_major ( viennacl::row_major_tag  )
inline
bool viennacl::linalg::host_based::detail::is_row_major ( viennacl::column_major_tag  )
inline
bool viennacl::linalg::host_based::detail::isHermitian ( ScalarType **const  A,
vcl_size_t  n 
)
void viennacl::linalg::host_based::detail::level_scheduling_substitute ( vector< ScalarType > &  vec,
viennacl::backend::mem_handle const &  row_index_array,
viennacl::backend::mem_handle const &  row_buffer,
viennacl::backend::mem_handle const &  col_buffer,
viennacl::backend::mem_handle const &  element_buffer,
vcl_size_t  num_rows 
)
void viennacl::linalg::host_based::detail::lower_inplace_solve_matrix ( MatrixType1 &  A,
MatrixType2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
bool  unit_diagonal 
)
void viennacl::linalg::host_based::detail::lower_inplace_solve_vector ( MatrixType &  A,
VectorType &  b,
vcl_size_t  A_size,
bool  unit_diagonal 
)
void viennacl::linalg::host_based::detail::prod ( A &  a,
B &  b,
C &  c,
vcl_size_t  C_size1,
vcl_size_t  C_size2,
vcl_size_t  A_size2,
NumericT  alpha,
NumericT  beta 
)
void viennacl::linalg::host_based::detail::reduceHermitianToBandedMatrix ( ScalarType **  A,
vcl_size_t  n,
vcl_size_t  block_size,
vcl_size_t  num_threads 
)
void viennacl::linalg::host_based::detail::row_info ( compressed_matrix< ScalarType, MAT_ALIGNMENT > const &  mat,
vector_base< ScalarType > &  vec,
viennacl::linalg::detail::row_info_types  info_selector 
)
void viennacl::linalg::host_based::detail::row_info ( coordinate_matrix< ScalarType, MAT_ALIGNMENT > const &  mat,
vector_base< ScalarType > &  vec,
viennacl::linalg::detail::row_info_types  info_selector 
)
void viennacl::linalg::host_based::detail::tridiagonalizeHermitianBandedMatrix ( ScalarType **  A,
vcl_size_t  n,
vcl_size_t  bandwidth 
)
void viennacl::linalg::host_based::detail::upper_inplace_solve_matrix ( MatrixType1 &  A,
MatrixType2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
bool  unit_diagonal 
)
void viennacl::linalg::host_based::detail::upper_inplace_solve_vector ( MatrixType &  A,
VectorType &  b,
vcl_size_t  A_size,
bool  unit_diagonal 
)