Files
ferro-ta/benchmarks/artifacts/latest/benchmark_derivatives_compare.json
T
2026-03-24 11:09:48 +05:30

1162 lines
30 KiB
JSON

{
"schema_version": 1,
"command": "python benchmarks/bench_derivatives_compare.py --sizes 1000 10000 --accuracy-size 512 --json benchmarks/artifacts/latest/benchmark_derivatives_compare.json",
"n_warmup": 1,
"n_runs": 7,
"accuracy_size": 512,
"sizes": [
1000,
10000
],
"metadata": {
"suite": "benchmark_derivatives_compare",
"runtime": {
"generated_at_utc": "2026-03-24T05:39:25.642936+00:00",
"python_version": "3.13.5",
"python_implementation": "CPython",
"python_executable": "/Users/pratikbhadane/Work/Projects/ferro-ta/.venv/bin/python3",
"platform": "macOS-26.3.1-arm64-arm-64bit-Mach-O",
"system": "Darwin",
"release": "25.3.0",
"machine": "arm64",
"processor": "arm",
"cpu_model": "Apple M3 Max",
"cpu_count_logical": 14,
"total_memory_bytes": 38654705664
},
"git": {
"commit": "0382c4e3024c96809ffd89dd76d820efcd56479d",
"dirty": true,
"branch": "main"
},
"build": {
"rustc": "rustc 1.91.1 (ed61e7d7e 2025-11-07) (Homebrew)\nbinary: rustc\ncommit-hash: ed61e7d7e242494fb7057f2657300d9e77bb4fcb\ncommit-date: 2025-11-07\nhost: aarch64-apple-darwin\nrelease: 1.91.1\nLLVM version: 21.1.5",
"cargo": "cargo 1.91.1 (Homebrew)",
"cargo_release_profile": {
"lto": true,
"codegen-units": 1
},
"rustflags": null,
"cargo_build_rustflags": null,
"maturin_flags": null
},
"packages": {
"numpy": "2.2.6",
"ferro-ta": "1.0.3",
"py_vollib": null
},
"dataset": {
"generator": "synthetic_option_chain",
"speed_sizes": [
1000,
10000
],
"accuracy_size": 512,
"dtype": "float64",
"array_layout": "C-contiguous",
"seed": 42,
"ranges": {
"spot": [
80.0,
120.0
],
"strike": [
70.0,
130.0
],
"rate": [
0.0,
0.07
],
"carry": [
0.0,
0.03
],
"time_to_expiry_years": [
0.019178082191780823,
2.0
],
"volatility": [
0.08,
0.65
]
}
},
"methodology": {
"warmup_runs": 1,
"measured_runs": 7,
"reported_metric": "median_ms",
"speed_metric": "contracts_per_second",
"accuracy_reference": "Scalar analytical Black-Scholes-Merton and Black-76 formulas using math.erf; IV accuracy is measured as repriced error from the recovered volatility because direct volatility differences can be unstable on low-vega contracts.",
"input_layout_notes": "Benchmarks use contiguous float64 arrays. If your workload passes non-contiguous arrays or mixed dtypes, benchmark that path separately.",
"allocation_notes": "python_peak_allocation_bytes is a tracemalloc snapshot of Python-tracked allocations only; it does not measure native RSS.",
"provider_notes": "reference_python_loop and py_vollib are scalar baselines and are size-capped in the speed table to keep runtime reasonable."
},
"providers": [
{
"name": "ferro_ta",
"kind": "project",
"note": "Rust-backed vectorized implementation.",
"max_speed_size": null,
"supported_cases": [
"bsm_call_price",
"bsm_call_iv",
"bsm_call_greeks",
"black76_call_price"
]
},
{
"name": "reference_numpy",
"kind": "reference",
"note": "Pure NumPy analytical formulas with vectorized IV bisection.",
"max_speed_size": null,
"supported_cases": [
"bsm_call_price",
"bsm_call_iv",
"bsm_call_greeks",
"black76_call_price"
]
},
{
"name": "reference_python_loop",
"kind": "reference",
"note": "Scalar math-loop analytical baseline; useful for accuracy sanity checks.",
"max_speed_size": 1000,
"supported_cases": [
"bsm_call_price",
"bsm_call_iv",
"bsm_call_greeks",
"black76_call_price"
]
}
]
},
"accuracy": {
"summary": [
{
"case": "bsm_call_price",
"best_provider": "reference_python_loop",
"best_max_abs_error": 0.0,
"worst_provider": "ferro_ta",
"worst_max_abs_error": 1.6274806e-05
},
{
"case": "bsm_call_iv",
"best_provider": "reference_python_loop",
"best_max_abs_error": 1e-10,
"worst_provider": "reference_numpy",
"worst_max_abs_error": 1.6276264e-05
},
{
"case": "bsm_call_greeks",
"best_provider": "reference_python_loop",
"best_max_abs_error": 0.0,
"worst_provider": "ferro_ta",
"worst_max_abs_error": 1.7335858e-05
},
{
"case": "black76_call_price",
"best_provider": "reference_python_loop",
"best_max_abs_error": 0.0,
"worst_provider": "ferro_ta",
"worst_max_abs_error": 1.6274806e-05
}
],
"results": [
{
"case": "bsm_call_price",
"label": "BSM Call Price",
"provider": "ferro_ta",
"provider_kind": "project",
"sample_size": 512,
"accuracy_target": "expected_output",
"output_shape": [
512
],
"max_abs_error": 1.6274806e-05,
"mean_abs_error": 5.249347e-06,
"rmse": 6.48942e-06,
"max_rel_error": 0.009546518154
},
{
"case": "bsm_call_price",
"label": "BSM Call Price",
"provider": "reference_numpy",
"provider_kind": "reference",
"sample_size": 512,
"accuracy_target": "expected_output",
"output_shape": [
512
],
"max_abs_error": 1.6274806e-05,
"mean_abs_error": 5.249347e-06,
"rmse": 6.48942e-06,
"max_rel_error": 0.009546518154
},
{
"case": "bsm_call_price",
"label": "BSM Call Price",
"provider": "reference_python_loop",
"provider_kind": "reference",
"sample_size": 512,
"accuracy_target": "expected_output",
"output_shape": [
512
],
"max_abs_error": 0.0,
"mean_abs_error": 0.0,
"rmse": 0.0,
"max_rel_error": 0.0
},
{
"case": "bsm_call_iv",
"label": "BSM Call IV Recovery",
"provider": "ferro_ta",
"provider_kind": "project",
"sample_size": 512,
"accuracy_target": "reconstructed_price",
"output_shape": [
512
],
"max_abs_error": 1.6275836e-05,
"mean_abs_error": 5.249474e-06,
"rmse": 6.489527e-06,
"max_rel_error": 0.475843909884
},
{
"case": "bsm_call_iv",
"label": "BSM Call IV Recovery",
"provider": "reference_numpy",
"provider_kind": "reference",
"sample_size": 512,
"accuracy_target": "reconstructed_price",
"output_shape": [
512
],
"max_abs_error": 1.6276264e-05,
"mean_abs_error": 5.249487e-06,
"rmse": 6.489634e-06,
"max_rel_error": 0.009628987742
},
{
"case": "bsm_call_iv",
"label": "BSM Call IV Recovery",
"provider": "reference_python_loop",
"provider_kind": "reference",
"sample_size": 512,
"accuracy_target": "reconstructed_price",
"output_shape": [
512
],
"max_abs_error": 1e-10,
"mean_abs_error": 4.5e-11,
"rmse": 5.3e-11,
"max_rel_error": 0.00547208151
},
{
"case": "bsm_call_greeks",
"label": "BSM Call Greeks",
"provider": "ferro_ta",
"provider_kind": "project",
"sample_size": 512,
"accuracy_target": "expected_output",
"output_shape": [
512,
5
],
"max_abs_error": 1.7335858e-05,
"mean_abs_error": 8.64081e-07,
"rmse": 2.444399e-06,
"max_rel_error": 0.002644156321,
"component_names": [
"delta",
"gamma",
"vega",
"theta",
"rho"
]
},
{
"case": "bsm_call_greeks",
"label": "BSM Call Greeks",
"provider": "reference_numpy",
"provider_kind": "reference",
"sample_size": 512,
"accuracy_target": "expected_output",
"output_shape": [
512,
5
],
"max_abs_error": 1.7335858e-05,
"mean_abs_error": 8.64081e-07,
"rmse": 2.444399e-06,
"max_rel_error": 0.002644156321,
"component_names": [
"delta",
"gamma",
"vega",
"theta",
"rho"
]
},
{
"case": "bsm_call_greeks",
"label": "BSM Call Greeks",
"provider": "reference_python_loop",
"provider_kind": "reference",
"sample_size": 512,
"accuracy_target": "expected_output",
"output_shape": [
512,
5
],
"max_abs_error": 0.0,
"mean_abs_error": 0.0,
"rmse": 0.0,
"max_rel_error": 0.0,
"component_names": [
"delta",
"gamma",
"vega",
"theta",
"rho"
]
},
{
"case": "black76_call_price",
"label": "Black-76 Call Price",
"provider": "ferro_ta",
"provider_kind": "project",
"sample_size": 512,
"accuracy_target": "expected_output",
"output_shape": [
512
],
"max_abs_error": 1.6274806e-05,
"mean_abs_error": 5.249347e-06,
"rmse": 6.48942e-06,
"max_rel_error": 0.009546518154
},
{
"case": "black76_call_price",
"label": "Black-76 Call Price",
"provider": "reference_numpy",
"provider_kind": "reference",
"sample_size": 512,
"accuracy_target": "expected_output",
"output_shape": [
512
],
"max_abs_error": 1.6274806e-05,
"mean_abs_error": 5.249347e-06,
"rmse": 6.48942e-06,
"max_rel_error": 0.009546518154
},
{
"case": "black76_call_price",
"label": "Black-76 Call Price",
"provider": "reference_python_loop",
"provider_kind": "reference",
"sample_size": 512,
"accuracy_target": "expected_output",
"output_shape": [
512
],
"max_abs_error": 0.0,
"mean_abs_error": 0.0,
"rmse": 0.0,
"max_rel_error": 0.0
}
]
},
"speed": {
"summary": [
{
"case": "bsm_call_price",
"size": 1000,
"fastest_provider": "ferro_ta",
"fastest_median_ms": 0.0336,
"ranking": [
{
"provider": "ferro_ta",
"median_ms": 0.0336,
"contracts_per_s": 29761904.76
},
{
"provider": "reference_numpy",
"median_ms": 0.0456,
"contracts_per_s": 21929824.56
},
{
"provider": "reference_python_loop",
"median_ms": 0.8157,
"contracts_per_s": 1225940.91
}
]
},
{
"case": "bsm_call_price",
"size": 10000,
"fastest_provider": "ferro_ta",
"fastest_median_ms": 0.2752,
"ranking": [
{
"provider": "ferro_ta",
"median_ms": 0.2752,
"contracts_per_s": 36337209.3
},
{
"provider": "reference_numpy",
"median_ms": 0.3109,
"contracts_per_s": 32164683.18
}
]
},
{
"case": "bsm_call_iv",
"size": 1000,
"fastest_provider": "ferro_ta",
"fastest_median_ms": 0.4121,
"ranking": [
{
"provider": "ferro_ta",
"median_ms": 0.4121,
"contracts_per_s": 2426595.49
},
{
"provider": "reference_numpy",
"median_ms": 1.8036,
"contracts_per_s": 554446.66
},
{
"provider": "reference_python_loop",
"median_ms": 13.4274,
"contracts_per_s": 74474.58
}
]
},
{
"case": "bsm_call_iv",
"size": 10000,
"fastest_provider": "ferro_ta",
"fastest_median_ms": 4.0739,
"ranking": [
{
"provider": "ferro_ta",
"median_ms": 4.0739,
"contracts_per_s": 2454650.34
},
{
"provider": "reference_numpy",
"median_ms": 11.7949,
"contracts_per_s": 847824.06
}
]
},
{
"case": "bsm_call_greeks",
"size": 1000,
"fastest_provider": "ferro_ta",
"fastest_median_ms": 0.0497,
"ranking": [
{
"provider": "ferro_ta",
"median_ms": 0.0497,
"contracts_per_s": 20120724.35
},
{
"provider": "reference_numpy",
"median_ms": 0.0871,
"contracts_per_s": 11481056.26
},
{
"provider": "reference_python_loop",
"median_ms": 1.189,
"contracts_per_s": 841042.89
}
]
},
{
"case": "bsm_call_greeks",
"size": 10000,
"fastest_provider": "reference_numpy",
"fastest_median_ms": 0.572,
"ranking": [
{
"provider": "reference_numpy",
"median_ms": 0.572,
"contracts_per_s": 17482517.48
},
{
"provider": "ferro_ta",
"median_ms": 0.7486,
"contracts_per_s": 13358268.77
}
]
},
{
"case": "black76_call_price",
"size": 1000,
"fastest_provider": "ferro_ta",
"fastest_median_ms": 0.0254,
"ranking": [
{
"provider": "ferro_ta",
"median_ms": 0.0254,
"contracts_per_s": 39370078.74
},
{
"provider": "reference_numpy",
"median_ms": 0.0384,
"contracts_per_s": 26041666.67
},
{
"provider": "reference_python_loop",
"median_ms": 0.7358,
"contracts_per_s": 1359064.96
}
]
},
{
"case": "black76_call_price",
"size": 10000,
"fastest_provider": "ferro_ta",
"fastest_median_ms": 0.2184,
"ranking": [
{
"provider": "ferro_ta",
"median_ms": 0.2184,
"contracts_per_s": 45787545.79
},
{
"provider": "reference_numpy",
"median_ms": 0.2823,
"contracts_per_s": 35423308.54
}
]
}
],
"results": [
{
"case": "bsm_call_price",
"label": "BSM Call Price",
"size": 1000,
"provider": "ferro_ta",
"provider_kind": "project",
"median_ms": 0.0336,
"contracts_per_s": 29761904.76,
"runs_ms": [
0.0337,
0.0404,
0.0336,
0.033,
0.0332,
0.0329,
0.0361
],
"stats": {
"median_ms": 0.0336,
"mean_ms": 0.0347,
"min_ms": 0.0329,
"max_ms": 0.0404,
"stddev_ms": 0.0027,
"cv_pct": 7.901
},
"python_peak_allocation_bytes": 17861,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_price",
"label": "BSM Call Price",
"size": 1000,
"provider": "reference_numpy",
"provider_kind": "reference",
"median_ms": 0.0456,
"contracts_per_s": 21929824.56,
"runs_ms": [
0.0468,
0.0456,
0.0483,
0.045,
0.0548,
0.0452,
0.0449
],
"stats": {
"median_ms": 0.0456,
"mean_ms": 0.0472,
"min_ms": 0.0449,
"max_ms": 0.0548,
"stddev_ms": 0.0036,
"cv_pct": 7.526
},
"python_peak_allocation_bytes": 115672,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_price",
"label": "BSM Call Price",
"size": 1000,
"provider": "reference_python_loop",
"provider_kind": "reference",
"median_ms": 0.8157,
"contracts_per_s": 1225940.91,
"runs_ms": [
0.8154,
0.8078,
0.8184,
0.8265,
0.8157,
0.8155,
0.8267
],
"stats": {
"median_ms": 0.8157,
"mean_ms": 0.818,
"min_ms": 0.8078,
"max_ms": 0.8267,
"stddev_ms": 0.0067,
"cv_pct": 0.82
},
"python_peak_allocation_bytes": 39464,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_price",
"label": "BSM Call Price",
"size": 10000,
"provider": "ferro_ta",
"provider_kind": "project",
"median_ms": 0.2752,
"contracts_per_s": 36337209.3,
"runs_ms": [
0.2632,
0.2812,
0.2666,
0.2666,
0.281,
0.2752,
0.276
],
"stats": {
"median_ms": 0.2752,
"mean_ms": 0.2728,
"min_ms": 0.2632,
"max_ms": 0.2812,
"stddev_ms": 0.0073,
"cv_pct": 2.684
},
"python_peak_allocation_bytes": 17861,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_price",
"label": "BSM Call Price",
"size": 10000,
"provider": "reference_numpy",
"provider_kind": "reference",
"median_ms": 0.3109,
"contracts_per_s": 32164683.18,
"runs_ms": [
0.304,
0.315,
0.3261,
0.309,
0.3218,
0.3109,
0.3084
],
"stats": {
"median_ms": 0.3109,
"mean_ms": 0.3136,
"min_ms": 0.304,
"max_ms": 0.3261,
"stddev_ms": 0.0079,
"cv_pct": 2.515
},
"python_peak_allocation_bytes": 1132672,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_iv",
"label": "BSM Call IV Recovery",
"size": 1000,
"provider": "ferro_ta",
"provider_kind": "project",
"median_ms": 0.4121,
"contracts_per_s": 2426595.49,
"runs_ms": [
0.4309,
0.4121,
0.4068,
0.418,
0.4082,
0.4285,
0.4093
],
"stats": {
"median_ms": 0.4121,
"mean_ms": 0.4163,
"min_ms": 0.4068,
"max_ms": 0.4309,
"stddev_ms": 0.0099,
"cv_pct": 2.378
},
"python_peak_allocation_bytes": 20709,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_iv",
"label": "BSM Call IV Recovery",
"size": 1000,
"provider": "reference_numpy",
"provider_kind": "reference",
"median_ms": 1.8036,
"contracts_per_s": 554446.66,
"runs_ms": [
1.8522,
1.8036,
1.8552,
1.7976,
1.7981,
1.8119,
1.7963
],
"stats": {
"median_ms": 1.8036,
"mean_ms": 1.8164,
"min_ms": 1.7963,
"max_ms": 1.8552,
"stddev_ms": 0.026,
"cv_pct": 1.434
},
"python_peak_allocation_bytes": 149448,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_iv",
"label": "BSM Call IV Recovery",
"size": 1000,
"provider": "reference_python_loop",
"provider_kind": "reference",
"median_ms": 13.4274,
"contracts_per_s": 74474.58,
"runs_ms": [
13.4787,
13.4274,
13.4138,
13.4148,
13.4643,
13.6664,
13.3763
],
"stats": {
"median_ms": 13.4274,
"mean_ms": 13.4631,
"min_ms": 13.3763,
"max_ms": 13.6664,
"stddev_ms": 0.0959,
"cv_pct": 0.712
},
"python_peak_allocation_bytes": 39584,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_iv",
"label": "BSM Call IV Recovery",
"size": 10000,
"provider": "ferro_ta",
"provider_kind": "project",
"median_ms": 4.0739,
"contracts_per_s": 2454650.34,
"runs_ms": [
4.0739,
4.0792,
3.9101,
4.0077,
4.2279,
4.076,
3.9563
],
"stats": {
"median_ms": 4.0739,
"mean_ms": 4.0473,
"min_ms": 3.9101,
"max_ms": 4.2279,
"stddev_ms": 0.1032,
"cv_pct": 2.549
},
"python_peak_allocation_bytes": 82830,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_iv",
"label": "BSM Call IV Recovery",
"size": 10000,
"provider": "reference_numpy",
"provider_kind": "reference",
"median_ms": 11.7949,
"contracts_per_s": 847824.06,
"runs_ms": [
11.713,
11.7014,
11.8743,
11.7949,
11.4815,
11.8635,
11.8188
],
"stats": {
"median_ms": 11.7949,
"mean_ms": 11.7496,
"min_ms": 11.4815,
"max_ms": 11.8743,
"stddev_ms": 0.1359,
"cv_pct": 1.157
},
"python_peak_allocation_bytes": 1463448,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_greeks",
"label": "BSM Call Greeks",
"size": 1000,
"provider": "ferro_ta",
"provider_kind": "project",
"median_ms": 0.0497,
"contracts_per_s": 20120724.35,
"runs_ms": [
0.0558,
0.0497,
0.0486,
0.0503,
0.051,
0.0494,
0.0486
],
"stats": {
"median_ms": 0.0497,
"mean_ms": 0.0505,
"min_ms": 0.0486,
"max_ms": 0.0558,
"stddev_ms": 0.0025,
"cv_pct": 4.902
},
"python_peak_allocation_bytes": 41928,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_greeks",
"label": "BSM Call Greeks",
"size": 1000,
"provider": "reference_numpy",
"provider_kind": "reference",
"median_ms": 0.0871,
"contracts_per_s": 11481056.26,
"runs_ms": [
0.0883,
0.0871,
0.0876,
0.0871,
0.0868,
0.0864,
0.1533
],
"stats": {
"median_ms": 0.0871,
"mean_ms": 0.0967,
"min_ms": 0.0864,
"max_ms": 0.1533,
"stddev_ms": 0.025,
"cv_pct": 25.847
},
"python_peak_allocation_bytes": 138128,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_greeks",
"label": "BSM Call Greeks",
"size": 1000,
"provider": "reference_python_loop",
"provider_kind": "reference",
"median_ms": 1.189,
"contracts_per_s": 841042.89,
"runs_ms": [
1.243,
1.3353,
1.189,
1.1827,
1.1821,
1.1827,
1.2165
],
"stats": {
"median_ms": 1.189,
"mean_ms": 1.2188,
"min_ms": 1.1821,
"max_ms": 1.3353,
"stddev_ms": 0.0563,
"cv_pct": 4.619
},
"python_peak_allocation_bytes": 199408,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_greeks",
"label": "BSM Call Greeks",
"size": 10000,
"provider": "ferro_ta",
"provider_kind": "project",
"median_ms": 0.7486,
"contracts_per_s": 13358268.77,
"runs_ms": [
0.7306,
0.7328,
0.7688,
0.732,
0.7792,
0.7486,
0.8081
],
"stats": {
"median_ms": 0.7486,
"mean_ms": 0.7572,
"min_ms": 0.7306,
"max_ms": 0.8081,
"stddev_ms": 0.0295,
"cv_pct": 3.897
},
"python_peak_allocation_bytes": 401848,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "bsm_call_greeks",
"label": "BSM Call Greeks",
"size": 10000,
"provider": "reference_numpy",
"provider_kind": "reference",
"median_ms": 0.572,
"contracts_per_s": 17482517.48,
"runs_ms": [
0.6104,
0.5705,
0.5715,
0.5817,
0.572,
0.5747,
0.5708
],
"stats": {
"median_ms": 0.572,
"mean_ms": 0.5788,
"min_ms": 0.5705,
"max_ms": 0.6104,
"stddev_ms": 0.0145,
"cv_pct": 2.499
},
"python_peak_allocation_bytes": 1362128,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "black76_call_price",
"label": "Black-76 Call Price",
"size": 1000,
"provider": "ferro_ta",
"provider_kind": "project",
"median_ms": 0.0254,
"contracts_per_s": 39370078.74,
"runs_ms": [
0.0286,
0.0263,
0.0258,
0.0254,
0.0253,
0.0253,
0.0254
],
"stats": {
"median_ms": 0.0254,
"mean_ms": 0.026,
"min_ms": 0.0253,
"max_ms": 0.0286,
"stddev_ms": 0.0012,
"cv_pct": 4.639
},
"python_peak_allocation_bytes": 14717,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "black76_call_price",
"label": "Black-76 Call Price",
"size": 1000,
"provider": "reference_numpy",
"provider_kind": "reference",
"median_ms": 0.0384,
"contracts_per_s": 26041666.67,
"runs_ms": [
0.0395,
0.0385,
0.0387,
0.0383,
0.0384,
0.0382,
0.0383
],
"stats": {
"median_ms": 0.0384,
"mean_ms": 0.0385,
"min_ms": 0.0382,
"max_ms": 0.0395,
"stddev_ms": 0.0005,
"cv_pct": 1.22
},
"python_peak_allocation_bytes": 99448,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "black76_call_price",
"label": "Black-76 Call Price",
"size": 1000,
"provider": "reference_python_loop",
"provider_kind": "reference",
"median_ms": 0.7358,
"contracts_per_s": 1359064.96,
"runs_ms": [
0.7271,
0.7251,
0.845,
0.7809,
0.7345,
0.7358,
0.7418
],
"stats": {
"median_ms": 0.7358,
"mean_ms": 0.7558,
"min_ms": 0.7251,
"max_ms": 0.845,
"stddev_ms": 0.0436,
"cv_pct": 5.769
},
"python_peak_allocation_bytes": 39416,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "black76_call_price",
"label": "Black-76 Call Price",
"size": 10000,
"provider": "ferro_ta",
"provider_kind": "project",
"median_ms": 0.2184,
"contracts_per_s": 45787545.79,
"runs_ms": [
0.2286,
0.2183,
0.219,
0.2184,
0.2223,
0.218,
0.2176
],
"stats": {
"median_ms": 0.2184,
"mean_ms": 0.2203,
"min_ms": 0.2176,
"max_ms": 0.2286,
"stddev_ms": 0.004,
"cv_pct": 1.8
},
"python_peak_allocation_bytes": 14717,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
},
{
"case": "black76_call_price",
"label": "Black-76 Call Price",
"size": 10000,
"provider": "reference_numpy",
"provider_kind": "reference",
"median_ms": 0.2823,
"contracts_per_s": 35423308.54,
"runs_ms": [
0.2823,
0.276,
0.275,
0.3064,
0.3196,
0.2835,
0.2734
],
"stats": {
"median_ms": 0.2823,
"mean_ms": 0.288,
"min_ms": 0.2734,
"max_ms": 0.3196,
"stddev_ms": 0.0179,
"cv_pct": 6.201
},
"python_peak_allocation_bytes": 972448,
"input_layout": {
"dtype": "float64",
"contiguous": true
}
}
]
}
}