int main() { int n, * array, i; srand(time(NULL)); n = mypow2(19);//28); printf("%d\n",n); array = (int *)malloc(sizeof(int) * n); long c = clock(); for(i=0;i<n;++i) array[i] = i +5; int a, b, temp; for(i=0;i<n * 2;++i){ a = rand() % n; b = rand() % n; temp = array[a]; array[a] = array[b]; array[b] = temp; } fprintf(stderr, "%lf\n", ((double)clock() - c) / CLOCKS_PER_SEC); for(i=0;i<10;++i) fprintf(stderr,"%d\n",array[i]); mergesort(array, n); fprintf(stderr, "RESULT!!\n"); for(i=0;i<10;++i) fprintf(stderr,"%d\n",array[i]); for(i=0;i<n;++i) if(array[i] != i +5) { fprintf(stderr,"SORT FAILED!!"); break; } return 0; }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(shell_seq_data1_process, ev, data) { static uint16_t data_sam[NUM_SAM]; uint16_t sum = 0; uint16_t sqsum = 0; static struct etimer etimer; PROCESS_BEGIN(); //DEBUG CODE printf("cusum-seq: Gathering post-change data... "); // Gather NUM_SAM samples over 1 second of time SENSORS_ACTIVATE(light_sensor); for(counter = 0;counter < NUM_SAM;counter++) { // Get data for no change analysis. etimer_set(&etimer, CLOCK_SECOND / NUM_SAM); PROCESS_WAIT_UNTIL(etimer_expired(&etimer)); data_sam[counter] = light_sensor.value(LIGHT_SENSOR_PHOTOSYNTHETIC); } printf("done!\n"); SENSORS_DEACTIVATE(light_sensor); sum = 0; sqsum = 0; // Sum the change data for(counter = 0;counter < NUM_SAM;counter++) { sum = sum + data_sam[counter]; } printf("cusum-seq: sum = %d\n",sum); mean_1 = sum/NUM_SAM; // 542.3846 printf("mean_1 = %d\n",mean_1); // Caclulate std_dev_1 for(counter = 0;counter < NUM_SAM;counter++) { sqsum = sqsum + mypow2(abs_sub(data_sam[counter], mean_1)); } std_dev_1 = sqsum/NUM_SAM; // 16.8388 std_dev_1 = mysqrt(std_dev_1); printf("cusum-seq: std_dev_1 = %d\n",std_dev_1); // DEBUG CODE blink_LEDs(LEDS_ALL); PROCESS_END(); }
int main() { int t,n; long ret,ret2,ret3; scanf("%d",&t); scanf("%d",&n); printf("%d^%d\n",t,n); ret = mypow(t,n); ret2 = mypow2(t,n); ret3 = power(t,n); printf("ret:%ld,%#lx\n",ret,ret); printf("ret2:%ld,%#lx\n",ret2,ret2); printf("ret3:%ld,%#lx\n",ret3,ret3); return 0; }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(shell_sample_stats_process, ev, data) { static uint16_t data_sam[NUM_SAM]; uint16_t sum = 0; uint16_t sqsum = 0; static struct etimer etimer; PROCESS_BEGIN(); // Gather NUM_SAM samples over 1 second of time sensor_init(); printf("Gathering data... "); for(counter = 0;counter < NUM_SAM;counter++) { // Get data for no change analysis. etimer_set(&etimer, CLOCK_SECOND / NUM_SAM); PROCESS_WAIT_UNTIL(etimer_expired(&etimer)); data_sam[counter] = sensor_read(); } printf("done!\n"); sensor_uinit(); // Sum the no change data sum = 0; for(counter = 0;counter < NUM_SAM;counter++) { sum = sum + data_sam[counter]; } sample_mean = 0; printf("sum = %d\n",sum); sample_mean = sum/NUM_SAM; printf("sample_mean = %d\n",sample_mean); // Caclulate sample_std_dev sqsum = 0; for(counter = 0;counter < NUM_SAM;counter++) { sqsum = sqsum + mypow2(abs_sub(data_sam[counter], sample_mean)); } sample_std_dev = 0; sample_std_dev = sqsum/NUM_SAM; sample_std_dev = mysqrt(sample_std_dev); printf("std_dev = %d\n",sample_std_dev); PROCESS_END(); }