LayoutSettings

Symbolica documentation for getting started, symbolic expressions, numerical evaluation, pattern matching, and APIs in Python and Rust.

LayoutSettings

class LayoutSettings

One or more ordered Linnest layout passes.

impred_steps is the nominal cooling budget (default 500). impred_step_scale is a positive maximum integration stride (default 2): the first 20% uses fine steps, then strides land on the existing checkpoints. Use 1 for the reference schedule. Native reports count actual solves, while progress callbacks count nominal ticks. impred_level (default true) rotates mixed incoming/outgoing drawings to their external-pull optimum at every refinement checkpoint. impred_labels (default false) opts into label-aware layout: drawn labels are fed back as tethered boxes into short warm ImPrEd passes.

external_pull_attachment is a finite nonnegative multiplier for extra demand from distributed owners sharing an external X coordinate (default 1). external_pull_balance is a finite nonnegative exponent on topology weights: 0 gives uniform pull, 1 (the default) balances topology, and values above 1 strengthen balancing. It does not change radial pull.

Attributes

Name Description
pass_count

pass_count

LayoutSettings.pass_count: builtins.int

Methods

Name Description
__new__
__repr__
sequence
then

__new__

LayoutSettings.__new__(
    *,
    impred_spacing: _Number = ...,
    impred_repulsion: _Number = ...,
    impred_attraction: _Number = ...,
    impred_parallel_balance: _Number = ...,
    impred_pull: _Number = ...,
    impred_pull_balance: _Number = ...,
    impred_pull_attachment: _Number = ...,
    impred_external_max_points: _Integer = ...,
    impred_split_length_ratio: _Number = ...,
    impred_contract_chord_ratio: _Number = ...,
    impred_edge_clearance: _Number = ...,
    impred_node_edge_strength: _Number = ...,
    impred_steps: _Integer = ...,
    impred_step_scale: _Integer = ...,
    impred_level: _Boolean = ...,
    impred_labels: _Boolean = ...,
    subgraph: _OptionalHedgeSelection = ...,
    viewport_width: _Number = ...,
    viewport_height: _Number = ...,
    tree_dx: _Number = ...,
    tree_dy: _Number = ...,
    steps: _Integer = ...,
    seed: _Integer = ...,
    step: _Number = ...,
    step_shrink: _Number = ...,
    cool: _Number = ...,
    accept_floor: _Number = ...,
    early_tolerance: _Number = ...,
    temperature: _Number = ...,
    delta: _Number = ...,
    beta: _Number = ...,
    spring_strength: _Number = ...,
    spring_length_scale: _Number = ...,
    initial_repulsion: _Number = ...,
    repulsion_growth: _Number = ...,
    centering_strength: _Number = ...,
    epochs: _Integer = ...,
    crossing_penalty: _Number = ...,
    dangling_repulsion: _Number = ...,
    dangling_centroid_repulsion: _Number = ...,
    external_pull: _Number = ...,
    external_pull_balance: _Number = ...,
    external_pull_attachment: _Number = ...,
    edge_edge_repulsion: _Number = ...,
    directional_force: _Number = ...,
    internal_label_length_scale: _Number = ...,
    external_label_length_scale: _Number = ...,
    label_spring: _Number = ...,
    label_charge: _Number = ...,
    label_steps: _Integer = ...,
    label_layout: _LabelLayoutValue = ...,
    label_step: _Number = ...,
    label_early_tolerance: _Number = ...,
    label_max_delta_scale: _Number = ...,
    edge_vertex_repulsion: _Number = ...,
    epsilon: _Number = ...,
    incremental_energy: _Boolean = ...,
    algorithm: _LayoutAlgorithmValue = ...,
    nodes: _LayoutNodesValue = ...,
    direction: _LayoutDirectionValue = ...,
    rank_align: _RankAlignmentValue = ...,
    roots: _NodeIndices = ...,
    rank_same: _NodeGroups = ...,
    route_edge_weight: _Number = ...,
    route_exit_weight: _Number = ...,
    route_label_width_scale: _Number = ...,
    route_label_width_cap: _Number = ...,
    z_spring: _Number = ...,
    z_spring_growth: _Number = ...,
    length_scale: _Number = ...,
) -> LayoutSettings

__repr__

LayoutSettings.__repr__() -> builtins.str

sequence

LayoutSettings.sequence(passes: typing.Sequence[LayoutSettings]) -> LayoutSettings

then

LayoutSettings.then(
    *,
    impred_spacing: _Number = ...,
    impred_repulsion: _Number = ...,
    impred_attraction: _Number = ...,
    impred_parallel_balance: _Number = ...,
    impred_pull: _Number = ...,
    impred_pull_balance: _Number = ...,
    impred_pull_attachment: _Number = ...,
    impred_external_max_points: _Integer = ...,
    impred_split_length_ratio: _Number = ...,
    impred_contract_chord_ratio: _Number = ...,
    impred_edge_clearance: _Number = ...,
    impred_node_edge_strength: _Number = ...,
    impred_steps: _Integer = ...,
    impred_step_scale: _Integer = ...,
    impred_level: _Boolean = ...,
    impred_labels: _Boolean = ...,
    subgraph: _OptionalHedgeSelection = ...,
    viewport_width: _Number = ...,
    viewport_height: _Number = ...,
    tree_dx: _Number = ...,
    tree_dy: _Number = ...,
    steps: _Integer = ...,
    seed: _Integer = ...,
    step: _Number = ...,
    step_shrink: _Number = ...,
    cool: _Number = ...,
    accept_floor: _Number = ...,
    early_tolerance: _Number = ...,
    temperature: _Number = ...,
    delta: _Number = ...,
    beta: _Number = ...,
    spring_strength: _Number = ...,
    spring_length_scale: _Number = ...,
    initial_repulsion: _Number = ...,
    repulsion_growth: _Number = ...,
    centering_strength: _Number = ...,
    epochs: _Integer = ...,
    crossing_penalty: _Number = ...,
    dangling_repulsion: _Number = ...,
    dangling_centroid_repulsion: _Number = ...,
    external_pull: _Number = ...,
    external_pull_balance: _Number = ...,
    external_pull_attachment: _Number = ...,
    edge_edge_repulsion: _Number = ...,
    directional_force: _Number = ...,
    internal_label_length_scale: _Number = ...,
    external_label_length_scale: _Number = ...,
    label_spring: _Number = ...,
    label_charge: _Number = ...,
    label_steps: _Integer = ...,
    label_layout: _LabelLayoutValue = ...,
    label_step: _Number = ...,
    label_early_tolerance: _Number = ...,
    label_max_delta_scale: _Number = ...,
    edge_vertex_repulsion: _Number = ...,
    epsilon: _Number = ...,
    incremental_energy: _Boolean = ...,
    algorithm: _LayoutAlgorithmValue = ...,
    nodes: _LayoutNodesValue = ...,
    direction: _LayoutDirectionValue = ...,
    rank_align: _RankAlignmentValue = ...,
    roots: _NodeIndices = ...,
    rank_same: _NodeGroups = ...,
    route_edge_weight: _Number = ...,
    route_exit_weight: _Number = ...,
    route_label_width_scale: _Number = ...,
    route_label_width_cap: _Number = ...,
    z_spring: _Number = ...,
    z_spring_growth: _Number = ...,
    length_scale: _Number = ...,
) -> LayoutSettings