This is my understanding of the input and output descriptions:
- The input consists of three command line arguments, each of which is exactly 32 hex digits long.
- The output should be something like "574395734 cycles" printed to stdout.
- The program need not specify if it terminated due to all zeros or repeating the initial values.
- Elapsed time and units (seconds or milliseconds) should be printed to stderr.
Are any of these inferences wrong?
As far as the input, my program handles hex strings longer/shorter than 32 digits by truncating/zero-padding the most significant digits (and issuing a warning to stderr). This is useful for running small tests involving only one DWORD.
The thing about "output to stdout" and "time to stderr" is something I picked up from another Threading Challenge problem. It probably doesn't matter but I noticed log files created by batch jobs on the MTL record stderr output before stdout, reversing the order of my printf's.