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 *
signature.asc
Description: OpenPGP digital signature