pub fn lattice_point_translation_deperm(&self, lattice_point: V3<i32>) -> Perm {
        // Depermutations that permute the cells along each axis independently.
        // (expressed in the quotient spaces of images along those axes)
        let axis_deperms: [_; 3] = V3::from_fn(|k| {
            Perm::eye(self.periods[k] as usize)
                .shift_signed(lattice_point[k] as isize)
        }).0;

        // Construct the overall deperm as an outer product of deperms.
        // this could be written as a fold, but I wanted to emphasize the order;
        // the innermost perm must correspond to the fastest-varying index.
        Perm::eye(self.num_primitive_atoms)
            .with_inner(&axis_deperms[0])
            .with_inner(&axis_deperms[1])
            .with_inner(&axis_deperms[2])
    }
// !!! This function affects the supercell convention !!! (SUPERCELL-CONV)
// When modifying it, you must modify all functions that have this label.
//
/// Get a depermutation representing translation by a primitive cell lattice point.
///
/// Please see `conventions.md` for an explanation of depermutations.
This function affects the supercell convention !!. (SUPERCELL-CONV)
When modifying it, you must modify all functions that have this label.

Get a depermutation representing translation by a primitive cell lattice point.

Please see `conventions.md` for an explanation of depermutations.
This function affects the supercell convention !! . ( SUPERCELL - CONV ) When modifying it you must modify all functions that have this label . Get a depermutation representing translation by a primitive cell lattice point . Please see ` conventions . md ` for an explanation of depermutations .
pub fn lattice_point_translation_deperm(&self, lattice_point: V3<i32>) -> Perm {
        // Depermutations that permute the cells along each axis independently.
        // (expressed in the quotient spaces of images along those axes)
        let axis_deperms: [_; 3] = V3::from_fn(|k| {
            Perm::eye(self.periods[k] as usize)
                .shift_signed(lattice_point[k] as isize)
        }).0;
        // Construct the overall deperm as an outer product of deperms.
        // this could be written as a fold, but I wanted to emphasize the order;
        // the innermost perm must correspond to the fastest-varying index.
        Perm::eye(self.num_primitive_atoms)
            .with_inner(&axis_deperms[0])
            .with_inner(&axis_deperms[1])
            .with_inner(&axis_deperms[2])
    }
pub fn lattice_point_translation_deperm ( & self , lattice_point : V3 < i32 > ) -> Perm { // Depermutations that permute the cells along each axis independently. // (expressed in the quotient spaces of images along those axes) let axis_deperms : [ _ ; 3 ] = V3 :: from_fn ( | k | { Perm :: eye ( self . periods [ k ] as usize ) . shift_signed ( lattice_point [ k ] as isize ) } ) . 0 ; // Construct the overall deperm as an outer product of deperms. // this could be written as a fold, but I wanted to emphasize the order; // the innermost perm must correspond to the fastest-varying index. Perm :: eye ( self . num_primitive_atoms ) . with_inner ( & axis_deperms [ 0 ] ) . with_inner ( & axis_deperms [ 1 ] ) . with_inner ( & axis_deperms [ 2 ] ) }
This function affects the supercell convention !
This function affects the supercell convention !
&self
lattice_point
V3<i32>
&self
lattice_point
V3<i32>