ViennaCL - The Vienna Computing Library  1.7.1
Free open-source GPU-accelerated linear algebra and solver library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
viennacl::linalg::host_based::detail Namespace Reference

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

Namespaces

 fft
 

Classes

class  matrix_array_wrapper
 Helper array for accessing a strided submatrix embedded in a larger matrix. More...
 
class  vector_array_wrapper
 Helper class for accessing a strided subvector of a larger vector. More...
 

Functions

template<typename ResultT , typename VectorT >
ResultT * extract_raw_pointer (VectorT &vec)
 
template<typename ResultT , typename VectorT >
ResultT const * extract_raw_pointer (VectorT const &vec)
 
template<typename MatrixT1 , typename MatrixT2 >
void upper_inplace_solve_matrix (MatrixT1 &A, MatrixT2 &B, vcl_size_t A_size, vcl_size_t B_size, bool unit_diagonal)
 
template<typename MatrixT1 , typename MatrixT2 >
void inplace_solve_matrix (MatrixT1 &A, MatrixT2 &B, vcl_size_t A_size, vcl_size_t B_size, viennacl::linalg::unit_upper_tag)
 
template<typename MatrixT1 , typename MatrixT2 >
void inplace_solve_matrix (MatrixT1 &A, MatrixT2 &B, vcl_size_t A_size, vcl_size_t B_size, viennacl::linalg::upper_tag)
 
template<typename MatrixT1 , typename MatrixT2 >
void lower_inplace_solve_matrix (MatrixT1 &A, MatrixT2 &B, vcl_size_t A_size, vcl_size_t B_size, bool unit_diagonal)
 
template<typename MatrixT1 , typename MatrixT2 >
void inplace_solve_matrix (MatrixT1 &A, MatrixT2 &B, vcl_size_t A_size, vcl_size_t B_size, viennacl::linalg::unit_lower_tag)
 
template<typename MatrixT1 , typename MatrixT2 >
void inplace_solve_matrix (MatrixT1 &A, MatrixT2 &B, vcl_size_t A_size, vcl_size_t B_size, viennacl::linalg::lower_tag)
 
template<typename MatrixT , typename VectorT >
void upper_inplace_solve_vector (MatrixT &A, VectorT &b, vcl_size_t A_size, bool unit_diagonal)
 
template<typename MatrixT , typename VectorT >
void inplace_solve_vector (MatrixT &A, VectorT &b, vcl_size_t A_size, viennacl::linalg::unit_upper_tag)
 
template<typename MatrixT , typename VectorT >
void inplace_solve_vector (MatrixT &A, VectorT &b, vcl_size_t A_size, viennacl::linalg::upper_tag)
 
template<typename MatrixT , typename VectorT >
void lower_inplace_solve_vector (MatrixT &A, VectorT &b, vcl_size_t A_size, bool unit_diagonal)
 
template<typename MatrixT , typename VectorT >
void inplace_solve_vector (MatrixT &A, VectorT &b, vcl_size_t A_size, viennacl::linalg::unit_lower_tag)
 
template<typename MatrixT , typename VectorT >
void inplace_solve_vector (MatrixT &A, VectorT &b, vcl_size_t A_size, viennacl::linalg::lower_tag)
 
template<typename NumericT >
void pipelined_prod_impl (compressed_matrix< NumericT > const &A, vector_base< NumericT > const &p, vector_base< NumericT > &Ap, NumericT const *r0star, vector_base< NumericT > &inner_prod_buffer, vcl_size_t buffer_chunk_size, vcl_size_t buffer_chunk_offset)
 Implementation of a fused matrix-vector product with a compressed_matrix for an efficient pipelined CG algorithm. More...
 
template<typename NumericT >
void pipelined_prod_impl (coordinate_matrix< NumericT > const &A, vector_base< NumericT > const &p, vector_base< NumericT > &Ap, NumericT const *r0star, vector_base< NumericT > &inner_prod_buffer, vcl_size_t buffer_chunk_size, vcl_size_t buffer_chunk_offset)
 Implementation of a fused matrix-vector product with a coordinate_matrix for an efficient pipelined CG algorithm. More...
 
template<typename NumericT >
void pipelined_prod_impl (ell_matrix< NumericT > const &A, vector_base< NumericT > const &p, vector_base< NumericT > &Ap, NumericT const *r0star, vector_base< NumericT > &inner_prod_buffer, vcl_size_t buffer_chunk_size, vcl_size_t buffer_chunk_offset)
 Implementation of a fused matrix-vector product with an ell_matrix for an efficient pipelined CG algorithm. More...
 
template<typename NumericT , typename IndexT >
void pipelined_prod_impl (sliced_ell_matrix< NumericT, IndexT > const &A, vector_base< NumericT > const &p, vector_base< NumericT > &Ap, NumericT const *r0star, vector_base< NumericT > &inner_prod_buffer, vcl_size_t buffer_chunk_size, vcl_size_t buffer_chunk_offset)
 Implementation of a fused matrix-vector product with an sliced_ell_matrix for an efficient pipelined CG algorithm. More...
 
template<typename NumericT >
void pipelined_prod_impl (hyb_matrix< NumericT > const &A, vector_base< NumericT > const &p, vector_base< NumericT > &Ap, NumericT const *r0star, vector_base< NumericT > &inner_prod_buffer, vcl_size_t buffer_chunk_size, vcl_size_t buffer_chunk_offset)
 Implementation of a fused matrix-vector product with an hyb_matrix for an efficient pipelined CG algorithm. More...
 
template<typename MatrixAccT1 , typename MatrixAccT2 , typename MatrixAccT3 , typename NumericT >
void prod (MatrixAccT1 &A, MatrixAccT2 &B, MatrixAccT3 &C, vcl_size_t C_size1, vcl_size_t C_size2, vcl_size_t A_size2, NumericT alpha, NumericT beta)
 
template<typename NumericT >
void level_scheduling_substitute (vector< NumericT > &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 NumericT , unsigned int AlignmentV>
void row_info (compressed_matrix< NumericT, AlignmentV > const &mat, vector_base< NumericT > &vec, viennacl::linalg::detail::row_info_types info_selector)
 
template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void csr_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_lower_tag)
 
template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void csr_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::lower_tag)
 
template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void csr_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_upper_tag)
 
template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void csr_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::upper_tag)
 
template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void csr_trans_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_lower_tag)
 
template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void csr_trans_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::lower_tag)
 
template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void csr_trans_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::unit_upper_tag)
 
template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void csr_trans_inplace_solve (IndexArrayT const &row_buffer, IndexArrayT const &col_buffer, ConstScalarArrayT const &element_buffer, ScalarArrayT &vec_buffer, vcl_size_t num_cols, viennacl::linalg::upper_tag)
 
template<typename NumericT , unsigned int AlignmentV>
void block_inplace_solve (const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &L, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< NumericT > const &, vector_base< NumericT > &vec, viennacl::linalg::unit_lower_tag)
 
template<typename NumericT , unsigned int AlignmentV>
void block_inplace_solve (const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &L, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< NumericT > const &L_diagonal, vector_base< NumericT > &vec, viennacl::linalg::lower_tag)
 
template<typename NumericT , unsigned int AlignmentV>
void block_inplace_solve (const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &U, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< NumericT > const &, vector_base< NumericT > &vec, viennacl::linalg::unit_upper_tag)
 
template<typename NumericT , unsigned int AlignmentV>
void block_inplace_solve (const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &U, viennacl::backend::mem_handle const &, vcl_size_t, vector_base< NumericT > const &U_diagonal, vector_base< NumericT > &vec, viennacl::linalg::upper_tag)
 
template<typename NumericT , unsigned int AlignmentV>
void row_info (coordinate_matrix< NumericT, AlignmentV > const &mat, vector_base< NumericT > &vec, viennacl::linalg::detail::row_info_types info_selector)
 
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)
 
template<typename NumericT >
void vector_scan_impl (vector_base< NumericT > const &vec1, vector_base< NumericT > &vec2, bool is_inclusive)
 Implementation of inclusive_scan and exclusive_scan for the host (OpenMP) backend. More...
 

Detailed Description

Helper functions for the host-based linear algebra backend.

Function Documentation

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::host_based::detail::block_inplace_solve ( const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &  L,
viennacl::backend::mem_handle const &  ,
vcl_size_t  ,
vector_base< NumericT > const &  ,
vector_base< NumericT > &  vec,
viennacl::linalg::unit_lower_tag   
)

Definition at line 824 of file sparse_matrix_operations.hpp.

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::host_based::detail::block_inplace_solve ( const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &  L,
viennacl::backend::mem_handle const &  ,
vcl_size_t  ,
vector_base< NumericT > const &  L_diagonal,
vector_base< NumericT > &  vec,
viennacl::linalg::lower_tag   
)

Definition at line 855 of file sparse_matrix_operations.hpp.

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::host_based::detail::block_inplace_solve ( const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &  U,
viennacl::backend::mem_handle const &  ,
vcl_size_t  ,
vector_base< NumericT > const &  ,
vector_base< NumericT > &  vec,
viennacl::linalg::unit_upper_tag   
)

Definition at line 891 of file sparse_matrix_operations.hpp.

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::host_based::detail::block_inplace_solve ( const matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > &  U,
viennacl::backend::mem_handle const &  ,
vcl_size_t  ,
vector_base< NumericT > const &  U_diagonal,
vector_base< NumericT > &  vec,
viennacl::linalg::upper_tag   
)

Definition at line 924 of file sparse_matrix_operations.hpp.

template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void viennacl::linalg::host_based::detail::csr_inplace_solve ( IndexArrayT const &  row_buffer,
IndexArrayT const &  col_buffer,
ConstScalarArrayT const &  element_buffer,
ScalarArrayT &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::unit_lower_tag   
)

Definition at line 494 of file sparse_matrix_operations.hpp.

template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void viennacl::linalg::host_based::detail::csr_inplace_solve ( IndexArrayT const &  row_buffer,
IndexArrayT const &  col_buffer,
ConstScalarArrayT const &  element_buffer,
ScalarArrayT &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::lower_tag   
)

Definition at line 518 of file sparse_matrix_operations.hpp.

template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void viennacl::linalg::host_based::detail::csr_inplace_solve ( IndexArrayT const &  row_buffer,
IndexArrayT const &  col_buffer,
ConstScalarArrayT const &  element_buffer,
ScalarArrayT &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::unit_upper_tag   
)

Definition at line 549 of file sparse_matrix_operations.hpp.

template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void viennacl::linalg::host_based::detail::csr_inplace_solve ( IndexArrayT const &  row_buffer,
IndexArrayT const &  col_buffer,
ConstScalarArrayT const &  element_buffer,
ScalarArrayT &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::upper_tag   
)

Definition at line 573 of file sparse_matrix_operations.hpp.

template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void viennacl::linalg::host_based::detail::csr_trans_inplace_solve ( IndexArrayT const &  row_buffer,
IndexArrayT const &  col_buffer,
ConstScalarArrayT const &  element_buffer,
ScalarArrayT &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::unit_lower_tag   
)

Definition at line 696 of file sparse_matrix_operations.hpp.

template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void viennacl::linalg::host_based::detail::csr_trans_inplace_solve ( IndexArrayT const &  row_buffer,
IndexArrayT const &  col_buffer,
ConstScalarArrayT const &  element_buffer,
ScalarArrayT &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::lower_tag   
)

Definition at line 719 of file sparse_matrix_operations.hpp.

template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void viennacl::linalg::host_based::detail::csr_trans_inplace_solve ( IndexArrayT const &  row_buffer,
IndexArrayT const &  col_buffer,
ConstScalarArrayT const &  element_buffer,
ScalarArrayT &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::unit_upper_tag   
)

Definition at line 757 of file sparse_matrix_operations.hpp.

template<typename NumericT , typename ConstScalarArrayT , typename ScalarArrayT , typename IndexArrayT >
void viennacl::linalg::host_based::detail::csr_trans_inplace_solve ( IndexArrayT const &  row_buffer,
IndexArrayT const &  col_buffer,
ConstScalarArrayT const &  element_buffer,
ScalarArrayT &  vec_buffer,
vcl_size_t  num_cols,
viennacl::linalg::upper_tag   
)

Definition at line 782 of file sparse_matrix_operations.hpp.

template<typename ResultT , typename VectorT >
ResultT* viennacl::linalg::host_based::detail::extract_raw_pointer ( VectorT &  vec)

Definition at line 37 of file common.hpp.

template<typename ResultT , typename VectorT >
ResultT const* viennacl::linalg::host_based::detail::extract_raw_pointer ( VectorT const &  vec)

Definition at line 43 of file common.hpp.

template<typename NumericT >
NumericT viennacl::linalg::host_based::detail::flip_sign ( NumericT  val)

Definition at line 57 of file vector_operations.hpp.

unsigned long viennacl::linalg::host_based::detail::flip_sign ( unsigned long  val)
inline

Definition at line 58 of file vector_operations.hpp.

unsigned int viennacl::linalg::host_based::detail::flip_sign ( unsigned int  val)
inline

Definition at line 59 of file vector_operations.hpp.

unsigned short viennacl::linalg::host_based::detail::flip_sign ( unsigned short  val)
inline

Definition at line 60 of file vector_operations.hpp.

unsigned char viennacl::linalg::host_based::detail::flip_sign ( unsigned char  val)
inline

Definition at line 61 of file vector_operations.hpp.

template<typename MatrixT1 , typename MatrixT2 >
void viennacl::linalg::host_based::detail::inplace_solve_matrix ( MatrixT1 &  A,
MatrixT2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
viennacl::linalg::unit_upper_tag   
)

Definition at line 68 of file direct_solve.hpp.

template<typename MatrixT1 , typename MatrixT2 >
void viennacl::linalg::host_based::detail::inplace_solve_matrix ( MatrixT1 &  A,
MatrixT2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
viennacl::linalg::upper_tag   
)

Definition at line 74 of file direct_solve.hpp.

template<typename MatrixT1 , typename MatrixT2 >
void viennacl::linalg::host_based::detail::inplace_solve_matrix ( MatrixT1 &  A,
MatrixT2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
viennacl::linalg::unit_lower_tag   
)

Definition at line 106 of file direct_solve.hpp.

template<typename MatrixT1 , typename MatrixT2 >
void viennacl::linalg::host_based::detail::inplace_solve_matrix ( MatrixT1 &  A,
MatrixT2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
viennacl::linalg::lower_tag   
)

Definition at line 112 of file direct_solve.hpp.

template<typename MatrixT , typename VectorT >
void viennacl::linalg::host_based::detail::inplace_solve_vector ( MatrixT &  A,
VectorT &  b,
vcl_size_t  A_size,
viennacl::linalg::unit_upper_tag   
)

Definition at line 219 of file direct_solve.hpp.

template<typename MatrixT , typename VectorT >
void viennacl::linalg::host_based::detail::inplace_solve_vector ( MatrixT &  A,
VectorT &  b,
vcl_size_t  A_size,
viennacl::linalg::upper_tag   
)

Definition at line 225 of file direct_solve.hpp.

template<typename MatrixT , typename VectorT >
void viennacl::linalg::host_based::detail::inplace_solve_vector ( MatrixT &  A,
VectorT &  b,
vcl_size_t  A_size,
viennacl::linalg::unit_lower_tag   
)

Definition at line 252 of file direct_solve.hpp.

template<typename MatrixT , typename VectorT >
void viennacl::linalg::host_based::detail::inplace_solve_vector ( MatrixT &  A,
VectorT &  b,
vcl_size_t  A_size,
viennacl::linalg::lower_tag   
)

Definition at line 258 of file direct_solve.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::detail::level_scheduling_substitute ( vector< NumericT > &  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 
)

Definition at line 42 of file misc_operations.hpp.

template<typename MatrixT1 , typename MatrixT2 >
void viennacl::linalg::host_based::detail::lower_inplace_solve_matrix ( MatrixT1 &  A,
MatrixT2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
bool  unit_diagonal 
)

Definition at line 83 of file direct_solve.hpp.

template<typename MatrixT , typename VectorT >
void viennacl::linalg::host_based::detail::lower_inplace_solve_vector ( MatrixT &  A,
VectorT &  b,
vcl_size_t  A_size,
bool  unit_diagonal 
)

Definition at line 234 of file direct_solve.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::detail::pipelined_prod_impl ( compressed_matrix< NumericT > const &  A,
vector_base< NumericT > const &  p,
vector_base< NumericT > &  Ap,
NumericT const *  r0star,
vector_base< NumericT > &  inner_prod_buffer,
vcl_size_t  buffer_chunk_size,
vcl_size_t  buffer_chunk_offset 
)

Implementation of a fused matrix-vector product with a compressed_matrix for an efficient pipelined CG algorithm.

This routines computes for a matrix A and vectors 'p', 'Ap', and 'r0': Ap = prod(A, p); and computes the two reduction stages for computing inner_prod(p,Ap), inner_prod(Ap,Ap), inner_prod(Ap, r0)

Definition at line 61 of file iterative_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::detail::pipelined_prod_impl ( coordinate_matrix< NumericT > const &  A,
vector_base< NumericT > const &  p,
vector_base< NumericT > &  Ap,
NumericT const *  r0star,
vector_base< NumericT > &  inner_prod_buffer,
vcl_size_t  buffer_chunk_size,
vcl_size_t  buffer_chunk_offset 
)

Implementation of a fused matrix-vector product with a coordinate_matrix for an efficient pipelined CG algorithm.

This routines computes for a matrix A and vectors 'p', 'Ap', and 'r0': Ap = prod(A, p); and computes the two reduction stages for computing inner_prod(p,Ap), inner_prod(Ap,Ap), inner_prod(Ap, r0)

Definition at line 112 of file iterative_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::detail::pipelined_prod_impl ( ell_matrix< NumericT > const &  A,
vector_base< NumericT > const &  p,
vector_base< NumericT > &  Ap,
NumericT const *  r0star,
vector_base< NumericT > &  inner_prod_buffer,
vcl_size_t  buffer_chunk_size,
vcl_size_t  buffer_chunk_offset 
)

Implementation of a fused matrix-vector product with an ell_matrix for an efficient pipelined CG algorithm.

This routines computes for a matrix A and vectors 'p', 'Ap', and 'r0': Ap = prod(A, p); and computes the two reduction stages for computing inner_prod(p,Ap), inner_prod(Ap,Ap), inner_prod(Ap, r0)

Definition at line 165 of file iterative_operations.hpp.

template<typename NumericT , typename IndexT >
void viennacl::linalg::host_based::detail::pipelined_prod_impl ( sliced_ell_matrix< NumericT, IndexT > const &  A,
vector_base< NumericT > const &  p,
vector_base< NumericT > &  Ap,
NumericT const *  r0star,
vector_base< NumericT > &  inner_prod_buffer,
vcl_size_t  buffer_chunk_size,
vcl_size_t  buffer_chunk_offset 
)

Implementation of a fused matrix-vector product with an sliced_ell_matrix for an efficient pipelined CG algorithm.

This routines computes for a matrix A and vectors 'p', 'Ap', and 'r0': Ap = prod(A, p); and computes the two reduction stages for computing inner_prod(p,Ap), inner_prod(Ap,Ap), inner_prod(Ap, r0)

Definition at line 218 of file iterative_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::detail::pipelined_prod_impl ( hyb_matrix< NumericT > const &  A,
vector_base< NumericT > const &  p,
vector_base< NumericT > &  Ap,
NumericT const *  r0star,
vector_base< NumericT > &  inner_prod_buffer,
vcl_size_t  buffer_chunk_size,
vcl_size_t  buffer_chunk_offset 
)

Implementation of a fused matrix-vector product with an hyb_matrix for an efficient pipelined CG algorithm.

This routines computes for a matrix A and vectors 'p', 'Ap', and 'r0': Ap = prod(A, p); and computes the two reduction stages for computing inner_prod(p,Ap), inner_prod(Ap,Ap), inner_prod(Ap, r0)

Definition at line 294 of file iterative_operations.hpp.

template<typename MatrixAccT1 , typename MatrixAccT2 , typename MatrixAccT3 , typename NumericT >
void viennacl::linalg::host_based::detail::prod ( MatrixAccT1 &  A,
MatrixAccT2 &  B,
MatrixAccT3 &  C,
vcl_size_t  C_size1,
vcl_size_t  C_size2,
vcl_size_t  A_size2,
NumericT  alpha,
NumericT  beta 
)

Definition at line 1142 of file matrix_operations.hpp.

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::host_based::detail::row_info ( compressed_matrix< NumericT, AlignmentV > const &  mat,
vector_base< NumericT > &  vec,
viennacl::linalg::detail::row_info_types  info_selector 
)

Definition at line 53 of file sparse_matrix_operations.hpp.

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::host_based::detail::row_info ( coordinate_matrix< NumericT, AlignmentV > const &  mat,
vector_base< NumericT > &  vec,
viennacl::linalg::detail::row_info_types  info_selector 
)

Definition at line 1113 of file sparse_matrix_operations.hpp.

template<typename MatrixT1 , typename MatrixT2 >
void viennacl::linalg::host_based::detail::upper_inplace_solve_matrix ( MatrixT1 &  A,
MatrixT2 &  B,
vcl_size_t  A_size,
vcl_size_t  B_size,
bool  unit_diagonal 
)

Definition at line 43 of file direct_solve.hpp.

template<typename MatrixT , typename VectorT >
void viennacl::linalg::host_based::detail::upper_inplace_solve_vector ( MatrixT &  A,
VectorT &  b,
vcl_size_t  A_size,
bool  unit_diagonal 
)

Definition at line 199 of file direct_solve.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::detail::vector_scan_impl ( vector_base< NumericT > const &  vec1,
vector_base< NumericT > &  vec2,
bool  is_inclusive 
)

Implementation of inclusive_scan and exclusive_scan for the host (OpenMP) backend.

Definition at line 1056 of file vector_operations.hpp.