2023-07-01から1ヶ月間の記事一覧
最近のC++では、constexprを使って手軽にコンパイル時計算ができます。 C++20ではstd::vectorやstd::stringなどの動的なデータ構造もconstexpr指定されたため、さらに利便性が高まりました。 コンパイル時に多少の探索を行って最適な値を発見して埋め込む、…
ビット符号なし乗算器は、ビットの符号なし整数二つを受け取り、ビットの符号なし整数を出力する回路です。 ビット乗算器は、部分積を作る個のANDゲートと個の全加算器(full adder, FA)を組み合わせて作ることができます。 この構成で全加算器が個必要なの…
倍精度浮動小数点数doubleは53 bitしか精度がありません。 これを超える精度で計算したいけれど多倍長演算は遅いので避けたい、というときに役立つのがdouble-double(疑似四倍精度)です。 double-doubleはその名の通り、doubleを二つ組み合わせることで高…
何年か前に、高速な完全精度(すべての入力に対して最近接丸めを行う) expf 関数の作り方を明らかにしました(高速な完全精度 expf 関数の作り方 - よーる)。 その中で、を求める際に使うは、倍精度浮動小数点数の53bit精度ですら精度が不足しているので、…