Documentation

Numerical Computation

Optimizing mathematical calculations.

Monte Carlo Simulation

import epochly
import random
@epochly.optimize(level=2)
def monte_carlo_pi(iterations):
inside = 0
for _ in range(iterations):
x = random.random()
y = random.random()
if x*x + y*y <= 1:
inside += 1
return 4 * inside / iterations
# Estimate pi with 100 million iterations
pi_estimate = monte_carlo_pi(100_000_000)
print(f"Pi ≈ {pi_estimate}")

Rolling Statistics

import epochly
@epochly.optimize
def rolling_mean(data, window):
results = []
for i in range(len(data) - window + 1):
window_sum = 0
for j in range(window):
window_sum += data[i + j]
results.append(window_sum / window)
return results
# 2M data points, window of 50
result = rolling_mean(data, 50)
# Faster with Epochly (Level 3 parallel or Level 4 GPU)