pub struct InvLink { /* private fields */ }Implementations§
Source§impl InvLink
impl InvLink
pub fn new<I>(inner: Link, e_map: I) -> InvLink
pub fn from_symmetric_pd_code<I1>(pd_code: I1) -> Selfwhere
I1: IntoIterator<Item = PDCodeX>,
pub fn si_knot_from(inner: Link) -> InvLink
pub fn inner(&self) -> &Link
Sourcepub fn pd_code(&self) -> Vec<PDCodeX> ⓘ
pub fn pd_code(&self) -> Vec<PDCodeX> ⓘ
The symmetric PD code — the inner diagram’s PD, with edges numbered so the strong inversion is
the standard e ↦ (n+1-e)%n+1. Feeding this to from_symmetric_pd_code (or the ykh CLI)
reconstructs the same InvLink. The builders (from_symmetric_pd_code, conn_sum,
whitehead_double) already reindex to this involution, so an arbitrary e_map is rejected.
pub fn is_empty(&self) -> bool
pub fn is_knot(&self) -> bool
pub fn is_oriented(&self) -> bool
pub fn writhe(&self) -> i32
pub fn n_nodes(&self) -> usize
pub fn nodes(&self) -> impl Iterator<Item = &Node>
pub fn node(&self, i: usize) -> &Node
pub fn crossings(&self) -> impl Iterator<Item = &Node>
pub fn n_crossings(&self) -> usize
pub fn n_signed_crossings(&self) -> (usize, usize)
pub fn n_edges(&self) -> usize
pub fn edges(&self) -> Vec<Edge> ⓘ
pub fn n_comps(&self) -> usize
pub fn comps(&self) -> Vec<Path>
pub fn seifert_state(&self) -> State
pub fn seifert_circles(&self) -> Vec<Path>
pub fn base_pt(&self) -> Option<Edge>
pub fn with_base_pt(self, e: Edge) -> Self
pub fn inv_edge(&self, e: Edge) -> Edge
pub fn inv_node(&self, x: &Node) -> &Node
pub fn is_on_axis(&self, e: Edge) -> bool
pub fn on_axis_edges(&self) -> Vec<Edge> ⓘ
pub fn is_transvergent(&self) -> bool
pub fn is_strongly_invertible(&self) -> bool
pub fn is_2periodic(&self) -> bool
pub fn mirror(&self) -> Self
pub fn reversed(&self) -> Self
pub fn conn_sum(&self, other: &InvLink) -> InvLink
pub fn conn_sum_at( &self, other: &InvLink, self_e: Edge, other_e: Edge, ) -> InvLink
Source§impl InvLink
impl InvLink
Sourcepub fn sym_pretzel(a: i32, b: i32, c: i32) -> InvLink
pub fn sym_pretzel(a: i32, b: i32, c: i32) -> InvLink
The 3-pretzel P(a, b, a) with its strong inversion (the π-rotation through the middle
band), reindexed to the standard involution. Standard convention: all-odd 3-pretzel bands
are anti-parallel, so a positive (right-handed) half-twist is a NEGATIVE crossing —
writhe(P(a, b, a)) = -(2a + b).
pub fn whitehead_double(l: &InvLink, positive: bool, tw: i32) -> InvLink
pub fn whitehead_double_at( l: &InvLink, positive: bool, tw: i32, cut: Edge, ) -> InvLink
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InvLink
impl RefUnwindSafe for InvLink
impl Send for InvLink
impl Sync for InvLink
impl Unpin for InvLink
impl UnsafeUnpin for InvLink
impl UnwindSafe for InvLink
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more