]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/math/doc/html/math_toolkit/dist_ref/dists/skew_normal_dist.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / math / doc / html / math_toolkit / dist_ref / dists / skew_normal_dist.html
CommitLineData
7c673cae
FG
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4<title>Skew Normal Distribution</title>
5<link rel="stylesheet" href="../../../math.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
7<link rel="home" href="../../../index.html" title="Math Toolkit 2.5.1">
8<link rel="up" href="../dists.html" title="Distributions">
9<link rel="prev" href="rayleigh.html" title="Rayleigh Distribution">
10<link rel="next" href="students_t_dist.html" title="Students t Distribution">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr>
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
15<td align="center"><a href="../../../../../../../index.html">Home</a></td>
16<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
20</tr></table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="rayleigh.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="students_t_dist.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h4 class="title">
27<a name="math_toolkit.dist_ref.dists.skew_normal_dist"></a><a class="link" href="skew_normal_dist.html" title="Skew Normal Distribution">Skew
28 Normal Distribution</a>
29</h4></div></div></div>
30<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">skew_normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
31<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
32
33<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
34 <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</span>
35<span class="keyword">class</span> <span class="identifier">skew_normal_distribution</span><span class="special">;</span>
36
37<span class="keyword">typedef</span> <span class="identifier">skew_normal_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">normal</span><span class="special">;</span>
38
39<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter&#160;15.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
40<span class="keyword">class</span> <span class="identifier">skew_normal_distribution</span>
41<span class="special">{</span>
42<span class="keyword">public</span><span class="special">:</span>
43 <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
44 <span class="keyword">typedef</span> <span class="identifier">Policy</span> <span class="identifier">policy_type</span><span class="special">;</span>
45 <span class="comment">// Constructor:</span>
46 <span class="identifier">skew_normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">shape</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
47 <span class="comment">// Accessors:</span>
48 <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// mean if normal.</span>
49 <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// width, standard deviation if normal.</span>
50 <span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span> <span class="comment">// The distribution is right skewed if shape &gt; 0 and is left skewed if shape &lt; 0.</span>
51 <span class="comment">// The distribution is normal if shape is zero.</span>
52<span class="special">};</span>
53
54<span class="special">}}</span> <span class="comment">// namespaces</span>
55</pre>
56<p>
57 The skew normal distribution is a variant of the most well known Gaussian
58 statistical distribution.
59 </p>
60<p>
61 The skew normal distribution with shape zero resembles the <a href="http://en.wikipedia.org/wiki/Normal_distribution" target="_top">Normal
62 Distribution</a>, hence the latter can be regarded as a special case
63 of the more generic skew normal distribution.
64 </p>
65<p>
66 If the standard (mean = 0, scale = 1) normal distribution probability density
67 function is
68 </p>
69<p>
70 &#160; &#160; <span class="inlinemediaobject"><img src="../../../../equations/normal01_pdf.svg"></span>
71 </p>
72<p>
73 and the cumulative distribution function
74 </p>
75<p>
76 &#160; &#160; <span class="inlinemediaobject"><img src="../../../../equations/normal01_cdf.svg"></span>
77 </p>
78<p>
79 then the <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">PDF</a>
80 of the <a href="http://en.wikipedia.org/wiki/Skew_normal_distribution" target="_top">skew
81 normal distribution</a> with shape parameter &#945;, defined by O'Hagan and
82 Leonhard (1976) is
83 </p>
84<p>
85 &#160; &#160; <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_pdf0.svg"></span>
86 </p>
87<p>
88 Given <a href="http://en.wikipedia.org/wiki/Location_parameter" target="_top">location</a>
89 &#958;, <a href="http://en.wikipedia.org/wiki/Scale_parameter" target="_top">scale</a>
90 &#969;, and <a href="http://en.wikipedia.org/wiki/Shape_parameter" target="_top">shape</a>
91 &#945;, it can be <a href="http://en.wikipedia.org/wiki/Skew_normal_distribution" target="_top">transformed</a>,
92 to the form:
93 </p>
94<p>
95 &#160; &#160; <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_pdf.svg"></span>
96 </p>
97<p>
98 and <a href="http://en.wikipedia.org/wiki/Cumulative_distribution_function" target="_top">CDF</a>:
99 </p>
100<p>
101 &#160; &#160; <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_cdf.svg"></span>
102 </p>
103<p>
104 where <span class="emphasis"><em>T(h,a)</em></span> is Owen's T function, and <span class="emphasis"><em>&#934;(x)</em></span>
105 is the normal distribution.
106 </p>
107<p>
108 The variation the PDF and CDF with its parameters is illustrated in the
109 following graphs:
110 </p>
111<p>
112 <span class="inlinemediaobject"><img src="../../../../graphs/skew_normal_pdf.svg" align="middle"></span>
113 <span class="inlinemediaobject"><img src="../../../../graphs/skew_normal_cdf.svg" align="middle"></span>
114 </p>
115<h5>
116<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h0"></a>
117 <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.member_functions"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.member_functions">Member
118 Functions</a>
119 </h5>
120<pre class="programlisting"><span class="identifier">skew_normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">shape</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
121</pre>
122<p>
123 Constructs a skew_normal distribution with location &#958;, scale &#969; and shape &#945;.
124 </p>
125<p>
126 Requires scale &gt; 0, otherwise <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
127 is called.
128 </p>
129<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
130</pre>
131<p>
132 returns the location &#958; of this distribution,
133 </p>
134<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
135</pre>
136<p>
137 returns the scale &#969; of this distribution,
138 </p>
139<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
140</pre>
141<p>
142 returns the shape &#945; of this distribution.
143 </p>
144<p>
145 (Location and scale function match other similar distributions, allowing
146 the functions <code class="computeroutput"><span class="identifier">find_location</span></code>
147 and <code class="computeroutput"><span class="identifier">find_scale</span></code> to be used
148 generically).
149 </p>
150<div class="note"><table border="0" summary="Note">
151<tr>
152<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td>
153<th align="left">Note</th>
154</tr>
155<tr><td align="left" valign="top">
156<p>
157 While the shape parameter may be chosen arbitrarily (finite), the resulting
158 <span class="bold"><strong>skewness</strong></span> of the distribution is in fact
159 limited to about (-1, 1); strictly, the interval is (-0.9952717, 0.9952717).
160 </p>
161<p>
162 A parameter &#948; is related to the shape &#945; by &#948; = &#945; / (1 + &#945;&#178;), and used in the expression
163 for skewness <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_skewness.svg"></span>
164
165 </p>
166</td></tr>
167</table></div>
168<h5>
169<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h1"></a>
170 <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.references"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.references">References</a>
171 </h5>
172<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
173<li class="listitem">
174 <a href="http://azzalini.stat.unipd.it/SN/" target="_top">Skew-Normal Probability
175 Distribution</a> for many links and bibliography.
176 </li>
177<li class="listitem">
178 <a href="http://azzalini.stat.unipd.it/SN/Intro/intro.html" target="_top">A very
179 brief introduction to the skew-normal distribution</a> by Adelchi
180 Azzalini (2005-11-2).
181 </li>
182<li class="listitem">
183 See a <a href="http://www.tri.org.au/azzalini.html" target="_top">skew-normal
184 function animation</a>.
185 </li>
186</ul></div>
187<h5>
188<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h2"></a>
189 <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.non_member_accessors"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.non_member_accessors">Non-member
190 Accessors</a>
191 </h5>
192<p>
193 All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
194 functions</a> that are generic to all distributions are supported:
195 <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
196 <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
197 <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
198 <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
199 <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
200 <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
201 <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
202 <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
203 </p>
204<p>
205 The domain of the random variable is <span class="emphasis"><em>-[max_value], +[min_value]</em></span>.
206 Infinite values are not supported.
207 </p>
208<p>
209 There are no <a href="http://en.wikipedia.org/wiki/Closed-form_expression" target="_top">closed-form
210 expression</a> known for the mode and median, but these are computed
211 for the
212 </p>
213<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
214<li class="listitem">
215 mode - by finding the maximum of the PDF.
216 </li>
217<li class="listitem">
218 median - by computing <code class="computeroutput"><span class="identifier">quantile</span><span class="special">(</span><span class="number">1</span><span class="special">/</span><span class="number">2</span><span class="special">)</span></code>.
219 </li>
220</ul></div>
221<p>
222 The maximum of the PDF is sought through searching the root of f'(x)=0.
223 </p>
224<p>
225 Both involve iterative methods that will have lower accuracy than other
226 estimates.
227 </p>
228<h5>
229<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h3"></a>
230 <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.testing"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.testing">Testing</a>
231 </h5>
232<p>
233 <a href="http://www.r-project.org/" target="_top">The R Project for Statistical Computing</a>
234 using library(sn) described at <a href="http://azzalini.stat.unipd.it/SN/" target="_top">Skew-Normal
235 Probability Distribution</a>, and at <a href="http://cran.r-project.org/web/packages/sn/sn.pd" target="_top">R
236 skew-normal(sn) package</a>.
237 </p>
238<p>
239 Package sn provides functions related to the skew-normal (SN) and the skew-t
240 (ST) probability distributions, both for the univariate and for the the
241 multivariate case, including regression models.
242 </p>
243<p>
244 <a href="http://www.wolfram.com/products/mathematica/index.html" target="_top">Wolfram
245 Mathematica</a> was also used to generate some more accurate spot test
246 data.
247 </p>
248<h5>
249<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h4"></a>
250 <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.accuracy"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.accuracy">Accuracy</a>
251 </h5>
252<p>
253 The skew_normal distribution with shape = zero is implemented as a special
254 case, equivalent to the normal distribution in terms of the <a class="link" href="../../sf_erf/error_function.html" title="Error Functions">error
255 function</a>, and therefore should have excellent accuracy.
256 </p>
257<p>
258 The PDF and mean, variance, skewness and kurtosis are also accurately evaluated
259 using <a href="http://en.wikipedia.org/wiki/Analytical_expression" target="_top">analytical
260 expressions</a>. The CDF requires <a href="http://en.wikipedia.org/wiki/Owen%27s_T_function" target="_top">Owen's
261 T function</a> that is evaluated using a Boost C++ <a class="link" href="../../owens_t.html" title="Owen's T function">Owens
262 T</a> implementation of the algorithms of M. Patefield and D. Tandy,
263 Journal of Statistical Software, 5(5), 1-25 (2000); the complicated accuracy
264 of this function is discussed in detail at <a class="link" href="../../owens_t.html" title="Owen's T function">Owens
265 T</a>.
266 </p>
267<p>
268 The median and mode are calculated by iterative root finding, and both
269 will be less accurate.
270 </p>
271<h5>
272<a name="math_toolkit.dist_ref.dists.skew_normal_dist.h5"></a>
273 <span class="phrase"><a name="math_toolkit.dist_ref.dists.skew_normal_dist.implementation"></a></span><a class="link" href="skew_normal_dist.html#math_toolkit.dist_ref.dists.skew_normal_dist.implementation">Implementation</a>
274 </h5>
275<p>
276 In the following table, &#958; is the location of the distribution, and &#969; is its
277 scale, and &#945; is its shape.
278 </p>
279<div class="informaltable"><table class="table">
280<colgroup>
281<col>
282<col>
283</colgroup>
284<thead><tr>
285<th>
286 <p>
287 Function
288 </p>
289 </th>
290<th>
291 <p>
292 Implementation Notes
293 </p>
294 </th>
295</tr></thead>
296<tbody>
297<tr>
298<td>
299 <p>
300 pdf
301 </p>
302 </td>
303<td>
304 <p>
305 Using: <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_pdf.svg"></span>
306 </p>
307 </td>
308</tr>
309<tr>
310<td>
311 <p>
312 cdf
313 </p>
314 </td>
315<td>
316 <p>
317 Using: <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_cdf.svg"></span><br> where <span class="emphasis"><em>T(h,a)</em></span>
318 is Owen's T function, and <span class="emphasis"><em>&#934;(x)</em></span> is the normal
319 distribution.
320 </p>
321 </td>
322</tr>
323<tr>
324<td>
325 <p>
326 cdf complement
327 </p>
328 </td>
329<td>
330 <p>
331 Using: complement of normal distribution + 2 * Owens_t
332 </p>
333 </td>
334</tr>
335<tr>
336<td>
337 <p>
338 quantile
339 </p>
340 </td>
341<td>
342 <p>
343 Maximum of the pdf is sought through searching the root of f'(x)=0
344 </p>
345 </td>
346</tr>
347<tr>
348<td>
349 <p>
350 quantile from the complement
351 </p>
352 </td>
353<td>
354 <p>
355 -quantile(SN(-location &#958;, scale &#969;, -shape&#945;), p)
356 </p>
357 </td>
358</tr>
359<tr>
360<td>
361 <p>
362 location
363 </p>
364 </td>
365<td>
366 <p>
367 location &#958;
368 </p>
369 </td>
370</tr>
371<tr>
372<td>
373 <p>
374 scale
375 </p>
376 </td>
377<td>
378 <p>
379 scale &#969;
380 </p>
381 </td>
382</tr>
383<tr>
384<td>
385 <p>
386 shape
387 </p>
388 </td>
389<td>
390 <p>
391 shape &#945;
392 </p>
393 </td>
394</tr>
395<tr>
396<td>
397 <p>
398 median
399 </p>
400 </td>
401<td>
402 <p>
403 quantile(1/2)
404 </p>
405 </td>
406</tr>
407<tr>
408<td>
409 <p>
410 mean
411 </p>
412 </td>
413<td>
414 <p>
415 <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_mean.svg"></span>
416 </p>
417 </td>
418</tr>
419<tr>
420<td>
421 <p>
422 mode
423 </p>
424 </td>
425<td>
426 <p>
427 Maximum of the pdf is sought through searching the root of f'(x)=0
428 </p>
429 </td>
430</tr>
431<tr>
432<td>
433 <p>
434 variance
435 </p>
436 </td>
437<td>
438 <p>
439 <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_variance.svg"></span>
440 </p>
441 </td>
442</tr>
443<tr>
444<td>
445 <p>
446 skewness
447 </p>
448 </td>
449<td>
450 <p>
451 <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_skewness.svg"></span>
452 </p>
453 </td>
454</tr>
455<tr>
456<td>
457 <p>
458 kurtosis
459 </p>
460 </td>
461<td>
462 <p>
463 kurtosis excess-3
464 </p>
465 </td>
466</tr>
467<tr>
468<td>
469 <p>
470 kurtosis excess
471 </p>
472 </td>
473<td>
474 <p>
475 <span class="inlinemediaobject"><img src="../../../../equations/skew_normal_kurt_ex.svg"></span>
476 </p>
477 </td>
478</tr>
479</tbody>
480</table></div>
481</div>
482<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
483<td align="left"></td>
484<td align="right"><div class="copyright-footer">Copyright &#169; 2006-2010, 2012-2014 Nikhar Agrawal,
485 Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert
486 Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Johan R&#229;de, Gautam Sewani,
487 Benjamin Sobotta, Thijs van den Berg, Daryle Walker and Xiaogang Zhang<p>
488 Distributed under the Boost Software License, Version 1.0. (See accompanying
489 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
490 </p>
491</div></td>
492</tr></table>
493<hr>
494<div class="spirit-nav">
495<a accesskey="p" href="rayleigh.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="students_t_dist.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
496</div>
497</body>
498</html>