import numpy as np
from scipy import integrate
def my_integrate(func, a, b):
a = np.asarray(a)
b = np.asarray(b)
if a.ndim == 0 and b.ndim == 0:
return np.squeeze(integrate.quad(func, a, b))
elif a.ndim == 0:
a = np.full_like(b, a)
elif b.ndim == 0:
b = np.full_like(a, b)
r = [integrate.quad(func, x0, x1)[0] for x0, x1 in zip(a, b)]
return np.array(r)
if __name__ == "__main__":
y = lambda t: 2*t
x = np.linspace(0, 3, 3)
inty = my_integrate(y, np.zeros(3), x)
print(inty)
aW1wb3J0IG51bXB5IGFzIG5wCmZyb20gc2NpcHkgaW1wb3J0IGludGVncmF0ZQoKCmRlZiBteV9pbnRlZ3JhdGUoZnVuYywgYSwgYik6CiAgICBhID0gbnAuYXNhcnJheShhKQogICAgYiA9IG5wLmFzYXJyYXkoYikKICAgIGlmIGEubmRpbSA9PSAwIGFuZCBiLm5kaW0gPT0gMDoKICAgICAgICByZXR1cm4gbnAuc3F1ZWV6ZShpbnRlZ3JhdGUucXVhZChmdW5jLCBhLCBiKSkKICAgIGVsaWYgYS5uZGltID09IDA6CiAgICAgICAgYSA9IG5wLmZ1bGxfbGlrZShiLCBhKQogICAgZWxpZiBiLm5kaW0gPT0gMDoKICAgICAgICBiID0gbnAuZnVsbF9saWtlKGEsIGIpCiAgICByID0gW2ludGVncmF0ZS5xdWFkKGZ1bmMsIHgwLCB4MSlbMF0gZm9yIHgwLCB4MSBpbiB6aXAoYSwgYildCiAgICByZXR1cm4gbnAuYXJyYXkocikKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgeSA9IGxhbWJkYSB0OiAyKnQKICAgIHggPSBucC5saW5zcGFjZSgwLCAzLCAzKQogICAgaW50eSA9IG15X2ludGVncmF0ZSh5LCBucC56ZXJvcygzKSwgeCkKICAgIHByaW50KGludHkpCg==