-
Notifications
You must be signed in to change notification settings - Fork 57
/
known_bugs.py
55 lines (39 loc) · 1.11 KB
/
known_bugs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import numpy
class adouble:
def __init__(self,x):
self.x = x
def __mul__(self, rhs):
print('called __mul__')
if isinstance(rhs, adouble):
print('case adouble')
return adouble(self.x * rhs.x)
elif numpy.isscalar(rhs):
print('case scalar')
return adouble(self.x * rhs)
elif isinstance(rhs, numpy.ndarray):
print('case ndarray')
return rhs * self
def __rmul__(self, lhs):
print('called __rmul__')
return self * lhs
def __str__(self):
return str(self.x)+'a'
def __repr__(self):
return str(self)
print('numpy.__version__=',numpy.__version__,'\n')
x = numpy.ones(2,dtype=float)
z = numpy.ones(2,dtype=float)
y = numpy.ones(2,dtype=object)
a = adouble(2)
print('executing a *= x')
a *= x
print(a,' where expected [2.0a, 2.0a]\n')
print('executing y *= a')
y *= a
print(y,' where expected [2.0a, 2.0a]\n')
print('executing z = z * a')
z = z * a
print(z,' where expected [2.0a, 2.0a]\n')
print('executing x *= a')
x *= a
print(x,' where expected [2.0a, 2.0a]\n')