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; }
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; }
void* vector_end(Vector vector){ void* ret = NULL; void* tmp = NULL; while (tmp = vector_next(vector)){ ret = tmp; } return ret; }
void* vector_end(Vector vector){ void* ret = NULL; void* tmp = NULL; while(tmp = vector_next(vector)) ret = tmp; vector_reset(vector); return ret; }
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); }
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); }
Job job_list_next(Vector job_list){ return (Job) vector_next(job_list); }
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 ); }
void vector_set_end(Vector vector){ while(vector_next(vector)); vector->index--; }