Provides a QR factorization using a block-based approach. More...
#include <utility>
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <vector>
#include <math.h>
#include <cmath>
#include "boost/numeric/ublas/vector.hpp"
#include "boost/numeric/ublas/matrix.hpp"
#include "boost/numeric/ublas/matrix_proxy.hpp"
#include "boost/numeric/ublas/vector_proxy.hpp"
#include "boost/numeric/ublas/io.hpp"
#include "boost/numeric/ublas/matrix_expression.hpp"
#include "viennacl/matrix.hpp"
#include "viennacl/matrix_proxy.hpp"
#include "viennacl/linalg/prod.hpp"
#include "viennacl/range.hpp"
Go to the source code of this file.
Namespaces | |
viennacl | |
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them. | |
viennacl::linalg | |
Provides all linear algebra operations which are not covered by operator overloads. | |
viennacl::linalg::detail | |
Namespace holding implementation details for linear algebra routines. Usually not of interest for a library user. | |
Functions | |
template<typename MatrixType , typename VectorType > | |
MatrixType::value_type | viennacl::linalg::detail::setup_householder_vector_ublas (MatrixType const &A, VectorType &v, MatrixType &matrix_1x1, vcl_size_t j) |
template<typename MatrixType , typename VectorType > | |
viennacl::result_of::cpu_value_type< typename MatrixType::value_type >::type | viennacl::linalg::detail::setup_householder_vector_viennacl (MatrixType const &A, VectorType &v, MatrixType &matrix_1x1, vcl_size_t j) |
template<typename MatrixType , typename VectorType , typename ScalarType > | |
void | viennacl::linalg::detail::householder_reflect (MatrixType &A, VectorType &v, ScalarType beta, vcl_size_t j, vcl_size_t k) |
template<typename MatrixType , typename VectorType , typename ScalarType > | |
void | viennacl::linalg::detail::householder_reflect_ublas (MatrixType &A, VectorType &v, MatrixType &matrix_1x1, ScalarType beta, vcl_size_t j, vcl_size_t k) |
template<typename MatrixType , typename VectorType , typename ScalarType > | |
void | viennacl::linalg::detail::householder_reflect_viennacl (MatrixType &A, VectorType &v, MatrixType &matrix_1x1, ScalarType beta, vcl_size_t j, vcl_size_t k) |
template<typename MatrixType , typename VectorType , typename ScalarType > | |
void | viennacl::linalg::detail::householder_reflect (MatrixType &A, VectorType &v, ScalarType beta, vcl_size_t j) |
template<typename MatrixType , typename VectorType > | |
void | viennacl::linalg::detail::write_householder_to_A (MatrixType &A, VectorType const &v, vcl_size_t j) |
template<typename MatrixType , typename VectorType > | |
void | viennacl::linalg::detail::write_householder_to_A_ublas (MatrixType &A, VectorType const &v, vcl_size_t j) |
template<typename MatrixType , typename VectorType > | |
void | viennacl::linalg::detail::write_householder_to_A_viennacl (MatrixType &A, VectorType const &v, vcl_size_t j) |
template<typename MatrixType > | |
std::vector< typename MatrixType::value_type > | viennacl::linalg::detail::inplace_qr_ublas (MatrixType &A, vcl_size_t block_size=32) |
Implementation of inplace-QR factorization for a general Boost.uBLAS compatible matrix A. More... | |
template<typename MatrixType > | |
std::vector< typename viennacl::result_of::cpu_value_type< typename MatrixType::value_type >::type > | viennacl::linalg::detail::inplace_qr_viennacl (MatrixType &A, vcl_size_t block_size=16) |
Implementation of a OpenCL-only QR factorization for GPUs (or multi-core CPU). DEPRECATED! Use only if you're curious and interested in playing a bit with a GPU-only implementation. More... | |
template<typename MatrixType > | |
std::vector< typename viennacl::result_of::cpu_value_type< typename MatrixType::value_type >::type > | viennacl::linalg::detail::inplace_qr_hybrid (MatrixType &A, vcl_size_t block_size=16) |
Implementation of a hybrid QR factorization using uBLAS on the CPU and ViennaCL for GPUs (or multi-core CPU) More... | |
template<typename MatrixType , typename VectorType > | |
void | viennacl::linalg::recoverQ (MatrixType const &A, VectorType const &betas, MatrixType &Q, MatrixType &R) |
template<typename MatrixType , typename VectorType1 , typename VectorType2 > | |
void | viennacl::linalg::inplace_qr_apply_trans_Q (MatrixType const &A, VectorType1 const &betas, VectorType2 &b) |
Computes Q^T b, where Q is an implicit orthogonal matrix defined via its Householder reflectors stored in A. More... | |
template<typename T , typename F , unsigned int ALIGNMENT, typename VectorType1 , unsigned int A2> | |
void | viennacl::linalg::inplace_qr_apply_trans_Q (viennacl::matrix< T, F, ALIGNMENT > const &A, VectorType1 const &betas, viennacl::vector< T, A2 > &b) |
template<typename T , typename F , unsigned int ALIGNMENT> | |
std::vector< T > | viennacl::linalg::inplace_qr (viennacl::matrix< T, F, ALIGNMENT > &A, vcl_size_t block_size=16) |
Overload of inplace-QR factorization of a ViennaCL matrix A. More... | |
template<typename MatrixType > | |
std::vector< typename MatrixType::value_type > | viennacl::linalg::inplace_qr (MatrixType &A, vcl_size_t block_size=16) |
Overload of inplace-QR factorization for a general Boost.uBLAS compatible matrix A. More... | |
Provides a QR factorization using a block-based approach.
Definition in file qr.hpp.