Study about accuracy of statistical software, incl. Octave
Marco Caliari
marco.caliari at univr.it
Tue Mar 24 13:46:32 CDT 2009
On Tue, 24 Mar 2009, Jaroslav Hajek wrote:
> On Tue, Mar 24, 2009 at 7:03 PM, Marco Caliari <marco.caliari at univr.it> 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.
>>
>> Dear Jason,
>>
>> I already tried with a .m implementation of dnrm2, without any improvement.
>> For interested people, the sample vector is
>>
>> v=[10000000.2,repmat([10000000.1,10000000.3],1,500)];
>>
>> whose exact mean is 10000000.2 and exact standard deviation 0.1.
>>
>> Best regards,
>>
>> Marco
>>
>
> 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.
I agree with you, Jaroslav. On the other hand, in the paper it is
written that R can compute the standard deviation with 15 correct digits.
Actually, Octave can compute the mean with 14 correct digits and with 15
correct digits with the patch I sent. The standard deviation with 8
correct digits.
Marco
More information about the Help-octave
mailing list