public AffineNielsPoint BitXor(AffineNielsPoint a)
 {
     return(new AffineNielsPoint
     {
         Y_plus_X = Y_plus_X.BitXor(a.Y_plus_X),
         Y_minus_X = Y_minus_X.BitXor(a.Y_minus_X),
         XY2d = XY2d.BitXor(XY2d)
     });
 }
 public ProjectiveNielsPoint Negate()
 {
     return(new ProjectiveNielsPoint
     {
         Y_plus_X = Y_plus_X.Negate(),
         Y_minus_X = Y_minus_X.Negate(),
         Z = Z.Negate(),
         T2d = T2d.Negate()
     });
 }
 public ProjectiveNielsPoint BitAnd(uint a)
 {
     return(new ProjectiveNielsPoint
     {
         Y_plus_X = Y_plus_X.BitAnd(a),
         Y_minus_X = Y_minus_X.BitAnd(a),
         Z = Z.BitAnd(a),
         T2d = T2d.BitAnd(a)
     });
 }
 public ProjectiveNielsPoint BitXor(ProjectiveNielsPoint a)
 {
     return(new ProjectiveNielsPoint
     {
         Y_plus_X = Y_plus_X.BitXor(a.Y_plus_X),
         Y_minus_X = Y_minus_X.BitXor(a.Y_minus_X),
         Z = Z.BitXor(a.Z),
         T2d = T2d.BitXor(a.T2d),
     });
 }
 public void ConditionalAssign(AffineNielsPoint a, bool choice)
 {
     Y_plus_X.ConditionalAssign(a.Y_plus_X, choice);
     Y_minus_X.ConditionalAssign(a.Y_minus_X, choice);
     XY2d.ConditionalAssign(a.XY2d, choice);
 }