All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
spai-static.hpp File Reference

Implementation of a static SPAI. Experimental. More...

`#include <utility>`
`#include <iostream>`
`#include <fstream>`
`#include <string>`
`#include <algorithm>`
`#include <vector>`
`#include <math.h>`
`#include <map>`
`#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/storage.hpp"`
`#include "boost/numeric/ublas/io.hpp"`
`#include "boost/numeric/ublas/lu.hpp"`
`#include "boost/numeric/ublas/triangular.hpp"`
`#include "boost/numeric/ublas/matrix_expression.hpp"`
`#include "viennacl/linalg/prod.hpp"`
`#include "viennacl/matrix.hpp"`
`#include "viennacl/compressed_matrix.hpp"`
`#include "viennacl/linalg/sparse_matrix_operations.hpp"`
`#include "viennacl/linalg/matrix_operations.hpp"`
`#include "viennacl/scalar.hpp"`
`#include "viennacl/linalg/cg.hpp"`
`#include "viennacl/linalg/inner_prod.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.
| viennacl::linalg::detail::spai
| Implementation namespace for sparse approximate inverse preconditioner.

## Functions

template<typename SizeT >
bool | viennacl::linalg::detail::spai::isInIndexSet (std::vector< SizeT > const &J, SizeT ind)
| Determines if element ind is in set {J}. More...
template<typename VectorT , typename SparseVectorT >
void | viennacl::linalg::detail::spai::fanOutVector (VectorT const &m_in, std::vector< unsigned int > const &J, SparseVectorT &m)
| Projects solution of LS problem onto original column m. More...
template<typename MatrixT , typename VectorT >
void | viennacl::linalg::detail::spai::backwardSolve (MatrixT const &R, VectorT const &y, VectorT &x)
| Solution of linear:R*x=y system by backward substitution. More...
template<typename VectorT , typename NumericT >
void | viennacl::linalg::detail::spai::projectI (std::vector< unsigned int > const &I, VectorT &y, unsigned int ind)
| Perform projection of set I on the unit-vector. More...
template<typename SparseVectorT >
void | viennacl::linalg::detail::spai::buildColumnIndexSet (SparseVectorT const &v, std::vector< unsigned int > &J)
| Builds index set of projected columns for current column of preconditioner. More...
template<typename SparseMatrixT >
void | viennacl::linalg::detail::spai::initPreconditioner (SparseMatrixT const &A, SparseMatrixT &M)
| Initialize preconditioner with sparcity pattern = p(A) More...
template<typename SparseVectorT >
void | viennacl::linalg::detail::spai::projectRows (std::vector< SparseVectorT > const &A_v_c, std::vector< unsigned int > const &J, std::vector< unsigned int > &I)
| Row projection for matrix A(:,J) -> A(I,J), building index set of non-zero rows. More...

## Detailed Description

Implementation of a static SPAI. Experimental.

SPAI code contributed by Nikolay Lukash

Definition in file spai-static.hpp.