NTrace
GPU ray tracing framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Sort.hpp File Reference
#include "base/Array.hpp"

Go to the source code of this file.

Namespaces

 FW
 Scene class declarations.
 

Macros

#define FW_SORT(PTR, NUM, TYPE, COMPARE)   FW_SORT_IMPL(PTR, NUM, TYPE, COMPARE, false)
 
#define FW_SORT_ARRAY(ARRAY, TYPE, COMPARE)   FW_SORT_IMPL(ARRAY.getPtr(), ARRAY.getSize(), TYPE, COMPARE, false)
 
#define FW_SORT_SUBARRAY(ARRAY, START, END, TYPE, COMPARE)   FW_SORT_IMPL(ARRAY.getPtr(START), (END) - (START), TYPE, COMPARE, false)
 
#define FW_SORT_MULTICORE(PTR, NUM, TYPE, COMPARE)   FW_SORT_IMPL(PTR, NUM, TYPE, COMPARE, true)
 
#define FW_SORT_ARRAY_MULTICORE(ARRAY, TYPE, COMPARE)   FW_SORT_IMPL(ARRAY.getPtr(), ARRAY.getSize(), TYPE, COMPARE, true)
 
#define FW_SORT_SUBARRAY_MULTICORE(ARRAY, START, END, TYPE, COMPARE)   FW_SORT_IMPL(ARRAY.getPtr(START), (END) - (START), TYPE, COMPARE, true)
 
#define FW_SORT_IMPL(PTR, NUM, TYPE, COMPARE, MULTICORE)
 

Typedefs

typedef bool(* FW::SortCompareFunc )(void *data, int idxA, int idxB)
 
typedef void(* FW::SortSwapFunc )(void *data, int idxA, int idxB)
 

Functions

void FW::sort (void *data, int start, int end, SortCompareFunc compareFunc, SortSwapFunc swapFunc, bool multicore=false)
 
template<class T >
bool FW::sortDefaultCompare (void *data, int idxA, int idxB)
 
template<class T >
void FW::sortDefaultSwap (void *data, int idxA, int idxB)
 
template<class T >
void FW::sort (T *data, int num, SortCompareFunc compareFunc=sortDefaultCompare< T >, SortSwapFunc swapFunc=sortDefaultSwap< T >, bool multicore=false)
 
template<class T >
void FW::sort (Array< T > &data, SortCompareFunc compareFunc=sortDefaultCompare< T >, SortSwapFunc swapFunc=sortDefaultSwap< T >, bool multicore=false)
 
template<class T >
void FW::sort (Array< T > &data, int start, int end, SortCompareFunc compareFunc=sortDefaultCompare< T >, SortSwapFunc swapFunc=sortDefaultSwap< T >, bool multicore=false)
 
int FW::compareU32 (void *data, int idxA, int idxB)
 
void FW::swapU32 (void *data, int idxA, int idxB)
 
int FW::compareU64 (void *data, int idxA, int idxB)
 
void FW::swapU64 (void *data, int idxA, int idxB)
 
int FW::compareS32 (void *data, int idxA, int idxB)
 
void FW::swapS32 (void *data, int idxA, int idxB)
 
int FW::compareS64 (void *data, int idxA, int idxB)
 
void FW::swapS64 (void *data, int idxA, int idxB)
 
int FW::compareF32 (void *data, int idxA, int idxB)
 
void FW::swapF32 (void *data, int idxA, int idxB)
 
int FW::compareF64 (void *data, int idxA, int idxB)
 
void FW::swapF64 (void *data, int idxA, int idxB)
 

Macro Definition Documentation

#define FW_SORT (   PTR,
  NUM,
  TYPE,
  COMPARE 
)    FW_SORT_IMPL(PTR, NUM, TYPE, COMPARE, false)

Definition at line 102 of file Sort.hpp.

#define FW_SORT_ARRAY (   ARRAY,
  TYPE,
  COMPARE 
)    FW_SORT_IMPL(ARRAY.getPtr(), ARRAY.getSize(), TYPE, COMPARE, false)

Definition at line 103 of file Sort.hpp.

#define FW_SORT_ARRAY_MULTICORE (   ARRAY,
  TYPE,
  COMPARE 
)    FW_SORT_IMPL(ARRAY.getPtr(), ARRAY.getSize(), TYPE, COMPARE, true)

Definition at line 107 of file Sort.hpp.

#define FW_SORT_IMPL (   PTR,
  NUM,
  TYPE,
  COMPARE,
  MULTICORE 
)
Value:
{ \
struct SortLambda \
{ \
static bool compareFunc(void* data, int idxA, int idxB) \
{ \
TYPE& a = ((TYPE*)data)[idxA]; \
TYPE& b = ((TYPE*)data)[idxB]; \
return COMPARE; \
} \
}; \
FW::sort(PTR, NUM, SortLambda::compareFunc, FW::sortDefaultSwap<TYPE>, MULTICORE); \
}
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void unsigned int CUstream hStream const CUDA_MEMCPY2D CUstream hStream CUdeviceptr unsigned char unsigned int N CUdeviceptr unsigned int unsigned int N CUdeviceptr unsigned int unsigned short unsigned int unsigned int Height CUarray const CUDA_ARRAY_DESCRIPTOR pAllocateArray CUarray const CUDA_ARRAY3D_DESCRIPTOR pAllocateArray unsigned int CUtexref CUdeviceptr unsigned int bytes CUcontext unsigned int CUdevice device GLenum texture GLenum GLuint buffer GLenum GLuint renderbuffer GLenum GLsizeiptr const GLvoid * data
Definition: DLLImports.inl:319
void sort(Array< T > &data, int start, int end, SortCompareFunc compareFunc=sortDefaultCompare< T >, SortSwapFunc swapFunc=sortDefaultSwap< T >, bool multicore=false)
Definition: Sort.hpp:135

Definition at line 149 of file Sort.hpp.

#define FW_SORT_MULTICORE (   PTR,
  NUM,
  TYPE,
  COMPARE 
)    FW_SORT_IMPL(PTR, NUM, TYPE, COMPARE, true)

Definition at line 106 of file Sort.hpp.

#define FW_SORT_SUBARRAY (   ARRAY,
  START,
  END,
  TYPE,
  COMPARE 
)    FW_SORT_IMPL(ARRAY.getPtr(START), (END) - (START), TYPE, COMPARE, false)

Definition at line 104 of file Sort.hpp.

#define FW_SORT_SUBARRAY_MULTICORE (   ARRAY,
  START,
  END,
  TYPE,
  COMPARE 
)    FW_SORT_IMPL(ARRAY.getPtr(START), (END) - (START), TYPE, COMPARE, true)

Definition at line 108 of file Sort.hpp.