cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
Vegas.py
Go to the documentation of this file.
6
7import vegas
8
9
10def integrate(f, num_dim: int, num_iter: int, num_warmup: int, num_calls: int, limits: list[tuple[float]]=[]):
11 limits = limits if len(limits) > 0 else num_dim * [(0., 1.)]
12 integ = vegas.Integrator(limits)
13 def f_pyarr(vars):
14 return f(vars.tolist())
15 integ(f_pyarr, nitn=num_iter, neval=num_warmup)
16 res = integ(f_pyarr, nitn=num_iter, neval=num_calls)
17 return (res.mean, res.sdev)
18
19
20if __name__ == '__main__':
21 import math
22 print(integrate(lambda x: x[0]**2 + x[1]**2, 2, 10, 1000, 1000))
23 print(integrate(lambda x: math.sin(x[0]), 1, 10, 1000, 1000, [(0, math.pi)]))