Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,16 +172,16 @@ Choose the smallest prelude that matches the task:

| Task | Import |
|---|---|
| Construct/configure a Delaunay triangulation | `use delaunay::prelude::triangulation::construction::*` |
| Construct/configure a Delaunay triangulation | `use delaunay::prelude::construction::*` |
| Read-only traversal, adjacency, convex hulls, and comparison helpers | `use delaunay::prelude::query::*` |
| Points, kernels, predicates, and geometric measures | `use delaunay::prelude::geometry::*` |
| Random points or triangulations for examples, tests, and benchmarks | `use delaunay::prelude::generators::*` |
| Low-level incremental insertion building blocks | `use delaunay::prelude::triangulation::insertion::*` |
| Bistellar flips / Edit API | `use delaunay::prelude::triangulation::flips::*` |
| Delaunay repair diagnostics and policies | `use delaunay::prelude::triangulation::repair::*` |
| Delaunayize workflow | `use delaunay::prelude::triangulation::delaunayize::*` |
| Construction telemetry diagnostics | `use delaunay::prelude::triangulation::diagnostics::*` |
| Construction validation cadence/policy | `use delaunay::prelude::triangulation::validation::*` |
| Low-level incremental insertion building blocks | `use delaunay::prelude::insertion::*` |
| Bistellar flips / Edit API | `use delaunay::prelude::flips::*` |
| Delaunay repair diagnostics and policies | `use delaunay::prelude::repair::*` |
| Delaunayize workflow | `use delaunay::prelude::delaunayize::*` |
| Construction telemetry diagnostics | `use delaunay::prelude::diagnostics::*` |
| Construction validation cadence/policy | `use delaunay::prelude::validation::*` |
| Hilbert ordering and quantization utilities | `use delaunay::prelude::ordering::*` |
| Low-level TDS simplices, facets, keys, and validation reports | `use delaunay::prelude::tds::*` |
| Collection aliases and small buffers | `use delaunay::prelude::collections::*` |
Expand All @@ -190,7 +190,7 @@ Choose the smallest prelude that matches the task:

`use delaunay::prelude::*` remains available for quick experiments, but examples
and benchmarks in this repository prefer focused preludes so imports document
intent. The broad `delaunay::prelude::triangulation::*` import is retained for
intent. The broad `delaunay::prelude::*` import is retained for
compatibility, but new docs and tests should prefer the narrow workflow preludes
above.

Expand All @@ -203,7 +203,7 @@ preludes. Contributors should follow the namespace policy in
[CONTRIBUTING.md](CONTRIBUTING.md) and [docs/code_organization.md](docs/code_organization.md).

```rust
use delaunay::prelude::triangulation::construction::{
use delaunay::prelude::construction::{
DelaunayTriangulationBuilder, DelaunayTriangulationConstructionError, vertex,
};

Expand Down Expand Up @@ -235,7 +235,7 @@ fn main() -> Result<(), DelaunayTriangulationConstructionError> {
For periodic boundary conditions, use `DelaunayTriangulationBuilder`:

```rust
use delaunay::prelude::triangulation::construction::{
use delaunay::prelude::construction::{
DelaunayTriangulationBuilder, DelaunayTriangulationConstructionError, TopologyKind, vertex,
};

Expand Down Expand Up @@ -313,11 +313,11 @@ regression testing:
`ValidationPolicy`

```rust
use delaunay::prelude::triangulation::construction::{
use delaunay::prelude::construction::{
ConstructionOptions, DedupPolicy, DelaunayTriangulationBuilder, InsertionOrderStrategy,
RetryPolicy, TopologyGuarantee, vertex,
};
use delaunay::prelude::triangulation::validation::ValidationPolicy;
use delaunay::prelude::validation::ValidationPolicy;

let vertices = vec![
vertex!([0.0, 0.0]),
Expand Down Expand Up @@ -356,7 +356,7 @@ For reproducible checks in CI/local runs, use `just check`, `just test`,
- **Large 4D+ batches:** thousands of 4D points can be expensive to
investigate. Use release mode and the large-scale debug harness for
characterization.
- **3D scale:** the default `just debug-large-scale-3d` helper uses 8,000
- **3D scale:** the default `just debug-large-scale-3d` helper uses 7,500
vertices for the near-one-minute acceptance path. The 10,000-vertex run has
also passed full Levels 1–4 validation as a heavier characterization probe;
use `just debug-large-scale-3d 10000 1` for local numbers.
Expand Down Expand Up @@ -549,4 +549,4 @@ Portions of this library were developed with the assistance of these AI tools:
[PL-manifold]: https://en.wikipedia.org/wiki/Piecewise_linear_manifold
[Delaunay repair]: https://link.springer.com/article/10.1007/BF01975867
[Pachner moves]: https://en.wikipedia.org/wiki/Pachner_move
[`DelaunayTriangulationBuilder`]: https://docs.rs/delaunay/latest/delaunay/triangulation/builder/struct.DelaunayTriangulationBuilder.html
[`DelaunayTriangulationBuilder`]: https://docs.rs/delaunay/latest/delaunay/builder/struct.DelaunayTriangulationBuilder.html
124 changes: 62 additions & 62 deletions benches/PERFORMANCE_RESULTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
This file contains performance benchmarks and analysis for the delaunay library.
The results are automatically generated and updated by the benchmark infrastructure.

- **Last Updated**: 2026-05-15 16:51:13 UTC
- **Last Updated**: 2026-05-19 09:26:07 UTC
- **Generated By**: benchmark_utils.py
- **Git Commit**: 77ba50b23c6f22fbeaa6acf240bb144bbb1458f7
- **Git Commit**: d89961cfdc4af5c354c78f4e5fe008f1f273c6e2
- **Hardware**: Apple M4 Max (16 cores)
- **Memory**: 64.0 GB
- **OS**: macOS
Expand All @@ -15,37 +15,37 @@ The results are automatically generated and updated by the benchmark infrastruct

### Current Criterion Run Information

- **Date: 2026-05-15 16:48:12 UTC**
- **Git commit: 77ba50b23c6f22fbeaa6acf240bb144bbb1458f7**
- **Date: 2026-05-19 09:22:58 UTC**
- **Git commit: d89961cfdc4af5c354c78f4e5fe008f1f273c6e2**
- **Source: current `target/criterion` construction results**

### 2D Triangulation Performance

| Benchmark ID | Vertices | Time (mean) | Throughput (mean) | Simplices Generated |
|--------------|--------|-------------|-------------------|---------------------|
| `tds_new_2d/tds_new/4000` | 4000 | 1072.154 ms | 3.731 Kelem/s | 7,974 |
| `tds_new_2d/tds_new_adversarial/4000` | 4000 | 1219.215 ms | 3.281 Kelem/s | 7,971 |
| `tds_new_2d/tds_new/4000` | 4000 | 1279.206 ms | 3.127 Kelem/s | 7,974 |
| `tds_new_2d/tds_new_adversarial/4000` | 4000 | 1435.454 ms | 2.787 Kelem/s | 7,971 |

### 3D Triangulation Performance

| Benchmark ID | Vertices | Time (mean) | Throughput (mean) | Simplices Generated |
|--------------|--------|-------------|-------------------|---------------------|
| `tds_new_3d/tds_new/750` | 750 | 800.463 ms | 0.937 Kelem/s | 4,663 |
| `tds_new_3d/tds_new_adversarial/750` | 750 | 1055.603 ms | 0.710 Kelem/s | 4,726 |
| `tds_new_3d/tds_new/750` | 750 | 827.636 ms | 0.906 Kelem/s | 4,663 |
| `tds_new_3d/tds_new_adversarial/750` | 750 | 1075.251 ms | 0.698 Kelem/s | 4,726 |

### 4D Triangulation Performance

| Benchmark ID | Vertices | Time (mean) | Throughput (mean) | Simplices Generated |
|--------------|--------|-------------|-------------------|---------------------|
| `tds_new_4d/tds_new/75` | 75 | 860.178 ms | 0.087 Kelem/s | 1,105 |
| `tds_new_4d/tds_new_adversarial/75` | 75 | 921.821 ms | 0.081 Kelem/s | 1,129 |
| `tds_new_4d/tds_new/75` | 75 | 866.594 ms | 0.087 Kelem/s | 1,105 |
| `tds_new_4d/tds_new_adversarial/75` | 75 | 931.844 ms | 0.080 Kelem/s | 1,129 |

### 5D Triangulation Performance

| Benchmark ID | Vertices | Time (mean) | Throughput (mean) | Simplices Generated |
|--------------|--------|-------------|-------------------|---------------------|
| `tds_new_5d/tds_new/25` | 25 | 975.732 ms | 0.026 Kelem/s | 421 |
| `tds_new_5d/tds_new_adversarial/25` | 25 | 852.341 ms | 0.029 Kelem/s | 410 |
| `tds_new_5d/tds_new/25` | 25 | 973.647 ms | 0.026 Kelem/s | 421 |
| `tds_new_5d/tds_new_adversarial/25` | 25 | 861.965 ms | 0.029 Kelem/s | 410 |

## Performance Results Summary

Expand All @@ -61,14 +61,14 @@ Public API: `DelaunayTriangulation::new_with_options`

| Benchmark ID | Dimension | Input | Variant | Mean | 95% CI |
|--------------|-----------|-------|---------|------|--------|
| `tds_new_2d/tds_new/4000` | 2D | 4000 | well-conditioned | 1.072 s | 1.061 s - 1.092 s |
| `tds_new_2d/tds_new_adversarial/4000` | 2D | 4000 | adversarial | 1.219 s | 1.217 s - 1.222 s |
| `tds_new_3d/tds_new/750` | 3D | 750 | well-conditioned | 800.463 ms | 798.489 ms - 802.509 ms |
| `tds_new_3d/tds_new_adversarial/750` | 3D | 750 | adversarial | 1.056 s | 1.050 s - 1.061 s |
| `tds_new_4d/tds_new/75` | 4D | 75 | well-conditioned | 860.178 ms | 856.895 ms - 864.630 ms |
| `tds_new_4d/tds_new_adversarial/75` | 4D | 75 | adversarial | 921.821 ms | 918.663 ms - 925.314 ms |
| `tds_new_5d/tds_new/25` | 5D | 25 | well-conditioned | 975.732 ms | 969.279 ms - 982.384 ms |
| `tds_new_5d/tds_new_adversarial/25` | 5D | 25 | adversarial | 852.341 ms | 848.499 ms - 857.275 ms |
| `tds_new_2d/tds_new/4000` | 2D | 4000 | well-conditioned | 1.279 s | 1.243 s - 1.299 s |
| `tds_new_2d/tds_new_adversarial/4000` | 2D | 4000 | adversarial | 1.435 s | 1.398 s - 1.455 s |
| `tds_new_3d/tds_new/750` | 3D | 750 | well-conditioned | 827.636 ms | 826.885 ms - 828.336 ms |
| `tds_new_3d/tds_new_adversarial/750` | 3D | 750 | adversarial | 1.075 s | 1.073 s - 1.078 s |
| `tds_new_4d/tds_new/75` | 4D | 75 | well-conditioned | 866.594 ms | 863.077 ms - 871.017 ms |
| `tds_new_4d/tds_new_adversarial/75` | 4D | 75 | adversarial | 931.844 ms | 928.914 ms - 935.309 ms |
| `tds_new_5d/tds_new/25` | 5D | 25 | well-conditioned | 973.647 ms | 966.970 ms - 981.374 ms |
| `tds_new_5d/tds_new_adversarial/25` | 5D | 25 | adversarial | 861.965 ms | 859.260 ms - 864.511 ms |

#### Boundary facets

Expand All @@ -77,66 +77,66 @@ Public API: `DelaunayTriangulation::boundary_facets`
| Benchmark ID | Dimension | Input | Variant | Mean | 95% CI |
|--------------|-----------|-------|---------|------|--------|
| `boundary_facets/boundary_facets_2d/4000` | 2D | 4000 | well-conditioned | 1.694 ms | 1.690 ms - 1.698 ms |
| `boundary_facets/boundary_facets_2d_adversarial/4000` | 2D | 4000 | adversarial | 1.687 ms | 1.684 ms - 1.690 ms |
| `boundary_facets/boundary_facets_3d/750` | 3D | 750 | well-conditioned | 1.478 ms | 1.473 ms - 1.483 ms |
| `boundary_facets/boundary_facets_3d_adversarial/750` | 3D | 750 | adversarial | 1.501 ms | 1.497 ms - 1.505 ms |
| `boundary_facets/boundary_facets_4d/75` | 4D | 75 | well-conditioned | 492.4 µs | 488.9 µs - 495.9 µs |
| `boundary_facets/boundary_facets_4d_adversarial/75` | 4D | 75 | adversarial | 508.3 µs | 503.6 µs - 513.0 µs |
| `boundary_facets/boundary_facets_5d/25` | 5D | 25 | well-conditioned | 239.1 µs | 236.8 µs - 241.3 µs |
| `boundary_facets/boundary_facets_5d_adversarial/25` | 5D | 25 | adversarial | 231.4 µs | 229.3 µs - 233.3 µs |
| `boundary_facets/boundary_facets_2d_adversarial/4000` | 2D | 4000 | adversarial | 1.687 ms | 1.685 ms - 1.690 ms |
| `boundary_facets/boundary_facets_3d/750` | 3D | 750 | well-conditioned | 1.489 ms | 1.484 ms - 1.494 ms |
| `boundary_facets/boundary_facets_3d_adversarial/750` | 3D | 750 | adversarial | 1.514 ms | 1.510 ms - 1.518 ms |
| `boundary_facets/boundary_facets_4d/75` | 4D | 75 | well-conditioned | 488.1 µs | 485.3 µs - 490.9 µs |
| `boundary_facets/boundary_facets_4d_adversarial/75` | 4D | 75 | adversarial | 500.4 µs | 497.2 µs - 503.6 µs |
| `boundary_facets/boundary_facets_5d/25` | 5D | 25 | well-conditioned | 235.9 µs | 233.9 µs - 237.9 µs |
| `boundary_facets/boundary_facets_5d_adversarial/25` | 5D | 25 | adversarial | 225.2 µs | 223.7 µs - 226.8 µs |

#### Convex hull

Public API: `ConvexHull::from_triangulation`

| Benchmark ID | Dimension | Input | Variant | Mean | 95% CI |
|--------------|-----------|-------|---------|------|--------|
| `convex_hull/from_triangulation_2d/4000` | 2D | 4000 | well-conditioned | 1.694 ms | 1.688 ms - 1.700 ms |
| `convex_hull/from_triangulation_2d_adversarial/4000` | 2D | 4000 | adversarial | 1.697 ms | 1.692 ms - 1.701 ms |
| `convex_hull/from_triangulation_3d/750` | 3D | 750 | well-conditioned | 1.486 ms | 1.480 ms - 1.493 ms |
| `convex_hull/from_triangulation_3d_adversarial/750` | 3D | 750 | adversarial | 1.499 ms | 1.493 ms - 1.506 ms |
| `convex_hull/from_triangulation_4d/75` | 4D | 75 | well-conditioned | 500.8 µs | 497.4 µs - 504.0 µs |
| `convex_hull/from_triangulation_4d_adversarial/75` | 4D | 75 | adversarial | 515.3 µs | 511.3 µs - 518.9 µs |
| `convex_hull/from_triangulation_5d/25` | 5D | 25 | well-conditioned | 244.7 µs | 242.5 µs - 246.7 µs |
| `convex_hull/from_triangulation_5d_adversarial/25` | 5D | 25 | adversarial | 236.3 µs | 234.9 µs - 237.8 µs |
| `convex_hull/from_triangulation_2d/4000` | 2D | 4000 | well-conditioned | 1.695 ms | 1.693 ms - 1.698 ms |
| `convex_hull/from_triangulation_2d_adversarial/4000` | 2D | 4000 | adversarial | 1.690 ms | 1.687 ms - 1.693 ms |
| `convex_hull/from_triangulation_3d/750` | 3D | 750 | well-conditioned | 1.481 ms | 1.477 ms - 1.484 ms |
| `convex_hull/from_triangulation_3d_adversarial/750` | 3D | 750 | adversarial | 1.514 ms | 1.510 ms - 1.518 ms |
| `convex_hull/from_triangulation_4d/75` | 4D | 75 | well-conditioned | 492.3 µs | 489.6 µs - 495.3 µs |
| `convex_hull/from_triangulation_4d_adversarial/75` | 4D | 75 | adversarial | 504.7 µs | 501.6 µs - 508.1 µs |
| `convex_hull/from_triangulation_5d/25` | 5D | 25 | well-conditioned | 238.9 µs | 237.1 µs - 240.6 µs |
| `convex_hull/from_triangulation_5d_adversarial/25` | 5D | 25 | adversarial | 227.0 µs | 224.8 µs - 229.0 µs |

#### Validation

Public API: `DelaunayTriangulation::validate`

| Benchmark ID | Dimension | Input | Variant | Mean | 95% CI |
|--------------|-----------|-------|---------|------|--------|
| `validation/validate_3d/750` | 3D | 750 | well-conditioned | 30.464 ms | 30.371 ms - 30.580 ms |
| `validation/validate_3d_adversarial/750` | 3D | 750 | adversarial | 40.098 ms | 40.018 ms - 40.179 ms |
| `validation/validate_4d/75` | 4D | 75 | well-conditioned | 67.646 ms | 67.481 ms - 67.810 ms |
| `validation/validate_4d_adversarial/75` | 4D | 75 | adversarial | 64.655 ms | 64.296 ms - 65.034 ms |
| `validation/validate_5d/25` | 5D | 25 | well-conditioned | 59.504 ms | 59.382 ms - 59.628 ms |
| `validation/validate_5d_adversarial/25` | 5D | 25 | adversarial | 55.897 ms | 55.699 ms - 56.101 ms |
| `validation/validate_3d/750` | 3D | 750 | well-conditioned | 30.343 ms | 30.097 ms - 30.680 ms |
| `validation/validate_3d_adversarial/750` | 3D | 750 | adversarial | 39.846 ms | 39.812 ms - 39.881 ms |
| `validation/validate_4d/75` | 4D | 75 | well-conditioned | 68.025 ms | 67.575 ms - 68.469 ms |
| `validation/validate_4d_adversarial/75` | 4D | 75 | adversarial | 64.382 ms | 64.151 ms - 64.702 ms |
| `validation/validate_5d/25` | 5D | 25 | well-conditioned | 60.577 ms | 60.316 ms - 60.814 ms |
| `validation/validate_5d_adversarial/25` | 5D | 25 | adversarial | 56.456 ms | 55.948 ms - 56.965 ms |

#### Incremental insert

Public API: `DelaunayTriangulation::insert`

| Benchmark ID | Dimension | Input | Variant | Mean | 95% CI |
|--------------|-----------|-------|---------|------|--------|
| `incremental_insert/insert_2d/10` | 2D | 10 | well-conditioned | 3.980 ms | 3.970 ms - 3.992 ms |
| `incremental_insert/insert_2d_adversarial/10` | 2D | 10 | adversarial | 6.396 ms | 6.377 ms - 6.414 ms |
| `incremental_insert/insert_3d/10` | 3D | 10 | well-conditioned | 5.497 ms | 5.470 ms - 5.537 ms |
| `incremental_insert/insert_3d_adversarial/10` | 3D | 10 | adversarial | 43.856 ms | 43.609 ms - 44.148 ms |
| `incremental_insert/insert_4d/6` | 4D | 6 | well-conditioned | 43.683 ms | 43.534 ms - 43.851 ms |
| `incremental_insert/insert_4d_adversarial/6` | 4D | 6 | adversarial | 140.643 ms | 140.325 ms - 140.943 ms |
| `incremental_insert/insert_5d/4` | 5D | 4 | well-conditioned | 593.467 ms | 591.065 ms - 596.128 ms |
| `incremental_insert/insert_5d_adversarial/4` | 5D | 4 | adversarial | 590.916 ms | 588.682 ms - 593.367 ms |
| `incremental_insert/insert_2d/10` | 2D | 10 | well-conditioned | 4.431 ms | 4.428 ms - 4.434 ms |
| `incremental_insert/insert_2d_adversarial/10` | 2D | 10 | adversarial | 6.829 ms | 6.816 ms - 6.844 ms |
| `incremental_insert/insert_3d/10` | 3D | 10 | well-conditioned | 5.761 ms | 5.741 ms - 5.781 ms |
| `incremental_insert/insert_3d_adversarial/10` | 3D | 10 | adversarial | 44.384 ms | 44.169 ms - 44.633 ms |
| `incremental_insert/insert_4d/6` | 4D | 6 | well-conditioned | 44.740 ms | 44.643 ms - 44.853 ms |
| `incremental_insert/insert_4d_adversarial/6` | 4D | 6 | adversarial | 142.597 ms | 141.929 ms - 143.245 ms |
| `incremental_insert/insert_5d/4` | 5D | 4 | well-conditioned | 596.594 ms | 594.594 ms - 599.018 ms |
| `incremental_insert/insert_5d_adversarial/4` | 5D | 4 | adversarial | 597.858 ms | 594.503 ms - 601.820 ms |

#### Bistellar flips

Public API: `BistellarFlips`

| Benchmark ID | Dimension | Input | Variant | Mean | 95% CI |
|--------------|-----------|-------|---------|------|--------|
| `bistellar_flips_4d/k1_roundtrip` | 4D | roundtrip | well-conditioned | 176.6 µs | 176.4 µs - 177.0 µs |
| `bistellar_flips_4d/k2_roundtrip` | 4D | roundtrip | well-conditioned | 185.4 µs | 185.0 µs - 185.8 µs |
| `bistellar_flips_4d/k3_roundtrip` | 4D | roundtrip | well-conditioned | 185.3 µs | 185.1 µs - 185.7 µs |
| `bistellar_flips_4d/k1_roundtrip` | 4D | roundtrip | well-conditioned | 179.4 µs | 178.2 µs - 180.4 µs |
| `bistellar_flips_4d/k2_roundtrip` | 4D | roundtrip | well-conditioned | 175.9 µs | 175.4 µs - 176.3 µs |
| `bistellar_flips_4d/k3_roundtrip` | 4D | roundtrip | well-conditioned | 176.9 µs | 176.5 µs - 177.2 µs |

### Circumsphere Predicate Performance

Expand All @@ -150,32 +150,32 @@ insphere query performance independently from full triangulation workflows.
| Test Case | insphere | insphere_distance | insphere_lifted | Winner |
|-----------|----------|------------------|-----------------|---------|
| Basic 2D | 17 ns | 23 ns | 8 ns | **insphere_lifted** |
| Boundary vertex | 1 ns | 24 ns | 194 ns | **insphere** |
| Far vertex | 17 ns | 24 ns | 8 ns | **insphere_lifted** |
| Boundary vertex | 1 ns | 25 ns | 210 ns | **insphere** |
| Far vertex | 17 ns | 25 ns | 8 ns | **insphere_lifted** |

#### Single Query Performance (3D)

| Test Case | insphere | insphere_distance | insphere_lifted | Winner |
|-----------|----------|------------------|-----------------|---------|
| Basic 3D | 2.1 µs | 26 ns | 18 ns | **insphere_lifted** |
| Boundary vertex | 1 ns | 26 ns | 441 ns | **insphere** |
| Basic 3D | 2.2 µs | 26 ns | 18 ns | **insphere_lifted** |
| Boundary vertex | 1 ns | 26 ns | 430 ns | **insphere** |
| Far vertex | 2.1 µs | 26 ns | 18 ns | **insphere_lifted** |

#### Single Query Performance (4D)

| Test Case | insphere | insphere_distance | insphere_lifted | Winner |
|-----------|----------|------------------|-----------------|---------|
| Basic 4D | 5.2 µs | 54 ns | 2.9 µs | **insphere_distance** |
| Boundary vertex | 2 ns | 54 ns | 1.4 µs | **insphere** |
| Far vertex | 3.3 µs | 55 ns | 1.8 µs | **insphere_distance** |
| Basic 4D | 5.3 µs | 54 ns | 2.9 µs | **insphere_distance** |
| Boundary vertex | 2 ns | 55 ns | 1.4 µs | **insphere** |
| Far vertex | 3.4 µs | 54 ns | 1.8 µs | **insphere_distance** |

#### Single Query Performance (5D)

| Test Case | insphere | insphere_distance | insphere_lifted | Winner |
|-----------|----------|------------------|-----------------|---------|
| Basic 5D | 8.4 µs | 81 ns | 4.8 µs | **insphere_distance** |
| Boundary vertex | 2 ns | 82 ns | 2.3 µs | **insphere** |
| Far vertex | 5.1 µs | 82 ns | 2.9 µs | **insphere_distance** |
| Basic 5D | 8.2 µs | 82 ns | 4.8 µs | **insphere_distance** |
| Boundary vertex | 2 ns | 81 ns | 2.3 µs | **insphere** |
| Far vertex | 5.1 µs | 81 ns | 2.9 µs | **insphere_distance** |

## Implementation Notes

Expand Down
2 changes: 1 addition & 1 deletion benches/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ dimension:
| Dimension | Default vertices | Generated Simplices | Total wall time |
|-----------|------------------|---------------------|-----------------|
| 2D | 36,000 | 71,887 | ~48.1 s |
| 3D | 8,000 | 52,308 | ~51.9 s |
| 3D | 7,500 | Recomputed by harness | Near one minute |
| 4D | 900 | 21,620 | ~57.4 s |
| 5D | 140 | 8,296 | ~51.8 s |

Expand Down
Loading
Loading