Все операции  non-member integer перегружены для встроенных в целые типы в <boost/multiprecision/integer.hpp>. Если эти операции требуют временного повышения точности (например, для Powm), то, если нет встроенного типа, будет использоваться  cpp_int соответствующей точности.
Некоторые из этих функций являются тривиальными, другие используют внутренние компоненты компилятора (если таковые имеются) для обеспечения оптимальной оценки.
Перегруженными функциями являются:
template <class Integer, class I2>
Integer& multiply(Integer& result, const I2& a, const I2& b);
Умножает два значения I2, чтобы получить более широкий результат Integer.
Возвращает  результат  = a * b без перелива или потери точности в умножении.
template <class Integer, class I2>
Integer& add(Integer& result, const I2& a, const I2& b);
Добавляет два значения I2, чтобы получить более широкий результат Integer.
Возвращает  результат  = a + b без перелива или потери точности в дополнении.
template <class Integer, class I2>
Integer& subtract(Integer& result, const I2& a, const I2& b);
Вычитает два значения I2, чтобы получить более широкий результат Integer.
Возвращает  результат  = a - b без перелива или потери точности в вычитании.
template <class Integer>
Integer powm(const Integer& b, const Integer& p, const Integer& m);
Возвращает bp % m.
template <class Integer>
void divide_qr(const Integer& x, const Integer& y, Integer& q, Integer& r);
Наборы q = x / y и r =%y.
template <class Integer1, class Integer2>
Integer2 integer_modulus(const Integer1& x, Integer2 val);
Возврат x % val;
template <class Integer>
unsigned lsb(const Integer& x);
Возвращает (нулевой) индекс наименее значимого бита x.
Выбрасывает std::domain_error, если x <= 0.
template <class Integer>
unsigned msb(const Integer& x);
Возвращает (нулевой) индекс наименее значимого бита x.
Выбрасывает std::domain_error, если x <= 0.
template <class Integer>
bool bit_test(const Integer& val, unsigned index);
Возвращает  истинное , если бит индекс  установлен в вал.
template <class Integer>
Integer& bit_set(Integer& val, unsigned index);
Устанавливает бит index в val.
template <class Integer>
Integer& bit_unset(Integer& val, unsigned index);
Отключает бит index в val.
template <class Integer>
Integer& bit_flip(Integer& val, unsigned index);
Переверните бит index в val.
template <class Integer>
Integer sqrt(const Integer& x);
template <class Integer>
Integer sqrt(const Integer& x, Integer& r);
Возвращает целочисленный квадратный корень s x и устанавливает r на остаток x - s2.
template <class Engine>
bool miller_rabin_test(const number-or-expression-template-type& n, unsigned trials, Engine& gen);
bool miller_rabin_test(const number-or-expression-template-type& n, unsigned trials);
Обычные функции Миллера-Рабина в <boost/multiprecision/miller_rabin.hpp> определены с точки зрения вышеупомянутых общих операций, и поэтому одинаково хорошо функционируют для встроенных и многоточных типов.