1 #ifndef VIENNACL_DIRECT_SOLVE_HPP_
2 #define VIENNACL_DIRECT_SOLVE_HPP_
43 template<
typename SCALARTYPE,
typename F1,
typename F2,
unsigned int A1,
unsigned int A2,
typename SOLVERTAG>
56 ss << SOLVERTAG::name() <<
"_solve";
72 template<
typename SCALARTYPE,
typename F1,
typename F2,
unsigned int A1,
unsigned int A2,
typename SOLVERTAG>
80 assert(mat.
size2() == B.lhs().size2());
87 ss << SOLVERTAG::name() <<
"_trans_solve";
93 B.lhs(), cl_uint(B.lhs().size1()), cl_uint(B.lhs().size2()),
94 cl_uint(B.lhs().internal_size1()), cl_uint(B.lhs().internal_size2()))
104 template<
typename SCALARTYPE,
typename F1,
typename F2,
unsigned int A1,
unsigned int A2,
typename SOLVERTAG>
111 assert(proxy.lhs().size1() == proxy.lhs().size2());
112 assert(proxy.lhs().size2() == B.
size1());
118 std::stringstream ss;
119 ss <<
"trans_" << SOLVERTAG::name() <<
"_solve";
124 cl_uint(proxy.lhs().internal_size1()), cl_uint(proxy.lhs().internal_size2()),
135 template<
typename SCALARTYPE,
typename F1,
typename F2,
unsigned int A1,
unsigned int A2,
typename SOLVERTAG>
144 assert(proxy.lhs().size1() == proxy.lhs().size2());
145 assert(proxy.lhs().size2() == B.lhs().size2());
151 std::stringstream ss;
152 ss <<
"trans_" << SOLVERTAG::name() <<
"_trans_solve";
157 cl_uint(proxy.lhs().internal_size1()), cl_uint(proxy.lhs().internal_size2()),
158 B.lhs(), cl_uint(B.lhs().size1()), cl_uint(B.lhs().size2()),
159 cl_uint(B.lhs().internal_size1()), cl_uint(B.lhs().internal_size2()))
163 template<
typename SCALARTYPE,
typename F,
unsigned int ALIGNMENT,
unsigned int VEC_ALIGNMENT,
typename SOLVERTAG>
173 std::stringstream ss;
174 ss << SOLVERTAG::name() <<
"_triangular_substitute_inplace";
187 template<
typename SCALARTYPE,
typename F,
unsigned int ALIGNMENT,
unsigned int VEC_ALIGNMENT,
typename SOLVERTAG>
194 assert(proxy.lhs().size1() == vec.
size());
195 assert(proxy.lhs().size2() == vec.
size());
199 std::stringstream ss;
200 ss <<
"trans_" << SOLVERTAG::name() <<
"_triangular_substitute_inplace";
205 cl_uint(proxy.lhs().internal_size1()), cl_uint(proxy.lhs().internal_size2()), vec));
216 template<
typename SCALARTYPE,
typename F1,
typename F2,
unsigned int ALIGNMENT_A,
unsigned int ALIGNMENT_B,
typename TAG>
236 template<
typename SCALARTYPE,
typename F1,
typename F2,
unsigned int ALIGNMENT_A,
unsigned int ALIGNMENT_B,
typename TAG>
258 template<
typename SCALARTYPE,
typename F,
unsigned int ALIGNMENT,
unsigned int VEC_ALIGNMENT,
typename TAG>
280 template<
typename SCALARTYPE,
typename F1,
typename F2,
unsigned int ALIGNMENT_A,
unsigned int ALIGNMENT_B,
typename TAG>
303 template<
typename SCALARTYPE,
typename F1,
typename F2,
unsigned int ALIGNMENT_A,
unsigned int ALIGNMENT_B,
typename TAG>
314 result =
trans(proxy_B.lhs());
327 template<
typename SCALARTYPE,
typename F,
unsigned int ALIGNMENT,
unsigned int VEC_ALIGNMENT,
typename TAG>
349 template<
typename SCALARTYPE,
typename F,
unsigned int ALIGNMENT>
369 template<
typename SCALARTYPE,
typename F1,
typename F2,
unsigned int ALIGNMENT_A,
unsigned int ALIGNMENT_B>
384 template<
typename SCALARTYPE,
typename F,
unsigned int ALIGNMENT,
unsigned int VEC_ALIGNMENT>