Пример #1
0
void osb::optimise_p()
{
	double lk,lk_max;
	int * b_max = new int [lines];
	int * b_vec = new int [lines];
	double * p = new double [lines];
	print_vector(l,"l");
	for (int tone=0;tone<DMTCHANNELS;tone++) {
		lk=0.0;
		lk_max=-DBL_MAX;	
		vector_next(b_vec,lines,MAXBITSPERTONE,true);	// reset b_vec
		//printf("Starting per tone op\n");
		while(vector_next(b_vec,lines,MAXBITSPERTONE,false)) {
			lk = osb_lk(b_vec,tone);
			if (lk > lk_max) {
				lk_max=lk;
				for (int user=0;user<lines;user++) {
					b_max[user] = b_vec[user];
				}
			}	
		}
		//printf("Finished one tone\n");
        	psd->calc(b_max,g,tone,p);
		for (int user=0;user<lines;user++) {
			b[tone][user] = b_max[user];	
			_p[tone][user] = p[user];		
		}
	}
	delete[] b_max;
	delete[] b_vec;
	delete[] p;
}
Пример #2
0
Job get_at_index(Vector job_list, int pid) {
   Job temp;
   job_list->index = 0;
   temp = vector_next(job_list);
   while (((int)temp->pid != pid) && (temp->jid != pid) && (temp != NULL))
        temp = vector_next(job_list);
   return temp;
}
Пример #3
0
void* vector_end(Vector vector){
    void* ret = NULL;
    void* tmp = NULL;
    
    while (tmp = vector_next(vector)){
        ret = tmp;
    }
    return ret;
}
Пример #4
0
void* vector_end(Vector vector){
    void* ret = NULL;
    void* tmp = NULL;

    while(tmp = vector_next(vector))
        ret = tmp;
    vector_reset(vector);
    return ret;
}
Пример #5
0
void kill_shell(){
    // mata todos os seus jobs e termina a execucao
    Job job;
    int pid;
    vector_reset(job_list);
    while((job = vector_next(job_list))){
        pid = string_to_int(job->pid);
        kill(pid, SIGKILL);
    }
    printf("\n");
    exit(0);
}
Пример #6
0
void
source_free(source_t* source)
{
	iter_t it;
	char*  *p_line;

	if (source == NULL) return;
	it = vector_enum(source->lines);
	while (p_line = vector_next(&it))
		free(*p_line);
	vector_free(source->lines);
	free(source);
}
Пример #7
0
Job job_list_next(Vector job_list){
    return (Job) vector_next(job_list);
}
Пример #8
0
void vector_unittest()
{
	Vector vector;
	int integer, i;
	int* iterator;
	
	/* An empty vector. */
	vector_construct( &vector, sizeof( int ) );
	EXPECT_EQUAL( vector_next( &vector, NULL ), NULL );
	EXPECT_EQUAL( vector_at( &vector, 0 ), NULL );
	EXPECT_EQUAL( vector_at( &vector, 1 ), NULL );
	EXPECT_EQUAL( vector_at( &vector, 2 ), NULL );
	EXPECT_EQUAL( vector_at( &vector, 3 ), NULL );
	EXPECT_EQUAL( vector_at( &vector, 14 ), NULL );
	EXPECT_EQUAL( vector_at( &vector, 2345 ), NULL );
	vector_destruct( &vector );


	/* Adding elements */
	
	vector_construct( &vector, sizeof( int ) );

	for (i = 0; i < 9; i++)
	{
		integer = 9 - i;
		EXPECT_EQUAL( vector_push_back( &vector, &integer ), i );
		EXPECT_EQUAL( vector_size( &vector ), (i + 1) );
	}

	EXPECT_NOT_EQUAL( vector_at( &vector, 0 ), NULL );
	EXPECT_EQUAL( *((int*)vector_at( &vector, 0 )), 9 );
	EXPECT_NOT_EQUAL( vector_at( &vector, 1 ), NULL );
	EXPECT_EQUAL( *((int*)vector_at( &vector, 1 )), 8 );
	EXPECT_NOT_EQUAL( vector_at( &vector, 2 ), NULL );
	EXPECT_EQUAL( *((int*)vector_at( &vector, 2 )), 7 );
	EXPECT_NOT_EQUAL( vector_at( &vector, 3 ), NULL );
	EXPECT_EQUAL( *((int*)vector_at( &vector, 3 )), 6 );
	EXPECT_EQUAL( vector_at( &vector, 14 ), NULL );
	EXPECT_EQUAL( vector_at( &vector, 2345 ), NULL );

	i = 9;
	iterator = NULL;
	while ((iterator = (int*)vector_next( &vector, iterator )))
	{
		EXPECT_EQUAL( i, *iterator );
		i--;
	}

	/* Erasing elements */
	for (i = 9 - 1; i >= 4; i--)
	{
		vector_erase( &vector, vector_next( &vector, NULL ) );
		EXPECT_EQUAL( vector_size( &vector ), i );
	}

	i = 4;
	iterator = NULL;
	while ((iterator = (int*)vector_next( &vector, iterator )))
	{
		EXPECT_EQUAL( i, *iterator );
		i--;
	}

	vector_destruct( &vector );	

	/* Erase from the middle of a vector */
	vector_construct( &vector, sizeof( int ) );
	integer = 0x12345678; vector_push_back( &vector, &integer );
	integer = 0x21436587; vector_push_back( &vector, &integer );
	integer = 0x87654321; vector_push_back( &vector, &integer );
	vector_erase( &vector, vector_at( &vector, 1 ) );
	EXPECT_EQUAL( 0x12345678, *(int*)vector_at( &vector, 0 ) );
	EXPECT_EQUAL( 0x87654321, *(int*)vector_at( &vector, 1 ) );
	EXPECT_EQUAL( NULL, vector_at( &vector, 2 ) );
	vector_destruct( &vector );

	/* Clearing a vector */
	vector_construct( &vector, sizeof( int ) );
	EXPECT_EQUAL( NULL, vector_next( &vector, NULL ) );
	vector_clear( &vector );
	EXPECT_EQUAL( NULL, vector_next( &vector, NULL ) );
	integer = 3; vector_push_back( &vector, &integer );
	vector_clear( &vector );
	EXPECT_EQUAL( NULL, vector_next( &vector, NULL ) );
	vector_clear( &vector );
	EXPECT_EQUAL( NULL, vector_next( &vector, NULL ) );
	vector_destruct( &vector );
}
Пример #9
0
void vector_set_end(Vector vector){
    while(vector_next(vector));
    vector->index--;
}