1 #ifndef VIENNACL_LINALG_DETAIL_BISECT_SMALL_HPP_
2 #define VIENNACL_LINALG_DETAIL_BISECT_SMALL_HPP_
59 template<
typename NumericT>
62 const unsigned int mat_size,
76 template<
typename NumericT>
79 const unsigned int mat_size)
82 std::vector<NumericT> left(mat_size);
83 std::vector<unsigned int> left_count(mat_size);
88 for (
unsigned int i = 0; i < mat_size; ++i)
std::vector< NumericT > std_eigenvalues
eigenvalues (host side)
Helper structures to simplify variable handling.
Kernel calls for the bisection algorithm.
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
viennacl::vector< NumericT > vcl_g_left
left interval limits at the end of the computation
viennacl::vector< unsigned int > vcl_g_left_count
number of eigenvalues smaller than the left interval limit
void computeEigenvaluesSmallMatrix(const InputData< NumericT > &input, ResultDataSmall< NumericT > &result, const unsigned int mat_size, const NumericT lg, const NumericT ug, const NumericT precision)
void processResultSmallMatrix(ResultDataSmall< NumericT > &result, const unsigned int mat_size)
void copy(std::vector< NumericT > &cpu_vec, circulant_matrix< NumericT, AlignmentV > &gpu_mat)
Copies a circulant matrix from the std::vector to the OpenCL device (either GPU or multi-core CPU) ...
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 small matrices is stored.