code: func (curve *KoblitzCurve) getDoublingPoints() [][3]fieldVal {
  	doublingPoints := make([][3]fieldVal, curve.BitSize)
  
  	// initialize px, py, pz to the Jacobian coordinates for the base point
  	px, py := curve.bigAffineToField(curve.Gx, curve.Gy)
  	pz := new(fieldVal).SetInt(1)
  	for i := 0; i < curve.BitSize; i++ {
  		doublingPoints[i] = [3]fieldVal{*px, *py, *pz}
  		// P = 2*P
  		curve.doubleJacobian(px, py, pz, px, py, pz)
  	}
  	return doublingPoints
  }
docs: // getDoublingPoints returns all the possible G^(2^i) for i in
  // 0..n-1 where n is the curve's bit size (256 in the case of secp256k1)
  // the coordinates are recorded as Jacobian coordinates.