27#define firstEl(b) (b & 0x0F)
35#define secondEl(b) (b & 0xF0) >> 4
44#define toByte(a, b) (uint8_t)a | (b << 4)
48#define PACKING_WIDTH sizeof(packing_t) * 2
52#define PACKING_ROUND(packed_size) (((packed_size) + ROUND_NUM) & ~ROUND_NUM)
63 *packed |= (
packing_t)(values[i]) << (i * 4);
uint64_t packing_t
Definition fasta.h:46
#define PACKING_WIDTH
Definition fasta.h:48
uint8_t fasta_binary_mapping[CHAR_MAX+1]
A lookup table mapping FASTA characters to binary values.
Definition fasta.c:12
static void pack(uint8_t values[PACKING_WIDTH], packing_t *packed)
Packs an array of 4-bit values into an integer.
Definition fasta.h:60
char getIUPACchar(uint8_t index, bool rna)
Returns IUPAC FASTA character.
Definition fasta.c:42
bool is_valid_title(const char *title, size_t len)
Checks if a FASTA title is valid.
Definition fasta.c:50
void initialize_fasta_binary_mapping()
Initializes the FASTA binary mapping.
Definition fasta.c:14