ViennaCL - The Vienna Computing Library  1.7.1
Free open-source GPU-accelerated linear algebra and solver library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
qr.hpp File Reference

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

Detailed Description

Provides a QR factorization using a block-based approach.

Definition in file qr.hpp.