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<class T > | |
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) |
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 639 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 670 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 706 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 739 of file sparse_matrix_operations.hpp.
|
inline |
Definition at line 69 of file sse_blas.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 309 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 333 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 364 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 388 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 511 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 534 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 572 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 597 of file sparse_matrix_operations.hpp.
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 | ||
) |
Definition at line 73 of file sse_kernels.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 54 of file vector_operations.hpp.
|
inline |
Definition at line 55 of file vector_operations.hpp.
|
inline |
Definition at line 56 of file vector_operations.hpp.
|
inline |
Definition at line 57 of file vector_operations.hpp.
|
inline |
Definition at line 58 of file vector_operations.hpp.
vcl_size_t viennacl::linalg::host_based::detail::getHermitianBandwidth | ( | ScalarType **const | A, |
vcl_size_t | n | ||
) |
Definition at line 61 of file sse_kernels.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 501 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 507 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 534 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 540 of file direct_solve.hpp.
bool viennacl::linalg::host_based::detail::isHermitian | ( | ScalarType **const | A, |
vcl_size_t | n | ||
) |
Definition at line 50 of file sse_kernels.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 516 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 962 of file matrix_operations.hpp.
void viennacl::linalg::host_based::detail::reduceHermitianToBandedMatrix | ( | ScalarType ** | A, |
vcl_size_t | n, | ||
vcl_size_t | block_size, | ||
vcl_size_t | num_threads | ||
) |
Definition at line 159 of file sse_kernels.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 47 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 913 of file sparse_matrix_operations.hpp.
void viennacl::linalg::host_based::detail::tridiagonalizeHermitianBandedMatrix | ( | ScalarType ** | A, |
vcl_size_t | n, | ||
vcl_size_t | bandwidth | ||
) |
Definition at line 127 of file sse_kernels.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 481 of file direct_solve.hpp.