fn endomorphism(base: &Self::CurveAffine) -> Self::CurveAffine {
        let x = base.x;
        let y = base.y;

        let xy = x * y;
        let y_square = y * y;
        let f_y = Self::COEFF_C * (Fq::one() - y_square);
        let g_y = Self::COEFF_B * (y_square + Self::COEFF_B);
        let h_y = y_square - Self::COEFF_B;

        Self::CurveProjective::new(f_y * h_y, g_y * xy, Fq::one(), h_y * xy)
            .into_affine()
    }
/// Mapping a point G to phi(G):= lambda G where phi is the endomorphism
Mapping a point G to phi(G):= lambda G where phi is the endomorphism
Mapping a point G to phi ( G ) : = lambda G where phi is the endomorphism
fn endomorphism(base: &Self::CurveAffine) -> Self::CurveAffine {
        let x = base.x;
        let y = base.y;
        let xy = x * y;
        let y_square = y * y;
        let f_y = Self::COEFF_C * (Fq::one() - y_square);
        let g_y = Self::COEFF_B * (y_square + Self::COEFF_B);
        let h_y = y_square - Self::COEFF_B;
        Self::CurveProjective::new(f_y * h_y, g_y * xy, Fq::one(), h_y * xy)
            .into_affine()
    }
fn endomorphism ( base : & Self :: CurveAffine ) -> Self :: CurveAffine { let x = base . x ; let y = base . y ; let xy = x * y ; let y_square = y * y ; let f_y = Self :: COEFF_C * ( Fq :: one ( ) - y_square ) ; let g_y = Self :: COEFF_B * ( y_square + Self :: COEFF_B ) ; let h_y = y_square - Self :: COEFF_B ; Self :: CurveProjective :: new ( f_y * h_y , g_y * xy , Fq :: one ( ) , h_y * xy ) . into_affine ( ) }
Mapping a point G to phi(G):= lambda G where phi is the endomorphism
Mapping a point G to phi ( G ) : = lambda G where phi is the endomorphism
base
&Self::CurveAffine
base
&Self::CurveAffine