Hi all, I had a bug report that the Lanczos algorithm wasn't working[1], and it turned out I hadn't enabled the relevant code path in the wrapper. The user was using a dense matrix in the given example, so I enabled the algorithm for dense types, and compressed and coordinate types. This was all fine until I attempted a build on Windows, with VC9.
[1] https://github.com/viennacl/pyviennacl-dev/issues/11 Aside from a number of double->float conversion warnings -- I can't see where they're supposed to originate, even having looked at the relevant lines of code -- I get quite a few errors for the dense types as follows: external/viennacl-dev/viennacl/linalg/lanczos.hpp(293) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<double,viennacl::row_majo r>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(466) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosPRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, MatrixT=viennacl::matrix<double,viennacl::row_major>, VectorT=VectorT ] src\_viennacl\eig.cpp(71) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::matrix<SCALARTYPE,F>> (const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, SCALARTYPE=double, F=viennacl::row_major, MatrixT=viennacl::matrix<double,viennacl::row_major> ] It's particularly strange because gcc doesn't have any problems with this code at all. It seems a shame to have to go back to the user and say that he can't use his code after all. My code in this case goes like DISAMBIGUATE_FUNCTION_PTR(std::vector<double>, vcl::linalg::eig, eig_lanczos_vector_double_row, (const vcl::matrix<double, vcl::row_major>&, const vcl::linalg::lanczos_tag&)) bp::def("eig", eig_lanczos_vector_double_row); where DISAMBIGUATE_FUNCTION_PTR is defined thus #define DISAMBIGUATE_FUNCTION_PTR(RET, OLD_NAME, NEW_NAME, ARGS) \ RET (*NEW_NAME) ARGS = &OLD_NAME; so that Python can see the following prototype: std::vector<double> (*eig_lanczos_vector_double_row) (const vcl::matrix<double, vcl::row_major>&, const vcl::linalg::lanczos_tag&) = &vcl::linalg::eig; Is there anything I can do? Or should I just disable the algorithm for dense matrices? As I said, given that it works with gcc, this would seem a shame. The full compile log for eig.cpp is here: C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Bin\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DBOOST_PYTHON_SOURCE=1 -DVIENNACL_WITH_OPENCL -DBOOST_MUL TI_INDEX_DISABLE_SERIALIZATION=1 -DVIENNACL_WITH_UBLAS -DBOOST_CHRONO_HEADER_ONLY=1 -DBOOST_THREAD_BUILD_DLL=1 -Dboost=pyviennaclboost -DBOOST_ALL_NO_LIB=1 -Iex ternal/boost-python-ublas-subset/boost_subset -Iexternal/boost_numpy/ -Iexternal/viennacl-dev/ -ID:\Python\2.7-i686\lib\site-packages\numpy\core\include -ID:\Py thon\2.7-i686\include -ID:\Python\2.7-i686\PC /Tpsrc\_viennacl\eig.cpp /Fobuild\temp.win32-2.7\Release\src\_viennacl\eig.obj /EHsc eig.cpp external/viennacl-dev/viennacl/linalg/lanczos.hpp(456) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data src\_viennacl\eig.cpp(77) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::matrix<SCALARTYPE,F>> (const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, SCALARTYPE=float, F=viennacl::row_major, MatrixT=viennacl::matrix<float,viennacl::row_major> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(456) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data src\_viennacl\eig.cpp(89) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::matrix<SCALARTYPE,F>> (const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, SCALARTYPE=float, F=viennacl::column_major, MatrixT=viennacl::matrix<float,viennacl::column_major> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(456) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data src\_viennacl\eig.cpp(104) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::compressed_matrix<SC ALARTYPE>>(const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, SCALARTYPE=float, MatrixT=viennacl::compressed_matrix<float> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(456) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data src\_viennacl\eig.cpp(116) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::coordinate_matrix<SC ALARTYPE>>(const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, SCALARTYPE=float, MatrixT=viennacl::coordinate_matrix<float> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(293) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<double,viennacl::row_majo r>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(466) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosPRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, MatrixT=viennacl::matrix<double,viennacl::row_major>, VectorT=VectorT ] src\_viennacl\eig.cpp(71) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::matrix<SCALARTYPE,F>> (const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, SCALARTYPE=double, F=viennacl::row_major, MatrixT=viennacl::matrix<double,viennacl::row_major> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(410) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<double,viennacl::row_majo r>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(469) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosFRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,viennacl::linalg::lanczos_tag)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, MatrixT=viennacl::matrix<double,viennacl::row_major>, VectorT=VectorT ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(342) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<double,viennacl::row_majo r>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<double>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(472) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczos<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,viennacl::linalg::lanczos_tag)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, MatrixT=viennacl::matrix<double,viennacl::row_major>, VectorT=VectorT ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(166) : warning C4305: '=' : truncation from 'double' to 'CPU_ScalarType' external/viennacl-dev/viennacl/linalg/lanczos.hpp(466) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosPRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, MatrixT=viennacl::matrix<float,viennacl::row_major>, VectorT=VectorT ] src\_viennacl\eig.cpp(77) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::matrix<SCALARTYPE,F>> (const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, SCALARTYPE=float, F=viennacl::row_major, MatrixT=viennacl::matrix<float,viennacl::row_major> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(167) : warning C4244: '=' : conversion from 'double' to 'CPU_ScalarType', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(196) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(200) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(202) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(216) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(234) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(242) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(254) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(293) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, LHS=const viennacl::matrix_base<float>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<float,viennacl::row_major >(viennacl::vector_base<SCALARTYPE> &,const >viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, LHS=const viennacl::matrix_base<float>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<float>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(410) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, LHS=const viennacl::matrix_base<float>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<float,viennacl::row_major >(viennacl::vector_base<SCALARTYPE> &,const >viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, LHS=const viennacl::matrix_base<float>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<float>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(469) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosFRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,viennacl::linalg::lanczos_tag)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, MatrixT=viennacl::matrix<float,viennacl::row_major>, VectorT=VectorT ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(342) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, LHS=const viennacl::matrix_base<float>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<float,viennacl::row_major >(viennacl::vector_base<SCALARTYPE> &,const >viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, LHS=const viennacl::matrix_base<float>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<float>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(472) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczos<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,viennacl::linalg::lanczos_tag)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, MatrixT=viennacl::matrix<float,viennacl::row_major>, VectorT=VectorT ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(293) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE,F>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, F=viennacl::column_major, LHS=const viennacl::matrix_base<double,viennacl::column_major>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<double,viennacl::column_m ajor>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double,viennacl::column_major>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<double,viennacl::column_major>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(466) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosPRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, MatrixT=viennacl::matrix<double,viennacl::column_major>, VectorT=VectorT ] src\_viennacl\eig.cpp(83) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::matrix<SCALARTYPE,F>> (const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, SCALARTYPE=double, F=viennacl::column_major, MatrixT=viennacl::matrix<double,viennacl::column_major> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(410) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE,F>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, F=viennacl::column_major, LHS=const viennacl::matrix_base<double,viennacl::column_major>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<double,viennacl::column_m ajor>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double,viennacl::column_major>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<double,viennacl::column_major>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(469) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosFRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,viennacl::linalg::lanczos_tag)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, MatrixT=viennacl::matrix<double,viennacl::column_major>, VectorT=VectorT ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(342) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE,F>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, F=viennacl::column_major, LHS=const viennacl::matrix_base<double,viennacl::column_major>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<double,viennacl::column_m ajor>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=double, LHS=const viennacl::matrix_base<double,viennacl::column_major>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<double,viennacl::column_major>, RHS=const viennacl::vector_base<double>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(472) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczos<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,viennacl::linalg::lanczos_tag)' being compiled with [ _Ty=double, _Ax=std::allocator<double>, MatrixT=viennacl::matrix<double,viennacl::column_major>, VectorT=VectorT ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(166) : warning C4305: '=' : truncation from 'double' to 'CPU_ScalarType' external/viennacl-dev/viennacl/linalg/lanczos.hpp(466) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosPRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, MatrixT=viennacl::matrix<float,viennacl::column_major>, VectorT=VectorT ] src\_viennacl\eig.cpp(89) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::matrix<SCALARTYPE,F>> (const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, SCALARTYPE=float, F=viennacl::column_major, MatrixT=viennacl::matrix<float,viennacl::column_major> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(167) : warning C4244: '=' : conversion from 'double' to 'CPU_ScalarType', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(196) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(200) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(202) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(216) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(234) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(242) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(254) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(293) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE,F>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, F=viennacl::column_major, LHS=const viennacl::matrix_base<float,viennacl::column_major>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<float,viennacl::column_ma jor>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, LHS=const viennacl::matrix_base<float,viennacl::column_major>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<float,viennacl::column_major>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(410) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE,F>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, F=viennacl::column_major, LHS=const viennacl::matrix_base<float,viennacl::column_major>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<float,viennacl::column_ma jor>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, LHS=const viennacl::matrix_base<float,viennacl::column_major>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<float,viennacl::column_major>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(469) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosFRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,viennacl::linalg::lanczos_tag)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, MatrixT=viennacl::matrix<float,viennacl::column_major>, VectorT=VectorT ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(342) : error C2593: 'operator +=' is ambiguous external/viennacl-dev/viennacl/vector.hpp(754): could be 'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator +=<viennacl::ma trix_base<SCALARTYPE,F>,viennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, F=viennacl::column_major, LHS=const viennacl::matrix_base<float,viennacl::column_major>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/matrix_operations.hpp(799): or 'viennacl::vector<SCALARTYPE> viennacl::operator +=<float,viennacl::column_ma jor>(viennacl::vector_base<SCALARTYPE> &,const viennacl::vector_expression<LHS,RHS,OP> &)' with [ SCALARTYPE=float, LHS=const viennacl::matrix_base<float,viennacl::column_major>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] while trying to match the argument list '(VectorT, viennacl::vector_expression<LHS,RHS,OP>)' with [ LHS=const viennacl::matrix_base<float,viennacl::column_major>, RHS=const viennacl::vector_base<float>, OP=viennacl::op_prod ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(472) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczos<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,viennacl::linalg::lanczos_tag)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, MatrixT=viennacl::matrix<float,viennacl::column_major>, VectorT=VectorT ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(166) : warning C4305: '=' : truncation from 'double' to 'CPU_ScalarType' external/viennacl-dev/viennacl/linalg/lanczos.hpp(466) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosPRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, MatrixT=viennacl::compressed_matrix<float>, VectorT=VectorT ] src\_viennacl\eig.cpp(104) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::compressed_matrix<SC ALARTYPE>>(const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, SCALARTYPE=float, MatrixT=viennacl::compressed_matrix<float> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(167) : warning C4244: '=' : conversion from 'double' to 'CPU_ScalarType', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(196) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(200) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(202) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(216) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(234) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(242) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(254) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(166) : warning C4305: '=' : truncation from 'double' to 'CPU_ScalarType' external/viennacl-dev/viennacl/linalg/lanczos.hpp(466) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::detail ::lanczosPRO<MatrixT,VectorT>(const MatrixT &,VectorT &,viennacl::vcl_size_t,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, MatrixT=viennacl::coordinate_matrix<float>, VectorT=VectorT ] src\_viennacl\eig.cpp(116) : see reference to function template instantiation 'std::vector<_Ty,_Ax> viennacl::linalg::eig<viennacl::coordinate_matrix<SC ALARTYPE>>(const MatrixT &,const viennacl::linalg::lanczos_tag &)' being compiled with [ _Ty=float, _Ax=std::allocator<float>, SCALARTYPE=float, MatrixT=viennacl::coordinate_matrix<float> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(167) : warning C4244: '=' : conversion from 'double' to 'CPU_ScalarType', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(196) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(200) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(202) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(216) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(234) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(242) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/viennacl-dev/viennacl/linalg/lanczos.hpp(254) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data external/boost-python-ublas-subset/boost_subset\boost/random/triangle_distribution.hpp(164) : warning C4244: 'initializing' : conversion from 'double' to 'float ', possible loss of data external/boost-python-ublas-subset/boost_subset\boost/random/variate_generator.hpp(73) : see reference to function template instantiation 'float pyvienn aclboost::random::triangle_distribution<RealType>::operator ()<pyviennaclboost::random::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>>(Engine &)' being compiled with [ RealType=CPU_ScalarType, UIntType=pyviennaclboost::uint32_t, w=32, n=351, m=175, r=19, a=-861171993, u=11, d=-1, s=7, b=834054912, t=15, c=-1769472, l=17, f=1812433253, Engine=pyviennaclboost::random::mersenne_twister_engine<pyviennaclboost::uint32_t,32,351,175,19,-861171993,11,-1,7,834054912,15,-1769472,17,18124332 53> ] external/boost-python-ublas-subset/boost_subset\boost/random/variate_generator.hpp(73) : while compiling class template member function 'float pyviennac lboost::random::variate_generator<Engine,Distribution>::operator ()(void)' with [ Engine=pyviennaclboost::random::mt11213b &, Distribution=pyviennaclboost::random::triangle_distribution<CPU_ScalarType> ] external/viennacl-dev/viennacl/linalg/lanczos.hpp(448) : see reference to class template instantiation 'pyviennaclboost::random::variate_generator<Engin e,Distribution>' being compiled with [ Engine=pyviennaclboost::random::mt11213b &, Distribution=pyviennaclboost::random::triangle_distribution<CPU_ScalarType> ] error: command 'cl.exe' failed with exit status 2 -- Toby St Clere Smithe http://tsmithe.net ------------------------------------------------------------------------------ Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce _______________________________________________ ViennaCL-devel mailing list ViennaCL-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/viennacl-devel