1 #ifndef VIENNACL_LINALG_DETAIL_BISECT_STRUCTS_HPP_
2 #define VIENNACL_LINALG_DETAIL_BISECT_STRUCTS_HPP_
52 template<
typename NumericT>
72 InputData(std::vector<NumericT> diagonal, std::vector<NumericT> superdiagonal,
const unsigned int sz) :
73 std_a(sz), std_b(sz), g_a(sz), g_b(sz)
76 std_b = superdiagonal;
83 std_a(sz), std_b(sz), g_a(sz), g_b(sz)
97 template<
typename NumericT>
116 std_eigenvalues(mat_size), vcl_g_left(mat_size), vcl_g_right(mat_size), vcl_g_left_count(mat_size), vcl_g_right_count(mat_size)
128 template<
typename NumericT>
190 std_eigenvalues(mat_size), g_num_one(0), g_num_blocks_mult(0), g_left_one(mat_size), g_right_one(mat_size), g_pos_one(mat_size),
191 g_left_mult(mat_size), g_right_mult(mat_size),g_left_count_mult(mat_size), g_right_count_mult(mat_size),
192 g_blocks_mult(mat_size), g_blocks_mult_sum(mat_size), g_lambda_mult(mat_size), g_pos_mult(mat_size) {}
197 #endif // #ifndef VIENNACL_LINALG_DETAIL_STRUCTS_HPP_
std::vector< NumericT > std_eigenvalues
eigenvalues (host side)
viennacl::vector< NumericT > g_left_mult
viennacl::vector< NumericT > g_left_one
Implementation of the dense matrix class.
viennacl::scalar< unsigned int > g_num_blocks_mult
viennacl::vector< unsigned int > g_blocks_mult
viennacl::vector< unsigned int > g_left_count_mult
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
viennacl::vector< unsigned int > g_right_count_mult
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
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
std::vector< NumericT > std_eigenvalues
eigenvalues
viennacl::vector< NumericT > g_right_one
The vector type with operator-overloads and proxy classes is defined here. Linear algebra operations ...
viennacl::vector< unsigned int > g_pos_mult
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(const 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
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