code: func (c *twistPoint) MakeAffine(pool *bnPool) *twistPoint {
  	if c.z.IsOne() {
  		return c
  	}
  	if c.IsInfinity() {
  		c.x.SetZero()
  		c.y.SetOne()
  		c.z.SetZero()
  		c.t.SetZero()
  		return c
  	}
  	zInv := newGFp2(pool).Invert(c.z, pool)
  	t := newGFp2(pool).Mul(c.y, zInv, pool)
  	zInv2 := newGFp2(pool).Square(zInv, pool)
  	c.y.Mul(t, zInv2, pool)
  	t.Mul(c.x, zInv2, pool)
  	c.x.Set(t)
  	c.z.SetOne()
  	c.t.SetOne()
  
  	zInv.Put(pool)
  	t.Put(pool)
  	zInv2.Put(pool)
  
  	return c
  }
docs: // MakeAffine converts c to affine form and returns c. If c is ∞, then it sets
  // c to 0 : 1 : 0.