weighted.grip.nd() is an opt-in weighted GRIP layout backend
for embeddings in dimensions dim >= 2. It is implemented beside the
legacy 2D/3D GRIP code path so that existing weighted-GRIP entry points and
their dimensionality checks are unchanged.
weighted.grip.nd(
edges = NULL,
n = NULL,
adj_list = NULL,
weight_list = NULL,
edge_weights = NULL,
dim = 3,
preset = NULL,
placement = c("barycenter", "circle"),
rounds = 160,
final_rounds = 256,
num_init = NULL,
num_nbrs = 24,
r = 0.03,
s = 6,
repulsion_factor = 1.5,
tinit_factor = 2,
final_move_scale_after_first = 1,
final_mode = c("fr", "kk_repulse"),
metric_neighbor_cap = NULL,
insertion_anchor_count = 3,
insertion_anchor_scope = c("any_higher", "prev_misf"),
insertion_anchor_strategy = c("first", "distance_band", "balanced_band", "spread_prev"),
level0_insertion_mode = c("inherit", "barycenter", "least_squares"),
level0_anchor_count = insertion_anchor_count,
level0_local_kk_steps = 3,
length_normalization = c("median", "mean", "none"),
disconnected = c("components", "error"),
seed = 6
)Numeric matrix with one row per vertex and dim columns.
Two-column integer matrix of edges (1-based vertex ids).
Number of vertices.
Adjacency list (1-based) for an undirected graph.
Parallel list of strictly positive edge lengths.
Optional vector of edge lengths for edges.
Embedding dimension. Must be at least 2.
Optional weighted layout preset: "carpet",
"mesh", "cylinder", "torus", "sphere",
"irregular", or "tree".
Initial insertion placement strategy. "circle" is
only available for dim = 2; higher dimensions use
"barycenter".
Number of weighted refinement rounds before the final phase.
Number of final weighted refinement rounds.
Coarsest-level size control. Defaults to at least
dim + 1.
Local-neighborhood control used by the ND backend.
Movement-rate parameter in [0, 1].
Repulsion scale parameter.
Non-edge repulsion multiplier.
Initial spread multiplier.
Final-stage FR displacement multiplier
applied after the first final round. Must be in [0, 1].
Final refinement mode: "fr" or
"kk_repulse".
Optional cap on the number of settled Dijkstra
vertices used when building weighted neighborhood caches for inserted
vertices. NULL keeps the exact weighted neighborhood search.
Number of already placed anchor vertices used when inserting non-final MISF levels.
Anchor eligibility rule:
"any_higher" or "prev_misf".
Anchor selection rule:
"first", "distance_band", "balanced_band", or
"spread_prev".
Level-0 insertion placement override:
"inherit", "barycenter", or "least_squares".
Number of anchors used during level-0 insertion.
Number of local weighted-KK polish steps used immediately after level-0 insertion.
Global edge-length normalization:
"median" (default), "mean", or "none".
How to handle disconnected graphs:
"components" lays out each component separately and packs them;
"error" rejects disconnected graphs.
Optional RNG seed for reproducibility. If NULL, uses current time.