#include <iostream>
#include <vector>
#include "viennacl/scalar.hpp"
#include "viennacl/matrix.hpp"
#include "viennacl/matrix_proxy.hpp"
#include "viennacl/vector.hpp"
#include "viennacl/linalg/prod.hpp"
#include "viennacl/linalg/norm_2.hpp"
#include "viennacl/linalg/direct_solve.hpp"
#include "viennacl/tools/random.hpp"
Go to the source code of this file.
Functions | |
template<typename ScalarType > | |
ScalarType | diff (ScalarType &s1, viennacl::scalar< ScalarType > &s2) |
template<typename ScalarType > | |
ScalarType | diff (std::vector< ScalarType > &v1, viennacl::vector< ScalarType > &v2) |
template<typename ScalarType , typename VCLMatrixType > | |
ScalarType | diff (std::vector< std::vector< ScalarType > > &mat1, VCLMatrixType &mat2) |
template<typename NumericT > | |
void | inplace_solve_lower (std::vector< std::vector< NumericT > > const &A, std::vector< std::vector< NumericT > > &B, bool unit_diagonal) |
template<typename NumericT > | |
void | inplace_solve (std::vector< std::vector< NumericT > > const &A, std::vector< std::vector< NumericT > > &B, viennacl::linalg::lower_tag) |
template<typename NumericT > | |
void | inplace_solve (std::vector< std::vector< NumericT > > const &A, std::vector< std::vector< NumericT > > &B, viennacl::linalg::unit_lower_tag) |
template<typename NumericT > | |
void | inplace_solve_upper (std::vector< std::vector< NumericT > > const &A, std::vector< std::vector< NumericT > > &B, bool unit_diagonal) |
template<typename NumericT > | |
void | inplace_solve (std::vector< std::vector< NumericT > > const &A, std::vector< std::vector< NumericT > > &B, viennacl::linalg::upper_tag) |
template<typename NumericT > | |
void | inplace_solve (std::vector< std::vector< NumericT > > const &A, std::vector< std::vector< NumericT > > &B, viennacl::linalg::unit_upper_tag) |
template<typename NumericT , typename SolverTagT > | |
std::vector< std::vector < NumericT > > | solve (std::vector< std::vector< NumericT > > const &A, std::vector< std::vector< NumericT > > const &B, SolverTagT) |
template<typename RHSTypeRef , typename RHSTypeCheck , typename Epsilon > | |
void | run_solver_check (RHSTypeRef &B_ref, RHSTypeCheck &B_check, int &retval, Epsilon const &epsilon) |
template<typename NumericT > | |
std::vector< std::vector < NumericT > > | trans (std::vector< std::vector< NumericT > > const &A) |
template<typename NumericT , typename Epsilon , typename ReferenceMatrixTypeA , typename ReferenceMatrixTypeB , typename ReferenceMatrixTypeC , typename MatrixTypeA , typename MatrixTypeB , typename MatrixTypeC , typename MatrixTypeResult > | |
int | test_solve (Epsilon const &epsilon, ReferenceMatrixTypeA const &A, ReferenceMatrixTypeB const &B_start, ReferenceMatrixTypeC const &C_start, MatrixTypeA const &vcl_A, MatrixTypeB &vcl_B, MatrixTypeC &vcl_C, MatrixTypeResult const &) |
template<typename NumericT , typename F_A , typename F_B , typename Epsilon > | |
int | test_solve (Epsilon const &epsilon) |
template<typename NumericT , typename Epsilon > | |
int | test (Epsilon const &epsilon) |
int | main () |
Tests the BLAS level 3 triangular solvers
Definition in file blas3_solve.cpp.
ScalarType diff | ( | ScalarType & | s1, |
viennacl::scalar< ScalarType > & | s2 | ||
) |
Definition at line 50 of file blas3_solve.cpp.
ScalarType diff | ( | std::vector< ScalarType > & | v1, |
viennacl::vector< ScalarType > & | v2 | ||
) |
Definition at line 59 of file blas3_solve.cpp.
ScalarType diff | ( | std::vector< std::vector< ScalarType > > & | mat1, |
VCLMatrixType & | mat2 | ||
) |
Definition at line 79 of file blas3_solve.cpp.
void inplace_solve | ( | std::vector< std::vector< NumericT > > const & | A, |
std::vector< std::vector< NumericT > > & | B, | ||
viennacl::linalg::lower_tag | |||
) |
Definition at line 126 of file blas3_solve.cpp.
void inplace_solve | ( | std::vector< std::vector< NumericT > > const & | A, |
std::vector< std::vector< NumericT > > & | B, | ||
viennacl::linalg::unit_lower_tag | |||
) |
Definition at line 132 of file blas3_solve.cpp.
void inplace_solve | ( | std::vector< std::vector< NumericT > > const & | A, |
std::vector< std::vector< NumericT > > & | B, | ||
viennacl::linalg::upper_tag | |||
) |
Definition at line 158 of file blas3_solve.cpp.
void inplace_solve | ( | std::vector< std::vector< NumericT > > const & | A, |
std::vector< std::vector< NumericT > > & | B, | ||
viennacl::linalg::unit_upper_tag | |||
) |
Definition at line 164 of file blas3_solve.cpp.
void inplace_solve_lower | ( | std::vector< std::vector< NumericT > > const & | A, |
std::vector< std::vector< NumericT > > & | B, | ||
bool | unit_diagonal | ||
) |
Definition at line 107 of file blas3_solve.cpp.
void inplace_solve_upper | ( | std::vector< std::vector< NumericT > > const & | A, |
std::vector< std::vector< NumericT > > & | B, | ||
bool | unit_diagonal | ||
) |
Definition at line 138 of file blas3_solve.cpp.
int main | ( | ) |
Definition at line 590 of file blas3_solve.cpp.
void run_solver_check | ( | RHSTypeRef & | B_ref, |
RHSTypeCheck & | B_check, | ||
int & | retval, | ||
Epsilon const & | epsilon | ||
) |
Definition at line 179 of file blas3_solve.cpp.
std::vector<std::vector<NumericT> > solve | ( | std::vector< std::vector< NumericT > > const & | A, |
std::vector< std::vector< NumericT > > const & | B, | ||
SolverTagT | |||
) |
Definition at line 170 of file blas3_solve.cpp.
int test | ( | Epsilon const & | epsilon | ) |
Definition at line 549 of file blas3_solve.cpp.
int test_solve | ( | Epsilon const & | epsilon, |
ReferenceMatrixTypeA const & | A, | ||
ReferenceMatrixTypeB const & | B_start, | ||
ReferenceMatrixTypeC const & | C_start, | ||
MatrixTypeA const & | vcl_A, | ||
MatrixTypeB & | vcl_B, | ||
MatrixTypeC & | vcl_C, | ||
MatrixTypeResult const & | |||
) |
Definition at line 210 of file blas3_solve.cpp.
int test_solve | ( | Epsilon const & | epsilon | ) |
Definition at line 372 of file blas3_solve.cpp.
std::vector<std::vector<NumericT> > trans | ( | std::vector< std::vector< NumericT > > const & | A | ) |
Definition at line 195 of file blas3_solve.cpp.