addition + doubling implemented