Florian Klämpfl schrieb:
Am 20.04.2011 00:05, schrieb Hans-Peter Diettrich:
Florian Klaempfl schrieb:

Using extended typically hides only bad numerical algorithms. There
might be some corner cases where extended is usefull but I general I
think it's a matter of bad algorithms.
Some algorithms convert faster with increased accuracy.

I guess you meant converge?

Right. I had a phone call just while answering :-(

This might be true, but processing of
extended types is also slower: the memory footprint increases and even
worse, extended arrays are typically aligned to 4 or even 16 byte
borders so they take 12 or 16 byte in memory.

Please don't mix up the internal processing and the external storage of the values. Type coercion (expansion) is frequently used in the evaluation of expressions, be inside a GPU or FPU.

Further, more complex
floating point operations than +,-,* are also typically slower when the
fpu is set to extended precision. So even if an algorithm converges in
less steps with extended, the overall computation time might not decrease.

In contrast computations with extended precision can eliminate the need for additional checks of intermediate results (overflow, underflow...), which have to be inserted explicitly in other cases.

Of course there exists no general rule, it depends on the concrete purpose of a calculation, which algorithm, precision and type (BCD, fixed point...) yields the "best" results. But there also exists no reason why a coder should be prevented from using existing instructions and data types.

DoDi

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to