He tried the instruments as no one else had tried
them; he destroyed them, one after another, as
fast as they could be made and sent him, till the
patience of Mr. Sholes [the inventor] was
But Mr. Densmore insisted, that this was the very
salvation of the enterprise; that it showed the
weak spots and defects, and that the machine must
be made so that anybody could use it, or all
efforts might as well be abandoned; that such a
test was a blessing and not a misfortune, for
which the enterprise should be thankful.
Donald A. Norman, The design of everyday things
A few days ago, David Sibley noted a somehow strange behaviour in
CharTablePGroup, whenever occuring an abelian group. I tried to answer this
letter in pointing out, that computing a character table of an abelian group
perhaps is not an too good idea. However, further analysis led to the
conclusion, that this effect could not be resposible for a behaviour *that*
An examination of the execution of the algorithm showed, that there was
indeed an flaw, which was responsible not only for the poor performance on
the cyclic group, but also for a decerease of speed in the general case.
As a result, the thus modified algorithm runs about a factor 2-15 (15 for
abelian groups) faster, than the former version, resulting in an improvement
in speed about at least the factor 3-4 in the 'mean' case. (These factors are
based on computing the character tables of all groups of order 243).
I'd like to thank David Sibley for pointing us to this case. We depend on
the aid of users for finding errors like these, that may remain undetected
when running examples.