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.