Небольшой класс Large для работы с длинной арифметикой целых чисел. В качестве представления длинных чисел используется их значение в системе счисления с основанием
- Сложение за
$O(n)$ - Вычитание за
$O(n)$ - Умножение: для маленьких чисел внутри
__int128или за$O(nm)$ , для больших через FFT за$(n+m)log(n+m)$ . - Деление за
$O(mult(n, m))$ - Остаток от деления за
$O(div(n, m))$ - Возведение в степень P за
$O(\log{P} * mult(n, n))$ - Перевод в строку за
$O(n)$ - Инкремент и декремент за
$O(n)$ - Присваивание и инициализация, используя move-семантику
Также имеется 3 конструктора класса: из int64_t, std::string и по умолчанию, задающий 0.