On Tue, Mar 24, 2009 at 7:03 PM, Marco Caliari <address@hidden> wrote:
And Marco Caliari writes:
The other deficiencies are much harder to fix. I will give a look.
std() could be fixed relatively easily by calling the BLAS's
routines (SNRM2, DNRM2, SCNRM2, DZNRM2) rather than relying on
sqrt (sumsq (...)). The half drop in precision is a typical
failure mode for implementations that don't scale. I suspect
that fixing std() may fix corrcoef and help anova.
I already tried with a .m implementation of dnrm2, without any improvement.
For interested people, the sample vector is
whose exact mean is 10000000.2 and exact standard deviation 0.1.
What do you mean by "exact mean" here? I don't think any of the three
numbers are exactly representable in IEEE floating-point. It would be
better to choose numbers that have an exact representation, such as
1e7 + 0.25, 1e7 + 0.5, 1.7 + 0.75 or such. Otherwise, you can't avoid
introducing errors just by writing these numbers.