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

Helper functions for OpenCL-accelerated linear algebra operations. More...

Functions

template<typename NumericT >
ocl::kernellegacy_kernel_for_matrix (matrix_base< NumericT > const &M, std::string const &kernel_name)
 
cl_uint make_options (vcl_size_t length, bool reciprocal, bool flip_sign)
 
std::string sparse_dense_matmult_kernel_name (bool B_transposed, bool B_row_major, bool C_row_major)
 Returns the OpenCL kernel string for the operation C = A * B with A sparse, B, C dense matrices. More...
 
template<typename SomeT >
ocl::device const & current_device (SomeT const &obj)
 
std::string op_to_string (op_abs)
 
std::string op_to_string (op_acos)
 
std::string op_to_string (op_asin)
 
std::string op_to_string (op_atan)
 
std::string op_to_string (op_ceil)
 
std::string op_to_string (op_cos)
 
std::string op_to_string (op_cosh)
 
std::string op_to_string (op_exp)
 
std::string op_to_string (op_fabs)
 
std::string op_to_string (op_floor)
 
std::string op_to_string (op_log)
 
std::string op_to_string (op_log10)
 
std::string op_to_string (op_sin)
 
std::string op_to_string (op_sinh)
 
std::string op_to_string (op_sqrt)
 
std::string op_to_string (op_tan)
 
std::string op_to_string (op_tanh)
 
cl_uint get_option_for_solver_tag (viennacl::linalg::upper_tag)
 
cl_uint get_option_for_solver_tag (viennacl::linalg::unit_upper_tag)
 
cl_uint get_option_for_solver_tag (viennacl::linalg::lower_tag)
 
cl_uint get_option_for_solver_tag (viennacl::linalg::unit_lower_tag)
 
template<typename MatrixT1 , typename MatrixT2 , typename KernelT >
void inplace_solve_impl (MatrixT1 const &A, MatrixT2 &B, KernelT &k)
 
template<typename NumericT >
void level_scheduling_substitute (vector< NumericT > &x, 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 &A, vector_base< NumericT > &x, viennacl::linalg::detail::row_info_types info_selector)
 
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 &block_indices, vcl_size_t num_blocks, vector_base< NumericT > const &, vector_base< NumericT > &x, viennacl::linalg::unit_lower_tag)
 
template<typename NumericT , unsigned int AlignmentV>
void block_inplace_solve (matrix_expression< const compressed_matrix< NumericT, AlignmentV >, const compressed_matrix< NumericT, AlignmentV >, op_trans > const &U, viennacl::backend::mem_handle const &block_indices, vcl_size_t num_blocks, vector_base< NumericT > const &U_diagonal, vector_base< NumericT > &x, viennacl::linalg::upper_tag)
 
template<typename NumericT , unsigned int AlignmentV>
void row_info (coordinate_matrix< NumericT, AlignmentV > const &A, vector_base< NumericT > &x, viennacl::linalg::detail::row_info_types info_selector)
 
template<typename NumericT >
viennacl::ocl::packed_cl_uint make_layout (vector_base< NumericT > const &vec)
 

Detailed Description

Helper functions for OpenCL-accelerated linear algebra operations.

Function Documentation

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::opencl::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 &  block_indices,
vcl_size_t  num_blocks,
vector_base< NumericT > const &  ,
vector_base< NumericT > &  x,
viennacl::linalg::unit_lower_tag   
)

Definition at line 291 of file sparse_matrix_operations.hpp.

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

Definition at line 314 of file sparse_matrix_operations.hpp.

template<typename SomeT >
ocl::device const& viennacl::linalg::opencl::detail::current_device ( SomeT const &  obj)

Definition at line 97 of file common.hpp.

cl_uint viennacl::linalg::opencl::detail::get_option_for_solver_tag ( viennacl::linalg::upper_tag  )
inline

Definition at line 41 of file direct_solve.hpp.

cl_uint viennacl::linalg::opencl::detail::get_option_for_solver_tag ( viennacl::linalg::unit_upper_tag  )
inline

Definition at line 42 of file direct_solve.hpp.

cl_uint viennacl::linalg::opencl::detail::get_option_for_solver_tag ( viennacl::linalg::lower_tag  )
inline

Definition at line 43 of file direct_solve.hpp.

cl_uint viennacl::linalg::opencl::detail::get_option_for_solver_tag ( viennacl::linalg::unit_lower_tag  )
inline

Definition at line 44 of file direct_solve.hpp.

template<typename MatrixT1 , typename MatrixT2 , typename KernelT >
void viennacl::linalg::opencl::detail::inplace_solve_impl ( MatrixT1 const &  A,
MatrixT2 &  B,
KernelT &  k 
)

Definition at line 47 of file direct_solve.hpp.

template<typename NumericT >
ocl::kernel& viennacl::linalg::opencl::detail::legacy_kernel_for_matrix ( matrix_base< NumericT > const &  M,
std::string const &  kernel_name 
)

Definition at line 43 of file common.hpp.

template<typename NumericT >
void viennacl::linalg::opencl::detail::level_scheduling_substitute ( vector< NumericT > &  x,
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 45 of file misc_operations.hpp.

template<typename NumericT >
viennacl::ocl::packed_cl_uint viennacl::linalg::opencl::detail::make_layout ( vector_base< NumericT > const &  vec)

Definition at line 208 of file vector_operations.hpp.

cl_uint viennacl::linalg::opencl::detail::make_options ( vcl_size_t  length,
bool  reciprocal,
bool  flip_sign 
)
inline

Definition at line 63 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_abs  )
inline

Definition at line 99 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_acos  )
inline

Definition at line 100 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_asin  )
inline

Definition at line 101 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_atan  )
inline

Definition at line 102 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_ceil  )
inline

Definition at line 103 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_cos  )
inline

Definition at line 104 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_cosh  )
inline

Definition at line 105 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_exp  )
inline

Definition at line 106 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_fabs  )
inline

Definition at line 107 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_floor  )
inline

Definition at line 108 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_log  )
inline

Definition at line 109 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_log10  )
inline

Definition at line 110 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_sin  )
inline

Definition at line 111 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_sinh  )
inline

Definition at line 112 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_sqrt  )
inline

Definition at line 113 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_tan  )
inline

Definition at line 114 of file common.hpp.

std::string viennacl::linalg::opencl::detail::op_to_string ( op_tanh  )
inline

Definition at line 115 of file common.hpp.

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::opencl::detail::row_info ( compressed_matrix< NumericT, AlignmentV > const &  A,
vector_base< NumericT > &  x,
viennacl::linalg::detail::row_info_types  info_selector 
)

Definition at line 54 of file sparse_matrix_operations.hpp.

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::opencl::detail::row_info ( coordinate_matrix< NumericT, AlignmentV > const &  A,
vector_base< NumericT > &  x,
viennacl::linalg::detail::row_info_types  info_selector 
)

Definition at line 502 of file sparse_matrix_operations.hpp.

std::string viennacl::linalg::opencl::detail::sparse_dense_matmult_kernel_name ( bool  B_transposed,
bool  B_row_major,
bool  C_row_major 
)
inline

Returns the OpenCL kernel string for the operation C = A * B with A sparse, B, C dense matrices.

Definition at line 70 of file common.hpp.