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

Implementations of specialized routines for the Chow-Patel parallel ILU preconditioner using the host (OpenMP) More...

`#include <cmath>`
`#include <algorithm>`
`#include "viennacl/forwards.h"`
`#include "viennacl/scalar.hpp"`
`#include "viennacl/tools/tools.hpp"`
`#include "viennacl/meta/predicate.hpp"`
`#include "viennacl/meta/enable_if.hpp"`
`#include "viennacl/traits/size.hpp"`
`#include "viennacl/traits/start.hpp"`
`#include "viennacl/linalg/host_based/common.hpp"`
`#include "viennacl/linalg/vector_operations.hpp"`
`#include "viennacl/traits/stride.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::host_based
| Holds all compute kernels with conventional host-based execution (buffers in CPU RAM).

## Macros

#define | VIENNACL_OPENMP_ILU_MIN_SIZE 5000

## Functions

template<typename NumericT >
void | viennacl::linalg::host_based::extract_L (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &L)
template<typename NumericT >
void | viennacl::linalg::host_based::icc_scale (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &L)
| Scales the values extracted from A such that A' = DAD has unit diagonal. Updates values from A in L and U accordingly. More...
template<typename NumericT >
void | viennacl::linalg::host_based::icc_chow_patel_sweep (compressed_matrix< NumericT > &L, vector< NumericT > &aij_L)
| Performs one nonlinear relaxation step in the Chow-Patel-ICC using OpenMP (cf. Algorithm 3 in paper, but for L rather than U) More...
template<typename NumericT >
void | viennacl::linalg::host_based::extract_LU (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &L, compressed_matrix< NumericT > &U)
template<typename NumericT >
void | viennacl::linalg::host_based::ilu_scale (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &L, compressed_matrix< NumericT > &U)
| Scales the values extracted from A such that A' = DAD has unit diagonal. Updates values from A in L and U accordingly. More...
template<typename NumericT >
void | viennacl::linalg::host_based::ilu_transpose (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &B)
template<typename NumericT >
void | viennacl::linalg::host_based::ilu_chow_patel_sweep (compressed_matrix< NumericT > &L, vector< NumericT > const &aij_L, compressed_matrix< NumericT > &U_trans, vector< NumericT > const &aij_U_trans)
| Performs one nonlinear relaxation step in the Chow-Patel-ILU using OpenMP (cf. Algorithm 2 in paper) More...
template<typename NumericT >
void | viennacl::linalg::host_based::ilu_form_neumann_matrix (compressed_matrix< NumericT > &R, vector< NumericT > &diag_R)

## Detailed Description

Implementations of specialized routines for the Chow-Patel parallel ILU preconditioner using the host (OpenMP)

Definition in file ilu_operations.hpp.

## Macro Definition Documentation

#define VIENNACL_OPENMP_ILU_MIN_SIZE 5000

Definition at line 42 of file ilu_operations.hpp.