|
|
@ -14,16 +14,31 @@ |
|
|
|
#define C_2x1 (uint64_t)0x7002 // 111 000 000 000 010
|
|
|
|
#define C_2x2 (uint64_t)0x3F03C // 111 111 000 000 111 100
|
|
|
|
|
|
|
|
/// C_1x1 | C_1x2 | C_2x1 | C_2x2
|
|
|
|
/// 011 000 000 000 | 001 111 000 000 | 010 000 000 000 | 100 111 000 000
|
|
|
|
/// 000 000 000 000 | 000 000 000 000 | 111 000 000 000 | 111 111 000 000
|
|
|
|
/// ... | ... | ... | ...
|
|
|
|
|
|
|
|
#define F_1x1 (uint64_t)0x7 // 111
|
|
|
|
#define F_1x2 (uint64_t)0x3F // 111 111
|
|
|
|
#define F_2x1 (uint64_t)0x7007 // 111 000 000 000 111
|
|
|
|
#define F_2x2 (uint64_t)0x3F03F // 111 111 000 000 111 111
|
|
|
|
|
|
|
|
/// F_1x1 | F_1x2 | F_2x1 | F_2x2
|
|
|
|
/// 111 000 000 000 | 111 111 000 000 | 111 000 000 000 | 111 111 000 000
|
|
|
|
/// 000 000 000 000 | 000 000 000 000 | 111 000 000 000 | 111 111 000 000
|
|
|
|
/// ... | ... | ... | ...
|
|
|
|
|
|
|
|
#define F_1x1_R (uint64_t)0x38 // 111 000
|
|
|
|
#define F_1x1_D (uint64_t)0x7000 // 111 000 000 000 000
|
|
|
|
#define F_2x1_R (uint64_t)0x38038 // 111 000 000 000 111 000
|
|
|
|
#define F_1x2_D (uint64_t)0x3F000 // 111 111 000 000 000 000
|
|
|
|
|
|
|
|
/// F_1x1_R | F_1x1_D | F_2x1_R | F_1x2_D
|
|
|
|
/// 000 111 000 000 | 000 000 000 000 | 000 111 000 000 | 000 000 000 000
|
|
|
|
/// 000 000 000 000 | 111 000 000 000 | 000 111 000 000 | 111 111 000 000
|
|
|
|
/// ... | ... | ... | ...
|
|
|
|
|
|
|
|
class Common { |
|
|
|
public: |
|
|
|
static uint32_t range_reverse(uint32_t bin); |
|
|
|