Re: Solution times for matrix problems Message #2 Posted by Valentin Albillo on 8 July 2004, 4:51 a.m., in response to message #1 by Palmer O. Hanson, Jr.
Hi, Palmer:
Palmer wrote:
"In my mind we need to focus on the total solution time including both the time to enter the test matrix, the running time, [...] and the readout time."
I don't concur. I think the only significant time here is the running time, not the input/output time. Taking them into account introduces a strongly subjective factor, because times then will depend on the ability of the particular user doing the tests, and the methodology he/she uses to do the input/output, both of which are highly subjective.
Just for instance, you give 40 seconds to input Kahan's 4x4 matrix into the HP-15C while I've timed myself to do it in 30 seconds, routinely, instead of your listed 40. That makes a significant difference to the totals. Also, you take quite different times if you're reading the numbers from some paper or screen one at a time, or else if you memorize a row of them and then enter them without further looking. Finally, any user is likely to be more used to a particular machine, and be more comfortable with it than with others, so further biasing the times.
There's also the fact that normally the operation under test (a matrix inversion in this particular case) means little by itself, being usually called from another program or routine. In that usual case the one and only relevant info is the time for the inversion, as the calling program will have stored or computed the input elements and will take care of using the output values for whatever it needs them, all of them or perhaps just some. This being so, including human input/output times is useless at best and misleading at worst, and can seriously bias results.
So, in my very humble, particular opinion, unless you time only the computation itself, excluding input/output times, your results aren't going to be as significant, objective, and useful as they should.
As a final comment, you don't include results for the HP-71B. Mine does invert this matrix in under 2 seconds. And relevant to what I've just stated, input time *absolutely* depends on your methodology, i.e:
- You can input data using a loop, like this:
10 DIM A(4,4) @ FOR I=1 TO 4 @ FOR J=1 TO 4 @ INPUT A(I,J) @ NEXT J @ NEXT I
- Or, you can input the whole matrix at once, elements separated using commas:
10 DIM A(4,4) @ MAT INPUT A
- Or, you can put the elements in a DATA statement and
read them all at once:
10 DIM A(4,4) @ READ A()
20 DATA element1, element2, ..., element 16
- Or, you can enter the elements into a file with some program or editor, then have the matrix inversion program read them all at once, like this:
10 DIM A(4,4) @ ASSIGN #1 TO "MYDATA" @ READ A() @ ASSIGN #1 TO *
As you can see, all are valid input methods and you'll use one or the other depending on the particular need or your personal taste. I, for instance, tend to use a lot the DATA method, because you can very easily make corrections, additions or deletions by simply editing the DATA statements, instead of relying in the command stack or re-typing.
And of course, all of them will give vastly different input times, even not considering the (considerable) variation in physical dexterity to key in the values among the diverse human testers. Not to mention output times, which I'd rather not touch here.
Best regards from V.
Edited: 8 July 2004, 5:16 a.m.
|