FiniteAugmentedChainComplex

Struct FiniteAugmentedChainComplex 

Source
pub struct FiniteAugmentedChainComplex<M, F1, F2, CC>
where M: Module, CC: ChainComplex<Algebra = M::Algebra>, F1: ModuleHomomorphism<Source = M, Target = M>, F2: ModuleHomomorphism<Source = M, Target = CC::Module>,
{ cc: FiniteChainComplex<M, F1>, target_cc: Arc<CC>, chain_maps: Vec<Arc<F2>>, }

Fields§

§cc: FiniteChainComplex<M, F1>§target_cc: Arc<CC>§chain_maps: Vec<Arc<F2>>

Implementations§

Source§

impl<M, CC> FiniteAugmentedChainComplex<M, FullModuleHomomorphism<M>, FullModuleHomomorphism<M, CC::Module>, CC>
where M: Module, CC: ChainComplex<Algebra = M::Algebra>,

Source

pub fn map<N: Module<Algebra = M::Algebra>>( &self, f: impl FnMut(&M) -> N, ) -> FiniteAugmentedChainComplex<N, FullModuleHomomorphism<N>, FullModuleHomomorphism<N, CC::Module>, CC>

Trait Implementations§

Source§

impl<M, F1, F2, CC> AugmentedChainComplex for FiniteAugmentedChainComplex<M, F1, F2, CC>
where M: Module, CC: ChainComplex<Algebra = M::Algebra>, F1: ModuleHomomorphism<Source = M, Target = M>, F2: ModuleHomomorphism<Source = M, Target = CC::Module>,

Source§

fn chain_map(&self, s: i32) -> Arc<Self::ChainMap>

This currently crashes if s is greater than the s degree of the class this came from.

Source§

type ChainMap = F2

Source§

type TargetComplex = CC

Source§

fn target(&self) -> Arc<Self::TargetComplex>

Source§

impl<M, F1, F2, CC> BoundedChainComplex for FiniteAugmentedChainComplex<M, F1, F2, CC>
where M: Module, CC: ChainComplex<Algebra = M::Algebra>, F1: ModuleHomomorphism<Source = M, Target = M>, F2: ModuleHomomorphism<Source = M, Target = CC::Module>,

Source§

impl<M, F1, F2, CC> ChainComplex for FiniteAugmentedChainComplex<M, F1, F2, CC>
where M: Module, CC: ChainComplex<Algebra = M::Algebra>, F1: ModuleHomomorphism<Source = M, Target = M>, F2: ModuleHomomorphism<Source = M, Target = CC::Module>,

Source§

type Algebra = <M as Module>::Algebra

Source§

type Homomorphism = F1

Source§

type Module = M

Source§

fn algebra(&self) -> Arc<M::Algebra>

Source§

fn min_degree(&self) -> i32

Source§

fn has_computed_bidegree(&self, b: Bidegree) -> bool

If the complex has been computed at bidegree (s, t). This means the module has been computed at (s, t), and so has the differential at (s, t). In the case of a free module, the target of the differential, namely the bidegree (s - 1, t), need not be computed, as long as all the generators hit by the differential have already been computed.
Source§

fn zero_module(&self) -> Arc<Self::Module>

Source§

fn module(&self, s: i32) -> Arc<Self::Module>

Source§

fn differential(&self, s: i32) -> Arc<Self::Homomorphism>

This returns the differential starting from the sth module.
Source§

fn compute_through_bidegree(&self, b: Bidegree)

Ensure all bidegrees less than or equal to (s, t) have been computed
Source§

fn next_homological_degree(&self) -> i32

The first s such that self.module(s) is not defined.
Source§

fn prime(&self) -> ValidPrime

Source§

fn iter_stem(&self) -> StemIterator<'_, Self>

Iterate through all defined bidegrees in increasing order of stem.
Source§

fn apply_quasi_inverse<T, S>( &self, results: &mut [T], b: Bidegree, inputs: &[S], ) -> bool
where for<'a> &'a mut T: Into<FpSliceMut<'a>>, for<'a> &'a S: Into<FpSlice<'a>>,

Apply the quasi-inverse of the (s, t)th differential to the list of inputs and results. This defaults to applying self.differentials(s).quasi_inverse(t), but in some cases the quasi-inverse might be stored separately on disk. Read more
Source§

fn save_dir(&self) -> &SaveDirectory

A directory used to save information about the chain complex.
Source§

fn save_file(&self, kind: SaveKind, b: Bidegree) -> SaveFile<Self::Algebra>

Get the save file of a bidegree
Source§

impl<M, F1, F2, CC> From<FiniteAugmentedChainComplex<M, F1, F2, CC>> for FiniteChainComplex<M, F1>
where M: Module, CC: ChainComplex<Algebra = M::Algebra>, F1: ModuleHomomorphism<Source = M, Target = M>, F2: ModuleHomomorphism<Source = M, Target = CC::Module>,

Source§

fn from(c: FiniteAugmentedChainComplex<M, F1, F2, CC>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<M, F1, F2, CC> Freeze for FiniteAugmentedChainComplex<M, F1, F2, CC>

§

impl<M, F1, F2, CC> RefUnwindSafe for FiniteAugmentedChainComplex<M, F1, F2, CC>

§

impl<M, F1, F2, CC> Send for FiniteAugmentedChainComplex<M, F1, F2, CC>

§

impl<M, F1, F2, CC> Sync for FiniteAugmentedChainComplex<M, F1, F2, CC>

§

impl<M, F1, F2, CC> Unpin for FiniteAugmentedChainComplex<M, F1, F2, CC>

§

impl<M, F1, F2, CC> UnwindSafe for FiniteAugmentedChainComplex<M, F1, F2, CC>

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<const U: bool, CC> FreeChainComplex<U> for CC
where CC: ChainComplex<Module = MuFreeModule<U, <CC as ChainComplex>::Algebra>, Homomorphism = MuFreeModuleHomomorphism<U, MuFreeModule<U, <CC as ChainComplex>::Algebra>>>, <CC as ChainComplex>::Algebra: MuAlgebra<U>,

Source§

fn graded_dimension_string(&self) -> String

Source§

fn to_sseq(&self) -> Sseq<2, Adams>

Source§

fn filtration_one_products(&self, op_deg: i32, op_idx: usize) -> Product<2>

Source§

fn filtration_one_product( &self, op_deg: i32, op_idx: usize, source: Bidegree, ) -> Option<Vec<Vec<u32>>>

Computes the filtration one product. Read more
Source§

fn number_of_gens_in_bidegree(&self, b: Bidegree) -> usize

Source§

fn iter_nonzero_stem(&self) -> impl Iterator<Item = Bidegree> + '_

Iterate through all nonzero bidegrees in increasing order of stem.
Source§

fn boundary_string(&self, g: BidegreeGenerator) -> String

Get a string representation of d(gen), where d is the differential of the resolution.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more