private int[] pad_carry(int[] digits)
    {
        int[] new_digits = new int[digits.length+1];
        new_digits[0] = 1;
        for(int i=0;i<digits.length;i++)
            new_digits[i+1] = digits[i];
        return new_digits;
    }