亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? edit.c

?? 一個類似于blast算法的基因數(shù)據(jù)快速搜索算法
?? C
字號:
#include "util.h"#include "seq.h"#include "edit.h"#include <assert.h>static const char rcsid[]="$Id: edit.c,v 1.6 2002/08/12 04:15:32 schwartz Exp $";static edit_op_t *ed_ops_realloc(edit_op_t *op, unsigned int n);static edit_op_t edit_op_cons(unsigned int op, unsigned int val);static edit_op_t edit_op_inc(edit_op_t op, unsigned int n);static edit_op_t edit_op_inc_last(edit_script_t *es, unsigned int n);/* edit_script_concat currently not usedstatic edit_script_t *edit_script_concat(edit_script_t *es, edit_script_t *et);*/static edit_script_t *edit_script_copy(edit_script_t *);static edit_script_t *edit_script_fin(edit_script_t *data);static edit_script_t *edit_script_init(edit_script_t *es);static int edit_script_more(edit_script_t *data, unsigned int op, unsigned int k);static int edit_script_put(edit_script_t *es, unsigned int op, unsigned int n);static int edit_script_ready(edit_script_t *es, unsigned int n);static int edit_script_readyplus(edit_script_t *es, unsigned int n);static void edit_script_prnt(edit_script_t *es);unsigned int edit_opc_get(edit_op_t op){	return op & EDIT_OP_MASK;}unsigned int edit_val_get(edit_op_t op){	return op >> 2;}static edit_op_t edit_op_cons(unsigned int op, unsigned int val){	return (val << 2) | (op & EDIT_OP_MASK);}static edit_op_t edit_op_inc(edit_op_t op, unsigned int n){	return edit_op_cons(edit_opc_get(op), edit_val_get(op) + n);}static edit_op_t edit_op_inc_last(edit_script_t *es, unsigned int n){	edit_op_t *last;	assert (es->num > 0);	last = &(es->op[es->num-1]);	*last = edit_op_inc(*last, n);	return *last;}static void edit_script_prnt(edit_script_t *es){	unsigned int i;	printf("num=%d size=%d\n", es->num, es->size);	for (i = 0; i < es->num; ++i) {		edit_op_t this = es->op[i];		assert(this != 0);		printf("%d:%c:%d ", i, "?IDR"[edit_opc_get(this)],		  edit_val_get(this));		if (i%8 == 7) putchar('\n');	}	putchar('\n');}static edit_script_t *edit_script_init(edit_script_t *es){	es->op = 0;	es->size = es->num = 0;	es->last = 0;	edit_script_ready(es, 8);	return es;}static edit_op_t *ed_ops_realloc(edit_op_t *op, unsigned int n){	return ckrealloc(op, n*sizeof(edit_op_t)); 	/* XXX - assumes posix realloc */}static int edit_script_ready(edit_script_t *es, unsigned int n){	edit_op_t *p;	unsigned int m = n + n/2;	if (es->size <= n) {		p = ed_ops_realloc(es->op, m);		if (p == 0) {			return 0;		} else {			es->op = p;			es->size = m;		}	}	return 1;}static int edit_script_readyplus(edit_script_t *es, unsigned int n){	if (es->size - es->num <= n)		return edit_script_ready(es, n + es->num);	return 1;}static int edit_script_put(edit_script_t *es, unsigned int op, unsigned int n){	if (!edit_script_readyplus(es, 2))		return 0;	es->last = op;	assert(op != 0);	es->op[es->num] = edit_op_cons(op, n);	es->num += 1;	es->op[es->num] = 0; /* sentinal */	return 1;}static edit_script_t *edit_script_fin(edit_script_t *es){	edit_op_t *p = ed_ops_realloc(es->op, es->num);	if (!p)		return 0;	es->op = p;	es->size = es->num;	return es;}static int edit_script_more(edit_script_t *data, unsigned int op, unsigned int k){	if (op == EDIT_OP_ERR)		fatalf("edit_script_more: bad opcode %d:%d", op, k);	if (edit_opc_get(data->last) == op)		edit_op_inc_last(data, k);	else		edit_script_put(data, op, k);	return 0;}int edit_script_del(edit_script_t *data, unsigned int k){	return edit_script_more(data, EDIT_OP_DEL, k);}int edit_script_ins(edit_script_t *data, unsigned int k){	return edit_script_more(data, EDIT_OP_INS, k);}int edit_script_rep(edit_script_t *data, unsigned int k){	return edit_script_more(data, EDIT_OP_REP, k);}edit_script_t *edit_script_reverse_inplace(edit_script_t *es){	unsigned int i;	const unsigned int num = es->num;	const unsigned int mid = num/2;	const unsigned int end = num-1;	for (i = 0; i < mid; ++i) {		const edit_op_t t = es->op[i];		es->op[i] = es->op[end-i];		es->op[end-i] = t;	}	return es;}edit_script_t *edit_script_new(void){	edit_script_t *es = ckallocz(sizeof(*es));	if (!es)		return 0;	return edit_script_init(es);}edit_script_t *edit_script_free(edit_script_t *es){	if (es) {		if (es->op)			ckfree(es->op);		memset(es, 0, sizeof(*es));		ckfree(es);	}	return 0;}/* deep copy of es */static edit_script_t *edit_script_copy(edit_script_t *es){	edit_script_t *nes = ckallocz(sizeof(*nes));	unsigned int size = sizeof(*nes->op) * es->num;	nes->op = ckallocz(size);	if (!nes->op)		return 0; /* XXX - leak */	memcpy(nes->op, es->op, size);	nes->size = nes->num = es->num;	nes->last = 0;	return nes;}edit_op_t *edit_script_first(edit_script_t *es){	return es->num > 0 ? &es->op[0] : 0;}edit_op_t *edit_script_next(edit_script_t *es, edit_op_t *op){	/* XXX - assumes flat address space */	if (&es->op[0] <= op && op < &es->op[es->num-1])		return op+1;	else		return 0;}/* build a new script from es and et *//* currently not usedstatic edit_script_t *edit_script_concat(edit_script_t *es, edit_script_t *et){	edit_op_t *op;	edit_script_t *eu;	if (!(eu = edit_script_new()))		return 0;	for (op = edit_script_first(es); op; op = edit_script_next(es, op))		edit_script_more(eu, edit_opc_get(*op), edit_val_get(*op));	for (op = edit_script_first(et); op; op = edit_script_next(et, op))		edit_script_more(eu, edit_opc_get(*op), edit_val_get(*op));	return edit_script_fin(eu);}*//* add et to es */edit_script_t *edit_script_append(edit_script_t *es, edit_script_t *et){	edit_op_t *op;	for (op = edit_script_first(et); op; op = edit_script_next(et, op))		edit_script_more(es, edit_opc_get(*op), edit_val_get(*op));	return es;}int es_rep_len(edit_script_t *S, int *n, const uchar *p, const uchar *q, int *match){	int len;	len = *match = 0;	while (((unsigned int)*n < S->num) && (edit_opc_get(S->op[*n]) == EDIT_OP_REP)) {		int num = edit_val_get(S->op[*n]);		len += num;		while (num-- > 0)		    /* masked regions are lower case */                    if (toupper(*p++) == toupper(*q++)) ++(*match);		*n += 1;	}	return len;}int es_indel_len(edit_script_t *S, int *n, int *i, int *j){	if (S->num <= (unsigned int)*n)		return 0;	else {		edit_op_t op = S->op[*n];		int len = edit_val_get(op);		switch (edit_opc_get(op)) {		case EDIT_OP_INS:			*j += len;			break;		case EDIT_OP_DEL:			*i += len;			break;		default:			fatalf("es_indel_len: cannot happen!");		}		*n += 1;		return len;	}}  #ifdef TESTINGint main(){	int i;	edit_script_t *es, *et, *eu;	es = edit_script_new();	for (i = 0; i < 13; ++i) {		unsigned int r = random() % 4;		unsigned int s = random() % 100;		if (1 <= r && r <= 3) edit_script_more(es, r, s);	}	edit_script_prnt(es);	et = edit_script_reverse_inplace(edit_script_copy(es));	edit_script_prnt(et);	eu = edit_script_concat(es, et);	edit_script_prnt(eu);	eu = edit_script_append(eu, es);	edit_script_prnt(eu);	es = edit_script_free(es);	et = edit_script_free(et);	eu = edit_script_free(eu);	exit(0);}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av网站| 欧美一区二区三级| 欧美午夜电影在线播放| 久久九九影视网| 亚洲激情男女视频| 国产美女精品在线| 久久免费看少妇高潮| 自拍av一区二区三区| 韩国成人精品a∨在线观看| 在线免费观看日本一区| 国产欧美日韩综合精品一区二区| 亚洲制服欧美中文字幕中文字幕| 国产美女在线精品| 日韩欧美一级片| 一区二区成人在线视频| 国产九色sp调教91| 日韩一区二区三区观看| 一区二区三区毛片| 成人av资源在线| 精品国产一区二区在线观看| 亚洲一区二区三区不卡国产欧美| av男人天堂一区| 精品电影一区二区| 午夜不卡av免费| 91成人网在线| 一区在线观看视频| 成人小视频在线| 欧美成人女星排行榜| 亚洲福中文字幕伊人影院| 99久久99久久精品免费观看 | 美女一区二区视频| 91国偷自产一区二区三区成为亚洲经典| 欧美精品一区二区三区久久久| 99热在这里有精品免费| 久久综合久久综合亚洲| 免费成人美女在线观看.| 欧美日韩精品是欧美日韩精品| 亚洲综合色噜噜狠狠| 91色porny在线视频| 最好看的中文字幕久久| 91视频在线观看| 亚洲毛片av在线| 欧美这里有精品| 亚洲bt欧美bt精品777| 欧美精品vⅰdeose4hd| 日本vs亚洲vs韩国一区三区 | 日韩三级伦理片妻子的秘密按摩| 日韩电影免费在线看| 日韩一卡二卡三卡国产欧美| 老色鬼精品视频在线观看播放| 日韩精品一区二区三区在线| 韩国av一区二区三区四区| 久久老女人爱爱| 99久久精品费精品国产一区二区| 伊人一区二区三区| 欧美另类videos死尸| 日本不卡一区二区| 久久久久久久久久久久久久久99 | 色综合久久综合| 亚洲综合丝袜美腿| 91精品一区二区三区在线观看| 日本aⅴ免费视频一区二区三区| 精品国产免费一区二区三区香蕉| 国产91丝袜在线18| 一区二区三区精品在线观看| 欧美美女视频在线观看| 国产一区二区在线电影| 18欧美乱大交hd1984| 欧美老女人第四色| 国产成人欧美日韩在线电影| 亚洲女人的天堂| 777奇米四色成人影色区| 国产一区二区三区精品视频| 亚洲免费成人av| 欧美不卡一区二区三区四区| 成人黄色小视频在线观看| 性久久久久久久久久久久| 久久久.com| 欧美午夜电影网| 欧美色老头old∨ideo| 国产自产2019最新不卡| 一区二区在线观看免费| 精品国产一区二区三区四区四| 大胆欧美人体老妇| 日韩国产成人精品| 国产精品国产三级国产aⅴ原创 | 国产一区二区在线免费观看| 亚洲伦理在线精品| 久久久久久久电影| 欧美精品日韩综合在线| 97久久超碰国产精品电影| 免费在线观看成人| 洋洋av久久久久久久一区| 久久久久久久久99精品| 欧美一级艳片视频免费观看| 色哟哟国产精品| 丁香婷婷深情五月亚洲| 蜜臀av一级做a爰片久久| 一区二区三区美女视频| 中文字幕免费不卡| 日韩免费高清视频| 久久久美女毛片| 久久精品亚洲精品国产欧美kt∨| 色猫猫国产区一区二在线视频| 国产在线精品一区二区三区不卡| 亚洲成人精品一区二区| 国产精品久久福利| 国产日韩精品一区二区三区在线| 欧美一区二区视频网站| 欧美日韩卡一卡二| 欧美日韩国产高清一区| 91久久免费观看| 91免费精品国自产拍在线不卡| 国产精品亚洲第一| 国产成人夜色高潮福利影视| 老司机精品视频在线| 老司机一区二区| 韩国一区二区视频| 国产麻豆一精品一av一免费| 免费黄网站欧美| 久久99热99| 黄色小说综合网站| 国产精品99久久久久久有的能看| 狠狠久久亚洲欧美| 粉嫩蜜臀av国产精品网站| 国产精品一区2区| 国产成人av影院| 99久久综合狠狠综合久久| 成人一级视频在线观看| 99综合影院在线| 在线欧美日韩精品| 欧美福利视频导航| 日韩一区二区免费高清| 欧美精品一区二区三区一线天视频| 精品av综合导航| 国产三级一区二区三区| 国产精品人成在线观看免费 | 97久久超碰国产精品| 色伊人久久综合中文字幕| 欧美体内she精高潮| 欧美日韩不卡一区二区| 精品免费视频.| 欧美国产一区二区在线观看| 中文字幕精品在线不卡| 一区二区三区蜜桃| 蜜臀av性久久久久蜜臀aⅴ流畅| 激情五月婷婷综合网| 成人福利视频在线| 欧美图片一区二区三区| 精品久久人人做人人爱| 久久精品人人做人人综合| 日韩一区在线看| 日韩激情视频网站| 国产高清不卡一区二区| 91精彩视频在线| 久久亚洲一区二区三区明星换脸| 中文字幕亚洲区| 蜜臀va亚洲va欧美va天堂| 成人免费视频播放| 欧美在线啊v一区| 精品成人在线观看| 亚洲一区电影777| 国产成人免费视频网站| 欧美性大战xxxxx久久久| 久久综合av免费| 亚洲6080在线| 成人精品免费视频| 91精品国产综合久久福利| 中文一区一区三区高中清不卡| 午夜免费久久看| 处破女av一区二区| 日韩一二在线观看| 一区二区三区中文字幕精品精品| 狠狠v欧美v日韩v亚洲ⅴ| 欧美日韩在线亚洲一区蜜芽| 国产亚洲一区二区三区四区| 丝袜美腿亚洲一区二区图片| 成人动漫中文字幕| 久久婷婷一区二区三区| 亚洲五月六月丁香激情| 波多野结衣精品在线| 精品国产乱码久久久久久夜甘婷婷| 亚洲卡通动漫在线| 成人aaaa免费全部观看| 日韩欧美的一区| 污片在线观看一区二区| 91美女福利视频| 国产精品视频yy9299一区| 蜜桃av一区二区三区电影| 欧美日韩视频在线一区二区| 亚洲色图欧美在线| av亚洲产国偷v产偷v自拍| 精品久久久久av影院| 日本中文在线一区| 欧美精品久久久久久久多人混战 | 亚洲美女偷拍久久| 99综合影院在线| 亚洲欧洲在线观看av| 福利一区二区在线| 国产天堂亚洲国产碰碰|