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 <[email protected]> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/viennacl-devel