montecarlo op• Data kinds: none → table (an op determined by its arguments alone — it takes no image or data input)
• Call: import fullseye as fs; fs.ledger.mc_photon_slab(layers=None, n_above=1.0, n_below=1.0, n_photons=100000, tol=None, confidence=0.95, batch=50000, seed=1, w_threshold=0.0001, roulette_m=10) -> 'dict' (to call the implementation directly, import mcphoton; mcphoton.mc_photon_slab(layers=None, n_above=1.0, n_below=1.0, n_photons=100000, tol=None, confidence=0.95, batch=50000, seed=1, w_threshold=0.0001, roulette_m=10) -> 'dict'; from the registry, opsconverge.get("mc_photon_slab"))
Diffuse reflectance, total transmittance and absorption of a layered turbid slab by MCML-type Monte Carlo, with confidence intervals.
layers: list of {"n", "mua", "mus", "g", "d"} from the top (coefficients in 1/length, thickness in the same length; d = inf for a semi-infinite last layer). n_above / n_below: ambient refractive indices. A pencil beam enters at normal incidence.
The tracing rules are those of the MCML manual (Wang & Jacques), eqs. 3.2a-3.31 — see the module docstring for which equation does what. Every packet's contribution is kept, so the standard error is the sample standard deviation over packets / sqrt(N) and the interval is mean +- z se (confidence). Batch b uses default_rng((seed, b)).
• tol=None: trace n_photons packets.
• tol=h: sequential Monte Carlo — add batches of batch packets until the half-width of R_d and of T_t is <= h (the stopping rule of converge, from the second batch on), with n_photons as the budget: refusing (NotConvergedError) if the budget is spent first.
Returns Rd, Tt, A (absorbed fraction) and A_layers, each with *_se and *_ci; Rsp (specular, deterministic: eq. 3.2a); energy_balance = R_sp + R_d + T_t + A (1 in expectation — roulette conserves energy only on average, so its deviation is compared with its own standard error); R_total = R_sp + R_d (specular plus diffuse, with the interval of R_d shifted by the deterministic R_sp); n_photons. Defaults: the MCML manual Table 6.1 slab (van de Hulst: R_d = 0.09739, T_t = 0.66096); MCML_TABLE_6_2 holds Table 6.2.
• convergent_computation family guide
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• converge_tour — py -3.11 examples/converge_tour.py
table as input)—
montecarlo)*Provenance: mcphoton.py — CONVERGE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.