For a European option on a non-dividend-paying stock:
d₁ = (ln(S/K) + (r + σ²/2)·T) / (σ·√T)
d₂ = d₁ − σ·√T
C = S·N(d₁) − K·e−rT·N(d₂)
P = K·e−rT·N(−d₂) − S·N(−d₁)
where N(·) is the standard normal CDF. This sim uses the Abramowitz-Stegun 7.1.26 polynomial approximation, accurate to ~1×10⁻⁷.
Test point: S=100, K=100, r=0.05, σ=0.20, T=1 → C ≈ 10.4506, P ≈ 5.5735.