diff options
Diffstat (limited to 'docs/examples/tutorial/cdef_classes/integrate.py')
-rw-r--r-- | docs/examples/tutorial/cdef_classes/integrate.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/docs/examples/tutorial/cdef_classes/integrate.py b/docs/examples/tutorial/cdef_classes/integrate.py new file mode 100644 index 000000000..cd02554e5 --- /dev/null +++ b/docs/examples/tutorial/cdef_classes/integrate.py @@ -0,0 +1,17 @@ +from cython.cimports.sin_of_square import Function, SinOfSquareFunction + +def integrate(f: Function, a: float, b: float, N: cython.int): + i: cython.int + + if f is None: + raise ValueError("f cannot be None") + + s: float = 0 + dx: float = (b - a) / N + + for i in range(N): + s += f.evaluate(a + i * dx) + + return s * dx + +print(integrate(SinOfSquareFunction(), 0, 1, 10000)) |