名前空間
変種
操作

数値演算ライブラリ

提供: cppreference.com
< cpp

C++ の数値演算ライブラリには一般的な数学関数と型、最適化された数値配列および乱数生成のサポートが含まれています。

目次

[編集] 数学関数と型

[編集] 一般的な数学関数

ヘッダ <cmath>std::fabsstd::sqrtstd::sin などの標準 C ライブラリの数学関数を提供します。

[編集] 数学の特殊関数 (C++17以上)

ヘッダ <cmath>std::betastd::hermitestd::cyl_bessel_i などのいくつかの数学の特殊関数も提供します。

[編集] 数学定数 (C++20以上)

ヘッダ <numbers>std::numbers::pistd::numbers::sqrt2 などのいくつかの数学定数を提供します。

[編集] 複素数算術

ヘッダ <complex> で定義
複素数型
(クラステンプレート)

[編集] 数値配列

ヘッダ <valarray> で定義
数値配列、配列マスク、配列スライス
(クラステンプレート)

[編集] 数値演算アルゴリズム

ヘッダ <numeric> は以下の数値演算アルゴリズムを提供します。

[編集] 因数演算

ヘッダ <numeric> で定義
(C++17)
2つの整数の最大公約数を返す constexpr 関数テンプレート
(関数テンプレート) [edit]
(C++17)
2つの整数の最小公倍数を返す constexpr 関数テンプレート
(関数テンプレート) [edit]

[編集] 補間演算

ヘッダ <numeric> で定義
(C++20)
2つの数値またはポインタの中点
(関数テンプレート) [edit]
ヘッダ <cmath> で定義
(C++20)
線形補間関数
(関数) [edit]

[編集] 数値演算

ヘッダ <numeric> で定義
(C++11)
開始値を連続的にインクリメントして指定範囲を埋めます
(関数テンプレート) [edit]
指定範囲の要素を合計します
(関数テンプレート) [edit]
(C++17)
std::accumulate と同様ですが、計算順序は不定です
(関数テンプレート) [edit]
不定の計算順序で、関数オブジェクトを適用した結果を reduce します
(関数テンプレート) [edit]
2つの範囲の要素の内積を計算します
(関数テンプレート) [edit]
指定範囲の隣接する要素間の差を計算します
(関数テンプレート) [edit]
指定範囲の要素の部分和を計算します
(関数テンプレート) [edit]
std::partial_sum と同様ですが、計算順序は不定です
(関数テンプレート) [edit]
std::inclusive_scan と同様ですが、 i 番目の合計に i 番目の要素が含まれません
(関数テンプレート) [edit]
関数オブジェクトを適用した結果に対して inclusive scan を計算します
(関数テンプレート) [edit]
関数オブジェクトを適用した結果に対して exclusive scan を計算します
(関数テンプレート) [edit]

[編集] その他

[編集] 擬似乱数生成

ヘッダ <random>擬似乱数生成および数値分布を定義します。 ヘッダ <cstdlib> には std::srand および std::rand による C スタイルの乱数生成も含まれます。

[編集] コンパイル時有理数算術 (C++11以上)

ヘッダ <ratio>コンパイル時有理数を格納および操作するための型と関数を提供します。

[編集] 浮動小数点環境 (C++11以上)

ヘッダ <cfenv> はオーバーフローやゼロ除算などの浮動小数点の例外的な状態に関するフラグと関数を定義します。

[編集] ビット操作 (C++20以上)

ヘッダ <bit> は個々のビットおよびビットシーケンスをアクセス、操作、および処理するためのいくつかの関数テンプレートを提供します。

ヘッダ <bit> で定義
名前空間 std で定義
(C++20)
ある型のオブジェクト表現を別の型のオブジェクト表現として再解釈します
(関数テンプレート) [edit]
数値が2の整数乗かどうか調べます
(関数テンプレート) [edit]
(C++20)
指定された値より小さくない最も小さな2の整数乗を求めます
(関数テンプレート) [edit]
(C++20)
指定された値より大きくない最も大きな2の整数乗を求めます
(関数テンプレート) [edit]
(C++20)
指定された値を表現するために必要な最小のビット数を求めます
(関数テンプレート) [edit]
(C++20)
ビット単位の左ローテートの結果を計算します
(関数テンプレート) [edit]
(C++20)
ビット単位の右ローテートの結果を計算します
(関数テンプレート) [edit]
最上位ビットから連続する0のビットの数を数えます
(関数テンプレート) [edit]
最上位ビットから連続する1のビットの数を数えます
(関数テンプレート) [edit]
最下位ビットから連続する0のビットの数を数えます
(関数テンプレート) [edit]
最下位ビットから連続する1のビットの数を数えます
(関数テンプレート) [edit]
(C++20)
符号なし整数の1のビットの数を数えます
(関数テンプレート) [edit]
(C++20)
スカラー型のエンディアンを表します
(列挙) [edit]

[編集] 関連項目

数値演算C言語リファレンス