From 879f437f0a4318544f9f7ea4d40ce61e288efb4b Mon Sep 17 00:00:00 2001 From: Martin Larralde <martin.larralde@embl.de> Date: Sat, 12 Jun 2021 04:37:49 +0200 Subject: [PATCH] Add `_utils.hpp` with relevant C++ code to compile without OpenMP --- pyfastani/_utils.cpp | 26 ++++++++++++++++++++++++++ pyfastani/_utils.hpp | 25 +++++++++++++++++++++++++ pyfastani/_utils.pxd | 17 +++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 pyfastani/_utils.cpp create mode 100644 pyfastani/_utils.hpp create mode 100644 pyfastani/_utils.pxd diff --git a/pyfastani/_utils.cpp b/pyfastani/_utils.cpp new file mode 100644 index 0000000..c3c37c4 --- /dev/null +++ b/pyfastani/_utils.cpp @@ -0,0 +1,26 @@ +#include <iostream> +#include <ctime> +#include <chrono> +#include <functional> + +#include "_utils.hpp" + + +skch::Map* new_map_with_result_vector( + const skch::Parameters &p, + const skch::Sketch &refsketch, + uint64_t &totalQueryFragments, + int queryno, + skch::MappingResultsVector_t &r +) { + auto fn = std::bind(skch::Map::insertL2ResultsToVec, std::ref(r), std::placeholders::_1); + return new skch::Map( p, refsketch, totalQueryFragments, queryno, fn ); +} + +int omp_get_thread_num(void) { + return 0; +} + +int omp_get_num_threads(void) { + return 1; +} diff --git a/pyfastani/_utils.hpp b/pyfastani/_utils.hpp new file mode 100644 index 0000000..74c08bf --- /dev/null +++ b/pyfastani/_utils.hpp @@ -0,0 +1,25 @@ +#ifndef __UTILS_HPP +#define __UTILS_HPP + +#include "map/include/computeMap.hpp" + +#include <stdint.h> +#include <functional> + +#include "map/include/base_types.hpp" +#include "map/include/computeMap.hpp" + +skch::Map* new_map_with_result_vector( + const skch::Parameters &p, + const skch::Sketch &refsketch, + uint64_t &totalQueryFragments, + int queryno, + skch::MappingResultsVector_t &r +); + +// not needed anywhere except in `cgi::correctRefGenomeIds` +// so we can just patch them +extern int omp_get_thread_num(void); +extern int omp_get_num_threads(void); + +#endif diff --git a/pyfastani/_utils.pxd b/pyfastani/_utils.pxd new file mode 100644 index 0000000..fd07fe3 --- /dev/null +++ b/pyfastani/_utils.pxd @@ -0,0 +1,17 @@ +from libc.stdint cimport uint64_t + +from fastani.map.base_types cimport MappingResultsVector_t +from fastani.map.compute_map cimport Map +from fastani.map.map_parameters cimport Parameters +from fastani.map.win_sketch cimport Sketch + + +cdef extern from "_utils.hpp" nogil: + + Map* new_map_with_result_vector( + const Parameters &p, + const Sketch &refsketch, + uint64_t &totalQueryFragments, + int queryno, + MappingResultsVector_t &r + ) -- GitLab