Changeset 6903 for trunk/ppMerge/src/ppMerge.c
- Timestamp:
- Apr 19, 2006, 9:18:24 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/ppMerge/src/ppMerge.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppMerge/src/ppMerge.c
r5862 r6903 1 # include "ppMerge.h" 1 #include <stdio.h> 2 #include "pslib.h" 3 #include "pmConcepts.h" 4 #include "ppMerge.h" 5 #include "ppMem.h" 2 6 3 int main (int argc, char **argv) { 7 int main(int argc, char **argv) 8 { 9 ppMergeOptions *options = ppMergeOptionsAlloc(); 10 ppConfig *config = ppConfigAlloc(); 4 11 5 ppData data; 6 ppConfig config; 7 ppOptions options; 8 9 10 psTimerStart("merge"); 12 psTimerStart(TIMERNAME); 11 13 12 14 // Parse the configuration and arguments 13 pp MergeConfig (&config, argc, argv);15 ppImageConfig(config, argc, argv); 14 16 15 17 // Open the input image, output image, output mask 16 18 // Get camera configuration from header if not already defined 17 19 // Construct camera in preparation for reading 18 pp MergeParseCamera (&data, &config);20 ppImageParseCamera(data, config); 19 21 20 22 // Set various tasks (define optional operations) 21 pp MergeOptions (&data, &options, &config);23 ppImageOptionsParse(data, options, config); 22 24 23 // open detrend images (mask), load headers24 pp MergeParseDetrend (&data, &options, &config);25 // open detrend images, load headers, optionally load pixels 26 ppImageParseDetrend(data, options, config); 25 27 26 // Image MergeLoop27 pp MergeLoop (&data, &options, &config);28 // Image Arithmetic Loop 29 ppImageLoop(data, options, config); 28 30 29 // output options 30 ppMergeOutput (&data, &options, &config); 31 // Cleaning up 32 psFree(data); 33 psFree(options); 34 psFree(config); 35 psTimerStop(); 36 psTraceReset(); 37 pmConceptsDone(); 38 ppMemCheck(); 31 39 32 exit (0);40 return EXIT_SUCCESS; 33 41 } 34 35 int speedTest (void)36 {37 # define NTEST 1000000038 psStats *testData, *stats;39 stats = psStatsAlloc (PS_STAT_ROBUST_MEAN);40 psList *testList = psListAlloc (NULL);41 psArray *testArray = psArrayAlloc (NTEST);42 43 psTimerStart("merge");44 for (int i = 0; i < NTEST; i++) {45 testArray->data[i] = stats;46 }47 fprintf (stderr, "added %d objects to array: %f usec / obj\n", NTEST, 1e6*psTimerMark ("merge")/NTEST);48 49 psTimerStart("merge");50 for (int i = 0; i < NTEST; i++) {51 psListAdd (testList, PS_LIST_TAIL, stats);52 }53 fprintf (stderr, "added %d objects to list: %f usec / obj\n", NTEST, 1e6*psTimerMark ("merge")/NTEST);54 55 psTimerStart("merge");56 for (int i = 0; i < NTEST; i++) {57 testData = testArray->data[i];58 }59 fprintf (stderr, "pulled %d objects from array: %f usec / obj\n", NTEST, 1e6*psTimerMark ("merge")/NTEST);60 61 psTimerStart("merge");62 psListElem *tmpInput = (psListElem *) testList->head;63 while (tmpInput != NULL) {64 testData = tmpInput->data;65 tmpInput = tmpInput->next;66 }67 fprintf (stderr, "pulled %d objects from list: %f usec / obj\n", NTEST, 1e6*psTimerMark ("merge")/NTEST);68 69 exit (0);70 }
Note:
See TracChangeset
for help on using the changeset viewer.
