|
ViennaCL - The Vienna Computing Library
1.1.2
|
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_KERNEL_CLASS_DEDUCER_HPP_ 00016 #define _VIENNACL_TOOLS_MATRIX_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_col_kernels.h" 00027 #include "viennacl/linalg/kernels/matrix_row_kernels.h" 00028 00029 #include <vector> 00030 #include <map> 00031 00032 namespace viennacl 00033 { 00034 namespace tools 00035 { 00037 template <typename MatrixType1> 00038 struct MATRIX_KERNEL_CLASS_DEDUCER 00039 {}; 00040 00041 template <typename SCALARTYPE, unsigned int ALIGNMENT> 00042 struct MATRIX_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::row_major, ALIGNMENT> > 00043 { 00044 typedef viennacl::linalg::kernels::matrix_row<SCALARTYPE, ALIGNMENT> ResultType; 00045 }; 00046 00047 template <typename SCALARTYPE, unsigned int ALIGNMENT> 00048 struct MATRIX_KERNEL_CLASS_DEDUCER< viennacl::matrix<SCALARTYPE, viennacl::column_major, ALIGNMENT> > 00049 { 00050 typedef viennacl::linalg::kernels::matrix_col<SCALARTYPE, ALIGNMENT> ResultType; 00051 }; 00052 00053 } 00054 00055 } 00056 00057 #endif
1.7.6.1