Re: Re: Re: easiest way to sort a list?

*To*: mathgroup at smc.vnet.net*Subject*: [mg18530] Re: [mg18408] Re: [mg18322] Re: [mg18308] easiest way to sort a list?*From*: David Withoff <withoff at wolfram.com>*Date*: Thu, 8 Jul 1999 22:33:00 -0400*Sender*: owner-wri-mathgroup at wolfram.com

> I have just had a private "dispute" with David Withoff concerning a similar > matter. My point was (or at least what I intended to say though maybe I > faiiled to make it quite clear) was that a user has essentially no reliable > way to "theoretically" estimate the performace of Mathematica programs, even > their relative performance. All we can do is just run various examples on > our machines and make guesses about what is going on internally. David > Withoff's point - as far as I managed to understand it and I do hope I am > not misrepesenting him- was that it is possible to make accurate > "theoretical estimates" if one takes all the relevant factors into account. > However what this seems to amount to is that David Withoff and others at > wri can make such estimates, which is a rather different thing. > -- > Andrzej Kozlowski > Toyama International University > JAPAN > http://sigma.tuins.ac.jp > http://eri2.tuins.ac.jp In any complicated system, timing estimates are essentially always based on approximations, models, and guesses. That is neither unexpected nor is it unique to Mathematica. If you want to get accurate timing estimates you can do that, but it requires a *lot* of study and a *lot* of work. You need to find and study documentation for a whole collection of things about your computer, most of which do not involve Mathematica. The whole point of a high-level system is that it relieves the user of the need to worry about such details. Even if I had documentation for how many machine cycles it takes to call a subroutine, and myriad other details, I do not have the time to read and understand it all and still do what I want to do using Mathematica. Our "dispute" was about something else altogether -- specifically your original statement > If I am right than this is an interesting illustration of the difference > between Mathematica programming and theoretical computer science. which I claimed (and still claim) is at best misleading. As you later pointed out, theoretical computer science didn't suddenly become invalid when Mathematica was invented. The difference is not between Mathematica and theoretical computer science, but between a correct analysis and the best guess that you are able to come up with given the amount of time and effort that you are willing to invest in analyzing a complicated high-level system. In other words, this whole discussion about the difficulty of doing correct timing analysis in a high-level system is really just an expression of our shared frustration that we can't have it both ways. We cannot get the tremendous advantages associated with being blissfully ignorant of the details of the system and simultaneously understand all of those details well enough to do completely reliable analysis. Dave Withoff Wolfram Research