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... | |
Helper functions for the host-based linear algebra backend.
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 814 of file sparse_matrix_operations.hpp.
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 845 of file sparse_matrix_operations.hpp.
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 881 of file sparse_matrix_operations.hpp.
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 914 of file sparse_matrix_operations.hpp.
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 484 of file sparse_matrix_operations.hpp.
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 508 of file sparse_matrix_operations.hpp.
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 539 of file sparse_matrix_operations.hpp.
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 563 of file sparse_matrix_operations.hpp.
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 686 of file sparse_matrix_operations.hpp.
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 709 of file sparse_matrix_operations.hpp.
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 747 of file sparse_matrix_operations.hpp.
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 772 of file sparse_matrix_operations.hpp.
ResultT* viennacl::linalg::host_based::detail::extract_raw_pointer | ( | VectorT & | vec | ) |
Definition at line 37 of file common.hpp.
ResultT const* viennacl::linalg::host_based::detail::extract_raw_pointer | ( | VectorT const & | vec | ) |
Definition at line 43 of file common.hpp.
NumericT viennacl::linalg::host_based::detail::flip_sign | ( | NumericT | val | ) |
Definition at line 57 of file vector_operations.hpp.
|
inline |
Definition at line 58 of file vector_operations.hpp.
|
inline |
Definition at line 59 of file vector_operations.hpp.
|
inline |
Definition at line 60 of file vector_operations.hpp.
|
inline |
Definition at line 61 of file vector_operations.hpp.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 1015 of file matrix_operations.hpp.
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.
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 1088 of file sparse_matrix_operations.hpp.
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.
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.
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 963 of file vector_operations.hpp.