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.