ViennaCL - The Vienna Computing Library  1.7.0
Free open-source GPU-accelerated linear algebra and solver library.
vector_operations.hpp File Reference

Implementations of NMF operations using OpenCL. More...

Go to the source code of this file.

Namespaces

 viennacl
 Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
 
 viennacl::linalg
 Provides all linear algebra operations which are not covered by operator overloads.
 
 viennacl::linalg::opencl
 Holds all routines providing OpenCL linear algebra operations.
 
 viennacl::linalg::opencl::detail
 Helper functions for OpenCL-accelerated linear algebra operations.
 

Functions

template<typename DestNumericT , typename SrcNumericT >
void viennacl::linalg::opencl::convert (vector_base< DestNumericT > &dest, vector_base< SrcNumericT > const &src)
 
template<typename NumericT , typename ScalarT1 >
void viennacl::linalg::opencl::av (vector_base< NumericT > &x, vector_base< NumericT > const &y, ScalarT1 const &alpha, vcl_size_t, bool reciprocal_alpha, bool flip_sign_alpha)
 
template<typename NumericT , typename ScalarT1 , typename ScalarT2 >
void viennacl::linalg::opencl::avbv (vector_base< NumericT > &x, vector_base< NumericT > const &y, ScalarT1 const &alpha, vcl_size_t, bool reciprocal_alpha, bool flip_sign_alpha, vector_base< NumericT > const &z, ScalarT2 const &beta, vcl_size_t, bool reciprocal_beta, bool flip_sign_beta)
 
template<typename NumericT , typename ScalarT1 , typename ScalarT2 >
void viennacl::linalg::opencl::avbv_v (vector_base< NumericT > &x, vector_base< NumericT > const &y, ScalarT1 const &alpha, vcl_size_t, bool reciprocal_alpha, bool flip_sign_alpha, vector_base< NumericT > const &z, ScalarT2 const &beta, vcl_size_t, bool reciprocal_beta, bool flip_sign_beta)
 
template<typename NumericT >
void viennacl::linalg::opencl::vector_assign (vector_base< NumericT > &x, const NumericT &alpha, bool up_to_internal_size=false)
 Assign a constant value to a vector (-range/-slice) More...
 
template<typename NumericT >
void viennacl::linalg::opencl::vector_swap (vector_base< NumericT > &x, vector_base< NumericT > &y)
 Swaps the contents of two vectors, data is copied. More...
 
template<typename NumericT , typename OP >
void viennacl::linalg::opencl::element_op (vector_base< NumericT > &x, vector_expression< const vector_base< NumericT >, const vector_base< NumericT >, op_element_binary< OP > > const &proxy)
 Implementation of the element-wise operation v1 = v2 .* v3 and v1 = v2 ./ v3 (using MATLAB syntax) More...
 
template<typename NumericT , typename OP >
void viennacl::linalg::opencl::element_op (vector_base< NumericT > &x, vector_expression< const vector_base< NumericT >, const vector_base< NumericT >, op_element_unary< OP > > const &proxy)
 Implementation of unary element-wise operations v1 = OP(v2) More...
 
template<typename NumericT >
void viennacl::linalg::opencl::inner_prod_impl (vector_base< NumericT > const &x, vector_base< NumericT > const &y, scalar< NumericT > &result)
 Computes the inner product of two vectors - implementation. Library users should call inner_prod(x, y). More...
 
template<typename NumericT >
viennacl::ocl::packed_cl_uint viennacl::linalg::opencl::detail::make_layout (vector_base< NumericT > const &vec)
 
template<typename NumericT >
void viennacl::linalg::opencl::inner_prod_impl (vector_base< NumericT > const &x, vector_tuple< NumericT > const &vec_tuple, vector_base< NumericT > &result)
 Computes multiple inner products where one argument is common to all inner products. <x, y1>, <x, y2>, ..., <x, yN> More...
 
template<typename NumericT >
void viennacl::linalg::opencl::inner_prod_cpu (vector_base< NumericT > const &x, vector_base< NumericT > const &y, NumericT &result)
 
template<typename NumericT >
void viennacl::linalg::opencl::norm_1_impl (vector_base< NumericT > const &x, scalar< NumericT > &result)
 Computes the l^1-norm of a vector. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::norm_1_cpu (vector_base< NumericT > const &x, NumericT &result)
 Computes the l^1-norm of a vector with final reduction on CPU. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::norm_2_impl (vector_base< NumericT > const &x, scalar< NumericT > &result)
 Computes the l^2-norm of a vector - implementation using OpenCL summation at second step. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::norm_2_cpu (vector_base< NumericT > const &x, NumericT &result)
 Computes the l^1-norm of a vector with final reduction on CPU. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::norm_inf_impl (vector_base< NumericT > const &x, scalar< NumericT > &result)
 Computes the supremum-norm of a vector. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::norm_inf_cpu (vector_base< NumericT > const &x, NumericT &result)
 Computes the supremum-norm of a vector. More...
 
template<typename NumericT >
cl_uint viennacl::linalg::opencl::index_norm_inf (vector_base< NumericT > const &x)
 Computes the index of the first entry that is equal to the supremum-norm in modulus. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::max_impl (vector_base< NumericT > const &x, scalar< NumericT > &result)
 Computes the maximum of a vector. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::max_cpu (vector_base< NumericT > const &x, NumericT &result)
 Computes the supremum-norm of a vector. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::min_impl (vector_base< NumericT > const &x, scalar< NumericT > &result)
 Computes the minimum of a vector. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::min_cpu (vector_base< NumericT > const &x, NumericT &result)
 Computes the supremum-norm of a vector. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::sum_impl (vector_base< NumericT > const &x, scalar< NumericT > &result)
 Computes the sum over all entries of a vector. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::sum_cpu (vector_base< NumericT > const &x, NumericT &result)
 Computes the sum over all entries of a vector. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::plane_rotation (vector_base< NumericT > &x, vector_base< NumericT > &y, NumericT alpha, NumericT beta)
 Computes a plane rotation of two vectors. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::detail::scan_impl (vector_base< NumericT > const &input, vector_base< NumericT > &output, bool is_inclusive)
 Worker routine for scan routines using OpenCL. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::inclusive_scan (vector_base< NumericT > const &input, vector_base< NumericT > &output)
 This function implements an inclusive scan using CUDA. More...
 
template<typename NumericT >
void viennacl::linalg::opencl::exclusive_scan (vector_base< NumericT > const &input, vector_base< NumericT > &output)
 This function implements an exclusive scan using CUDA. More...
 

Detailed Description

Implementations of NMF operations using OpenCL.

Implementations of vector operations using OpenCL.

Definition in file vector_operations.hpp.