elworthy (CLI)
Command-line entry point for the elworthy Monte Carlo toolchain.
Part of the elworthy workspace: a Rust JIT compiler that specialises Bismut-Elworthy-Li formulas into SIMD kernels for unbiased Monte Carlo Greeks on non-stationary SDEs.
Install
Or from a workspace checkout:
Commands
gbm
Scalar Euler-Maruyama smoke test on geometric Brownian motion:
Use --backend interp to fall back to the tree-walking interpreter (slower; avoids the SELinux execmem constraint for Cranelift).
gbm-delta
Bismut-Elworthy-Li delta on GBM via the constant-flow Malliavin weight:
Expected output at default parameters:
price ~ 105.12xx (stderr 0.14xx) | closed form 105.1271
delta ~ 1.05xx (stderr 0.02xx) | closed form 1.0513
The delta is the headline Greek for the current workspace: one scalar SDE, one smooth payoff, BEL weight synthesised symbolically by elworthy-weight and elworthy-diff, then lowered to a Cranelift kernel.
SELinux note (Fedora / RHEL)
The JIT backend requires execmem permission so Cranelift can map newly generated code as executable. Under SELinux enforcing this is denied for ordinary user binaries:
Error: cranelift module error: Backend error: unable to make memory readable+executable
Workarounds:
- Run via
cargo test(the test harness domain already grantsexecmem). - Relax policy with
sudo setsebool -P selinuxuser_execheap 1. - Use
--backend interpfor a JIT-free run.
See the workspace README for full context, additional commands, and the Python API on PyPI.
Licence
Apache-2.0.