44 while (state_struct) {
98 memcpy(new->num, old->
num, (old->
size)*
sizeof(
Int4));
107 int size = 1+stop-start;
111 if (old ==
NULL ||
new ==
NULL || stop-start+1 > new->size)
117 new->num[new_index] = old->
num[old_index];
118 new->op_type[new_index] = old->
op_type[old_index];
136 Int4 new_size = total_ops * 2;
139 new_ops = realloc(edit_block->
edit_ops, new_size *
181 if (edit_block->
last_op == op_type)
191 if (edit_block !=
NULL) {
204 if (edit_block ==
NULL)
228 for (index = 0, op = edit_block2->
edit_ops; index < edit_block2->num_ops;
Definitions used throughout BLAST.
#define sfree(x)
Safe free a pointer: belongs to a higher level header.
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
void GapPrelimEditBlockAdd(GapPrelimEditBlock *edit_block, EGapAlignOpType op_type, Int4 num_ops)
Add a new operation to a preliminary edit block, possibly combining it with the last operation if the...
GapPrelimEditBlock * GapPrelimEditBlockFree(GapPrelimEditBlock *edit_block)
Frees a preliminary edit block structure.
static Int2 s_GapPrelimEditBlockRealloc(GapPrelimEditBlock *edit_block, Int4 total_ops)
Ensures that a preliminary edit script has enough memory allocated to hold a given number of edit ope...
GapEditScript * GapEditScriptDup(const GapEditScript *old)
Duplicates the edit script structure.
GapStateArrayStruct * GapStateFree(GapStateArrayStruct *state_struct)
Free the gap state structure.
GapEditScript * GapEditScriptNew(Int4 size)
Initialize the edit script structure.
void GapPrelimEditBlockAppend(GapPrelimEditBlock *edit_block1, GapPrelimEditBlock *edit_block2)
Append one GapPrelimEditBlock to the end of the other.
Int2 GapEditScriptPartialCopy(GapEditScript *new, int offset, const GapEditScript *old, int start, int stop)
Copies the portion of the GapEditScript specified by start and stop to a new one the new one should a...
GapEditScript * GapEditScriptDelete(GapEditScript *old)
Free edit script structure.
GapPrelimEditBlock * GapPrelimEditBlockNew(void)
Allocates a preliminary edit block structure.
void GapPrelimEditBlockReset(GapPrelimEditBlock *edit_block)
Reset a preliminary edit block without freeing it.
static Int2 s_GapPrelimEditBlockAddNew(GapPrelimEditBlock *edit_block, EGapAlignOpType op_type, Int4 num_ops)
Add an edit operation to an edit script.
Definitions of structures used for saving traceback information.
EGapAlignOpType
Operation types within the edit script.
@ eGapAlignInvalid
Invalid operation.
int16_t Int2
2-byte (16-bit) signed integer
int32_t Int4
4-byte (32-bit) signed integer
const struct ncbi::grid::netcache::search::fields::SIZE size
#define ASSERT
macro for assert.
Edit script: linked list of correspondencies between two sequences.
Int4 * num
Array of number of operations.
Int4 size
Size of above arrays.
EGapAlignOpType * op_type
Array of type of operation.
Preliminary version of GapEditBlock, used directly by the low- level dynamic programming routines.
Int4 num_ops_allocated
size of allocated array
GapPrelimEditScript * edit_ops
array of edit operations
EGapAlignOpType last_op
most recent operation added
Int4 num_ops
number of edit ops presently in use
A version of GapEditScript used to store initial results from the gapped alignment routines.
Int4 num
Number of operations.
EGapAlignOpType op_type
Type of operation.
Structure to keep memory for state structure.
struct GapStateArrayStruct * next
Next link in the list.
Uint1 * state_array
array to be used.
voidp calloc(uInt items, uInt size)