ViennaCL - The Vienna Computing Library: viennacl/linalg/cuda/bisect_util.hpp File Reference

ViennaCL - The Vienna Computing Library 1.7.1 Free open-source GPU-accelerated linear algebra and solver library. |

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Functions
bisect_util.hpp File Reference
`#include "viennacl/linalg/detail/bisect/config.hpp"`
`#include "viennacl/linalg/detail/bisect/util.hpp"`

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::cuda
| Holds all CUDA compute kernels used by ViennaCL.

## Functions
__device__ int | viennacl::linalg::cuda::floorPow2 (int n)
__device__ int | viennacl::linalg::cuda::ceilPow2 (int n)
template<typename NumericT >
__device__ NumericT | viennacl::linalg::cuda::computeMidpoint (const NumericT left, const NumericT right)
template<class S , class T , class NumericT >
__device__ void | viennacl::linalg::cuda::storeInterval (unsigned int addr, NumericT *s_left, NumericT *s_right, T *s_left_count, T *s_right_count, NumericT left, NumericT right, S left_count, S right_count, NumericT precision)
template<typename NumericT >
__device__ unsigned int | viennacl::linalg::cuda::computeNumSmallerEigenvals (const NumericT *g_d, const NumericT *g_s, const unsigned int n, const NumericT x, const unsigned int tid, const unsigned int num_intervals_active, NumericT *s_d, NumericT *s_s, unsigned int converged)
template<typename NumericT >
__device__ unsigned int | viennacl::linalg::cuda::computeNumSmallerEigenvalsLarge (const NumericT *g_d, const NumericT *g_s, const unsigned int n, const NumericT x, const unsigned int tid, const unsigned int num_intervals_active, NumericT *s_d, NumericT *s_s, unsigned int converged)
template<class S , class T , class NumericT >
__device__ void | viennacl::linalg::cuda::storeNonEmptyIntervals (unsigned int addr, const unsigned int num_threads_active, NumericT *s_left, NumericT *s_right, T *s_left_count, T *s_right_count, NumericT left, NumericT mid, NumericT right, const S left_count, const S mid_count, const S right_count, NumericT precision, unsigned int &compact_second_chunk, T *s_compaction_list_exc, unsigned int &is_active_second)
| Store all non-empty intervals resulting from the subdivision of the interval currently processed by the thread. More...
template<class T >
__device__ void | viennacl::linalg::cuda::createIndicesCompaction (T *s_compaction_list_exc, unsigned int num_threads_compaction)
template<class T , class NumericT >
__device__ void | viennacl::linalg::cuda::compactIntervals (NumericT *s_left, NumericT *s_right, T *s_left_count, T *s_right_count, NumericT mid, NumericT right, unsigned int mid_count, unsigned int right_count, T *s_compaction_list, unsigned int num_threads_active, unsigned int is_active_second)
| Perform stream compaction for second child intervals. More...
template<class T , class S , class NumericT >
__device__ void | viennacl::linalg::cuda::storeIntervalConverged (NumericT *s_left, NumericT *s_right, T *s_left_count, T *s_right_count, NumericT &left, NumericT &mid, NumericT &right, S &left_count, S &mid_count, S &right_count, T *s_compaction_list_exc, unsigned int &compact_second_chunk, const unsigned int num_threads_active, unsigned int &is_active_second)
template<class T , class NumericT >
__device__ void | viennacl::linalg::cuda::subdivideActiveIntervalMulti (const unsigned int tid, NumericT *s_left, NumericT *s_right, T *s_left_count, T *s_right_count, const unsigned int num_threads_active, NumericT &left, NumericT &right, unsigned int &left_count, unsigned int &right_count, NumericT &mid, unsigned int &all_threads_converged)
| Subdivide interval if active and not already converged. More...
template<class T , class NumericT >
__device__ void | viennacl::linalg::cuda::subdivideActiveInterval (const unsigned int tid, NumericT *s_left, NumericT *s_right, T *s_left_count, T *s_right_count, const unsigned int num_threads_active, NumericT &left, NumericT &right, unsigned int &left_count, unsigned int &right_count, NumericT &mid, unsigned int &all_threads_converged)
| Subdivide interval if active and not already converged. More...