pub unsafe fn matrix_product<J: Iterator<Item = Matrix<T>>>(
        self,
        g: Group<J>,
    ) -> Group<MatrixProductIter<T>> {
        Group::new(
            self.dim,
            (self.collect::<Vec<_>>(), g.collect::<Vec<_>>())
                .into_pairs()
                .map(|a, b| a * b),
        )
    }
/// Returns the group determined by all products between elements of the
/// first and the second group.
///
/// # Safety
/// The user must make sure the groups commute with one another, or the
/// result will not necessarily be a group.
Returns the group determined by all products between elements of the
first and the second group.
Returns the group determined by all products between elements of the first and the second group .
pub unsafe fn matrix_product<J: Iterator<Item = Matrix<T>>>(
        self,
        g: Group<J>,
    ) -> Group<MatrixProductIter<T>> {
        Group::new(
            self.dim,
            (self.collect::<Vec<_>>(), g.collect::<Vec<_>>())
                .into_pairs()
                .map(|a, b| a * b),
        )
    }
pub unsafe fn matrix_product < J : Iterator < Item = Matrix < T > > > ( self , g : Group < J > , ) -> Group < MatrixProductIter < T > > { Group :: new ( self . dim , ( self . collect :: < Vec < _ > > ( ) , g . collect :: < Vec < _ > > ( ) ) . into_pairs ( ) . map ( | a , b | a * b ) , ) }
Returns the group determined by all products between elements of the
first and the second group.
Returns the group determined by all products between elements of the first and the second group .
self
g
Group<J>
self
g
Group<J>
safety
The user must make sure the groups commute with one another, or the
result will not necessarily be a group.
The user must make sure the groups commute with one another or the result will not necessarily be a group .