code: func (e *gfP2) MulXi(a *gfP2) *gfP2 {
  	// (xi+y)(i+9) = (9x+y)i+(9y-x)
  	tx := &gfP{}
  	gfpAdd(tx, &a.x, &a.x)
  	gfpAdd(tx, tx, tx)
  	gfpAdd(tx, tx, tx)
  	gfpAdd(tx, tx, &a.x)
  
  	gfpAdd(tx, tx, &a.y)
  
  	ty := &gfP{}
  	gfpAdd(ty, &a.y, &a.y)
  	gfpAdd(ty, ty, ty)
  	gfpAdd(ty, ty, ty)
  	gfpAdd(ty, ty, &a.y)
  
  	gfpSub(ty, ty, &a.x)
  
  	e.x.Set(tx)
  	e.y.Set(ty)
  	return e
  }
docs: // MulXi sets e=ξa where ξ=i+9 and then returns e.