File: Long-double.html

package info (click to toggle)
gsl-ref-html 2.3-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, sid
  • size: 6,876 kB
  • ctags: 4,574
  • sloc: makefile: 35
file content (111 lines) | stat: -rw-r--r-- 5,232 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".

(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library &ndash; Reference Manual: Long double</title>

<meta name="description" content="GNU Scientific Library &ndash; Reference Manual: Long double">
<meta name="keywords" content="GNU Scientific Library &ndash; Reference Manual: Long double">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Using-the-library.html#Using-the-library" rel="up" title="Using the library">
<link href="Portability-functions.html#Portability-functions" rel="next" title="Portability functions">
<link href="Inline-functions.html#Inline-functions" rel="previous" title="Inline functions">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Long-double"></a>
<div class="header">
<p>
Next: <a href="Portability-functions.html#Portability-functions" accesskey="n" rel="next">Portability functions</a>, Previous: <a href="Inline-functions.html#Inline-functions" accesskey="p" rel="previous">Inline functions</a>, Up: <a href="Using-the-library.html#Using-the-library" accesskey="u" rel="up">Using the library</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Long-double-1"></a>
<h3 class="section">2.6 Long double</h3>
<a name="index-long-double"></a>
<p>In general, the algorithms in the library are written for double
precision only.  The <code>long double</code> type is not supported for
actual computation.
</p>
<p>One reason for this choice is that the precision of <code>long double</code>
is platform dependent.  The IEEE standard only specifies the minimum
precision of extended precision numbers, while the precision of
<code>double</code> is the same on all platforms.
</p>
<p>However, it is sometimes necessary to interact with external data in
long-double format, so the vector and matrix datatypes include
long-double versions.
</p>
<p>It should be noted that in some system libraries the <code>stdio.h</code>
formatted input/output functions <code>printf</code> and <code>scanf</code> are
not implemented correctly for <code>long double</code>.  Undefined or
incorrect results are avoided by testing these functions during the
<code>configure</code> stage of library compilation and eliminating certain
GSL functions which depend on them if necessary.  The corresponding
line in the <code>configure</code> output looks like this,
</p>
<div class="example">
<pre class="example">checking whether printf works with long double... no
</pre></div>

<p>Consequently when <code>long double</code> 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.
</p>
<p>If it is necessary to work on a system which does not support formatted
<code>long double</code> input/output then the options are to use binary
formats or to convert <code>long double</code> results into <code>double</code> for
reading and writing.
</p>



</body>
</html>