utilidor.h
Go to the documentation of this file.
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 

Make It A Bit Faster
Contact us
Disclaimers
FastBit source code
FastBit mailing list archive