Skip to main content

BipersistenceModule

Struct BipersistenceModule 

Source
pub struct BipersistenceModule { /* private fields */ }
Expand description

Exact finite H¹ module of a degree-Rips bifiltration.

Cover maps are cohomology restrictions. Their ranks equal the ranks of the dual homology inclusion maps over the same field.

Implementations§

Source§

impl BipersistenceModule

Source

pub fn class_atlas( &self, base_grade: Bigrade, base_class: &[BipersistenceTerm], ) -> Result<CohomologyClassAtlas>

Compute all extensions of one nonzero class over its upper parameter cone.

Source§

impl BipersistenceModule

Source

pub fn circular_coordinate_family( &self, atlas: &CohomologyClassAtlas, params: CircularCoordinateParams, ) -> Result<CircularCoordinateFamily>

Compute checked circular coordinates for every unique atlas extension.

Ambiguous and absent extensions have status CircularCoordinateFamilyStatus::NotAttempted. Every unique extension has a lift failure, solve failure, or success status. A failed computation is reported at its node, and does not discard coordinates computed at other nodes. Automatic family construction requires an odd prime coefficient modulus. Modulus two requires a caller-supplied integral lift and is rejected before any node computation.

Source§

impl BipersistenceModule

Source

pub fn from_degree_rips( degree_rips: &DegreeRipsBifiltration, modulus: u32, limits: BipersistenceLimits, ) -> Result<Self>

Construct the complete finite H¹ module on a degree-Rips grid.

Construction checks every cover restriction and every commutative square. The degree-Rips input must include homology dimension one.

Source

pub fn modulus(&self) -> u32

Prime coefficient modulus.

Source

pub fn scales(&self) -> &[f64]

Scale values in strict ascending order.

Source

pub fn minimum_degrees(&self) -> &[usize]

Minimum degrees in strict descending order.

Source

pub fn nodes(&self) -> &[BipersistenceNode]

Nodes in scale-major, then density-major order.

Source

pub fn cover_maps(&self) -> &[BipersistenceMap]

Checked horizontal and vertical cover maps.

Source

pub fn degree_rips(&self) -> &DegreeRipsBifiltration

Source degree-Rips bifiltration.

Source

pub fn node(&self, grade: Bigrade) -> Result<&BipersistenceNode>

Return one module node.

Source

pub fn h1_graph(&self, grade: Bigrade) -> Result<&SparseDistanceMatrix>

Return the zero-weight graph used for H¹ at one grid node.

The graph retains inactive vertices as isolated labels. It represents positive-dimensional flag cohomology, not H⁰ of the degree-Rips slice.

Source

pub fn cohomology_space(&self, grade: Bigrade) -> Result<&CohomologySpace>

Return the canonical H¹ space at one grid node.

Source

pub fn cover_map( &self, lower: Bigrade, upper: Bigrade, ) -> Result<&BipersistenceMap>

Return one checked cover map.

Source§

impl BipersistenceModule

Source

pub fn map(&self, lower: Bigrade, upper: Bigrade) -> Result<BipersistenceMap>

Compute the exact map between comparable grades.

The result composes cover maps. Checked commutative squares make the result independent of the chosen monotone path.

Source

pub fn map_rank(&self, lower: Bigrade, upper: Bigrade) -> Result<usize>

Rank of the exact map between comparable grades.

Source

pub fn rectangle_rank(&self, rectangle: BipersistenceRectangle) -> Result<usize>

Compute the generalized rank of one closed rectangle.

The value is the rank of the canonical map from the diagram limit to its colimit. The same value is obtained from the dual homology module.

Source

pub fn region_rank(&self, region: &BipersistenceRegion) -> Result<usize>

Compute the generalized rank of one connected finite region.

The value is the rank of the canonical map from the diagram limit to its colimit. Every comparable pair in the induced subposet contributes its exact module map. A region with a minimum and maximum has the rank of the map between those grades.

Trait Implementations§

Source§

impl Clone for BipersistenceModule

Source§

fn clone(&self) -> BipersistenceModule

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BipersistenceModule

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.