1 #ifndef VIENNACL_LINALG_DETAIL_BISECT_STRUCTS_HPP_
2 #define VIENNACL_LINALG_DETAIL_BISECT_STRUCTS_HPP_
52 template<
typename NumericT>
70 InputData(std::vector<NumericT> diagonal, std::vector<NumericT> superdiagonal,
const unsigned int sz) :
74 std_b = superdiagonal;
95 template<
typename NumericT>
124 template<
typename NumericT>
181 #endif // #ifndef VIENNACL_LINALG_DETAIL_STRUCTS_HPP_
std::vector< NumericT > std_eigenvalues
eigenvalues (host side)
viennacl::vector< NumericT > g_left_mult
left interval limits of intervals containing multiple eigenvalues after the first iteration step ...
viennacl::vector< NumericT > g_left_one
left interval limits of intervals containing one eigenvalue after the first iteration step ...
Implementation of the dense matrix class.
viennacl::scalar< unsigned int > g_num_blocks_mult
number of (thread) blocks of intervals containing multiple eigenvalues after the first steo ...
viennacl::vector< unsigned int > g_blocks_mult
start addresses in g_left_mult etc. of blocks of intervals containing more than one eigenvalue after ...
viennacl::vector< unsigned int > g_left_count_mult
number of eigenvalues less than the left limit of the eigenvalue intervals containing multiple eigenv...
viennacl::vector< unsigned int > g_right_count_mult
number of eigenvalues less than the right limit of the eigenvalue intervals containing multiple eigen...
ResultDataSmall(const unsigned int mat_size)
Initialize variables and memory for the result for small matrices.
viennacl::vector< NumericT > vcl_g_right
right interval limits at the end of the computation
viennacl::vector< NumericT > g_lambda_mult
eigenvalues that have been generated in the second step from intervals that still contained multiple ...
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
viennacl::vector< unsigned int > g_pos_one
interval indices (position in sorted listed of eigenvalues) of intervals containing one eigenvalue af...
std::vector< NumericT > std_eigenvalues
eigenvalues
viennacl::vector< NumericT > g_right_one
right interval limits of intervals containing one eigenvalue after the first iteration step ...
The vector type with operator-overloads and proxy classes is defined here. Linear algebra operations ...
viennacl::vector< unsigned int > g_pos_mult
eigenvalue index of intervals that have been generated in the second processing step ...
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) ...
ResultDataLarge(unsigned int mat_size)
Initialize variables and memory for result.
viennacl::vector< unsigned int > vcl_g_right_count
number of eigenvalues bigger than the right interval limit
In this class the data of the result for large matrices is stored.
viennacl::vector< unsigned int > g_blocks_mult_sum
accumulated number of intervals in g_left_mult etc. of blocks of intervals containing more than one e...
viennacl::scalar< unsigned int > g_num_one
number of intervals containing one eigenvalue after the first step
In this class the data of the result for small matrices is stored.
viennacl::vector< NumericT > g_right_mult
right interval limits of intervals containing multiple eigenvalues after the first iteration step ...