fn extend_through_degree(&self, max_s: u32) {
        let min_degree = self.min_degree();

        for i in self.modules.len() as u32..=max_s {
            self.modules.push(Arc::new(FreeModule::new(
                Arc::clone(&self.algebra()),
                format!("F{}", i),
                min_degree,
            )));
            self.chain_maps.push(Arc::new(FreeModuleHomomorphism::new(
                Arc::clone(&self.modules[i]),
                Arc::clone(&self.complex.module(i)),
                0,
            )));
        }

        if self.differentials.is_empty() {
            self.differentials
                .push(Arc::new(FreeModuleHomomorphism::new(
                    Arc::clone(&self.modules[0u32]),
                    Arc::clone(&self.zero_module),
                    0,
                )));
        }

        for i in self.differentials.len() as u32..=max_s {
            self.differentials
                .push(Arc::new(FreeModuleHomomorphism::new(
                    Arc::clone(&self.modules[i]),
                    Arc::clone(&self.modules[i - 1]),
                    0,
                )));
        }
    }
/// This function prepares the Resolution object to perform computations up to the
/// specified s degree. It does *not* perform any computations by itself. It simply lengthens
/// the `OnceVec`s `modules`, `chain_maps`, etc. to the right length.
This function prepares the Resolution object to perform computations up to the
specified s degree. It does *not* perform any computations by itself.
This function prepares the Resolution object to perform computations up to the specified s degree . It does * not * perform any computations by itself .
fn extend_through_degree(&self, max_s: u32) {
        let min_degree = self.min_degree();
        for i in self.modules.len() as u32..=max_s {
            self.modules.push(Arc::new(FreeModule::new(
                Arc::clone(&self.algebra()),
                format!("F{}", i),
                min_degree,
            )));
            self.chain_maps.push(Arc::new(FreeModuleHomomorphism::new(
                Arc::clone(&self.modules[i]),
                Arc::clone(&self.complex.module(i)),
                0,
            )));
        }
        if self.differentials.is_empty() {
            self.differentials
                .push(Arc::new(FreeModuleHomomorphism::new(
                    Arc::clone(&self.modules[0u32]),
                    Arc::clone(&self.zero_module),
                    0,
                )));
        }
        for i in self.differentials.len() as u32..=max_s {
            self.differentials
                .push(Arc::new(FreeModuleHomomorphism::new(
                    Arc::clone(&self.modules[i]),
                    Arc::clone(&self.modules[i - 1]),
                    0,
                )));
        }
    }
fn extend_through_degree ( & self , max_s : u32 ) { let min_degree = self . min_degree ( ) ; for i in self . modules . len ( ) as u32 ..= max_s { self . modules . push ( Arc :: new ( FreeModule :: new ( Arc :: clone ( & self . algebra ( ) ) , format ! ( " " i ) , min_degree , ) ) ) ; self . chain_maps . push ( Arc :: new ( FreeModuleHomomorphism :: new ( Arc :: clone ( & self . modules [ i ] ) , Arc :: clone ( & self . complex . module ( i ) ) , 0 , ) ) ) ; } if self . differentials . is_empty ( ) { self . differentials . push ( Arc :: new ( FreeModuleHomomorphism :: new ( Arc :: clone ( & self . modules [ 0u32 ] ) , Arc :: clone ( & self . zero_module ) , 0 , ) ) ) ; } for i in self . differentials . len ( ) as u32 ..= max_s { self . differentials . push ( Arc :: new ( FreeModuleHomomorphism :: new ( Arc :: clone ( & self . modules [ i ] ) , Arc :: clone ( & self . modules [ i - 1 ] ) , 0 , ) ) ) ; } }
This function prepares the Resolution object to perform computations up to the
specified s degree.
This function prepares the Resolution object to perform computations up to the specified s degree .
&self
max_s
u32
&self
max_s
u32