END_TEST START_TEST (test_sdistmat_euclidean) { int n=10; Array *a=array_new_dummy( DOUBLE, 1, n ); Array *b=array_new_dummy( DOUBLE, 1, n ); array_reverse(b); Array *c=distmatrix_signaldist( vectordist_euclidean, a, b, NULL, NULL ); Array *d=array_new2( DOUBLE, 2, n,n ); d = distmatrix_signaldist( vectordist_euclidean, a, b, d, NULL ); int i; for( i=0; i<array_NUMEL( c ); i++ ){ fail_if( array_INDEX1(c, double, i) < 0 ); fail_if( array_INDEX1(d, double, i) < 0 ); fail_unless( array_INDEX1(c, double, i)==array_INDEX1(d, double, i) ); } array_free( a ); array_free( b ); array_free( c ); array_free( d ); }
int main() { printf("\n"); /* count string blanks */ printf("\"hello world\" has %d blank(s)\n",count_blanks("hello world")); printf("\n"); /* remove blanks of string */ char str[50] = "h ell o wo rl d!"; remove_blanks(str,50); printf("\"h ell o wo rl d!\" remove blanks is \"%s\"\n",str); printf("\n"); /* count ones of integer number */ int ones = 0xfffffff0; printf("ones of %d total are %d\n", ones, int_ones_count(ones)); printf("\n"); /* reverse array of integer numbers */ int arr[] = {1,2,3,4,5,6,7,8,9}; int len = sizeof(arr)/sizeof(arr[0]); array_reverse(arr, len); printf("1 2 3 4 5 6 7 8 9 reversed to "); int i; for(i = 0; i < len; i++){ printf("%d ",arr[i]); } printf("\n"); return 0; }
void ewmh_update_client_list_stacking() { // First: get the windows in the current stack struct ewmhstack stack; stack.count = g_window_count; stack.buf = g_new(Window, stack.count); int remain; monitor_stack_to_window_buf(stack.buf, stack.count, true, &remain); stack.i = stack.count - remain; // Then add all the others at the end tag_foreach(ewmh_add_tag_stack, &stack); // reverse stacking order, because ewmh requires bottom to top order array_reverse(stack.buf, stack.count, sizeof(stack.buf[0])); XChangeProperty(g_display, g_root, g_netatom[NetClientListStacking], XA_WINDOW, 32, PropModeReplace, (unsigned char *) stack.buf, stack.i); g_free(stack.buf); }
void method_case_second(function_two f, int minimum, int maximum, int variant) { for (int l = 1000; l <= 8000; l = l + 1000) { out<<"Размер массива: "<<l<<endl; int* etalon = new int[l]; int* sorting = new int[l]; _int64 min = INT_MAX; _int64 max = -2; _int64 sum = 0; int kol = 0; switch (variant) { case 0: array_generation(etalon, l, minimum, maximum); break; case 1: array_generation(etalon, l, minimum, maximum); break; case 2: array_generation(etalon, l, minimum, maximum); bubble_sort(etalon, l); break; case 3: array_generation(etalon, l, minimum, maximum); array_almost_sort(etalon, l); break; case 4: array_generation(etalon, l, minimum, maximum); array_reverse(etalon, l); break; } for (int k = 0; k < 20; k ++) { my_copy(etalon, sorting, l); _asm { RDTSC mov DWORD PTR timestart, eax mov DWORD PTR timestart+4, edx } f(sorting, 0, l - 1); _asm { RDTSC mov DWORD PTR timefinish, eax mov DWORD PTR timefinish+4, edx } if ((timefinish - timestart) > max) { max = (timefinish - timestart); } if ((timefinish - timestart) < min) { min = (timefinish - timestart); } sum = sum + (timefinish - timestart); kol ++; } out<<"Минимальное время: "<<min<<" Ticks"<<endl; out<<"Среднее время время: "<<sum / kol<<" Ticks"<<endl; out<<"Максимальное время: "<<max<<" Ticks"<<endl; delete [] etalon; delete [] sorting; }; out<<endl; }