Implementations of specialized routines for the Chow-Patel parallel ILU preconditioner using OpenCL. More...
#include <cmath>
#include <algorithm>
#include "viennacl/forwards.h"
#include "viennacl/scalar.hpp"
#include "viennacl/tools/tools.hpp"
#include "viennacl/linalg/opencl/common.hpp"
#include "viennacl/linalg/opencl/kernels/ilu.hpp"
#include "viennacl/meta/predicate.hpp"
#include "viennacl/meta/enable_if.hpp"
#include "viennacl/traits/size.hpp"
#include "viennacl/traits/start.hpp"
#include "viennacl/traits/stride.hpp"
#include "viennacl/linalg/vector_operations.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::opencl | |
Holds all routines providing OpenCL linear algebra operations. | |
Functions | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::extract_L (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &L) |
template<typename NumericT > | |
void | viennacl::linalg::opencl::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::opencl::icc_chow_patel_sweep (compressed_matrix< NumericT > &L, vector< NumericT > const &aij_L) |
Performs one nonlinear relaxation step in the Chow-Patel-ILU using OpenCL (cf. Algorithm 2 in paper) More... | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::extract_LU (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &L, compressed_matrix< NumericT > &U) |
template<typename NumericT > | |
void | viennacl::linalg::opencl::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::opencl::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 OpenCL (cf. Algorithm 2 in paper) More... | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::ilu_form_neumann_matrix (compressed_matrix< NumericT > &R, vector< NumericT > &diag_R) |
Implementations of specialized routines for the Chow-Patel parallel ILU preconditioner using OpenCL.
Definition in file ilu_operations.hpp.