fn auxiliary_data(&self, degree: i32) -> (Subspace, Subspace, QuasiInverse) {
        let p = self.prime();
        let output_degree = degree - self.degree_shift();
        self.source().compute_basis(degree);
        self.target().compute_basis(output_degree);
        let source_dimension = self.source().dimension(degree);
        let target_dimension = self.target().dimension(output_degree);
        let mut matrix =
            AugmentedMatrix::<2>::new(p, source_dimension, [target_dimension, source_dimension]);

        self.get_matrix(&mut matrix.segment(0, 0), degree);
        matrix.segment(1, 1).add_identity();

        matrix.row_reduce();

        (
            matrix.compute_image(),
            matrix.compute_kernel(),
            matrix.compute_quasi_inverse(),
        )
    }
/// Compute the auxiliary data associated to the homomorphism at input degree `degree`. Returns
/// it in the order image, kernel, quasi_inverse
Compute the auxiliary data associated to the homomorphism at input degree `degree`. Returns
it in the order image, kernel, quasi_inverse
Compute the auxiliary data associated to the homomorphism at input degree ` degree ` . Returns it in the order image kernel quasi_inverse
fn auxiliary_data(&self, degree: i32) -> (Subspace, Subspace, QuasiInverse) {
        let p = self.prime();
        let output_degree = degree - self.degree_shift();
        self.source().compute_basis(degree);
        self.target().compute_basis(output_degree);
        let source_dimension = self.source().dimension(degree);
        let target_dimension = self.target().dimension(output_degree);
        let mut matrix =
            AugmentedMatrix::<2>::new(p, source_dimension, [target_dimension, source_dimension]);
        self.get_matrix(&mut matrix.segment(0, 0), degree);
        matrix.segment(1, 1).add_identity();
        matrix.row_reduce();
        (
            matrix.compute_image(),
            matrix.compute_kernel(),
            matrix.compute_quasi_inverse(),
        )
    }
fn auxiliary_data ( & self , degree : i32 ) -> ( Subspace , Subspace , QuasiInverse ) { let p = self . prime ( ) ; let output_degree = degree - self . degree_shift ( ) ; self . source ( ) . compute_basis ( degree ) ; self . target ( ) . compute_basis ( output_degree ) ; let source_dimension = self . source ( ) . dimension ( degree ) ; let target_dimension = self . target ( ) . dimension ( output_degree ) ; let mut matrix = AugmentedMatrix :: < 2 > :: new ( p , source_dimension , [ target_dimension , source_dimension ] ) ; self . get_matrix ( & mut matrix . segment ( 0 , 0 ) , degree ) ; matrix . segment ( 1 , 1 ) . add_identity ( ) ; matrix . row_reduce ( ) ; ( matrix . compute_image ( ) , matrix . compute_kernel ( ) , matrix . compute_quasi_inverse ( ) , ) }
Compute the auxiliary data associated to the homomorphism at input degree `degree`.
Compute the auxiliary data associated to the homomorphism at input degree ` degree ` .
&self
degree
i32
&self
degree
i32