GNU Scientific Library Reference Manual - Third Edition (v1.12)by M. Galassi, J. Davies, J. Theiler, B. Gough, G. Jungman, P. Alken, M. Booth, F. Rossi Paperback (6"x9"), 592 pages, 60 figures ISBN 0954612078 RRP £24.95 ($39.95) |

## 2.6 Long double

In general, the algorithms in the library are written for double
precision only. The `long double`

type is not supported for
actual computation.

One reason for this choice is that the precision of `long double`

is platform dependent. The IEEE standard only specifies the minimum
precision of extended precision numbers, while the precision of
`double`

is the same on all platforms.

However, it is sometimes necessary to interact with external data in long-double format, so the vector and matrix datatypes include long-double versions.

It should be noted that in some system libraries the `stdio.h`

formatted input/output functions `printf`

and `scanf`

are
not implemented correctly for `long double`

. Undefined or
incorrect results are avoided by testing these functions during the
`configure`

stage of library compilation and eliminating certain
GSL functions which depend on them if necessary. The corresponding
line in the `configure`

output looks like this,

checking whether printf works with long double... no

Consequently when `long double`

formatted input/output does not
work on a given system it should be impossible to link a program which
uses GSL functions dependent on this.

If it is necessary to work on a system which does not support formatted
`long double`

input/output then the options are to use binary
formats or to convert `long double`

results into `double`

for
reading and writing.

ISBN 0954612078 | GNU Scientific Library Reference Manual - Third Edition (v1.12) | See the print edition |