[Numpy-discussion] SWIGed function does not like my boolean array

Sebastian Haase haase at msg.ucsf.edu
Wed Nov 7 11:20:20 EST 2007


On Nov 7, 2007 4:45 PM, Matthieu Brucher <matthieu.brucher at gmail.com> wrote:
> Unfortunately, operations on boolean are not the same as operations on
> integers, so you can't replace one with another.

I don't understand.  I'm thinking of most math functions in the
C-library. In C a boolean is just an integer of 0 or 1 (quasi, by
definition).

Could you explain what you mean ?

Thanks,
Sebastian



>
> 2007/11/7, Sebastian Haase < haase at msg.ucsf.edu>:
> > O.K., so sizeof(bool) is 1.
> > But I already have a function instantiation for uint8.
> >
> > The problem is that without doing "some magic" the compiler (?, or
> > numpy ?) would never allow to use anything but a "dedicated"
> > bool-typed function for bool.
> > Even though the CPU treats bool exactly like an integer of same
> byte-width.
> >
> > How can I have numpy (or is SWIG the problem ??) use my existing
> > integer function for a bool-type array ?
> > (Without making a differently-typed copy of course ...)
> >
> > Thanks,
> > Sebastian
> >
> > PS: I'm not using the C++ std library.
> >
> >
> > On Nov 7, 2007 2:54 PM, Matthieu Brucher <matthieu.brucher at gmail.com>
> wrote:
> > > Hi,
> > >
> > > No, a bool is not an int32. Try just sizeof(bool) to be sure (on my box,
> > > it's one).
> > > Besides, if you use a std::vector of bool, be aware of the fact that it
> is
> > > not like the other vectors.
> > >
> > > Matthieu
> > >
> > > 2007/11/7, Sebastian Haase < haase at msg.ucsf.edu>:
> > > >
> > > >
> > > >
> > > > Hi,
> > > > I have a templated function written in C++.
> > > > My SWIG typemap instantiates this for many argument array types (such
> > > > as unit8, int16, uint16, int32, float32,float64,...)
> > > > All works well, except when feeding in a boolean array as in
> > > > seb.mmms(a>6)
> > > > I get this error:
> > > > NotImplementedError: No matching function for overloaded 'mmms'
> > > >
> > > > What should I do ?
> > > > Preferably I would avoid having to add another type-instantiation into
> > > > the library (it looks already quite bloated having 6+ versions of
> > > > every function). Isn't bool just a synonym for int32 ?
> > > >
> > > > Thanks
> > > > Sebastian Haase
> > > > _______________________________________________
> > > > Numpy-discussion mailing list
> > > > Numpy-discussion at scipy.org
> > > > http://projects.scipy.org/mailman/listinfo/numpy-discussion
> > > >
> > >
> > >
> > >
> > > --
> > > French PhD student
> > > Website : http://miles.developpez.com/
> > > Blogs : http://matt.eifelle.com and http://blog.developpez.com/?blog=92
> > > LinkedIn : http://www.linkedin.com/in/matthieubrucher
> > > _______________________________________________
> > > Numpy-discussion mailing list
> > > Numpy-discussion at scipy.org
> > > http://projects.scipy.org/mailman/listinfo/numpy-discussion
> > >
> > >
> > _______________________________________________
> > Numpy-discussion mailing list
> > Numpy-discussion at scipy.org
> > http://projects.scipy.org/mailman/listinfo/numpy-discussion
> >
>
>
>
> --
> French PhD student
> Website : http://miles.developpez.com/
> Blogs : http://matt.eifelle.com and http://blog.developpez.com/?blog=92
> LinkedIn : http://www.linkedin.com/in/matthieubrucher
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
>



More information about the NumPy-Discussion mailing list