MTToolBox
0.2.10
|
ユーティリティ関数群 [詳解]
#include <iostream>
#include <iomanip>
#include <sstream>
#include <inttypes.h>
#include <stdint.h>
#include <stdexcept>
#include <NTL/GF2X.h>
名前空間 | |
MTToolBox | |
MTToolBox の名前空間 | |
関数 | |
static int | MTToolBox::count_bit (uint16_t x) |
1 の個数を数える [詳解] | |
static int | MTToolBox::count_bit (uint32_t x) |
1 の個数を数える [詳解] | |
static int | MTToolBox::count_bit (uint64_t x) |
1 の個数を数える [詳解] | |
static uint32_t | MTToolBox::reverse_bit (uint32_t x) |
ビットを反転する [詳解] | |
static uint64_t | MTToolBox::reverse_bit (uint64_t x) |
ビットを反転する [詳解] | |
template<typename T > | |
int | MTToolBox::bit_size () |
T のビットサイズを返す。 [詳解] | |
static void | MTToolBox::UNUSED_VARIABLE (void *x) |
使用しない変数のワーニングを止める [詳解] | |
template<typename T > | |
T | MTToolBox::floor2p (T n) |
n を越えない最大の2のべき乗を返す。 [詳解] | |
static void | MTToolBox::print_binary (std::ostream &os, NTL::GF2X &poly, bool breakline=true) |
出力ストリーム os に多項式 poly を01の文字列で出力する。 [詳解] | |
template<typename T > | |
int | MTToolBox::get_range (T input, int start, int end) |
input を start と end の間の数に変換する。 [詳解] | |
template<typename T > | |
void | MTToolBox::fill_table (T dist_tbl[], T src_tbl[], int size) |
GF(2)ベクトルのパラメータテーブルから、より高速で冗長なルックアップテーブルを作成する。 [詳解] | |
static int | MTToolBox::calc_1pos (uint16_t x) |
入力をビット列とみなして最上位の1の位置を0とした最も右側の(下位の)1の位置を返す。 [詳解] | |
static int | MTToolBox::calc_1pos (uint32_t x) |
入力をビット列とみなして最上位の1の位置を0とした最も右側の(下位の)1の位置を返す。 [詳解] | |
static int | MTToolBox::calc_1pos (uint64_t x) |
入力をビット列とみなして最上位の1の位置を0とした最も右側の(下位の)1の位置を返す。 [詳解] | |
static void | MTToolBox::LCM (NTL::GF2X &lcm, const NTL::GF2X &x, const NTL::GF2X &y) |
多項式の最小公倍数を求める。 [詳解] | |
template<typename U > | |
static void | MTToolBox::toGF2Vec (NTL::vec_GF2 &result, U value) |
符号なし整数をGF(2)ベクトルに変換する。 上位ビットがベクトルの初めの要素になる。(デバッグの時見やすいように) [詳解] | |
template<typename U > | |
U | MTToolBox::getOne () |
その型の1を返す SIMD型は、そのSIMD型のファイルでこのテンプレートを特殊化する。 [詳解] | |
template<typename U > | |
void | MTToolBox::setZero (U &x) |
ゼロをセットする SIMD型は、そのSIMD型のファイルでこのテンプレートを特殊化する。 [詳解] | |
template<typename U > | |
unsigned int | MTToolBox::getBitOfPos (U bits, int pos) |
特定位置のビットを求める SIMD型は、そのSIMD型のファイルでこのテンプレートを特殊化する。 [詳解] | |
template<typename U > | |
void | MTToolBox::setBitOfPos (U *bits, int pos, unsigned int b) |
変数の指定位置のビットを1または0にセットする SIMD型は、そのSIMD型のファイルでこのテンプレートを特殊化する。 [詳解] | |
template<typename U > | |
static U | MTToolBox::fromGF2Vec (NTL::vec_GF2 &value) |
GF(2)ベクトルを符号なし整数に変換する。 上位ビットがベクトルの初めの要素になる。(デバッグの時見やすいように) [詳解] | |
template<typename U > | |
bool | MTToolBox::isZero (U x) |
ゼロかどうか、判定する。 SIMD型は、そのSIMD型のファイルでこのテンプレートを特殊化する。 [詳解] | |
template<typename U , typename V > | |
U | MTToolBox::convert (V x) |
V 型をU型に変換する SIMD型は、そのSIMD型のファイルでこのテンプレートを特殊化する。 [詳解] | |
ユーティリティ関数群
Copyright (C) 2013, 2016 Mutsuo Saito, Makoto Matsumoto and Hiroshima University. All rights reserved.
The 3-clause BSD License is applied to this software, see LICENSE.txt