 #include <omp.h>
 #endif
 
-#include "inverseIndex.h"
-#include "kSizeSortedMap.h"
+#include "inverseIndexCuda.h"
+// #include "kSizeSortedMap.h"
 
 
-class sort_map {
-  public:
-    size_t key;
-    size_t val;
-};
+// class sort_map {
+//   public:
+//     size_t key;
+//     size_t val;
+// };
 
-bool mapSortDescByValue(const sort_map& a, const sort_map& b) {
-        return a.val > b.val;
-};
+// bool mapSortDescByValue(const sort_map& a, const sort_map& b) {
+//         return a.val > b.val;
+// };
 
 InverseIndexCuda::InverseIndexCuda(size_t pNumberOfHashFunctions, size_t pShingleSize,
                     size_t pNumberOfCores, size_t pChunkSize,

    int maxBlocks = 65535;
    cudaDeviceProp prop;
    int whichDevice;
    cudeGetDevice(&whichDevice);
    cudaGetDeviceProperties(&prop, whichDevice)
    if (pRawData->size() > maxBlocks) {
        for (size_t i = 0; i < pRawData->size(); ++i) {
            if (mNumberOfHashFunctions > prop.maxThreadsPerBlock){
                for (size_t j = 0; j < mNumberOfHashFunctions; ++j) {
                    
                }
            }
            
        }
    } else {
        if (mNumberOfHashFunctions > prop.maxThreadsPerBlock) {
       
        } else {
            fit<<<pRawData->size(), mNumberOfHashFunctions, 0, stream>();
        }
        
    }
}

neighborhood* InverseIndexCuda::kneighbors(const umap_uniqueElement* pSignaturesMap, 

    mPruneInverseIndexAfterInstance = pPruneInverseIndexAfterInstance;
    mRemoveHashFunctionWithLessEntriesAs = pRemoveHashFunctionWithLessEntriesAs;
    mHashAlgorithm = pHashAlgorithm;
    // mSignatureStorage = new umap_uniqueElement();
    // mHash = new Hash();
    mBlockSize = pBlockSize;
    mShingle = pShingle;
    size_t maximalFeatures = 5000;
