Пример #1
0
static void make_edge ( hashtable2 * ht, int K_size, FILE * fp ) //63 127 same
{
	bucket2 * bktptr;

	for ( size_t i = 0; i < ht->ht_sz; ++i )
	{
		bktptr = ht->store_pos[i];

		while ( bktptr != NULL )
		{
			startEdgeFromNode ( ht, K_size, bktptr, fp );
			bktptr = bktptr->nxt_bucket;
		}
	}
}
Пример #2
0
void make_edge ( FILE * fp )
{
	int i = 0;
	kmer_t * node1;
	KmerSet * set;
	KmerSetsPatch = ( KmerSet ** ) ckalloc ( thrd_num * sizeof ( KmerSet * ) );

	for ( i = 0; i < thrd_num; i++ )
		{ KmerSetsPatch[i] = init_kmerset ( 1000, K_LOAD_FACTOR ); }

	nodeStack = ( STACK * ) createStack ( KMERPTBLOCKSIZE, sizeof ( KMER_PT ) );
	bal_nodeStack = ( STACK * ) createStack ( KMERPTBLOCKSIZE, sizeof ( KMER_PT ) );
	edge_c = nodeCounter = 0;
	edgeCounter = 0;

	for ( i = 0; i < thrd_num; i++ )
	{
		set = KmerSets[i];
		set->iter_ptr = 0;

		while ( set->iter_ptr < set->size )
		{
			if ( !is_kmer_entity_null ( set->flags, set->iter_ptr ) )
			{
				node1 = set->array + set->iter_ptr;
				startEdgeFromNode ( node1, fp );
			}

			set->iter_ptr ++;
		}
	}

	printf ( "%d (%d) edges %d extra nodes\n", edge_c, edgeCounter, nodeCounter );
	freeStack ( nodeStack );
	freeStack ( bal_nodeStack );
}