ViennaCL - The Vienna Computing Library  1.2.0
matrix_solve_kernel_class_deducer.hpp
Go to the documentation of this file.
1 #ifndef VIENNACL_TOOLS_MATRIX_SOLVE_KERNEL_CLASS_DEDUCER_HPP_
2 #define VIENNACL_TOOLS_MATRIX_SOLVE_KERNEL_CLASS_DEDUCER_HPP_
3 
4 /* =========================================================================
5  Copyright (c) 2010-2011, Institute for Microelectronics,
6  Institute for Analysis and Scientific Computing,
7  TU Wien.
8 
9  -----------------
10  ViennaCL - The Vienna Computing Library
11  -----------------
12 
13  Project Head: Karl Rupp rupp@iue.tuwien.ac.at
14 
15  (A list of authors and contributors can be found in the PDF manual)
16 
17  License: MIT (X11), see file LICENSE in the base directory
18 ============================================================================= */
19 
24 #include <string>
25 #include <fstream>
26 #include <sstream>
27 #include "viennacl/forwards.h"
32 
33 #include <vector>
34 #include <map>
35 
36 namespace viennacl
37 {
38  namespace tools
39  {
41  template <typename MatrixType1, typename MatrixType2>
43  {};
44 
45  template <typename SCALARTYPE, unsigned int ALIGNMENT>
46  struct MATRIX_SOLVE_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::row_major, ALIGNMENT>,
47  viennacl::matrix<SCALARTYPE, viennacl::row_major, ALIGNMENT> >
48  {
49  typedef viennacl::linalg::kernels::matrix_solve_row_row<SCALARTYPE, ALIGNMENT> ResultType;
50  };
51 
52  template <typename SCALARTYPE, unsigned int ALIGNMENT>
53  struct MATRIX_SOLVE_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::row_major, ALIGNMENT>,
54  viennacl::matrix<SCALARTYPE, viennacl::column_major, ALIGNMENT> >
55  {
56  typedef viennacl::linalg::kernels::matrix_solve_row_col<SCALARTYPE, ALIGNMENT> ResultType;
57  };
58 
59  template <typename SCALARTYPE, unsigned int ALIGNMENT>
60  struct MATRIX_SOLVE_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::column_major, ALIGNMENT>,
61  viennacl::matrix<SCALARTYPE, viennacl::row_major, ALIGNMENT> >
62  {
63  typedef viennacl::linalg::kernels::matrix_solve_col_row<SCALARTYPE, ALIGNMENT> ResultType;
64  };
65 
66  template <typename SCALARTYPE, unsigned int ALIGNMENT>
67  struct MATRIX_SOLVE_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::column_major, ALIGNMENT>,
68  viennacl::matrix<SCALARTYPE, viennacl::column_major, ALIGNMENT> >
69  {
70  typedef viennacl::linalg::kernels::matrix_solve_col_col<SCALARTYPE, ALIGNMENT> ResultType;
71  };
72 
73  }
74 
75 }
76 
77 #endif