⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bmdef.h

📁 ncbi源码
💻 H
字号:
/* * =========================================================================== * PRODUCTION $Log: bmdef.h,v $ * PRODUCTION Revision 1000.0  2004/04/21 16:00:37  gouriano * PRODUCTION PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.1 * PRODUCTION * =========================================================================== */// BM library internal header//// Set all required preprocessor defines#ifndef BM_ASSERT# ifndef BM_NOASSERT#  include <assert.h>#  define BM_ASSERT assert# else#  define BM_ASSERT(x)# endif#endif#define FULL_BLOCK_ADDR all_set<true>::_block._p#define IS_VALID_ADDR(addr) (addr && (addr != FULL_BLOCK_ADDR))#define IS_FULL_BLOCK(addr) (addr == FULL_BLOCK_ADDR)#define IS_EMPTY_BLOCK(addr) (addr == 0)// Macro definitions to manipulate bits in pointers// This trick is based on the fact that pointers allocated by malloc are// aligned and bit 0 is never set. It means we are safe to use it.// BM library keeps GAP flag in pointer.// Note: this hack is not universally portable so if it does not work// in some particular case disable it by defining BM_DISBALE_BIT_IN_PTR#ifdef BM_DISBALE_BIT_IN_PTR# define BMGAP_PTR(ptr)    ((bm::gap_word_t*)ptr)# define BMSET_PTRGAP(ptr) (void(0))# define BM_IS_GAP(obj, ptr, idx) ( obj.is_block_gap(idx) ) #else# if ULONG_MAX == 0xffffffff   // 32-bit#  define BMPTR_SETBIT0(ptr)   ( ((bm::id_t)ptr) | 1 )#  define BMPTR_CLEARBIT0(ptr) ( ((bm::id_t)ptr) & ~(bm::id_t)1 )#  define BMPTR_TESTBIT0(ptr)  ( ((bm::id_t)ptr) & 1 )# else // 64-bit#  define BMPTR_SETBIT0(ptr)   ( ((bm::id64_t)ptr) | 1 )#  define BMPTR_CLEARBIT0(ptr) ( ((bm::id64_t)ptr) & ~(bm::id64_t)1 )#  define BMPTR_TESTBIT0(ptr)  ( ((bm::id64_t)ptr) & 1 )# endif# define BMGAP_PTR(ptr) ((bm::gap_word_t*)BMPTR_CLEARBIT0(ptr))# define BMSET_PTRGAP(ptr) ptr = (bm::word_t*)BMPTR_SETBIT0(ptr)# define BM_IS_GAP(obj, ptr, idx) ( BMPTR_TESTBIT0(ptr)!=0 )#endif#ifdef BM_HASRESTRICT# ifndef BMRESTRICT#  define BMRESTRICT restrict# endif#else# define BMRESTRICT #endif#ifndef BMSSE2OPT# ifndef BM_SET_MMX_GUARD#  define BM_SET_MMX_GUARD# endif#else# ifndef BM_SET_MMX_GUARD#  define BM_SET_MMX_GUARD  sse2_empty_guard  bm_mmx_guard_;# endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -