ViennaCL - The Vienna Computing Library
1.5.1
|
Common routines used for the QR method and SVD. Experimental. More...
#include <cmath>
#include "viennacl/ocl/device.hpp"
#include "viennacl/ocl/handle.hpp"
#include "viennacl/ocl/kernel.hpp"
#include "viennacl/linalg/opencl/kernels/svd.hpp"
#include "viennacl/meta/result_of.hpp"
#include "viennacl/vector.hpp"
#include "viennacl/matrix.hpp"
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>
Go to the source code of this file.
Namespaces | |
namespace | viennacl |
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them. | |
namespace | viennacl::linalg |
Provides all linear algebra operations which are not covered by operator overloads. | |
namespace | viennacl::linalg::detail |
Namespace holding implementation details for linear algebra routines. Usually not of interest for a library user. | |
Functions | |
template<typename SCALARTYPE > | |
SCALARTYPE | pythag (SCALARTYPE a, SCALARTYPE b) |
template<typename SCALARTYPE > | |
SCALARTYPE | sign (SCALARTYPE val) |
template<typename VectorType > | |
VectorType::value_type | norm_lcl (VectorType const &x, vcl_size_t size) |
template<typename VectorType > | |
void | normalize (VectorType &x, vcl_size_t size) |
template<typename VectorType > | |
void | householder_vector (VectorType &v, vcl_size_t start) |
template<typename MatrixType > | |
void | transpose (MatrixType &A) |
template<typename T > | |
void | cdiv (T xr, T xi, T yr, T yi, T &cdivr, T &cdivi) |
template<typename SCALARTYPE , unsigned int ALIGNMENT> | |
void | copy_vec (viennacl::matrix< SCALARTYPE, row_major, ALIGNMENT > &A, viennacl::vector< SCALARTYPE, ALIGNMENT > &V, vcl_size_t row_start, vcl_size_t col_start, bool copy_col) |
template<typename SCALARTYPE , unsigned int ALIGNMENT> | |
void | prepare_householder_vector (viennacl::matrix< SCALARTYPE, row_major, ALIGNMENT > &A, viennacl::vector< SCALARTYPE, ALIGNMENT > &D, vcl_size_t size, vcl_size_t row_start, vcl_size_t col_start, vcl_size_t start, bool is_column) |
template<typename SCALARTYPE , unsigned int ALIGNMENT, typename VectorType > | |
void | bidiag_pack (viennacl::matrix< SCALARTYPE, row_major, ALIGNMENT > &A, VectorType &dh, VectorType &sh) |
Variables | |
const std::string | SVD_BIDIAG_PACK_KERNEL = "bidiag_pack" |
const std::string | SVD_HOUSEHOLDER_UPDATE_A_LEFT_KERNEL = "house_update_A_left" |
const std::string | SVD_HOUSEHOLDER_UPDATE_A_RIGHT_KERNEL = "house_update_A_right" |
const std::string | SVD_HOUSEHOLDER_UPDATE_QL_KERNEL = "house_update_QL" |
const std::string | SVD_HOUSEHOLDER_UPDATE_QR_KERNEL = "house_update_QR" |
const std::string | SVD_COPY_COL_KERNEL = "copy_col" |
const std::string | SVD_COPY_ROW_KERNEL = "copy_row" |
const std::string | SVD_MATRIX_TRANSPOSE_KERNEL = "transpose_inplace" |
const std::string | SVD_INVERSE_SIGNS_KERNEL = "inverse_signs" |
const std::string | SVD_GIVENS_PREV_KERNEL = "givens_prev" |
const std::string | SVD_GIVENS_NEXT_KERNEL = "givens_next" |
const std::string | SVD_FINAL_ITER_UPDATE_KERNEL = "final_iter_update" |
const std::string | SVD_UPDATE_QR_COLUMN_KERNEL = "update_qr_column" |
Common routines used for the QR method and SVD. Experimental.