nlib
SimdAlgorithm.h File Reference

Defines the function templates that handle the character strings and byte arrays used in SIMD instructions. More...

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

Go to the source code of this file.

Namespaces

 nn::nlib
 Implements stream-related classes usually commonly used, various containers, and other gadget classes. nlib_ns is an alias.
 
 nn::nlib::simd
 Implements the classes and functions for SIMD computations on integers and single-precision, floating-point, numbers.
 

Functions

template<size_t NumElem>
void nn::nlib::simd::MergeSortUint32A16 (uint32_t *data) noexcept
 Uses SIMD to merge and sort 32-bit unsigned integer strings in the ascending order. More...
 
errno_t nn::nlib::simd::MergeSortUint32A16 (uint32_t *data, size_t n) noexcept
 Uses SIMD to merge and sort 32-bit unsigned integer strings in the ascending order. More...
 
template<class PRED >
const void * nn::nlib::simd::nlib_memchr_pred (const void *s, PRED pred, size_t n) noexcept
 A function template for examining the bytes in byte strings using SIMD instructions. More...
 
template<class PRED >
const void * nn::nlib::simd::nlib_memchr_pred_not (const void *s, PRED pred, size_t n) noexcept
 A function template for examining the bytes in byte strings using SIMD instructions. More...
 
i128 nn::nlib::simd::IsAlpha (i128 c) noexcept
 Masks alphabetic letters in c.
 
i128 nn::nlib::simd::IsDigit (i128 c) noexcept
 Masks the characters 0 through 9 in c.
 
i128 nn::nlib::simd::IsAlnum (i128 c) noexcept
 Masks alphabetic letters or the characters 0 through 9 in c.
 
i128 nn::nlib::simd::IsSpace (i128 c) noexcept
 Masks space characters (0x20, 0x09, 0x0A, 0x0D) in c.
 
i128 nn::nlib::simd::IsXdigit (i128 c) noexcept
 Masks hexadecimal characters in c.
 
template<class T , class Compare >
errno_t nn::nlib::simd::KeyIdxSortN (T **dst, T *const *src, size_t n, Compare comp) noexcept
 A function that performs high-speed sorts by resolving the sort of the object pointers to a sort of 32-bit non-negative integers. Sorts the column of pointers to T. More...
 
template<class T >
errno_t nn::nlib::simd::KeyIdxSortN (T **dst, T *const *src, size_t n) noexcept
 Executes 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
 Allocates memory internally and executes 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
 Executes KeyIdxSort(first, last, std::less<T>()).
 

Detailed Description

Defines the function templates that handle the character strings and byte arrays used in SIMD instructions.

Definition in file SimdAlgorithm.h.