Control: tags 682410 + patch

On 22/07/12 15:59, Andreas Beckmann wrote:
> make[3]: Entering directory `/tmp/buildd/viennacl-1.2.0/obj-x86_64-linux-gnu'
> /usr/bin/cmake -E cmake_progress_report 
> /tmp/buildd/viennacl-1.2.0/obj-x86_64-linux-gnu/CMakeFiles 88
> [ 85%] Building CXX object 
> examples/parameters/CMakeFiles/matrixparams.dir/matrix.cpp.o
> cd /tmp/buildd/viennacl-1.2.0/obj-x86_64-linux-gnu/examples/parameters && 
> /usr/bin/c++    -Wall -pedantic -I/tmp/buildd/viennacl-1.2.0 
> -I/tmp/buildd/viennacl-1.2.0/obj-x86_64-linux-gnu -I/tmp/bu
> ildd/viennacl-1.2.0/external    -o CMakeFiles/matrixparams.dir/matrix.cpp.o 
> -c /tmp/buildd/viennacl-1.2.0/examples/parameters/matrix.cpp
> In file included from /tmp/buildd/viennacl-1.2.0/viennacl/matrix.hpp:28:0,
>                  from 
> /tmp/buildd/viennacl-1.2.0/examples/parameters/matrix.cpp:20:
> /tmp/buildd/viennacl-1.2.0/viennacl/linalg/matrix_operations.hpp: In 
> instantiation of 'void viennacl::linalg::prod_impl(const 
> viennacl::matrix_expression<const viennacl::matrix<SCALARTYPE, F, AL
> IGNMENT>, const viennacl::matrix<SCALARTYPE, F, ALIGNMENT>, 
> viennacl::op_trans>&, const viennacl::vector<SCALARTYPE, VECTOR_ALIGNMENT>&, 
> viennacl::vector<SCALARTYPE, VECTOR_ALIGNMENT>&) [with SC
> ALARTYPE = float; F = viennacl::row_major; unsigned int ALIGNMENT = 1u; 
> unsigned int VECTOR_ALIGNMENT = 1u]':
> /tmp/buildd/viennacl-1.2.0/viennacl/linalg/matrix_operations.hpp:1023:9:   
> required from 'viennacl::vector<SCALARTYPE, ALIGNMENT>& 
> viennacl::vector<SCALARTYPE, ALIGNMENT>::operator=(const vienna
> cl::vector_expression<const viennacl::matrix_expression<const 
> viennacl::matrix<SCALARTYPE, F, MAT_ALIGNMENT>, const 
> viennacl::matrix<SCALARTYPE, F, MAT_ALIGNMENT>, viennacl::op_trans>, const vie
> nnacl::vector<SCALARTYPE, ALIGNMENT>, viennacl::op_prod>&) [with F = 
> viennacl::row_major; unsigned int MAT_ALIGNMENT = 1u; SCALARTYPE = float; 
> unsigned int ALIGNMENT = 1u]'
> /tmp/buildd/viennacl-1.2.0/examples/parameters/matrix_functors.hpp:90:3:   
> required from 'void matrix_trans_vec_mul(TestData&) [with TestData = 
> test_data<viennacl::scalar<float>, viennacl::vecto
> r<float, 1u>, viennacl::matrix<float, viennacl::row_major, 1u> >]'
> /tmp/buildd/viennacl-1.2.0/examples/parameters/matrix.cpp:154:3:   required 
> from 'int run_matrix_benchmark(test_config&, 
> viennacl::io::parameter_database&) [with ScalarType = float]'
> /tmp/buildd/viennacl-1.2.0/examples/parameters/matrix.cpp:237:42:   required 
> from here
> /tmp/buildd/viennacl-1.2.0/viennacl/linalg/matrix_operations.hpp:369:7: 
> error: 'trans_prod_impl' was not declared in this scope, and no declarations 
> were found by argument-dependent lookup at the point of instantiation 
> [-fpermissive]
> /tmp/buildd/viennacl-1.2.0/viennacl/linalg/matrix_operations.hpp:381:10: 
> note: 'template<class SCALARTYPE, class F, unsigned int ALIGNMENT, unsigned 
> int VECTOR_ALIGNMENT> void viennacl::linalg::trans_prod_impl(const 
> viennacl::matrix<SCALARTYPE, F, ALIGNMENT>&, const 
> viennacl::vector<SCALARTYPE, VECTOR_ALIGNMENT>&, viennacl::vector<SCALARTYPE, 
> VECTOR_ALIGNMENT>&)' declared here, later in the translation unit
> /tmp/buildd/viennacl-1.2.0/viennacl/linalg/matrix_operations.hpp: In 
> instantiation of 'void viennacl::linalg::prod_impl(const 
> viennacl::matrix_expression<const viennacl::matrix<SCALARTYPE, F, ALIGNMENT>, 
> const viennacl::matrix<SCALARTYPE, F, ALIGNMENT>, viennacl::op_trans>&, const 
> viennacl::vector<SCALARTYPE, VECTOR_ALIGNMENT>&, viennacl::vector<SCALARTYPE, 
> VECTOR_ALIGNMENT>&) [with SCALARTYPE = double; F = viennacl::row_major; 
> unsigned int ALIGNMENT = 1u; unsigned int VECTOR_ALIGNMENT = 1u]':
> /tmp/buildd/viennacl-1.2.0/viennacl/linalg/matrix_operations.hpp:1023:9:   
> required from 'viennacl::vector<SCALARTYPE, ALIGNMENT>& 
> viennacl::vector<SCALARTYPE, ALIGNMENT>::operator=(const 
> viennacl::vector_expression<const viennacl::matrix_expression<const 
> viennacl::matrix<SCALARTYPE, F, MAT_ALIGNMENT>, const 
> viennacl::matrix<SCALARTYPE, F, MAT_ALIGNMENT>, viennacl::op_trans>, const 
> viennacl::vector<SCALARTYPE, ALIGNMENT>, viennacl::op_prod>&) [with F = 
> viennacl::row_major; unsigned int MAT_ALIGNMENT = 1u; SCALARTYPE = double; 
> unsigned int ALIGNMENT = 1u]'
> /tmp/buildd/viennacl-1.2.0/examples/parameters/matrix_functors.hpp:90:3:   
> required from 'void matrix_trans_vec_mul(TestData&) [with TestData = 
> test_data<viennacl::scalar<double>, viennacl::vector<double, 1u>, 
> viennacl::matrix<double, viennacl::row_major, 1u> >]'
> /tmp/buildd/viennacl-1.2.0/examples/parameters/matrix.cpp:154:3:   required 
> from 'int run_matrix_benchmark(test_config&, 
> viennacl::io::parameter_database&) [with ScalarType = double]'
> /tmp/buildd/viennacl-1.2.0/examples/parameters/matrix.cpp:253:45:   required 
> from here
> /tmp/buildd/viennacl-1.2.0/viennacl/linalg/matrix_operations.hpp:369:7: 
> error: 'trans_prod_impl' was not declared in this scope, and no declarations 
> were found by argument-dependent lookup at the point of instantiation 
> [-fpermissive]
> /tmp/buildd/viennacl-1.2.0/viennacl/linalg/matrix_operations.hpp:381:10: 
> note: 'template<class SCALARTYPE, class F, unsigned int ALIGNMENT, unsigned 
> int VECTOR_ALIGNMENT> void viennacl::linalg::trans_prod_impl(const 
> viennacl::matrix<SCALARTYPE, F, ALIGNMENT>&, const 
> viennacl::vector<SCALARTYPE, VECTOR_ALIGNMENT>&, viennacl::vector<SCALARTYPE, 
> VECTOR_ALIGNMENT>&)' declared here, later in the translation unit
> make[3]: *** [examples/parameters/CMakeFiles/matrixparams.dir/matrix.cpp.o] 
> Error 1

Please find attached a patch to fix this FTBFS.

Kind regards
-- 
Sebastian Ramacher
--- viennacl-1.2.0.orig/viennacl/linalg/matrix_operations.hpp
+++ viennacl-1.2.0/viennacl/linalg/matrix_operations.hpp
@@ -357,17 +357,6 @@ namespace viennacl
                                          op_prod >(proxy, vec);
     }
 
-    /** @brief Unwraps the transposed matrix proxy and forwards to trans_prod_impl()
-    */
-    template<class SCALARTYPE, typename F, unsigned int ALIGNMENT, unsigned int VECTOR_ALIGNMENT>
-    void prod_impl(const viennacl::matrix_expression< const matrix<SCALARTYPE, F, ALIGNMENT>,
-                                                      const matrix<SCALARTYPE, F, ALIGNMENT>,
-                                                      op_trans> & mat,
-                    const viennacl::vector<SCALARTYPE, VECTOR_ALIGNMENT> & vec, 
-                          viennacl::vector<SCALARTYPE, VECTOR_ALIGNMENT> & result)
-    {
-      trans_prod_impl(mat.lhs(), vec, result);
-    }
     
     /** @brief Carries out matrix-vector multiplication with a transposed matrix
     *
@@ -395,7 +384,17 @@ namespace viennacl
                                     cl_uint(mat.internal_size1()), cl_uint(mat.internal_size2()), vec, result));        
     }
 
-
+    /** @brief Unwraps the transposed matrix proxy and forwards to trans_prod_impl()
+    */
+    template<class SCALARTYPE, typename F, unsigned int ALIGNMENT, unsigned int VECTOR_ALIGNMENT>
+    void prod_impl(const viennacl::matrix_expression< const matrix<SCALARTYPE, F, ALIGNMENT>,
+                                                      const matrix<SCALARTYPE, F, ALIGNMENT>,
+                                                      op_trans> & mat,
+                    const viennacl::vector<SCALARTYPE, VECTOR_ALIGNMENT> & vec, 
+                          viennacl::vector<SCALARTYPE, VECTOR_ALIGNMENT> & result)
+    {
+      trans_prod_impl(mat.lhs(), vec, result);
+    }
 
     /** @brief Carries out matrix-matrix multiplication
     *

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to