Bit(i);

                    if (hBit != eBit) {
                        R = R.add(hBit ? this : neg);
                    }
                }

                return R;
            },
            add: function(b) {
                if (this.isInfinity()) return b;
                if (b.isInfinity()) return this;

                var u = b.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(b.z)).mod(this.curve.q);
                var v = b.x.toBigInteger().multiply(this.z).subtract(thi