ViennaCL - The Vienna Computing Library
1.5.1
|
Implementations of dense direct solvers using CUDA are found here. More...
#include "viennacl/forwards.h"
#include "viennacl/vector.hpp"
#include "viennacl/matrix.hpp"
#include "viennacl/linalg/cuda/common.hpp"
Go to the source code of this file.
Namespaces | |
namespace | viennacl |
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them. | |
namespace | viennacl::linalg |
Provides all linear algebra operations which are not covered by operator overloads. | |
namespace | viennacl::linalg::cuda |
Holds all CUDA compute kernels used by ViennaCL. | |
namespace | viennacl::linalg::cuda::detail |
Helper functions for the CUDA linear algebra backend. | |
Functions | |
template<typename T > | |
__global__ void | matrix_matrix_upper_solve_kernel (const T *A, unsigned int A_start1, unsigned int A_start2, unsigned int A_inc1, unsigned int A_inc2, unsigned int A_size1, unsigned int A_size2, unsigned int A_internal_size1, unsigned int A_internal_size2, bool row_major_A, bool transpose_A, T *B, unsigned int B_start1, unsigned int B_start2, unsigned int B_inc1, unsigned int B_inc2, unsigned int B_size1, unsigned int B_size2, unsigned int B_internal_size1, unsigned int B_internal_size2, bool row_major_B, bool transpose_B, bool unit_diagonal) |
template<typename T > | |
__global__ void | matrix_matrix_lower_solve_kernel (const T *A, unsigned int A_start1, unsigned int A_start2, unsigned int A_inc1, unsigned int A_inc2, unsigned int A_size1, unsigned int A_size2, unsigned int A_internal_size1, unsigned int A_internal_size2, bool row_major_A, bool transpose_A, T *B, unsigned int B_start1, unsigned int B_start2, unsigned int B_inc1, unsigned int B_inc2, unsigned int B_size1, unsigned int B_size2, unsigned int B_internal_size1, unsigned int B_internal_size2, bool row_major_B, bool transpose_B, bool unit_diagonal) |
template<typename T > | |
bool | is_unit_solve (T const &tag) |
bool | is_unit_solve (viennacl::linalg::unit_lower_tag) |
bool | is_unit_solve (viennacl::linalg::unit_upper_tag) |
template<typename T > | |
bool | is_upper_solve (T const &tag) |
bool | is_upper_solve (viennacl::linalg::upper_tag) |
bool | is_upper_solve (viennacl::linalg::unit_upper_tag) |
template<typename M1 , typename M2 , typename SolverTag > | |
void | inplace_solve_impl (M1 const &A, bool transpose_A, M2 &B, bool transpose_B, SolverTag const &tag) |
template<typename NumericT , typename F1 , typename F2 , typename SOLVERTAG > | |
void | inplace_solve (const matrix_base< NumericT, F1 > &A, matrix_base< NumericT, F2 > &B, SOLVERTAG tag) |
Direct inplace solver for triangular systems with multiple right hand sides, i.e. A \ B (MATLAB notation) | |
template<typename NumericT , typename F1 , typename F2 , typename SOLVERTAG > | |
void | inplace_solve (const matrix_base< NumericT, F1 > &A, matrix_expression< const matrix_base< NumericT, F2 >, const matrix_base< NumericT, F2 >, op_trans > proxy_B, SOLVERTAG tag) |
Direct inplace solver for triangular systems with multiple transposed right hand sides, i.e. A \ B^T (MATLAB notation) | |
template<typename NumericT , typename F1 , typename F2 , typename SOLVERTAG > | |
void | inplace_solve (const matrix_expression< const matrix_base< NumericT, F1 >, const matrix_base< NumericT, F1 >, op_trans > &proxy_A, matrix_base< NumericT, F2 > &B, SOLVERTAG tag) |
Direct inplace solver for transposed triangular systems with multiple right hand sides, i.e. A^T \ B (MATLAB notation) | |
template<typename NumericT , typename F1 , typename F2 , typename SOLVERTAG > | |
void | inplace_solve (const matrix_expression< const matrix_base< NumericT, F1 >, const matrix_base< NumericT, F1 >, op_trans > &proxy_A, matrix_expression< const matrix_base< NumericT, F2 >, const matrix_base< NumericT, F2 >, op_trans > proxy_B, SOLVERTAG tag) |
Direct inplace solver for transposed triangular systems with multiple transposed right hand sides, i.e. A^T \ B^T (MATLAB notation) | |
template<typename T > | |
__global__ void | triangular_substitute_inplace_row_kernel (T const *A, unsigned int A_start1, unsigned int A_start2, unsigned int A_inc1, unsigned int A_inc2, unsigned int A_size1, unsigned int A_size2, unsigned int A_internal_size1, unsigned int A_internal_size2, T *v, unsigned int v_start, unsigned int v_inc, unsigned int v_size, unsigned int options) |
template<typename T > | |
__global__ void | triangular_substitute_inplace_col_kernel (T const *A, unsigned int A_start1, unsigned int A_start2, unsigned int A_inc1, unsigned int A_inc2, unsigned int A_size1, unsigned int A_size2, unsigned int A_internal_size1, unsigned int A_internal_size2, T *v, unsigned int v_start, unsigned int v_inc, unsigned int v_size, unsigned int options) |
unsigned int | get_option_for_solver_tag (viennacl::linalg::upper_tag) |
unsigned int | get_option_for_solver_tag (viennacl::linalg::unit_upper_tag) |
unsigned int | get_option_for_solver_tag (viennacl::linalg::lower_tag) |
unsigned int | get_option_for_solver_tag (viennacl::linalg::unit_lower_tag) |
template<typename MatrixType , typename VectorType > | |
void | inplace_solve_vector_impl (MatrixType const &mat, VectorType &vec, unsigned int options) |
template<typename NumericT , typename F , typename SOLVERTAG > | |
void | inplace_solve (const matrix_base< NumericT, F > &mat, vector_base< NumericT > &vec, SOLVERTAG) |
Direct inplace solver for dense triangular systems (non-transposed version) | |
template<typename NumericT , typename F , typename SOLVERTAG > | |
void | inplace_solve (const matrix_expression< const matrix_base< NumericT, F >, const matrix_base< NumericT, F >, op_trans > &proxy, vector_base< NumericT > &vec, SOLVERTAG) |
Direct inplace solver for dense triangular systems (transposed version) |
Implementations of dense direct solvers using CUDA are found here.