Hey all,

I get a lot of errors like the below when I enable T = char (or other
integer numeric types) in PyViennaCL. The error always comes down to the
"request for member 'handle' in 'val'". Previously, it was in the
context of arithmetical functions like addition or element_pow, but here
it seems to be in the context of the copy constructor. I'm not sure why;
the code in question is:

468  uint32_t s = (uint32_t) array.shape(0);
469  
470  vcl::vector<SCALARTYPE> *v = new vcl::vector<SCALARTYPE>(s);

And the compile error:

In file included from 
/home/toby/src/viennacl/pyviennacl-dev/viennacl/ocl/device.hpp:36:0,
                 from 
/home/toby/src/viennacl/pyviennacl-dev/viennacl/ocl/kernel.hpp:35,
                 from 
/home/toby/src/viennacl/pyviennacl-dev/viennacl/ocl/context.hpp:36,
                 from 
/home/toby/src/viennacl/pyviennacl-dev/viennacl/ocl/backend.hpp:26,
                 from 
/home/toby/src/viennacl/pyviennacl-dev/viennacl/backend/opencl.hpp:28,
                 from 
/home/toby/src/viennacl/pyviennacl-dev/viennacl/backend/mem_handle.hpp:32,
                 from 
/home/toby/src/viennacl/pyviennacl-dev/viennacl/backend/memory.hpp:28,
                 from 
/home/toby/src/viennacl/pyviennacl-dev/pyviennacl/src/_viennacl.cpp:18:
/home/toby/src/viennacl/pyviennacl-dev/viennacl/ocl/kernel.hpp: In 
instantiation of ‘void viennacl::ocl::kernel::arg(unsigned int, const 
VCL_TYPE&) [with VCL_TYPE = signed char]’:
/home/toby/src/viennacl/pyviennacl-dev/viennacl/ocl/kernel.hpp:274:70:   
required from ‘viennacl::ocl::kernel& viennacl::ocl::kernel::operator()(const 
T0&, const T1&, const T2&, const T3&, const T4&, const T5&) [with T0 = 
viennacl::ocl::handle<_cl_mem*>; T1 = unsigned int; T2 = unsigned int; T3 = 
unsigned int; T4 = unsigned int; T5 = signed char]’
/home/toby/src/viennacl/pyviennacl-dev/viennacl/linalg/opencl/vector_operations.hpp:250:76:
   required from ‘void 
viennacl::linalg::opencl::vector_assign(viennacl::vector_base<T>&, const T&, 
bool) [with T = char]’
/home/toby/src/viennacl/pyviennacl-dev/viennacl/linalg/vector_operations.hpp:167:83:
   required from ‘void 
viennacl::linalg::vector_assign(viennacl::vector_base<T>&, const T&, bool) 
[with T = char]’
/home/toby/src/viennacl/pyviennacl-dev/viennacl/vector.hpp:883:73:   required 
from ‘void viennacl::vector_base<SCALARTYPE, SizeType, DistanceType>::clear() 
[with SCALARTYPE = char; SizeType = long unsigned int; DistanceType = long int]’
/home/toby/src/viennacl/pyviennacl-dev/viennacl/vector.hpp:398:17:   required 
from ‘viennacl::vector_base<SCALARTYPE, SizeType, 
DistanceType>::vector_base(viennacl::vector_base<SCALARTYPE, SizeType, 
DistanceType>::size_type, viennacl::context) [with SCALARTYPE = char; SizeType 
= long unsigned int; DistanceType = long int; viennacl::vector_base<SCALARTYPE, 
SizeType, DistanceType>::size_type = long unsigned int]’
/home/toby/src/viennacl/pyviennacl-dev/viennacl/vector.hpp:1013:61:   required 
from ‘viennacl::vector<SCALARTYPE, 
ALIGNMENT>::vector(viennacl::vector<SCALARTYPE, ALIGNMENT>::size_type) [with 
SCALARTYPE = char; unsigned int ALIGNMENT = 1u; viennacl::vector<SCALARTYPE, 
ALIGNMENT>::size_type = long unsigned int]’
/home/toby/src/viennacl/pyviennacl-dev/pyviennacl/src/_viennacl.cpp:470:61:   
required from ‘boost::shared_ptr<viennacl::vector<T> > 
vcl_vector_init_ndarray(const boost::numpy::ndarray&) [with SCALARTYPE = char]’
/home/toby/src/viennacl/pyviennacl-dev/pyviennacl/src/_viennacl.cpp:1295:3:   
required from here
/home/toby/src/viennacl/pyviennacl-dev/viennacl/ocl/kernel.hpp:192:16: error: 
request for member ‘handle’ in ‘val’, which is of non-class type ‘const signed 
char’
         assert(&val.handle().opencl_handle().context() == &handle_.context() 
&& bool("Kernel and memory object not in the same context!"));


I wanted to enable integer types for pencils-down, hoping that all I'd
have to do is add a macro describing the class, but it might be more
than I can fit in.


Best,

Toby


------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&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