nlib
SimdAlgorithm.h ファイル

SIMD命令を使って文字列やバイト列を扱う関数テンプレートが定義されています。 [詳解]

#include <algorithm>
#include <functional>
#include "nn/nlib/simd/SimdInt.h"
#include "nn/nlib/DynamicAlignedStorage.h"

[ソースコード]

名前空間

 nn::nlib
 共通して使われることの多いストリーム関連のクラス群や各種コンテナ、及びガシェットクラスが実装されています。nlib_nsはエイリアスです。
 
 nn::nlib::simd
 整数、単精度浮動小数点数のSIMD演算を行うためのクラスや関数が実装されています。
 

関数

template<size_t NumElem>
void nn::nlib::simd::MergeSortUint32A16 (uint32_t *data) noexcept
 SIMDを利用して32bit符号なし整数の並びを昇順にマージソートします。 [詳解]
 
errno_t nn::nlib::simd::MergeSortUint32A16 (uint32_t *data, size_t n) noexcept
 SIMDを利用して32bit符号なし整数の並びを昇順にマージソートします。 [詳解]
 
template<class PRED >
const void * nn::nlib::simd::nlib_memchr_pred (const void *s, PRED pred, size_t n) noexcept
 バイト列内のバイトの検査をSIMD命令を使って行うための関数テンプレートです。 [詳解]
 
template<class PRED >
const void * nn::nlib::simd::nlib_memchr_pred_not (const void *s, PRED pred, size_t n) noexcept
 バイト列内のバイトの検査をSIMD命令を使って行うための関数テンプレートです。 [詳解]
 
i128 nn::nlib::simd::IsAlpha (i128 c) noexcept
 c 内のアルファベットをマスクします。
 
i128 nn::nlib::simd::IsDigit (i128 c) noexcept
 c 内の'0'-'9'の文字をマスクします。
 
i128 nn::nlib::simd::IsAlnum (i128 c) noexcept
 c 内のアルファベットか'0'-'9'の文字をマスクします。
 
i128 nn::nlib::simd::IsSpace (i128 c) noexcept
 c 内の空白文字(0x20, 0x09, 0x0A, 0x0D)をマスクします。
 
i128 nn::nlib::simd::IsXdigit (i128 c) noexcept
 c 内の16進数の文字をマスクします。
 
template<class T , class Compare >
errno_t nn::nlib::simd::KeyIdxSortN (T **dst, T *const *src, size_t n, Compare comp) noexcept
 オブジェクト(へのポインタ)のソートを32bit非負整数のソートに帰着させることにより、高速なソートを行う関数です。Tへのポインタ列をソートします。 [詳解]
 
template<class T >
errno_t nn::nlib::simd::KeyIdxSortN (T **dst, T *const *src, size_t n) noexcept
 KeyIdxSortN(dst, src, n, std::less<T>())を実行します。
 
template<class T , class Compare >
errno_t nn::nlib::simd::KeyIdxSort (T **first, T **last, Compare comp) noexcept
 内部でメモリを確保してKeyIdxSortN(T** dst, T* const* src, size_t n, Compare comp)を実行します。
 
template<class T >
errno_t nn::nlib::simd::KeyIdxSort (T **first, T **last) noexcept
 KeyIdxSort(first, last, std::less<T>())を実行します。
 

詳解

SIMD命令を使って文字列やバイト列を扱う関数テンプレートが定義されています。

SimdAlgorithm.h に定義があります。