OK, so after re-doing the build system, let's try again. Unfortunately,
the Windows terminal window didn't save very much history, so I only
have this much of the error output. I think it's enough to be
diagnostic; if not, I'll run it again, redirecting the output to a
file..

Once I've got this Windows build fixed, and successful builds on Mac OS,
I'll release PyViennaCL version 1.0.1.

Also note that this is now using MSVC 9, since that's the version that
Python 2.7 is built with, and I have to build with that, apparently.



external/viennacl-dev/viennacl/linalg/bicgstab.hpp(125) : error C2593: 
'operator -=' is ambiguous
        external/viennacl-dev/viennacl/vector.hpp(765): could be 
'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator 
-=<MatrixType,v
iennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const 
viennacl::vector_expression<LHS,RHS,OP> &)'
        with
        [
            SCALARTYPE=double,
            MatrixType=viennacl::matrix_base<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(817): 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 '(viennacl::vector<SCALARTYPE>, 
viennacl::vector_expression<LHS,RHS,OP>)'
        with
        [
            SCALARTYPE=double
        ]
        and
        [
            LHS=const viennacl::matrix_base<double>,
            RHS=const viennacl::vector_base<double>,
            OP=viennacl::op_prod
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\solve_op_func.hpp(9) : see 
reference to function template instantiation 'VectorType viennacl::linalg::solve
<viennacl::matrix_base<SCALARTYPE>,viennacl::vector<SCALARTYPE>>(const 
MatrixType &,const VectorType &,const viennacl::linalg::bicgstab_tag &)' being 
compiled
        with
        [
            VectorType=viennacl::vector<double>,
            SCALARTYPE=double,
            MatrixType=viennacl::matrix_base<double>
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\solve_op_func.hpp(7) : 
while compiling class template member function 'viennacl::vector<SCALARTYPE> 
pyvcl_w
orker<ReturnT,Operand1T,Operand2T,Operand3T,Operand4T,op,PyObjs>::do_op(pyvcl_op<ReturnT,Operand1T,Operand2T,Operand3T,Operand4T,op_solve,0>
 &)'
        with
        [
            SCALARTYPE=double,
            ReturnT=viennacl::vector<double>,
            Operand1T=viennacl::matrix_base<double> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &,
            Operand4T=NoneT ,
            op=op_solve,
            PyObjs=0
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\viennacl.h(155) : see 
reference to class template instantiation 
'pyvcl_worker<ReturnT,Operand1T,Operand2T,O
perand3T,Operand4T,op,PyObjs>' being compiled
        with
        [
            ReturnT=viennacl::vector<double>,
            Operand1T=viennacl::matrix_base<double> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &,
            Operand4T=NoneT ,
            op=op_solve,
            PyObjs=0
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\viennacl.h(151) : while 
compiling class template member function 'viennacl::vector<SCALARTYPE> 
pyvcl_op<Ret
urnT,Operand1T,Operand2T,Operand3T,Operand4T,op,PyObjs>::do_op(void)'
        with
        [
            SCALARTYPE=double,
            ReturnT=viennacl::vector<double>,
            Operand1T=viennacl::matrix_base<double> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &,
            Operand4T=NoneT,
            op=op_solve,
            PyObjs=0
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\viennacl.h(199) : see 
reference to class template instantiation 
'pyvcl_op<ReturnT,Operand1T,Operand2T,Opera
nd3T,Operand4T,op,PyObjs>' being compiled
        with
        [
            ReturnT=viennacl::vector<double>,
            Operand1T=viennacl::matrix_base<double> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &,
            Operand4T=NoneT,
            op=op_solve,
            PyObjs=0
        ]
        src\_viennacl\iterative_solvers.cpp(6) : see reference to function 
template instantiation 'ReturnT 
pyvcl_do_3ary_op<viennacl::vector<SCALARTYPE>,viennac
l::matrix_base<SCALARTYPE>&,viennacl::vector<SCALARTYPE>&,viennacl::linalg::bicgstab_tag&,op_solve,0>(Operand1T,Operand2T,Operand3T)'
 being compiled
        with
        [
            ReturnT=viennacl::vector<double>,
            SCALARTYPE=double,
            Operand1T=viennacl::matrix_base<double> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &
        ]
external/viennacl-dev/viennacl/linalg/bicgstab.hpp(125) : error C2593: 
'operator -=' is ambiguous
        external/viennacl-dev/viennacl/vector.hpp(765): could be 
'viennacl::vector_base<SCALARTYPE> &viennacl::vector_base<SCALARTYPE>::operator 
-=<MatrixType,v
iennacl::vector_base<SCALARTYPE>,viennacl::op_prod>(const 
viennacl::vector_expression<LHS,RHS,OP> &)'
        with
        [
            SCALARTYPE=double,
            MatrixType=viennacl::matrix_base<double,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(817): 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 '(viennacl::vector<SCALARTYPE>, 
viennacl::vector_expression<LHS,RHS,OP>)'
        with
        [
            SCALARTYPE=double
        ]
        and
        [
            LHS=const viennacl::matrix_base<double,viennacl::column_major>,
            RHS=const viennacl::vector_base<double>,
            OP=viennacl::op_prod
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\solve_op_func.hpp(9) : see 
reference to function template instantiation 'VectorType viennacl::linalg::solve
<viennacl::matrix_base<SCALARTYPE,F>,viennacl::vector<SCALARTYPE>>(const 
MatrixType &,const VectorType &,const viennacl::linalg::bicgstab_tag &)' being 
compiled

        with
        [
            VectorType=viennacl::vector<double>,
            SCALARTYPE=double,
            F=viennacl::column_major,
            MatrixType=viennacl::matrix_base<double,viennacl::column_major>
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\solve_op_func.hpp(7) : 
while compiling class template member function 'viennacl::vector<SCALARTYPE> 
pyvcl_w
orker<ReturnT,Operand1T,Operand2T,Operand3T,Operand4T,op,PyObjs>::do_op(pyvcl_op<ReturnT,Operand1T,Operand2T,Operand3T,Operand4T,op_solve,0>
 &)'
        with
        [
            SCALARTYPE=double,
            ReturnT=viennacl::vector<double>,
            Operand1T=viennacl::matrix_base<double,viennacl::column_major> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &,
            Operand4T=NoneT ,
            op=op_solve,
            PyObjs=0
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\viennacl.h(155) : see 
reference to class template instantiation 
'pyvcl_worker<ReturnT,Operand1T,Operand2T,O
perand3T,Operand4T,op,PyObjs>' being compiled
        with
        [
            ReturnT=viennacl::vector<double>,
            Operand1T=viennacl::matrix_base<double,viennacl::column_major> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &,
            Operand4T=NoneT ,
            op=op_solve,
            PyObjs=0
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\viennacl.h(151) : while 
compiling class template member function 'viennacl::vector<SCALARTYPE> 
pyvcl_op<Ret
urnT,Operand1T,Operand2T,Operand3T,Operand4T,op,PyObjs>::do_op(void)'
        with
        [
            SCALARTYPE=double,
            ReturnT=viennacl::vector<double>,
            Operand1T=viennacl::matrix_base<double,viennacl::column_major> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &,
            Operand4T=NoneT,
            op=op_solve,
            PyObjs=0
        ]
        f:\src\viennacl\pyviennacl-dev\src\_viennacl\viennacl.h(199) : see 
reference to class template instantiation 
'pyvcl_op<ReturnT,Operand1T,Operand2T,Opera
nd3T,Operand4T,op,PyObjs>' being compiled
        with
        [
            ReturnT=viennacl::vector<double>,
            Operand1T=viennacl::matrix_base<double,viennacl::column_major> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &,
            Operand4T=NoneT,
            op=op_solve,
            PyObjs=0
        ]
        src\_viennacl\iterative_solvers.cpp(6) : see reference to function 
template instantiation 'ReturnT 
pyvcl_do_3ary_op<viennacl::vector<SCALARTYPE>,viennac
l::matrix_base<SCALARTYPE,F>&,viennacl::vector<SCALARTYPE>&,viennacl::linalg::bicgstab_tag&,op_solve,0>(Operand1T,Operand2T,Operand3T)'
 being compiled
        with
        [
            ReturnT=viennacl::vector<double>,
            SCALARTYPE=double,
            F=viennacl::column_major,
            Operand1T=viennacl::matrix_base<double,viennacl::column_major> &,
            Operand2T=viennacl::vector<double> &,
            Operand3T=viennacl::linalg::bicgstab_tag &
        ]
error: command '"D:\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' failed with 
exit status 2







Karl Rupp <r...@iue.tuwien.ac.at> writes:
> Hi Toby,
>
>  > I don't have much expertise with MSVC, but I'm trying to build
>> pyviennacl, and I've got a couple of weird bugs. I've looked at the
>> source, but really have no idea what it's complaining about. Why can't
>> it resolve the type ambiguity here?
>>
>> 4>F:/src/viennacl/pyviennacl-dev/external/viennacl-dev\viennacl/linalg/bicgstab.hpp(149):
>>  error C2668: 'fabs' : ambiguous call to overloaded function
>> 4>          E:\Microsoft Visual Studio 11.0\VC\INCLUDE\math.h(118): could be 
>> 'double fabs(double)'
>> 4>          E:\Microsoft Visual Studio 11.0\VC\INCLUDE\math.h(516): or       
>> 'float fabs(float)'
>> 4>          E:\Microsoft Visual Studio 11.0\VC\INCLUDE\math.h(564): or       
>> 'long double fabs(long double)'
>> 4>          while trying to match the argument list '(CPU_ScalarType)'
>
> Which types did you pass in? This looks like you pass an integer type 
> (e.g. viennacl::vector<int>), while BiCGStab only makes sense for 
> floating point numbers. std::fabs(int) then is ambiguous.
>
>
>> And here, I wish I knew what class it actually thinks its assigning..
>>
>> 4>F:/src/viennacl/pyviennacl-dev/external/viennacl-dev\viennacl/linalg/bicgstab.hpp(125):
>>  error C2088: '-=' : illegal for class
>>
>> Does the following patch suffice? The code now builds with only the error
>> above, and I imagine the effect should be the same.
>
> The patch below introduces a temporary, which is not a great thing. 
> Instead, we should find and fix the underlying reason why the initial 
> code does not compile. Can you please provide more context (e.g. the 
> full compiler output)?
>
> Best regards,
> Karli
>
>
> ------------------------------------------------------------------------------
> Managing the Performance of Cloud-Based Applications
> Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
> Read the Whitepaper.
> http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk


------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel

Reply via email to