Go to the documentation of this file.00001
00002
00003
00004 #ifndef IBIS_UTILIDOR_H
00005 #define IBIS_UTILIDOR_H
00006
00019 #include "array_t.h"
00020
00021 namespace ibis {
00022 typedef array_t< rid_t > 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 }
00080 }
00081 #endif
00082