• Main Page
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

/data/development/ViennaCL/dev/viennacl/tools/matrix_solve_kernel_class_deducer.hpp

Go to the documentation of this file.
00001 #ifndef VIENNACL_TOOLS_MATRIX_SOLVE_KERNEL_CLASS_DEDUCER_HPP_
00002 #define VIENNACL_TOOLS_MATRIX_SOLVE_KERNEL_CLASS_DEDUCER_HPP_
00003 
00004 /* =========================================================================
00005    Copyright (c) 2010-2011, Institute for Microelectronics,
00006                             Institute for Analysis and Scientific Computing,
00007                             TU Wien.
00008 
00009                             -----------------
00010                   ViennaCL - The Vienna Computing Library
00011                             -----------------
00012 
00013    Project Head:    Karl Rupp                   rupp@iue.tuwien.ac.at
00014                
00015    (A list of authors and contributors can be found in the PDF manual)
00016 
00017    License:         MIT (X11), see file LICENSE in the base directory
00018 ============================================================================= */
00019 
00024 #include <string>
00025 #include <fstream>
00026 #include <sstream>
00027 #include "viennacl/forwards.h"
00028 #include "viennacl/linalg/kernels/matrix_solve_col_col_kernels.h"
00029 #include "viennacl/linalg/kernels/matrix_solve_col_row_kernels.h"
00030 #include "viennacl/linalg/kernels/matrix_solve_row_col_kernels.h"
00031 #include "viennacl/linalg/kernels/matrix_solve_row_row_kernels.h"
00032 
00033 #include <vector>
00034 #include <map>
00035 
00036 namespace viennacl
00037 {
00038   namespace tools
00039   {
00041     template <typename MatrixType1, typename MatrixType2>
00042     struct MATRIX_SOLVE_KERNEL_CLASS_DEDUCER
00043     {};
00044     
00045     template <typename SCALARTYPE, unsigned int ALIGNMENT>
00046     struct MATRIX_SOLVE_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::row_major, ALIGNMENT>,
00047                                               viennacl::matrix<SCALARTYPE, viennacl::row_major, ALIGNMENT> >
00048     {
00049       typedef viennacl::linalg::kernels::matrix_solve_row_row<SCALARTYPE, ALIGNMENT>     ResultType;
00050     };
00051 
00052     template <typename SCALARTYPE, unsigned int ALIGNMENT>
00053     struct MATRIX_SOLVE_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::row_major, ALIGNMENT>,
00054                                               viennacl::matrix<SCALARTYPE, viennacl::column_major, ALIGNMENT> >
00055     {
00056       typedef viennacl::linalg::kernels::matrix_solve_row_col<SCALARTYPE, ALIGNMENT>     ResultType;
00057     };
00058 
00059     template <typename SCALARTYPE, unsigned int ALIGNMENT>
00060     struct MATRIX_SOLVE_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::column_major, ALIGNMENT>,
00061                                               viennacl::matrix<SCALARTYPE, viennacl::row_major, ALIGNMENT> >
00062     {
00063       typedef viennacl::linalg::kernels::matrix_solve_col_row<SCALARTYPE, ALIGNMENT>     ResultType;
00064     };
00065 
00066     template <typename SCALARTYPE, unsigned int ALIGNMENT>
00067     struct MATRIX_SOLVE_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::column_major, ALIGNMENT>,
00068                                               viennacl::matrix<SCALARTYPE, viennacl::column_major, ALIGNMENT> >
00069     {
00070       typedef viennacl::linalg::kernels::matrix_solve_col_col<SCALARTYPE, ALIGNMENT>     ResultType;
00071     };
00072     
00073   }
00074 
00075 }
00076 
00077 #endif

Generated on Fri Dec 30 2011 23:20:43 for ViennaCL - The Vienna Computing Library by  doxygen 1.7.1