00001 // File: $Id$ 00002 // Author: John Wu <John.Wu at ACM.org> 00003 // Copyright 2008-2011 the Regents of the University of California 00004 #ifndef IBIS_UTILIDOR_H 00005 #define IBIS_UTILIDOR_H 00006 00019 #include "array_t.h" // array_t 00020 00021 namespace ibis { 00022 typedef array_t< rid_t > RIDSet; // RIDSet 00023 00024 namespace util { 00025 00029 void FASTBIT_CXX_DLLSPEC sortRIDs(ibis::RIDSet&); 00031 void FASTBIT_CXX_DLLSPEC sortRIDsq(ibis::RIDSet&, uint32_t, uint32_t); 00033 void FASTBIT_CXX_DLLSPEC sortRIDsi(ibis::RIDSet&, uint32_t, uint32_t); 00035 00037 template <typename T> 00038 void FASTBIT_CXX_DLLSPEC reorder(array_t<T> &arr, 00039 const array_t<uint32_t> &ind); 00040 void FASTBIT_CXX_DLLSPEC reorder(std::vector<std::string> &arr, 00041 const array_t<uint32_t> &ind); 00043 template <typename T> 00044 void FASTBIT_CXX_DLLSPEC reorder(array_t<T*> &arr, 00045 const array_t<uint32_t> &ind); 00049 template <typename T1, typename T2> 00050 void FASTBIT_CXX_DLLSPEC sortAll(array_t<T1>& arr1, array_t<T2>& arr2); 00051 00053 int64_t FASTBIT_CXX_DLLSPEC 00054 sortMerge(std::vector<std::string>& valR, array_t<uint32_t>& indR, 00055 std::vector<std::string>& valS, array_t<uint32_t>& indS); 00058 template <typename T> int64_t FASTBIT_CXX_DLLSPEC 00059 sortMerge(array_t<T>& valR, array_t<uint32_t>& indR, 00060 array_t<T>& valS, array_t<uint32_t>& indS); 00064 template <typename T> int64_t FASTBIT_CXX_DLLSPEC 00065 sortMerge(array_t<T>& valR, array_t<uint32_t>& indR, 00066 array_t<T>& valS, array_t<uint32_t>& indS, 00067 double delta1, double delta2); 00068 00071 template <typename T1, typename T2> 00072 void FASTBIT_CXX_DLLSPEC sortKeys(array_t<T1>& keys, array_t<T2>& vals); 00074 void FASTBIT_CXX_DLLSPEC sortStrings(std::vector<std::string>& keys, 00075 array_t<uint32_t>& vals); 00077 void FASTBIT_CXX_DLLSPEC sortStrings(array_t<const char*>& keys, 00078 array_t<uint32_t>& vals); 00079 } // namespace util 00080 } // namespace ibis 00081 #endif 00082
![]() |