On Wed, 2 Dec 2009, Matteo Sisti Sette wrote:
are not implemented in the most optimized way, that is for example, double linked lists are used where more efficient data structures could be used.
In almost all of Pd, singly-linked lists are used. That's even more inefficient than doubly-linked lists.
I simply guess that in some cases, an implementation that is O(n^2) is chosen just because it is the easiest one, where a O(nlogn) is possible.
Quite often, it's even O(n) vs O(n^2).
really safe to assume 'n' won't ever be big enough? Isn't it worth using a more efficient data structure? Can I really assume that it would be 'foolish' to have n>[some value here]? Or maybe not?"
I agree about this but it would be foolish to not think about how those modifications to the source code would get distributed. There's not much that I would bother to write for pd-vanilla, without à priori getting an explicit note from the man, certifying that the proposal won't sit for æternal rest in the holy sourceforget repository of forgotten diffs.
Allowing to go beyound the limits means designing things in such a way that they can be used in ways that the developer haven't thought about. And wherever a physical, numerical, well-defined limit still exists, which is unavoidable, it MUST be documented.
You can't learn that in a culture that encourages people to think of programming by imagining an infinite, strictly-monotonous sequence of ever-bigger computers, whereby if a given programme runs on any infinite subsequence of those computers, it's all fine. ;)
Sometimes however the bugs are too difficult to isolate,
If you still have not tried Valgrind, now is the time. It does wonders.
Perhaps I should sometimes share also the great joys and satisfactions it gives me, and not only the frustrations which are a small percentage.
I'm guilty of that too.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801