]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/numeric/interval/doc/includes.htm
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / numeric / interval / doc / includes.htm
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2 "http://www.w3.org/TR/html4/loose.dtd">
3
4 <html>
5 <head>
6 <meta http-equiv="Content-Language" content="en-us">
7 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
8 <link rel="stylesheet" type="text/css" href="../../../../boost.css">
9
10 <title>Headers Inclusion</title>
11 </head>
12
13 <body lang="en">
14 <h1>Headers Inclusion</h1>
15
16 <p>The easiest way to access to the library is by including the main
17 header:</p>
18 <pre>
19 #include &lt;boost/numeric/interval.hpp&gt;
20 </pre>
21
22 <p>This header will include almost all the other headers (except the ones
23 listed as extensions). However, you may not want to access all the
24 functionalities of the library. So this page stands as a reminder for the
25 whole structure of the library.
26 <code>&lt;boost/numeric/interval.hpp&gt;</code> is the only header to be
27 located directly under <code>boost/numeric</code>; all the other headers
28 are located in the subdirectory <code>boost/numeric/interval</code>. And
29 each time this documentation will refer to
30 <code>interval/something.hpp</code>, it is
31 <code>&lt;boost/numeric/interval/something.hpp&gt;</code>.</p>
32
33 <p>Please also note that all the following headers are independent and can
34 easily be pre-compiled if necessary (for compilers which support
35 pre-compiled headers of course).</p>
36
37 <h2>Function definitions</h2>
38
39 <p>The following headers contain the definition of the
40 <code>interval</code> class and all the friendly functions and
41 operators.</p>
42
43 <h3><code>interval/interval.hpp</code></h3>
44
45 <p>This header contains the definition and the declaration of the
46 <code>interval</code> class. However, this class is templated and the
47 default template parameters are not available by this header. In
48 particular, this header does not provide the default specialization of the
49 <code>interval</code> class for the floating-point types
50 (<code>interval&lt;float&gt;</code>, <code>interval&lt;double&gt;</code>
51 and <code>interval&lt;long double&gt;</code>). So, unless you use your own
52 policies, this header is not really useful on its own.</p>
53
54 <h3><code>interval/utility.hpp</code></h3>
55
56 <p>In this header are all the functions that do not expect any arithmetic
57 property from the base number type. It only expects the bounds to be
58 ordered; but it should not surprise you since it is a requirement of the
59 whole library. You will find in this header the definitions of access and
60 related functions: <code>lower</code>, <code>upper</code>,
61 <code>checked_lower</code>, <code>checked_upper</code>,
62 <code>median</code>, <code>width</code>, <code>widen</code>. There are also
63 the set-like functions: <code>in,</code> <code>zero_in</code>,
64 <code>empty</code>, <code>subset</code>, <code>proper_subset</code>,
65 <code>overlap</code>, <code>singleton</code>, <code>equal</code>,
66 <code>intersect</code>, <code>hull</code>, <code>bisect</code>. Finally,
67 <code>abs</code>, <code>min</code>, and <code>max</code> are defined.</p>
68
69 <h3><code>interval/arith.hpp</code></h3>
70
71 <p>Here are the binary operators <code>+</code>, <code>-</code>,
72 <code>*</code>, <code>/</code> and the unary operator <code>-</code>.</p>
73
74 <h3><code>interval/arith2.hpp</code></h3>
75
76 <p>This header defines <code>fmod</code>, <code>square</code>,
77 <code>sqrt</code>, <code>pow</code>, and <code>root</code>.</p>
78
79 <h3><code>interval/arith3.hpp</code></h3>
80
81 <p>The third arithmetic header: it provides the functions <code>add</code>,
82 <code>sub</code>, <code>mul</code>, and <code>div</code>. The type of their
83 arguments is the base number type.</p>
84
85 <h3><code>interval/transc.hpp</code></h3>
86
87 <p>It is the last of the headers with mathematical functions; it provides
88 the following functions: <code>cos</code>, <code>sin</code>,
89 <code>tan</code>, <code>acos</code>, <code>asin</code>, <code>atan</code>,
90 <code>cosh</code>, <code>sinh</code>, <code>tanh</code>,
91 <code>acosh</code>, <code>asinh</code>, <code>atanh</code>,
92 <code>exp</code>, and <code>log</code>.</p>
93
94 <h2>Policies</h2>
95
96 <p>The following headers define some policies. They may be needed if you
97 use the default policies.</p>
98
99 <h3><code>interval/rounded_arith.hpp</code></h3>
100
101 <p>This header defines the three provided rounding policies for the
102 arithmetic functions: <code>rounded_arith_std</code>,
103 <code>rounded_arith_opp</code>, <code>rounded_arith_exact</code>.</p>
104
105 <h3><code>interval/rounded_transc.hpp</code></h3>
106
107 <p>This header defines the three provided rounding policies for the
108 transcendental functions: <code>rounded_transc_std</code>,
109 <code>rounded_transc_opp</code>, <code>rounded_transc_exact</code>. It is
110 separated from <code>rounded_arith.hpp</code> since the transcendental part
111 of the rounding policy is probably less useful than the arithmetic
112 part.</p>
113
114 <h3><code>interval/hw_rounding.hpp</code></h3>
115
116 <p>Here are full rounding policies for the basic floating-point types. The
117 policies are processor-dependent; and to allow the user code to be
118 portable, they only define the common subset of the hardware available
119 functions, which are the arithmetic functions of the rounding policy.</p>
120
121 <h3><code>interval/checking.hpp</code></h3>
122
123 <p>This header provides the predefined checking policies:
124 <code>checking_base</code>, <code>checking_no_empty</code>,
125 <code>checking_no_nan</code>, <code>checking_catch_nan</code>,
126 <code>checking_strict</code>.</p>
127
128 <h3><code>interval/policies.hpp</code></h3>
129
130 <p>Here are defined the helpers for manipulating policies. It contains
131 <code>policies</code> (and so is needed for using default policies),
132 <code>change_rounding</code>, <code>change_checking</code>,
133 <code>unprotect</code>, etc.</p>
134
135 <h2>Comparisons</h2>
136
137 <h3><code>interval/compare.hpp</code></h3>
138
139 <p>This header includes all the following headers. They provide some
140 predefined comparison namespaces.</p>
141
142 <h3><code>interval/compare/certain.hpp</code></h3>
143
144 <p>Here is <code>compare::certain</code>.</p>
145
146 <h3><code>interval/compare/possible.hpp</code></h3>
147
148 <p>And here is its friend <code>compare::possible</code>.</p>
149
150 <h3><code>interval/compare/explicit.hpp</code></h3>
151
152 <p>The explicit comparison functions <code>cerlt</code>,
153 <code>posge</code>, etc are defined in this header.</p>
154
155 <h3><code>interval/compare/lexicographic.hpp</code></h3>
156
157 <p>This header provides <code>compare::lexicographic</code>.</p>
158
159 <h3><code>interval/compare/set.hpp</code></h3>
160
161 <p>This header provides <code>compare::set</code>.</p>
162
163 <h2>Extensions</h2>
164
165 <p>The following headers are not included by <code>interval.hpp</code> and
166 will usually provide not always desirable capabilities.</p>
167
168 <h3><code>interval/io.hpp</code></h3>
169
170 <p>Here are defined basic stream operators <code>&lt;&lt;</code> and
171 <code>&gt;&gt;</code>. They should only be used as a first approach and
172 later be replaced by a customized version.</p>
173
174 <h3><code>interval/limits.hpp</code></h3>
175
176 <p>A specialization of <code>std::numeric_limits</code> adapted to the
177 interval type.</p>
178
179 <h3><code>interval/compare/tribool.hpp</code></h3>
180
181 <p>This header provides a comparison namespace
182 <code>compare::tribool</code> especially adapted to a tristate boolean.</p>
183
184 <h3><code>interval/ext/integer.hpp</code></h3>
185
186 <p>This header provides mixed operations between intervals and integers. It
187 is done by converting the integer to the base number type. Because this
188 comparison is not always correct (for a big <code>int</code> may not be
189 exactly convertible to <code>float</code>), this header is not
190 automatically included and the user should ensure that this behavior is
191 compatible with what she wants to do (if it is only to multiply some
192 intervals by 2, it probably is a good thing to include this header).</p>
193
194 <h3><code>interval/ext/x86_fast_rounding_control.hpp</code></h3>
195
196 <p>This header defines a new rounding policy allowing to workaround the
197 precision problem of the x86 processors (and so speeding up the
198 computations). However, it only is a partial solution and it shouldn't be
199 used when there is a possibility of underflow or overflow.</p>
200 <hr>
201
202 <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
203 "../../../../doc/images/valid-html401.png" alt="Valid HTML 4.01 Transitional"
204 height="31" width="88"></a></p>
205
206 <p>Revised
207 <!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d" startspan -->2006-12-24<!--webbot bot="Timestamp" endspan i-checksum="12172" --></p>
208
209 <p><i>Copyright &copy; 2002 Guillaume Melquiond, Sylvain Pion, Herv&eacute;
210 Br&ouml;nnimann, Polytechnic University<br>
211 Copyright &copy; 2003-2006 Guillaume Melquiond, ENS Lyon</i></p>
212
213 <p><i>Distributed under the Boost Software License, Version 1.0. (See
214 accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
215 or copy at <a href=
216 "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
217 </body>
218 </html>