|
ViennaCL - The Vienna Computing Library
1.4.2
|
00001 #ifndef VIENNACL_GENERATOR_FORWARDS_H 00002 #define VIENNACL_GENERATOR_FORWARDS_H 00003 00004 /* ========================================================================= 00005 Copyright (c) 2010-2013, Institute for Microelectronics, 00006 Institute for Analysis and Scientific Computing, 00007 TU Wien. 00008 Portions of this software are copyright by UChicago Argonne, LLC. 00009 00010 ----------------- 00011 ViennaCL - The Vienna Computing Library 00012 ----------------- 00013 00014 Project Head: Karl Rupp rupp@iue.tuwien.ac.at 00015 00016 (A list of authors and contributors can be found in the PDF manual) 00017 00018 License: MIT (X11), see file LICENSE in the base directory 00019 ============================================================================= */ 00020 00027 #include <string> 00028 #include "viennacl/forwards.h" 00029 00030 namespace viennacl 00031 { 00032 namespace generator 00033 { 00034 00035 template<class T> 00036 class operation_repeater; 00037 00038 template<class LHS, class OP_TYPE, class RHS> 00039 class compound_node; 00040 00041 template<class T> 00042 struct inner_prod_impl_t; 00043 00044 struct prod_type; 00045 00046 struct inner_prod_type; 00047 00048 template<long VAL> 00049 class symbolic_constant; 00050 00051 template<long VAL> 00052 class symbolic_constant_vector; 00053 00054 template< unsigned int ID, typename SCALARTYPE, unsigned int ALIGNMENT = 1> 00055 class symbolic_vector; 00056 00057 template<unsigned int ID, 00058 typename SCALARTYPE, class F = viennacl::row_major, unsigned int ALIGNMENT = 1> 00059 class symbolic_matrix; 00060 00061 template<class REF> 00062 class tmp_symbolic_matrix; 00063 00064 template<unsigned int ID,typename SCALARTYPE> 00065 class cpu_symbolic_scalar; 00066 00067 template<unsigned int ID,typename SCALARTYPE> 00068 class gpu_symbolic_scalar; 00069 00070 template<class Expr, class OP, class Assigned> 00071 struct MatVecToken; 00072 00073 template<class Expr, class OP, class Assigned> 00074 struct MatMatToken; 00075 00076 template<class Expr,unsigned int Step> 00077 struct InProdToken; 00078 00079 template<class Expr> 00080 struct ArithmeticToken; 00081 00082 template<class Bound_, class Operations_> 00083 struct repeater_impl; 00084 00085 00086 struct assign_type; 00087 00088 struct add_type; 00089 struct inplace_add_type; 00090 00091 struct sub_type; 00092 struct inplace_sub_type; 00093 00094 struct scal_mul_type; 00095 struct inplace_scal_mul_type; 00096 00097 struct scal_div_type; 00098 struct inplace_scal_div_type; 00099 00100 struct inner_prod_type; 00101 struct prod_type; 00102 00103 struct elementwise_prod_type; 00104 struct elementwise_div_type; 00105 00106 namespace result_of{ 00107 template<class T> 00108 struct is_inner_product_leaf; 00109 00110 template<class T> 00111 struct is_inner_product_impl; 00112 } 00113 00114 } 00115 } 00116 #endif 00117
1.7.6.1