Grok 12.0.1
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
algo-inl.h File Reference
#include <stdint.h>
#include <algorithm>
#include <functional>
#include <vector>
#include "hwy/base.h"
#include "hwy/contrib/sort/vqsort.h"
#include "hwy/print.h"
#include "hwy/aligned_allocator.h"
#include "hwy/contrib/sort/traits-inl.h"
#include "hwy/contrib/sort/traits128-inl.h"
#include "hwy/contrib/sort/vqsort-inl.h"

Go to the source code of this file.

Classes

class  hwy::InputStats< T >
 
class  hwy::HWY_NAMESPACE::Xorshift128Plus
 
struct  hwy::HWY_NAMESPACE::SharedState
 

Namespaces

namespace  hwy
 
namespace  hwy::HWY_NAMESPACE
 

Macros

#define HAVE_AVX2SORT   0
 
#define HAVE_IPS4O   0
 
#define HAVE_PARALLEL_IPS4O   (HAVE_IPS4O && 1)
 
#define HAVE_PDQSORT   0
 
#define HAVE_SORT512   0
 
#define HAVE_VXSORT   0
 
#define HAVE_INTEL   0
 
#define VXSORT_AVX3   1
 
#define HIGHWAY_HWY_CONTRIB_SORT_ALGO_TOGGLE
 

Typedefs

template<typename T >
using hwy::HWY_NAMESPACE::OtherOrder = detail::OrderDescending<T>
 

Enumerations

enum class  hwy::Dist { hwy::kUniform8 , hwy::kUniform16 , hwy::kUniform32 }
 
enum class  hwy::Algo {
  hwy::kStdSort , hwy::kStdSelect , hwy::kStdPartialSort , hwy::kVQSort ,
  hwy::kVQPartialSort , hwy::kVQSelect , hwy::kHeapSort , hwy::kHeapPartialSort ,
  hwy::kHeapSelect
}
 

Functions

static std::vector< Disthwy::AllDist ()
 
static const char * hwy::DistName (Dist dist)
 
static const char * hwy::AlgoName (Algo algo)
 
 HWY_BEFORE_NAMESPACE ()
 
template<class D , class VU64 , HWY_IF_NOT_FLOAT_D(D) >
Vec< D > hwy::HWY_NAMESPACE::RandomValues (D d, VU64 &s0, VU64 &s1, const VU64 mask)
 
template<class DF , class VU64 , HWY_IF_FLOAT_D(DF) >
Vec< DF > hwy::HWY_NAMESPACE::RandomValues (DF df, VU64 &s0, VU64 &s1, const VU64 mask)
 
template<class DU64 >
Vec< DU64 > hwy::HWY_NAMESPACE::MaskForDist (DU64 du64, const Dist dist, size_t sizeof_t)
 
template<typename T >
InputStats< T > hwy::HWY_NAMESPACE::GenerateInput (const Dist dist, T *v, size_t num)
 
template<class Order , typename KeyType , HWY_IF_NOT_T_SIZE(KeyType, 16) >
void hwy::HWY_NAMESPACE::CallHeapPartialSort (KeyType *HWY_RESTRICT keys, const size_t num_keys, const size_t k)
 
template<class Order , typename KeyType , HWY_IF_NOT_T_SIZE(KeyType, 16) >
void hwy::HWY_NAMESPACE::CallHeapSelect (KeyType *HWY_RESTRICT keys, const size_t num_keys, const size_t k)
 
template<class Order , typename KeyType , HWY_IF_NOT_T_SIZE(KeyType, 16) >
void hwy::HWY_NAMESPACE::CallHeapSort (KeyType *HWY_RESTRICT keys, const size_t num_keys)
 
template<class Order , typename KeyType >
void hwy::HWY_NAMESPACE::Run (Algo algo, KeyType *HWY_RESTRICT inout, size_t num, SharedState &shared, size_t, size_t k=0)
 
 HWY_AFTER_NAMESPACE ()
 

Macro Definition Documentation

◆ HAVE_AVX2SORT

#define HAVE_AVX2SORT   0

◆ HAVE_INTEL

#define HAVE_INTEL   0

◆ HAVE_IPS4O

#define HAVE_IPS4O   0

◆ HAVE_PARALLEL_IPS4O

#define HAVE_PARALLEL_IPS4O   (HAVE_IPS4O && 1)

◆ HAVE_PDQSORT

#define HAVE_PDQSORT   0

◆ HAVE_SORT512

#define HAVE_SORT512   0

◆ HAVE_VXSORT

#define HAVE_VXSORT   0

◆ HIGHWAY_HWY_CONTRIB_SORT_ALGO_TOGGLE

#define HIGHWAY_HWY_CONTRIB_SORT_ALGO_TOGGLE

◆ VXSORT_AVX3

#define VXSORT_AVX3   1

Function Documentation

◆ HWY_AFTER_NAMESPACE()

HWY_AFTER_NAMESPACE ( )

◆ HWY_BEFORE_NAMESPACE()

HWY_BEFORE_NAMESPACE ( )