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>
impl<M, CC> FiniteAugmentedChainComplex<M, FullModuleHomomorphism<M>, FullModuleHomomorphism<M, CC::Module>, CC>
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>,
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§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>,
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>,
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>,
type Algebra = <M as Module>::Algebra
type Homomorphism = F1
type Module = M
fn algebra(&self) -> Arc<M::Algebra>
fn min_degree(&self) -> i32
Source§fn has_computed_bidegree(&self, b: Bidegree) -> bool
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.
fn zero_module(&self) -> Arc<Self::Module>
fn module(&self, s: i32) -> Arc<Self::Module>
Source§fn differential(&self, s: i32) -> Arc<Self::Homomorphism>
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)
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
fn next_homological_degree(&self) -> i32
The first s such that
self.module(s) is not defined.fn prime(&self) -> ValidPrime
Source§fn iter_stem(&self) -> StemIterator<'_, Self> ⓘ
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
fn apply_quasi_inverse<T, S>( &self, results: &mut [T], b: Bidegree, inputs: &[S], ) -> bool
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 moreSource§fn save_dir(&self) -> &SaveDirectory
fn save_dir(&self) -> &SaveDirectory
A directory used to save information about the chain complex.
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>,
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
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> 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<const U: bool, CC> FreeChainComplex<U> for CCwhere
CC: ChainComplex<Module = MuFreeModule<U, <CC as ChainComplex>::Algebra>, Homomorphism = MuFreeModuleHomomorphism<U, MuFreeModule<U, <CC as ChainComplex>::Algebra>>>,
<CC as ChainComplex>::Algebra: MuAlgebra<U>,
impl<const U: bool, CC> FreeChainComplex<U> for CCwhere
CC: ChainComplex<Module = MuFreeModule<U, <CC as ChainComplex>::Algebra>, Homomorphism = MuFreeModuleHomomorphism<U, MuFreeModule<U, <CC as ChainComplex>::Algebra>>>,
<CC as ChainComplex>::Algebra: MuAlgebra<U>,
fn graded_dimension_string(&self) -> String
fn to_sseq(&self) -> Sseq<2, Adams>
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>>>
fn filtration_one_product( &self, op_deg: i32, op_idx: usize, source: Bidegree, ) -> Option<Vec<Vec<u32>>>
Computes the filtration one product. Read more
fn number_of_gens_in_bidegree(&self, b: Bidegree) -> usize
Source§fn iter_nonzero_stem(&self) -> impl Iterator<Item = Bidegree> + '_
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
fn boundary_string(&self, g: BidegreeGenerator) -> String
Get a string representation of d(gen), where d is the differential of the resolution.
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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