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