summaryrefslogtreecommitdiff
path: root/docs/examples/userguide/numpy_ufuncs
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/userguide/numpy_ufuncs')
-rw-r--r--docs/examples/userguide/numpy_ufuncs/ufunc.py8
-rw-r--r--docs/examples/userguide/numpy_ufuncs/ufunc.pyx8
-rw-r--r--docs/examples/userguide/numpy_ufuncs/ufunc_ctuple.py7
-rw-r--r--docs/examples/userguide/numpy_ufuncs/ufunc_ctuple.pyx7
-rw-r--r--docs/examples/userguide/numpy_ufuncs/ufunc_fused.py7
-rw-r--r--docs/examples/userguide/numpy_ufuncs/ufunc_fused.pyx7
6 files changed, 44 insertions, 0 deletions
diff --git a/docs/examples/userguide/numpy_ufuncs/ufunc.py b/docs/examples/userguide/numpy_ufuncs/ufunc.py
new file mode 100644
index 000000000..874183c84
--- /dev/null
+++ b/docs/examples/userguide/numpy_ufuncs/ufunc.py
@@ -0,0 +1,8 @@
+# tag: numpy
+import cython
+
+@cython.ufunc
+@cython.cfunc
+def add_one(x: cython.double) -> cython.double:
+ # of course, this simple operation can already by done efficiently in Numpy!
+ return x+1
diff --git a/docs/examples/userguide/numpy_ufuncs/ufunc.pyx b/docs/examples/userguide/numpy_ufuncs/ufunc.pyx
new file mode 100644
index 000000000..b29c071e1
--- /dev/null
+++ b/docs/examples/userguide/numpy_ufuncs/ufunc.pyx
@@ -0,0 +1,8 @@
+# tag: numpy
+cimport cython
+
+
+@cython.ufunc
+cdef double add_one(double x):
+ # of course, this simple operation can already by done efficiently in Numpy!
+ return x+1
diff --git a/docs/examples/userguide/numpy_ufuncs/ufunc_ctuple.py b/docs/examples/userguide/numpy_ufuncs/ufunc_ctuple.py
new file mode 100644
index 000000000..b3f4fb6de
--- /dev/null
+++ b/docs/examples/userguide/numpy_ufuncs/ufunc_ctuple.py
@@ -0,0 +1,7 @@
+# tag: numpy
+import cython
+
+@cython.ufunc
+@cython.cfunc
+def add_one_add_two(x: cython.int) -> tuple[cython.int, cython.int]:
+ return x+1, x+2
diff --git a/docs/examples/userguide/numpy_ufuncs/ufunc_ctuple.pyx b/docs/examples/userguide/numpy_ufuncs/ufunc_ctuple.pyx
new file mode 100644
index 000000000..61127261c
--- /dev/null
+++ b/docs/examples/userguide/numpy_ufuncs/ufunc_ctuple.pyx
@@ -0,0 +1,7 @@
+# tag: numpy
+cimport cython
+
+
+@cython.ufunc
+cdef (int, int) add_one_add_two(int x):
+ return x+1, x+2
diff --git a/docs/examples/userguide/numpy_ufuncs/ufunc_fused.py b/docs/examples/userguide/numpy_ufuncs/ufunc_fused.py
new file mode 100644
index 000000000..01cc3bc57
--- /dev/null
+++ b/docs/examples/userguide/numpy_ufuncs/ufunc_fused.py
@@ -0,0 +1,7 @@
+# tag: numpy
+import cython
+
+@cython.ufunc
+@cython.cfunc
+def generic_add_one(x: cython.numeric) -> cython.numeric:
+ return x+1
diff --git a/docs/examples/userguide/numpy_ufuncs/ufunc_fused.pyx b/docs/examples/userguide/numpy_ufuncs/ufunc_fused.pyx
new file mode 100644
index 000000000..3baf58136
--- /dev/null
+++ b/docs/examples/userguide/numpy_ufuncs/ufunc_fused.pyx
@@ -0,0 +1,7 @@
+# tag: numpy
+cimport cython
+
+
+@cython.ufunc
+cdef cython.numeric generic_add_one(cython.numeric x):
+ return x+1