pub type Resolution<CC> = MuResolution<false, CC>;Aliased Type§
pub struct Resolution<CC> {
name: String,
lock: Mutex<()>,
complex: Arc<CC>,
modules: OnceBiVec<Arc<MuFreeModule<false, <CC as ChainComplex>::Algebra>>>,
zero_module: Arc<MuFreeModule<false, <CC as ChainComplex>::Algebra>>,
chain_maps: OnceBiVec<Arc<MuFreeModuleHomomorphism<false, <CC as ChainComplex>::Module>>>,
differentials: OnceVec<Arc<MuFreeModuleHomomorphism<false, MuFreeModule<false, <CC as ChainComplex>::Algebra>>>>,
kernels: DashMap<MultiDegree<2>, Subspace>,
save_dir: SaveDirectory,
pub should_save: bool,
pub load_quasi_inverse: bool,
}Fields§
§name: String§lock: Mutex<()>§complex: Arc<CC>§modules: OnceBiVec<Arc<MuFreeModule<false, <CC as ChainComplex>::Algebra>>>§zero_module: Arc<MuFreeModule<false, <CC as ChainComplex>::Algebra>>§chain_maps: OnceBiVec<Arc<MuFreeModuleHomomorphism<false, <CC as ChainComplex>::Module>>>§differentials: OnceVec<Arc<MuFreeModuleHomomorphism<false, MuFreeModule<false, <CC as ChainComplex>::Algebra>>>>§kernels: DashMap<MultiDegree<2>, Subspace>For each internal degree, store the kernel of the most recently calculated chain map as
returned by generate_old_kernel_and_compute_new_kernel, to be used if we run
compute_through_degree again.
save_dir: SaveDirectory§should_save: boolWhether we should save newly computed data to the disk. This has no effect if there is no
save file. Defaults to self.save_dir.is_some().
load_quasi_inverse: boolWhether we should keep the quasi-inverses of the differentials.
If set to false,
- If there is no save file, then the quasi-inverse will not be computed.
- If there is a save file, then the quasi-inverse will be computed, written to disk, and dropped from memory. We will not load quasi-inverses from save files.
Note that this only applies to quasi-inverses of differentials. The quasi-inverses to the augmentation map are useful when the target chain complex is not concentrated in one degree, and they tend to be quite small anyway.