Библиотека числовых средств
Библиотека числовых средств C++ включает распространённые математические функции и типы, а также оптимизированные числовые массивы и средства генерации случайных чисел.
Математические функции и типы
Распространённые математические функции
Заголовок <cmath> предоставляет стандартные математические функции библиотеки C, такие как std::fabs, std::sqrt и std::sin.
Специальные математические функции (начиная с C++17)
Заголовок <cmath> также предоставляет несколько специальных математических функций, таких как std::beta, std::hermite и std::cyl_bessel_i.
Математические константы (начиная с C++20)
Заголовок <numbers> предоставляет несколько математических констант, например std::numbers::pi или std::numbers::sqrt2
Основные алгоритмы линейной алгебры (начиная с C++26)
Заголовок <linalg> предоставляет основные алгоритмы линейной алгебры, основанные на BLAS.
Типы для параллельной обработки данных (начиная с C++26)
Заголовок <simd> предоставляет переносимые типы для явного указания параллельной обработки данных и структурирования данных для более эффективного доступа SIMD.
Арифметика комплексных чисел
Определён в заголовке <complex> |
|
|---|---|
| тип комплексного числа (шаблон класса) |
|
Числовые массивы
Определён в заголовке <valarray> |
|
|---|---|
| числовые массивы, маски массивов и срезы массивов (шаблон класса) |
|
Числовые алгоритмы
Заголовок <numeric> предоставляет следующие числовые алгоритмы:
Операции с множителями (начиная с C++17)
Определён в заголовке <numeric> |
|
|---|---|
|
(C++17) | вычисляет наибольший общий делитель двух целых чисел (шаблон функции) |
|
(C++17) | вычисляет наименьшее общее кратное двух целых чисел (шаблон функции) |
Операции интерполяции (C++20)
Определён в заголовке <numeric> |
|
|---|---|
|
(C++20) | середина между двумя числами или указателями (шаблон функции) |
Определён в заголовке <cmath> |
|
|
(C++20) | функция линейной интерполяции (функция) |
Насыщающая арифметика (начиная с C++26)
Определён в заголовке <numeric> |
|
|---|---|
|
(C++26) | операция насыщаемого сложения двух целых чисел (шаблон функции) |
|
(C++26) | операция насыщаемого вычитания двух целых чисел (шаблон функции) |
|
(C++26) | операция насыщаемого умножения двух целых чисел (шаблон функции) |
|
(C++26) | операция насыщаемого деления двух целых чисел (шаблон функции) |
|
(C++26) | возвращает целочисленное значение, ограниченное диапазоном другого целочисленного типа (шаблон функции) |
Числовые операции
Определён в заголовке <numeric> |
|
|---|---|
|
(C++11) | заполняет диапазон последовательными приращениями от начального значения (шаблон функции и функциональный объект алгоритма) |
|
(C++23) | |
|
(C++23) | заполняет диапазон последовательными приращениями от начального значения (функциональный объект алгоритма) |
| суммирует элементы диапазона или сворачивает диапазон (шаблон функции) |
|
|
(C++17) | аналогичен std::accumulate, но выполняет операции не по порядку (шаблон функции) |
|
(C++17) | применяет вызываемый объект, а затем выполняет свёртку не по порядку (шаблон функции) |
| вычисляет скалярное произведение двух диапазонов элементов (шаблон функции) |
|
| вычисляет разности между соседними элементами диапазона (шаблон функции) |
|
| вычисляет частичные суммы элементов диапазона (шаблон функции) |
|
|
(C++17) | аналогичен std::partial_sum, включает iй входной элемент в iю сумму (шаблон функции) |
|
(C++17) | аналогичен std::partial_sum, исключает iй входной элемент из iй суммы (шаблон функции) |
|
(C++17) | применяет вызываемый объект, а затем вычисляет включительное сканирование (шаблон функции) |
|
(C++17) | применяет вызываемый объект, а затем вычисляет исключительное сканирование (шаблон функции) |
Разное
Генерация псевдослучайных чисел
Заголовок <random> определяет генераторы псевдослучайных чисел и числовые распределения. Заголовок <cstdlib> также включает генерацию случайных чисел в стиле C с помощью std::srand и std::rand.
Среда вычислений с плавающей точкой (начиная с C++11)
Заголовок <cfenv> определяет флаги и функции, связанные с исключительными состояниями при вычислениях с плавающей точкой, такими как переполнение и деление на ноль.
Операции с битами (начиная с C++20)
Заголовок <bit> предоставляет несколько шаблонов функций для доступа к отдельным битам и битовым последовательностям, их изменения и обработки. Порядок байтов (порядок следования байтов) скалярных типов можно проверить с помощью средства std::endian.
Целочисленная арифметика с проверкой (начиная с C++26)
Заголовок совместимости с C <stdckdint.h> предоставляет несколько шаблонов функций для целочисленной арифметики с проверкой.
Определён в заголовке <stdckdint.h> |
|
|---|---|
|
(C++26) | операция сложения двух целых чисел с проверкой (шаблон функции) |
|
(C++26) | операция вычитания двух целых чисел с проверкой (шаблон функции) |
|
(C++26) | операция умножения двух целых чисел с проверкой (шаблон функции) |
См. также
| Документация C по разделу Числовые средства |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric