Hello,
Multiplying a Python float to a numpy.array of objects works flawlessly
but not with a numpy.float64 .
I tried  numpy version '1.0.4' on a 32 bit Linux and  '1.2.1' on a 64
bit Linux: both raise the same exception.

Is this a (known) bug?

---------------------- test.py ------------------------------------
from numpy import *

class adouble:
        def __init__(self,x):
                self.x = x
        def __mul__(self,rhs):
                if isinstance(rhs,adouble):
                        return adouble(self.x * rhs.x)
                else:
                        return adouble(self.x * rhs)
        def __str__(self):
                return str(self.x)

x = adouble(3.)
y = adouble(2.)
u = array([adouble(3.), adouble(5.)])
v = array([adouble(2.), adouble(7.)])
z = array([2.,3.])

print x * y              # ok
print u * v              # ok
print u * z              # ok
print u * 3.             # ok
print u * z[0]           # _NOT_ OK!
print u * float64(3.)    # _NOT_ OK!



---------------------- output   ---------------------------------
wal...@wronski$ python test.py
6.0
[6.0 35.0]
[6.0 15.0]
[9.0 15.0]
Traceback (most recent call last):
  File "test.py", line 24, in <module>
    print u * z[0]   # _NOT_ OK!
TypeError: unsupported operand type(s) for *: 'numpy.ndarray' and
'numpy.float64'


regards,
Sebastian
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to