Implementations of routines for AMG using the CPU on the host (with OpenMP if enabled). More...
#include <cstdlib>#include <cmath>#include "viennacl/linalg/detail/amg/amg_base.hpp"#include <map>#include <set>#include <functional>Go to the source code of this file.
| Classes | |
| struct | viennacl::linalg::host_based::amg::amg_id_influence | 
| Helper struct for sequential classical one-pass coarsening.  More... | |
| 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). | |
| viennacl::linalg::host_based::amg | |
| Functions | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_influence_trivial (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| Routine for taking all connections in the matrix as strong.  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_influence_advanced (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| Routine for extracting strongly connected points considering a user-provided threshold value.  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_influence (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| Dispatcher for influence processing.  More... | |
| void | viennacl::linalg::host_based::amg::enumerate_coarse_points (viennacl::linalg::detail::amg::amg_level_context &amg_context) | 
| Assign IDs to coarse points.  More... | |
| bool | viennacl::linalg::host_based::amg::operator> (amg_id_influence const &a, amg_id_influence const &b) | 
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_coarse_classic_onepass (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| Classical (RS) one-pass coarsening. Single-Threaded! (VIENNACL_AMG_COARSE_CLASSIC_ONEPASS)  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_coarse_ag_stage1_sequential (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| AG (aggregation based) coarsening, single-threaded version of stage 1.  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_coarse_ag_stage1_mis2 (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| AG (aggregation based) coarsening, multi-threaded version of stage 1 using parallel maximum independent sets.  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_coarse_ag (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| AG (aggregation based) coarsening. Partially single-threaded version (VIENNACL_AMG_COARSE_AG)  More... | |
| template<typename MatrixT > | |
| void | viennacl::linalg::host_based::amg::amg_coarse (MatrixT &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| Entry point and dispatcher for coarsening procedures.  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_interpol_direct (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| Direct interpolation. Multi-threaded! (VIENNACL_AMG_INTERPOL_DIRECT)  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_interpol_ag (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| AG (aggregation based) interpolation. Multi-Threaded! (VIENNACL_INTERPOL_AG)  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_interpol_sa (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| Smoothed aggregation interpolation. Multi-Threaded! (VIENNACL_INTERPOL_SA)  More... | |
| template<typename MatrixT > | |
| void | viennacl::linalg::host_based::amg::amg_interpol (MatrixT const &A, MatrixT &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) | 
| Dispatcher for building the interpolation matrix.  More... | |
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::amg_transpose (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &B) | 
| Computes B = trans(A).  More... | |
| template<typename NumericT , unsigned int AlignmentV> | |
| void | viennacl::linalg::host_based::amg::assign_to_dense (viennacl::compressed_matrix< NumericT, AlignmentV > const &A, viennacl::matrix_base< NumericT > &B) | 
| template<typename NumericT > | |
| void | viennacl::linalg::host_based::amg::smooth_jacobi (unsigned int iterations, compressed_matrix< NumericT > const &A, vector< NumericT > &x, vector< NumericT > &x_backup, vector< NumericT > const &rhs_smooth, NumericT weight) | 
| Damped Jacobi Smoother (CUDA version)  More... | |
Implementations of routines for AMG using the CPU on the host (with OpenMP if enabled).
Definition in file amg_operations.hpp.