Author: Maciej Fijalkowski <[email protected]>
Branch:
Changeset: r49884:931815553e4c
Date: 2011-11-28 11:04 +0200
http://bitbucket.org/pypy/pypy/changeset/931815553e4c/
Log: a dot implementation
diff --git a/pypy/module/micronumpy/__init__.py
b/pypy/module/micronumpy/__init__.py
--- a/pypy/module/micronumpy/__init__.py
+++ b/pypy/module/micronumpy/__init__.py
@@ -12,6 +12,7 @@
'zeros': 'interp_numarray.zeros',
'empty': 'interp_numarray.zeros',
'ones': 'interp_numarray.ones',
+ 'dot': 'interp_numarray.dot',
'fromstring': 'interp_support.fromstring',
'flatiter': 'interp_numarray.W_FlatIterator',
diff --git a/pypy/module/micronumpy/interp_numarray.py
b/pypy/module/micronumpy/interp_numarray.py
--- a/pypy/module/micronumpy/interp_numarray.py
+++ b/pypy/module/micronumpy/interp_numarray.py
@@ -1152,6 +1152,12 @@
arr.dtype.fill(arr.storage, one, 0, size)
return space.wrap(arr)
+def dot(space, w_obj, w_obj2):
+ w_arr = convert_to_array(space, w_obj)
+ if isinstance(w_arr, Scalar):
+ return convert_to_array(space, w_obj2).descr_dot(space, w_arr)
+ return w_arr.descr_dot(space, w_obj2)
+
BaseArray.typedef = TypeDef(
'numarray',
__new__ = interp2app(descr_new_array),
diff --git a/pypy/module/micronumpy/test/test_numarray.py
b/pypy/module/micronumpy/test/test_numarray.py
--- a/pypy/module/micronumpy/test/test_numarray.py
+++ b/pypy/module/micronumpy/test/test_numarray.py
@@ -687,12 +687,14 @@
assert c.any() == False
def test_dot(self):
- from numpypy import array
+ from numpypy import array, dot
a = array(range(5))
assert a.dot(a) == 30.0
a = array(range(5))
assert a.dot(range(5)) == 30
+ assert dot(range(5), range(5)) == 30
+ assert (dot(5, [1, 2, 3]) == [5, 10, 15]).all()
def test_dot_constant(self):
from numpypy import array
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit