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...