@classmethod
def y2_reduction(cls):
    """
        Return the polynomial that may be substituted for @f$ y^2 @f$.  For an
        elliptic curve with parameters @f$ A, B @f$, this is the polynomial
        @f$ x^3 + Ax + B @f$.
        """
    try:
        return cls.__y2_reduction
    except AttributeError:
        A, B = cls._elliptic_curve.parameters()
        cls.__y2_reduction = cls.polynomial_ring()(B, A, 0, 1)
        return cls.__y2_reduction
