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

/data/development/ViennaCL/ViennaCL-1.1.2/viennacl/tools/matrix_solve_kernel_class_deducer.hpp

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

Generated on Sat May 21 2011 20:36:50 for ViennaCL - The Vienna Computing Library by  doxygen 1.7.1