equal_angle_apply

Function equal_angle_apply 

Source
pub fn equal_angle_apply(
    opts: EqualAngleOpts,
    taxa_labels: &[String],
    splits: &SplitsBlock,
    graph: &mut PhyloSplitsGraph,
    forbidden_splits: Option<&FixedBitSet>,
    used_splits: &mut FixedBitSet,
) -> Result<bool>
Expand description

Compute a split network with the (ported) Equal-Angle workflow.

  • taxa_labels is your “TaxaBlock” (1-based semantic: label for taxon t is taxa_labels[t-1])
  • splits is the circular SplitsBlock with a cycle
  • graph is mutated in-place
  • forbidden_splits skips setting angles for these split ids (1-based); pass None to set all
  • used_splits is cleared and then bits set for each non-trivial circular split we consume

Returns Ok(all_used) where all_used == true iff every non-trivial split is circular