Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions src/sage/calculus/integration.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ AUTHORS:
# https://www.gnu.org/licenses/
# ****************************************************************************

from cysignals.signals cimport sig_on, sig_off
from cysignals.signals cimport sig_on, sig_off, sig_block, sig_unblock
from memory_allocator cimport MemoryAllocator

from sage.rings.real_double import RDF
Expand Down Expand Up @@ -417,6 +417,7 @@ def numerical_integral(func, a, b=None,


cdef double c_monte_carlo_f(double *t, size_t dim, void *params) noexcept:
sig_block()
cdef double value
cdef PyFunctionWrapper wrapper
wrapper = <PyFunctionWrapper> params
Expand All @@ -429,16 +430,19 @@ cdef double c_monte_carlo_f(double *t, size_t dim, void *params) noexcept:
value = wrapper.the_function(*wrapper.lx, *wrapper.the_parameters)
else:
value = wrapper.the_function(*wrapper.lx)
except Exception as msg:
print(msg)
return 0
except Exception as e:
print(e)
value=0

sig_unblock()
return value


cdef double c_monte_carlo_ff(double *x, size_t dim, void *params) noexcept:
cdef double result
sig_block()
(<Wrapper_rdf> params).call_c(x, &result)
sig_unblock()
return result


Expand Down
Loading