1 #ifndef VIENNACL_LINALG_DETAIL_BISECT_KERNEL_CALLS_HPP_ 
    2 #define VIENNACL_LINALG_DETAIL_BISECT_KERNEL_CALLS_HPP_ 
   44 #ifdef VIENNACL_WITH_OPENCL 
   48 #ifdef VIENNACL_WITH_CUDA 
   58  template<
typename NumericT>
 
   60                   const unsigned int mat_size,
 
   66 #ifdef VIENNACL_WITH_OPENCL 
   74 #ifdef VIENNACL_WITH_CUDA 
   92  template<
typename NumericT>
 
   94                     const unsigned int mat_size,
 
  100 #ifdef VIENNACL_WITH_OPENCL 
  108 #ifdef VIENNACL_WITH_CUDA 
  127  template<
typename NumericT>
 
  129                     const unsigned int mat_size,
 
  134 #ifdef VIENNACL_WITH_OPENCL 
  141 #ifdef VIENNACL_WITH_CUDA 
  159  template<
typename NumericT>
 
  161                     const unsigned int mat_size,
 
  166 #ifdef VIENNACL_WITH_OPENCL 
  173 #ifdef VIENNACL_WITH_CUDA 
void bisectLarge(const viennacl::linalg::detail::InputData< NumericT > &input, viennacl::linalg::detail::ResultDataLarge< NumericT > &result, const unsigned int mat_size, const NumericT lg, const NumericT ug, const NumericT precision)
void bisectLarge_MultIntervals(const InputData< NumericT > &input, ResultDataLarge< NumericT > &result, const unsigned int mat_size, const NumericT precision)
void bisectLargeMultIntervals(const viennacl::linalg::detail::InputData< NumericT > &input, viennacl::linalg::detail::ResultDataLarge< NumericT > &result, const unsigned int mat_size, const NumericT precision)
void bisectLarge(const InputData< NumericT > &input, ResultDataLarge< NumericT > &result, const unsigned int mat_size, const NumericT lg, const NumericT ug, const NumericT precision)
void bisectSmall(const viennacl::linalg::detail::InputData< NumericT > &input, viennacl::linalg::detail::ResultDataSmall< NumericT > &result, const unsigned int mat_size, const NumericT lg, const NumericT ug, const NumericT precision)
Helper structures to simplify variable handling. 
Exception class in case of memory errors. 
Generic size and resize functionality for different vector and matrix types. 
Extracts the underlying OpenCL start index handle from a vector, a matrix, an expression etc...
This file provides the forward declarations for the main types used within ViennaCL. 
Determines row and column increments for matrices and matrix proxies. 
CUDA kernel calls for the bisection algorithm. 
void bisectLargeOneIntervals(const viennacl::linalg::detail::InputData< NumericT > &input, viennacl::linalg::detail::ResultDataLarge< NumericT > &result, const unsigned int mat_size, const NumericT precision)
Proxy classes for vectors. 
void bisectLarge_OneIntervals(const InputData< NumericT > &input, ResultDataLarge< NumericT > &result, const unsigned int mat_size, const NumericT precision)
All the predicates used within ViennaCL. Checks for expressions to be vectors, etc. 
The vector type with operator-overloads and proxy classes is defined here. Linear algebra operations ...
void bisectLarge_OneIntervals(const viennacl::linalg::detail::InputData< NumericT > &input, viennacl::linalg::detail::ResultDataLarge< NumericT > &result, const unsigned int mat_size, const NumericT precision)
void bisectSmall(const InputData< NumericT > &input, ResultDataSmall< NumericT > &result, const unsigned int mat_size, const NumericT lg, const NumericT ug, const NumericT precision)
In this class the data of the result for large matrices is stored. 
void bisectSmall(const viennacl::linalg::detail::InputData< NumericT > &input, viennacl::linalg::detail::ResultDataSmall< NumericT > &result, const unsigned int mat_size, const NumericT lg, const NumericT ug, const NumericT precision)
Extracts the underlying OpenCL handle from a vector, a matrix, an expression etc. ...
viennacl::backend::mem_handle & handle(T &obj)
Returns the generic memory handle of an object. Non-const version. 
void bisectLarge_MultIntervals(const viennacl::linalg::detail::InputData< NumericT > &input, viennacl::linalg::detail::ResultDataLarge< NumericT > &result, const unsigned int mat_size, const NumericT precision)
Implementation of the ViennaCL scalar class. 
In this class the data of the result for small matrices is stored. 
A collection of compile time type deductions. 
OpenCL kernel calls for the bisection algorithm. 
Simple enable-if variant that uses the SFINAE pattern. 
void bisectLarge(const viennacl::linalg::detail::InputData< NumericT > &input, viennacl::linalg::detail::ResultDataLarge< NumericT > &result, const unsigned int mat_size, const NumericT lg, const NumericT ug, const NumericT precision)
memory_types get_active_handle_id() const 
Returns an ID for the currently active memory buffer. Other memory buffers might contain old or no da...