 		while exponent > 1
 		{
 			if exponent & 1 != 0 { y = y.multiplyingBy(base) }
-
 			base = base.squared()
 			exponent >>= 1
 		}

	{
		if a.isZero() { return b }

		var a = a
		var b = b
		var k = 0

		while a.isEven() && b.isEven()
		{
			a = a >> 1
			b = b >> 1
			k += 1
		}



			(mulHi, mulLo) = l.multipliedFullWidth(by: multiplicand)

			if mulHi != 0 { self.addTwoLimb(mulLo, mulHi, padding: i) }
			else {          self.addOneLimb(mulLo,        padding: i) }
		}
	}

