update
This commit is contained in:
parent
14c9711253
commit
a68a322885
10
src/main.cpp
10
src/main.cpp
@ -6,11 +6,6 @@
|
|||||||
namespace py = pybind11;
|
namespace py = pybind11;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//注意,这个函数会被并行执行,请只访问begin<=i<end之间的内容,以免出现数据竞争导致程序异常
|
|
||||||
void reverseComplement(char *begin, char *end)
|
|
||||||
{
|
|
||||||
//注意end是开区间,不能访问end
|
|
||||||
static const std::unordered_map<char, char> complement = { //这里使用查表的方式大大提高CPU速度,因为if分支CPU不容易命中缓存,需要使用查表加速
|
static const std::unordered_map<char, char> complement = { //这里使用查表的方式大大提高CPU速度,因为if分支CPU不容易命中缓存,需要使用查表加速
|
||||||
{'A', 'T'}, {'a', 'T'},
|
{'A', 'T'}, {'a', 'T'},
|
||||||
{'T', 'A'}, {'t', 'A'},
|
{'T', 'A'}, {'t', 'A'},
|
||||||
@ -18,6 +13,11 @@ void reverseComplement(char *begin, char *end)
|
|||||||
{'G', 'C'}, {'g', 'C'}
|
{'G', 'C'}, {'g', 'C'}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//注意,这个函数会被并行执行,请只访问begin<=i<end之间的内容,以免出现数据竞争导致程序异常
|
||||||
|
void reverseComplement(char *begin, char *end)
|
||||||
|
{
|
||||||
|
//注意end是开区间,不能访问end
|
||||||
|
|
||||||
std::reverse(begin, end); //翻转DNA序列
|
std::reverse(begin, end); //翻转DNA序列
|
||||||
|
|
||||||
for (ptrdiff_t i = 0; i < (end - begin); ++i) {
|
for (ptrdiff_t i = 0; i < (end - begin); ++i) {
|
||||||
|
Loading…
Reference in New Issue
Block a user