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:
&#149; 3 signs your SCM is hindering your productivity
&#149; Requirements for releasing software faster
&#149; 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

Reply via email to