/usr/share/doc/pyxplot/html/ex-pendulum.html is in pyxplot-doc 0.8.4-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="generator" content="plasTeX" />
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>PyXPlot Users' Guide: Subroutines</title>
<link href="ex-macro.html" title="Macros" rel="next" />
<link href="sect0038.html" title="Conditional Functions" rel="prev" />
<link href="sect0031.html" title="Programming and Flow Control" rel="up" />
<link rel="stylesheet" href="styles/styles.css" />
</head>
<body>
<div class="navigation">
<table cellspacing="2" cellpadding="0" width="100%">
<tr>
<td><a href="sect0038.html" title="Conditional Functions"><img alt="Previous: Conditional Functions" border="0" src="icons/previous.gif" width="32" height="32" /></a></td>
<td><a href="sect0031.html" title="Programming and Flow Control"><img alt="Up: Programming and Flow Control" border="0" src="icons/up.gif" width="32" height="32" /></a></td>
<td><a href="ex-macro.html" title="Macros"><img alt="Next: Macros" border="0" src="icons/next.gif" width="32" height="32" /></a></td>
<td class="navtitle" align="center">PyXPlot Users' Guide</td>
<td><a href="index.html" title="Table of Contents"><img border="0" alt="" src="icons/contents.gif" width="32" height="32" /></a></td>
<td><a href="sect0255.html" title="Index"><img border="0" alt="" src="icons/index.gif" width="32" height="32" /></a></td>
<td><img border="0" alt="" src="icons/blank.gif" width="32" height="32" /></td>
</tr>
</table>
</div>
<div class="breadcrumbs">
<span>
<span>
<a href="index.html">PyXPlot Users' Guide</a> <b>:</b>
</span>
</span><span>
<span>
<a href="sect0001.html">Introduction to PyXPlot</a> <b>:</b>
</span>
</span><span>
<span>
<a href="sect0031.html">Programming and Flow Control</a> <b>:</b>
</span>
</span><span>
<span>
<b class="current">Subroutines</b>
</span>
</span>
<hr />
</div>
<div><h1 id="ex:pendulum">6.9 Subroutines</h1>
<p> <a name="a0000000596" id="a0000000596"></a> </p><p>Subroutines are similar to mathematical functions (see Section <a href="sec-functions.html">4.3</a>), and once defined, can be used anywhere in algebraic expressions, just as functions can be. However, instead of being defined by a single algebraic expression, whenever a subroutine is evaluated, a block of PyXPlot commands of arbitrary length is executed. This gives much greater flexibility for implementing complex algorithms. Subroutines are defined using the following syntax: </p><pre>
subroutine <name>(<variable1>,...)
{
...
return <value>
}
</pre><p> Where <tt class="tt">name</tt> is the name of the subroutine, <tt class="tt">variable1</tt> is an argument taken by the subroutine, and the value passed to the <tt class="tt">return</tt> statement is the value returned to the caller. Once the <tt class="tt">return</tt> statement is reached, execution of the subroutine is terminated. The following two examples would produce entirely equivalent results: </p><pre>
f(x,y) = x*sin(y)
subroutine f(x,y)
{
return x*sin(y)
}
</pre><p> In either case, the function/subroutine could be evaluated by typing: </p><pre>
print f(1,pi/2)
</pre><p> If a subroutine ends without any value being returned using the <tt class="tt">return</tt> statement, then a value of zero is returned. </p><p>Subroutines may serve one of two purposes. In many cases they are used to implement complicated mathematical functions for which no simple algebraic expression may be given. Secondly, they may be used to repetitively execute a set of commands whenever they are required. In the latter case, the subroutine may not have a return value, but may merely be used as a mechanism for encapsulating a block of commands. In this case, the <tt class="tt">call</tt> command<a name="a0000000597" id="a0000000597"></a> may be used to execute a subroutine, discarding any return value which it may produce, as in the example: </p><p> <tt class="tt">pyxplot> <b class="bf">subroutine f(x,y)</b></tt><br /><tt class="tt">subrtne> <b class="bf">{</b></tt><br /><tt class="tt">subrtne> <b class="bf">print "%s - %s = %s"%(x,y,x-y)</b></tt><br /><tt class="tt">subrtne> <b class="bf">}</b></tt> <br /><tt class="tt">pyxplot> <b class="bf">call f(2,1)</b></tt><br /><tt class="tt">2 - 1 = 1</tt><br /><tt class="tt">pyxplot> <b class="bf">call f(5*unit(inch), 10*unit(mm))</b></tt><br />127 mm - 10 mm = 117 mm </p><p> <span class="upshape"><span class="mdseries"><span class="rm">An image of a Newton fractal.</span></span></span></p><div>
<table cellspacing="0" class="tabular">
<tr>
<td style="border-top-style:solid; border-left:1px solid black; border-right:1px solid black; border-top-color:black; border-top-width:1px; text-align:left"><p> Newton fractals are formed by iterating the equation </p><table id="a0000000598" class="equation" width="100%" cellspacing="0" cellpadding="7">
<tr>
<td style="width:40%"> </td>
<td><img src="images/img-0298.png" alt="\[ z_{n+1} = z_ n - \frac{f(z_ n)}{f^\prime (z_ n)}, \]" style="width:155px;
height:43px" class="math gen" /></td>
<td style="width:40%"> </td>
<td class="eqnnum" style="width:20%"> </td>
</tr>
</table><p> subject to the starting condition that <img src="images/img-0299.png" alt="$z_0=c$" style="vertical-align:-2px;
width:48px;
height:10px" class="math gen" />, where <img src="images/img-0040.png" alt="$c$" style="vertical-align:0px;
width:8px;
height:8px" class="math gen" /> is any complex number <img src="images/img-0040.png" alt="$c$" style="vertical-align:0px;
width:8px;
height:8px" class="math gen" /> and <img src="images/img-0300.png" alt="$f(z)$" style="vertical-align:-4px;
width:32px;
height:18px" class="math gen" /> is any mathematical function. This series is the Newton-Raphson method for numerically finding solutions to the equation <img src="images/img-0301.png" alt="$f(z)=0$" style="vertical-align:-4px;
width:66px;
height:18px" class="math gen" />, and with time usually converges towards one such solution for well-behaved functions. The complex number <img src="images/img-0040.png" alt="$c$" style="vertical-align:0px;
width:8px;
height:8px" class="math gen" /> represents the initial guess at the position of the solution being sought. The Newton fractal is formed by asking which solution the iteration converges upon, as a function of the position of the initial guess <img src="images/img-0040.png" alt="$c$" style="vertical-align:0px;
width:8px;
height:8px" class="math gen" /> in the complex plane. In the case of the cubic polynomial <img src="images/img-0302.png" alt="$f(z)=z^3-1$" style="vertical-align:-4px;
width:105px;
height:20px" class="math gen" />, which has three solutions, a map might be generated with points coloured red, green or blue to represent convergence towards the three roots. </p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p>If <img src="images/img-0040.png" alt="$c$" style="vertical-align:0px;
width:8px;
height:8px" class="math gen" /> is close to one of the roots, then convergence towards that particular root is guaranteed, but further afield the map develops a fractal structure. In this example, we define a PyXPlot subroutine to produce such a map as a function of <img src="images/img-0303.png" alt="$c=x+iy$" style="vertical-align:-4px;
width:79px;
height:16px" class="math gen" />, and then plot the resulting map using the <tt class="tt">colourmap</tt> plot style (see Section <a href="sec-colourmaps.html">1.12</a>). To make the fractal prettier – it contains, after all, only three colours as strictly defined – we vary the brightness of each point depending upon how many iterations are required before the series ventures within a distance of <img src="images/img-0304.png" alt="$|z_ n-r_ i|<10^{-2}$" style="vertical-align:-5px;
width:122px;
height:21px" class="math gen" /> of any of the roots <img src="images/img-0305.png" alt="$r_ i$" style="vertical-align:-2px;
width:12px;
height:10px" class="math gen" />. </p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><tt class="tt">set numerics complex</tt><br /><tt class="tt">set unit angle nodimensionless</tt><br /></p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><tt class="tt">Root1 = exp(i*unit( 0*deg))</tt><br /><tt class="tt">Root2 = exp(i*unit(120*deg))</tt><br /><tt class="tt">Root3 = exp(i*unit(240*deg))</tt><br /></p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><tt class="tt">Tolerance = 1e-2</tt><br /></p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><tt class="tt">subroutine NewtonFractal(x,y)</tt><br /><tt class="tt">{</tt><br /><tt class="tt">z = x+i*y;</tt><br /><tt class="tt">iter = 0</tt><br /><tt class="tt">while (1)</tt><br /><tt class="tt">{</tt><br /><tt class="tt">z = z - (z**3-1)/(3*z**2)</tt><br /><tt class="tt">if abs(z-Root1)<img src="images/img-0034.png" alt="$<$" style="vertical-align:0px;
width:12px;
height:11px" class="math gen" />Tolerance { ; return 1 ; }</tt><br /><tt class="tt">if abs(z-Root2)<img src="images/img-0034.png" alt="$<$" style="vertical-align:0px;
width:12px;
height:11px" class="math gen" />Tolerance { ; return 2 ; }</tt><br /><tt class="tt">if abs(z-Root3)<img src="images/img-0034.png" alt="$<$" style="vertical-align:0px;
width:12px;
height:11px" class="math gen" />Tolerance { ; return 3 ; }</tt><br /><tt class="tt">iter = iter + 1</tt><br /><tt class="tt">}</tt><br /><tt class="tt">}</tt><br /></p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><tt class="tt"># Plot Newton fractal</tt><br /><tt class="tt">set size square</tt><br /><tt class="tt">set key below</tt><br /><tt class="tt">set xrange [-1.5:1.5]</tt><br /><tt class="tt">set yrange [-1.5:1.5]</tt><br /><tt class="tt">set sample grid 250x250</tt><br /><tt class="tt">set colmap hsb(c1*0.667):(0.8+0.2*c2):(1.0-0.8*c2)</tt><br /><tt class="tt">set log c2</tt><br /><tt class="tt">plot NewtonFractal(x,y):iter+2 with colourmap</tt> </p></td>
</tr><tr>
<td style="border-bottom-style:solid; border-bottom-width:1px; border-left:1px solid black; border-right:1px solid black; text-align:left; border-bottom-color:black"><center>
<img src="images/img-0307.png" alt="\includegraphics[width=8cm]{examples/eps/ex_newton}" style="width:8cm" /> </center></td>
</tr>
</table>
</div><p> <span class="upshape"><span class="mdseries"><span class="rm">The dynamics of the simple pendulum.</span></span></span></p><div>
<table cellspacing="0" class="tabular">
<tr>
<td style="border-top-style:solid; border-left:1px solid black; border-right:1px solid black; border-top-color:black; border-top-width:1px; text-align:left"><p> The equation of motion for a pendulum bob may be derived from the rotational analogue to Newton’s Second Law, <img src="images/img-0309.png" alt="$G=I\ddot\theta $" style="vertical-align:0px;
width:56px;
height:17px" class="math gen" /> where <img src="images/img-0310.png" alt="$G$" style="vertical-align:0px;
width:13px;
height:12px" class="math gen" /> is torque, <img src="images/img-0311.png" alt="$I$" style="vertical-align:0px;
width:9px;
height:12px" class="math gen" /> is moment of inertia and <img src="images/img-0055.png" alt="$\theta $" style="vertical-align:0px;
width:9px;
height:12px" class="math gen" /> is the displacement of the pendulum bob from the vertical. For a pendulum of length <img src="images/img-0081.png" alt="$l$" style="vertical-align:0px;
width:5px;
height:13px" class="math gen" />, with a bob of mass <img src="images/img-0312.png" alt="$m$" style="vertical-align:0px;
width:16px;
height:8px" class="math gen" />, this equation becomes <img src="images/img-0313.png" alt="$-mgl\sin \theta =ml^2\ddot\theta $" style="vertical-align:-4px;
width:144px;
height:21px" class="math gen" />. In the small-angle approximation, such that <img src="images/img-0314.png" alt="$\sin \theta \approx \theta $" style="vertical-align:0px;
width:67px;
height:12px" class="math gen" />, it reduces to the equation for simple harmonic motion, with the solution </p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><table id="<plasTeX.TeXFragment object at 0x9ae90bc>" class="equation" width="100%" cellspacing="0" cellpadding="7">
<tr>
<td style="width:40%"> </td>
<td><img src="images/img-0315.png" alt="\begin{equation} \theta _\mathrm {approx}=\omega \sin \left(\sqrt {\frac{g}{l}}t\right). \label{eq:pendulum_ approx} \end{equation}" style="width:393px;
height:45px" class="math gen" /></td>
<td style="width:40%"> </td>
<td class="eqnnum" style="width:20%"><span>(<span>6.1</span>)</span></td>
</tr>
</table></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p>A more exact solution requires integration of the second-order differential equation of motion including the <img src="images/img-0316.png" alt="$\sin \theta $" style="vertical-align:0px;
width:34px;
height:12px" class="math gen" /> term. This integral cannot be done analytically, but the solution can be written in the form </p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><table id="<plasTeX.TeXFragment object at 0x9ae92fc>" class="equation" width="100%" cellspacing="0" cellpadding="7">
<tr>
<td style="width:40%"> </td>
<td><img src="images/img-0317.png" alt="\begin{equation} \theta _\mathrm {exact}(t) = 2\sin ^{-1}\left[ k\, \mathrm{sn}\left(\sqrt {\frac{g}{l}}t,k\right)\right]. \label{eq:pendulum_ exact} \end{equation}" style="width:442px;
height:45px" class="math gen" /></td>
<td style="width:40%"> </td>
<td class="eqnnum" style="width:20%"><span>(<span>6.2</span>)</span></td>
</tr>
</table></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p>where <img src="images/img-0318.png" alt="$\mathrm{sn}(u,m)$" style="vertical-align:-4px;
width:64px;
height:18px" class="math gen" /> is a Jacobi elliptic function and <img src="images/img-0319.png" alt="$k=\sin \left(\omega /2\right)$" style="vertical-align:-5px;
width:101px;
height:19px" class="math gen" />. The Jacobi elliptic function cannot be analytically computed, but can be numerically approximated using the <tt class="tt">jacobi_sn(u,m)</tt> function in PyXPlot. </p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p>Below, we produce a plot of Equations (<a></a>) and (<a></a>). The horizontal axis is demarked in units of the dimensionless period of the pendulum to eliminate <img src="images/img-0320.png" alt="$g$" style="vertical-align:-4px;
width:9px;
height:12px" class="math gen" /> and <img src="images/img-0081.png" alt="$l$" style="vertical-align:0px;
width:5px;
height:13px" class="math gen" />, and a swing amplitude of <img src="images/img-0321.png" alt="$\pm 30^\circ $" style="vertical-align:0px;
width:38px;
height:13px" class="math gen" /> is assumed: </p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><small class="footnotesize"><tt class="tt">theta_approx(a,t) = a * sin(2*pi*t)</tt><br /><tt class="tt">theta_exact (a,t) = 2*asin(sin(a/2)*jacobi_sn(2*pi*t,sin(a/2)))</tt><br /></small></p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><small class="footnotesize"><tt class="tt">set unit of angle degrees</tt><br /><tt class="tt">set key below</tt><br /><tt class="tt">set xlabel ’Time / $<img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" />sqrt{g/l}$’</tt><br /><tt class="tt">set ylabel ’$<img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" />theta$’</tt><br /><tt class="tt">omega = unit(30*deg)</tt><br /><tt class="tt">plot [0:4] theta_approx(omega,x) title ’Approximate solution’, <img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" /></tt><br /><tt class="tt">theta_exact (omega,x) title ’Exact solution’</tt> </small> </p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><center>
<img src="images/img-0323.png" alt="\includegraphics[width=9cm]{examples/eps/ex_pendulum}" style="width:9cm" /></center> </p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p>As is apparent, at this amplitude, the exact solution begins to deviate noticeably from the small-angle solution within 2–3 swings of the pendulum. We now seek to quantify more precisely how long the two solutions take to diverge by defining a subroutine to compute how long <img src="images/img-0142.png" alt="$T$" style="vertical-align:0px;
width:13px;
height:12px" class="math gen" /> it takes before the two solutions to deviate by some amount <img src="images/img-0325.png" alt="$\psi $" style="vertical-align:-4px;
width:12px;
height:17px" class="math gen" />. We then plot these times as a function of amplitude <img src="images/img-0326.png" alt="$\omega $" style="vertical-align:0px;
width:11px;
height:8px" class="math gen" /> for three deviation thresholds. Because this subroutine takes a significant amount of time to run, we only compute 40 samples for each value of <img src="images/img-0325.png" alt="$\psi $" style="vertical-align:-4px;
width:12px;
height:17px" class="math gen" />: </p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><small class="footnotesize"><tt class="tt">subroutine PendulumDivergenceTime(omega, psi)</tt><br /><tt class="tt">{</tt><br /><tt class="tt">for t=0 to 20 step 0.05</tt><br /><tt class="tt">{</tt><br /><tt class="tt">approx = theta_approx(omega,t)</tt><br /><tt class="tt">exact = theta_exact (omega,t)</tt><br /><tt class="tt">if (abs(approx-exact)<img src="images/img-0035.png" alt="$>$" style="vertical-align:0px;
width:12px;
height:11px" class="math gen" />psi) { ;break; }</tt><br /><tt class="tt">}</tt><br /><tt class="tt">return t</tt><br /><tt class="tt">}</tt> </small></p></td>
</tr><tr>
<td style="text-align:left; border-right:1px solid black; border-left:1px solid black"><p><small class="footnotesize"><tt class="tt">set xlabel ’Amplitude of swing’</tt><br /><tt class="tt">set ylabel ’Time / $<img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" />sqrt{g/l}$ taken to diverge’</tt><br /><tt class="tt">set samples 40</tt><br /><tt class="tt">plot [unit(5*deg):unit(30*deg)][0:19] <img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" /></tt><br /><tt class="tt">PendulumDivergenceTime(x,unit(20*deg)) title "$20<img src="images/img-0024.png" alt="\^{}" style="vertical-align:9px; width:5px; height:4px" class="accent gen" /><img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" />circ$ deviation", <img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" /></tt><br /><tt class="tt">PendulumDivergenceTime(x,unit(10*deg)) title "$10<img src="images/img-0024.png" alt="\^{}" style="vertical-align:9px; width:5px; height:4px" class="accent gen" /><img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" />circ$ deviation", <img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" /></tt><br /><tt class="tt">PendulumDivergenceTime(x,unit( 5*deg)) title "$ 5<img src="images/img-0024.png" alt="\^{}" style="vertical-align:9px; width:5px; height:4px" class="accent gen" /><img src="images/img-0006.png" alt="$\backslash $" style="vertical-align:-5px;
width:7px;
height:18px" class="math gen" />circ$ deviation"</tt> </small> </p></td>
</tr><tr>
<td style="border-bottom-style:solid; border-bottom-width:1px; border-left:1px solid black; border-right:1px solid black; text-align:left; border-bottom-color:black"><p><center>
<img src="images/img-0328.png" alt="\includegraphics[width=9cm]{examples/eps/ex_pendulum2}" style="width:9cm" /></center> </p></td>
</tr>
</table>
</div></div>
<div class="navigation">
<table cellspacing="2" cellpadding="0" width="100%">
<tr>
<td><a href="sect0038.html" title="Conditional Functions"><img alt="Previous: Conditional Functions" border="0" src="icons/previous.gif" width="32" height="32" /></a></td>
<td><a href="sect0031.html" title="Programming and Flow Control"><img alt="Up: Programming and Flow Control" border="0" src="icons/up.gif" width="32" height="32" /></a></td>
<td><a href="ex-macro.html" title="Macros"><img alt="Next: Macros" border="0" src="icons/next.gif" width="32" height="32" /></a></td>
<td class="navtitle" align="center">PyXPlot Users' Guide</td>
<td><a href="index.html" title="Table of Contents"><img border="0" alt="" src="icons/contents.gif" width="32" height="32" /></a></td>
<td><a href="sect0255.html" title="Index"><img border="0" alt="" src="icons/index.gif" width="32" height="32" /></a></td>
<td><img border="0" alt="" src="icons/blank.gif" width="32" height="32" /></td>
</tr>
</table>
</div>
<script language="javascript" src="icons/imgadjust.js" type="text/javascript"></script>
</body>
</html>
|