<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Coert Vonk</title>
	<atom:link href="http://www.coertvonk.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.coertvonk.com</link>
	<description>From embedded systems to video production and back</description>
	<lastBuildDate>Tue, 01 May 2012 16:33:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Complex Arithmetic in Extended Memory for HP-41cv/cx</title>
		<link>http://www.coertvonk.com/technology/hp41/complex-arithmetic-xmem-4426</link>
		<comments>http://www.coertvonk.com/technology/hp41/complex-arithmetic-xmem-4426#comments</comments>
		<pubDate>Sat, 03 Mar 2012 19:11:24 +0000</pubDate>
		<dc:creator>Coert</dc:creator>
				<category><![CDATA[Math (HP-41)]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=4426</guid>
		<description><![CDATA[This program introduces complex number operations to the HP-41CV and HP-41CX pocket calculators. <a href="http://www.coertvonk.com/technology/hp41/complex-arithmetic-xmem-4426">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>This program introduces complex number operations to the HP-41CV and HP-41CX pocket calculators. It is a variation on Frans de Vries&#8217; program published in PPC Journal [1]. I made it more intuitive by showing the result as a complex number and by making the <span class="hp41-key">R/S</span> button behave like a <span class="hp41-cikey">COMPLEX</span> prefix to operations.</p>
<h3>History</h3>
<p>In May 1985, Frans de Vries published his Complex Arithmetic program for the HP-41CX [1]. I am very grateful for his work, and much of this documentation is based on his work. My iteration of this program has been a pet project while in college. Inspired by this program, I wrote a library in Oxford Pascal for the Commodore-64. Internally this library used polar notation because complex multiplication may result in an angle exceeding the branch cut. I designed a RS232 interface for this Commodore-64, and waited for an unsupervised moment and transferred the library to the Pr1me computer on campus. When I acquired my first IBM PC clone, once again this program moved alongside with me.</p>
<p>Now, twenty-five years later, I restored my faithful HP-41 and use the same program once again. This version is also verified to run under Windows using Warren Furlow&#8217;s V41 simulator when compiled with Leo Duran&#8217;s hp41uc.</p>
<h3>Instructions</h3>
<p>To start the program use <span class="hp41-ckey">XEQ</span> &#8220;CA&#8221;. From here you can use the complex operations by pressing <span class="hp41-cikey">COMPLEX</span> (the <span class="hp41-key">R/S</span> key on the normal keyboard) followed by the desired operation. The overlay shown below these operation can be recognized by the blue paint splash behind the labels. These same operations are referenced in this article by enclosing them in a <span class="hp41-ckey">blue box</span>.</p>
<p>Note that <span class="hp41-ckey">BCUT</span> is only implemented in &#8220;<a href="http://www.coertvonk.com/technology/hp41/complex-arithmetic-branchcut-5032">Complex Arithmetic with adjustable branch cut for HP-41cv/cx</a>&#8220;.</p>
<p><a href="http://www.coertvonk.com/technology/hp41/complex-arithmetic-xmem-4426/attachment/overlay6" rel="attachment wp-att-5045"><img class="wp-image-5045 aligncenter" title="Complex Arithmetic keyboard overlay" src="http://www.coertvonk.com/wp-content/uploads/overlay6.jpg" alt="Complex Arithmetic keyboard overlay" width="550" height="875" /></a></p>
<p>The table shows the key assignments with their effect on the complex stack.</p>
<table style="width: 500px;" border="1">
<tbody>
<tr>
<td><em>operation</em></td>
<td><em>key</em></td>
<td><em>description</em></td>
<td><em>stack</em></td>
</tr>
<tr>
<td><span class="hp41-cikey">COMPLEX</span></td>
<td><span class="hp41-key">R/S</span></td>
<td>Prefix for Complex operations.</td>
<td>N</td>
</tr>
<tr>
<td><span class="hp41-cnkey">INIT</span></td>
<td><span class="hp41-nkey">ON</span></td>
<td>Reinitialize, but do not clear stack.</td>
<td> </td>
</tr>
<tr>
<td><span class="hp41-ckey">+</span></td>
<td><span class="hp41-key">+</span></td>
<td>Adds Z1 to Z2.</td>
<td>E,L,↓</td>
</tr>
<tr>
<td><span class="hp41-ckey">/</span></td>
<td><span class="hp41-key">*</span></td>
<td>Multiplies Z2 by Z1.</td>
<td>E,L,↓</td>
</tr>
<tr>
<td><span class="hp41-ckey">/</span></td>
<td><span class="hp41-key">/</span></td>
<td>Divides Z2 by Z1.</td>
<td>E,L,↓</td>
</tr>
<tr>
<td><span class="hp41-ckey">//</span></td>
<td><span class="hp41-key">XEQ</span></td>
<td>Take Z1 and Z2 parallel (network theory).</td>
<td>E,L,↓</td>
</tr>
<tr>
<td><span class="hp41-ckey">CHS</span></td>
<td><span class="hp41-key">CHS</span></td>
<td>Negate Z1.</td>
<td>E</td>
</tr>
<tr>
<td><span class="hp41-ckey">CON</span></td>
<td><span class="hp41-key">ISG</span></td>
<td>Complement/conjugate of Z1.</td>
<td>E</td>
</tr>
<tr>
<td><span class="hp41-ckey">1/Z</span></td>
<td><span class="hp41-key">1/X</span></td>
<td>Reciprocal of Z1.</td>
<td>E</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">Z2<sup>Z1</sup></span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">y<sup>x</sup></span></td>
<td rowspan="1" colspan="1">Z2 to the power Z1.</td>
<td rowspan="1" colspan="1">E,L,↓</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">LOG</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">LOG</span></td>
<td rowspan="1" colspan="1">Base 10 logarithm of Z1.</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">LN</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">LN</span></td>
<td rowspan="1" colspan="1">Natural logarithm of Z1.</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">e<sup>Z</sup></span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">e<sup>x</sup></span></td>
<td rowspan="1" colspan="1">e to the power Z1.</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">Z<sup>n</sup></span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">x<sup>2</sup></span></td>
<td rowspan="1" colspan="1">Z1 to the real number power n.</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">Z<sup>1/n</sup></span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">√x</span></td>
<td rowspan="1" colspan="1">All n<sup>th</sup> roots of Z1.</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">n<sup>Z</sup></span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">10<sup>x</sup></span></td>
<td rowspan="1" colspan="1">Real number N to the power Z1.</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">RECT</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">P→R</span></td>
<td rowspan="1" colspan="1">Sets the input/output mode to rectangular.</td>
<td rowspan="1" colspan="1">N</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">POL</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">R→P</span></td>
<td rowspan="1" colspan="1">Sets the input/output mode to polar.</td>
<td rowspan="1" colspan="1">N</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">ENTER<span class="hp41-cup-arrow"> </span></span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td rowspan="1" colspan="1">Lifts the stack and disables stack left.</td>
<td rowspan="1" colspan="1">D,↑,(↑)</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-cnkey">VIEW</span></td>
<td rowspan="1" colspan="1"><span class="hp41-nkey">ALPHA</span></td>
<td rowspan="1" colspan="1">Enters a new complex number on the stack without lifting the complex stack (compare to the use of <span class="hp41-nkey">ALPHA</span>/<span class="hp41-nkey">ALPHA</span> to terminate digit entry without using <span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span>. Recalls Z1 if flag 22 is clear.</td>
<td rowspan="1" colspan="1">E,(↑)</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">CLZ1</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">CLX</span></td>
<td rowspan="1" colspan="1">Clears Z1 and disables stack lift.</td>
<td rowspan="1" colspan="1">D</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">CLST</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">RTN</span></td>
<td rowspan="1" colspan="1">Clears the complex stack and the normal stack (LASTZ1 is preserved).</td>
<td rowspan="1" colspan="1">E</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">LASTZ1</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">LASTX</span></td>
<td rowspan="1" colspan="1">Recalls LASTZ1 onto the stack.</td>
<td rowspan="1" colspan="1">E,(↑)</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">VIEWZn</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">VIEW</span></td>
<td rowspan="1" colspan="1">Views the contents of Zn. Specify 0 to view LASTZ1.</td>
<td rowspan="1" colspan="1">N</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">R</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">RDN</span></td>
<td rowspan="1" colspan="1">Rolls the stack down by one complex register.</td>
<td rowspan="1" colspan="1">E</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">R</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">R</span></td>
<td rowspan="1" colspan="1">Rolls the stack up by one complex register.</td>
<td rowspan="1" colspan="1">E</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">Z1<span class="hp41-cxy"> </span>Z2</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">X<span class="hp41-xy"> </span>Y</span></td>
<td rowspan="1" colspan="1">Exchanges Z1 with Z2.</td>
<td rowspan="1" colspan="1">E</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">Z1<span class="hp41-cxy"> </span>Zn</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">CL∑</span></td>
<td rowspan="1" colspan="1">Exchanges Z1 with Zn. Specify 0 for LASTZ1</td>
<td rowspan="1" colspan="1">E</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">ARC</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">∑+</span></td>
<td rowspan="1" colspan="1">ARC prefix.</td>
<td rowspan="1" colspan="1">N</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">HYP</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">∑-</span></td>
<td rowspan="1" colspan="1">HYP prefix.</td>
<td rowspan="1" colspan="1">N</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">SIN</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">SIN</span></td>
<td rowspan="1" colspan="1">Sine of Z1.</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">COS</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">COS</span></td>
<td rowspan="1" colspan="1">Cosine of Z1.</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">TAN</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">TAN</span></td>
<td rowspan="1" colspan="1">Tangent of Z1.</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">CSC</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">SIN<sup>-1</sup></span></td>
<td rowspan="1" colspan="1">Cosecant of Z1</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">SEC</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">COS<sup>-1</sup></span></td>
<td rowspan="1" colspan="1">Secant of Z1</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-ckey">COT</span></td>
<td rowspan="1" colspan="1"><span class="hp41-key">TAN<sup>-1</sup></span></td>
<td rowspan="1" colspan="1">Cotangent of Z1</td>
<td rowspan="1" colspan="1">E,L</td>
</tr>
</tbody>
</table>
<p>The prefixes ARC and HYP provide a rich set of trigonometric and hyperbolic functions. In order to squeeze the program (866 bytes) into the x-memory, the operations ATAN, ATANH, ACOT and ACOTH needed to be removed.</p>
<table style="background-color: #ffffff;" border="0">
<tbody>
<tr>
<td>N</td>
<td>=</td>
<td>neutral stack lift status</td>
<td> </td>
<td>↑</td>
<td>=</td>
<td>stack lifts</td>
</tr>
<tr>
<td>D</td>
<td>=</td>
<td>disables stack lift</td>
<td> </td>
<td>↓</td>
<td>=</td>
<td>stack drops</td>
</tr>
<tr>
<td>E</td>
<td>=</td>
<td>enables stack lift</td>
<td> </td>
<td>(↑)</td>
<td>=</td>
<td>stack lift if enabled</td>
</tr>
<tr>
<td>L</td>
<td>=</td>
<td>Z1 saved in LASTZ1</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
<h3>Stack</h3>
<p>The calculating environment consists of 6 complex stack registers, numbered Z1 thru Z6, and a complex LASTZ1 register. The large complex stack limits the need for store and recall functions.</p>
<h4>Entering and displaying complex numbers</h4>
<p>Both rectangular coordinates and polar form are supported for data entry and viewing. To switch between modes, use the <span class="hp41-ckey">RECT</span> and <span class="hp41-ckey">POL</span> operations. Flag 0 shown on the LCD display serves as an annunciator for polar mode.</p>
<p>Input to and output of the complex operations is through the normal stack. In rectangular mode, the real part of the complex number in should be placed in X register and the imaginary part in Y. In polar mode, the magnitude should be in X and the phase in Y. After each operations, the result of the operation is stored on the complex stack as Z1, and shown on the display in a condensed format. To see the full accuracy, press <span class="hp41-key">XY</span> to see the imaginary part (or phase in Polar mode), and <span class="hp41-key">XY</span> again to see the real part (or modulus in Polar mode).</p>
<h4>Start</h4>
<p style="padding-left: 30px;">The program consist of two parts. The first part labeled &#8220;CA&#8221; fits in a mere 5 registers of main memory (after removing the GTO &#8220;X&#8221;). It handles the initialization and then jumps to the second part labeled &#8220;X&#8221;. This second part is intended to be placed in extended memory, but can also be used in main memory.</p>
<p style="padding-left: 30px;">Start the program with <span class="hp41-key">XEQ</span> &#8220;CA&#8221;. This clears the complex stack and initializes relevant flags and angular mode. The program will display the top of the complex stack (Z1), and halt at line 13 in &#8220;X&#8221; and will also return to this place after each operation. At this point, you have the option of enter an operand.</p>
<h4>Operations</h4>
<p style="padding-left: 30px;">Pressing <span class="hp41-cikey">COMPLEX</span> will activate the GETKEY keyboard. The program waits of a keystroke, and uses the key code to call the corresponding operation.</p>
<p style="padding-left: 30px;">Most operation require one or two operand from the stack. Exceptions to this rule are functions that take a real number argument (<span class="hp41-ckey">Z<sup>n</sup></span>, <span class="hp41-ckey">Z<sup>1/n</sup></span>, <span class="hp41-ckey">n<sup>Z</sup></span>, <span class="hp41-ckey">VIEWZn</span>, <span class="hp41-ckey">Z1<span class="hp41-cxy"> </span>Zn</span>) and mode switches (<span class="hp41-ckey">RECT</span>, <span class="hp41-ckey">POL</span>) and prefixes (<span class="hp41-g-key">g</span>, <span class="hp41-ckey">ARC</span>, <span class="hp41-ckey">HYP</span>).</p>
<p style="padding-left: 30px;">For the function <span class="hp41-ckey">Z<sup>1/n</sup></span>, the above is also valid, but this function does not immediately return to the normal halting point. Also, n must be a positive integer. Instead, this operation shows all the n<sup>th</sup> roots of the complex number in Z1. The ALPHA annunciator is used to indicate that more roots are to follow. When the operation is finished displaying the roots, the first root will be available as Z1 on the complex stack (and X,Y on the regular stack).</p>
<p style="padding-left: 30px;">The use of the prefixes <span class="hp41-ckey">ARC</span> and <span class="hp41-ckey">HYP</span> is similar to the use of the shift key, with flag 03 and 04 acting as the annunciator for <span class="hp41-ckey">ARC</span> and <span class="hp41-ckey">HYP</span> respectively. They can be used in any combination to denote and execute the desired function. The state of these flags only affects trigonometric operations.</p>
<p style="padding-left: 30px;">Note that operations can anywhere between 1 and take up to 6 seconds to execute.</p>
<h4>Entering operands</h4>
<p style="padding-left: 30px;">Depending on the operation, the operand can be a real or complex number. Real numbers must always be in the X register before pressing <span class="hp41-cikey">COMPLEX</span>. Complex numbers can either be entered on the regular stack as an X,Y pair, or taken from the complex stack.</p>
<p style="padding-left: 30px;">The functions <span class="hp41-ckey">VIEWZn</span> and <span class="hp41-ckey">Z1<span class="hp41-cxy"> </span>Zn</span> require an integer number between 0 and the complex stack size (default 6). The functions <span class="hp41-ckey">RECT</span> and <span class="hp41-ckey">POL</span> will also recall Z1 into the normal stack, so that it can be shown correctly in the new mode.</p>
<h4>Error handling</h4>
<p style="padding-left: 30px;">The program has no accommodation (apart from the SF 25) at line 40 in &#8220;X&#8221; to avoid error halts. This implies that attempts to divide by zero, take the log of zero, etc. will usually cause a DATA ERROR halt. Pressing <span class="hp41-cnkey">INIT</span> lets the program return to its normal halting point at line 13 in &#8220;X&#8221;.</p>
<h4>Extended memory</h4>
<p style="padding-left: 30px;">As mentioned earlier, the second part of the program can be placed in extended memory. To do so, save it on 4 magnetic cards and then load it into x-memory. Note that it is not possible to change the program while in extended memory, because once the program executes in x-memory, the bytes near the <span class="hp41-key">GTO</span> and <span class="hp41-key">XEQ</span> instructions will be changed to match to the corresponding LBL address. This would cause the check sum of the fill to mismatch. For more details on running a program in extended memory, refer to the book &#8220;Extend your HP-41&#8243; [6].</p>
<h3>Examples</h3>
<p>The following examples assume a <span class="hp41-key">ENG</span> 3, <span class="hp41-key">SF</span> 28, <span class="hp41-key">CF</span> 29 display mode.</p>
<ol>
<li><strong> Calculate: (2 + 3j).(7 &#8211; 6j) + (4 + 5j)</strong><br />
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>input</em></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>display</em></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-key">XEQ</span> &#8220;CA&#8221;</td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">0.00E0+0.00E0J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3 <span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3.000</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">2 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">ENTER<span class="hp41-cup-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">2.00E0+3.00E0J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">6 <span class="hp41-key">CHS</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""> </td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-6.000</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">7 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">ENTER<span class="hp41-cup-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">7.00E0-6.00E0J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5 <span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5.000</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">4 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">+</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">11.0E0-1.00E0J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">*</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">25.0E0+31.0E0J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-key">X<span class="hp41-cxy"> </span>Y</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">31.000</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign=""><span class="hp41-key">X<span class="hp41-cxy"> </span>Y</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">25.000</td>
</tr>
</tbody>
</table>
<p>The answer is 25 + 31j</p>
</li>
<li><strong>Calculate: (3 + 4.5j)^5</strong><br />
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>input</em></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>display</em></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">4.5 <span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">4.500</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">ENTER<span class="hp41-cup-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3.00E0+4.50E0J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">Z<sup>N</sup></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">926.E0-4.53E3J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign=""><span class="hp41-key">X<span class="hp41-xy"> </span>Y</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-4.533 03</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign=""><span class="hp41-key">X<span class="hp41-xy"> </span>Y</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">926.4 00</td>
</tr>
</tbody>
</table>
<p>The answer is 926.4 &#8211; -4533j<span style="color: #ffffff;">:</span></p>
</li>
<li><strong>Show what is in LASTZ1</strong><br />
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>input</em></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>display</em></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">LASTZ1</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3.00E0+4.50E0J</td>
</tr>
</tbody>
</table>
<p>Note that the complex number is saved, not the power 5</p>
</li>
<li><strong>Calculate: 1 / (3, Φ40°)</strong><br />
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span style="color: #000000;">input</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span style="color: #000000;">display</span></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">POL</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5.41E0&lt;56.3E0</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">40 <span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">40.00 00</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">1/Z</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">333.E-3&lt;-40.0E0</td>
</tr>
</tbody>
</table>
<p>The answer is 0.3333 Φ -40º<br /> <span style="color: #ffffff;">:</span></p>
</li>
<li><strong>Calculate: asinh(8 &#8211; 5j)</strong><br />
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>input</em></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>display</em></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">RECT</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">255.E-3-214.E-3J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5 <span class="hp41-key">CHS</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""> </td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-5.000 00</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">8 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">ARC</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""> </td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-ckey">HYP</span> <span class="hp41-ckey">SIN</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">2.94E0-556.E-3J</td>
</tr>
</tbody>
</table>
<p>The first answer is still there</p>
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>input</em></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>display</em></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">Z1<span class="hp41-cxy"> </span>Zn</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">94E0-556.E-3J</td>
</tr>
</tbody>
</table>
<p><span style="color: #ffffff;">:</span></p>
</li>
<li><strong>Calculate the the 3 cube roots of 5 + 3j</strong><br />
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>input</em></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>display</em></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3 <span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3.000 00</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">VIEW</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5.00E0+3.00E0J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">Z<sup>1/n</sup></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">1.77E0+322.E-3J (alpha)</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-cikey">COMPLEX</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-1.16E0+1.37E0J (alpha)</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-cikey">COMPLEX</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-606.E-3-1.69E0J (alpha)</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign=""><span class="hp41-cikey">COMPLEX</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">1.77E0+322.E-3J</td>
</tr>
</tbody>
</table>
<p><span style="color: #ffffff;">:</span></p>
</li>
<li><strong>Calculate: csch(1 + 2j)</strong><br />
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>input</em></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>display</em></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">2 <span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">2.000 00</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">1 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">HYP</span> <span class="hp41-ckey">CSC</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-489.E-3+1.40E0J</td>
</tr>
</tbody>
</table>
<p>:</p>
</li>
<li><strong>Calculate: ln(4 + 5j) + (3 &#8211; 2j)<sup>(2 &#8211; 3j)</sup></strong><br />
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>input</em></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>display</em></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5 <span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">5.000 00</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">4 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">LN</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">1.86E0+896.E-3J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">2 <span class="hp41-key">CHS</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""> </td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-2.000 00</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">ENTER<span class="hp41-cup-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3.00E0-2.00E0J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3 <span class="hp41-key">CHS</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""> </td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-3.000 00</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">2 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">Z2<sup>Z1</sup></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-1.79E-3-3.19E-3J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">+</span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">1.85E0+893.E-3J</td>
</tr>
</tbody>
</table>
<p><span style="color: #ffffff;">:</span></p>
</li>
<li><strong>Calculate: 2<sup>(3+4j)</sup></strong><br />
<table border="1">
<tbody>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>input</em></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign=""><em>display</em></td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">4 <span class="hp41-key">ENTER<span class="hp41-up-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">4.000 00</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">ENTER<span class="hp41-cup-arrow"> </span></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">3.00E0+4.00E0J</td>
</tr>
<tr>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">2 <span class="hp41-cikey">COMPLEX</span> <span class="hp41-ckey">N<sup>Z</sup></span></td>
<td id="" style="width: 150px;" lang="" dir="" scope="" align="" valign="">-7.46E0+2.89E0J</td>
</tr>
</tbody>
</table>
<p>The number <em>N</em> must always be the last one that is entered.<br /> <span style="color: #ffffff;">:</span></p>
</li>
</ol>
<h3>Tweaks</h3>
<ul>
<li>The size of the complex stack can be adjusted in line 008 of program &#8220;CA&#8221;.</li>
<li>If flag 14 is set when calling &#8220;CA&#8221;, the stack will not be cleared, which may be useful if you left &#8220;CA&#8221; temporarily and want to continue. This however assumes that the data registers used for the complex stack are left undisturbed.</li>
<li>The program uses flag 22 &#8220;numeric entry&#8221; to determine if there is a new entry in X,Y. If there is a numeric entry, the number is first pushed onto the complex stack, respecting stack lift status. This implies that you can clear flag 22 manually if you have made an accidental digit entry and still want the next operation to be performed on the current Z1.</li>
<li>Operands that require a real number input, will always take that number from the X register, new entry or not. If stack lift is disabled, the stack will first be shifted down, so the function will be performed on Z2. This is done, so that you may have <span class="hp41-ckey">ENTER<span class="hp41-cup-arrow"> </span></span>&#8216;ed the complex number on which you want the function to be executed, and without the shift down there would be left a superfluous copy of that number on the stack.</li>
</ul>
<h3>Program listing</h3>
<p>This program consists of two parts</p>
<ol>
<li>Requires</li>
<ul>
<li>X-Functions module on the HP-41cv</li>
</ul>
<li>Part 1 should be placed in main memory and is available as</li>
<ul>
<li><a href="http://coertvonk.com/wp-content/hp-41/ca300.txt">source code</a></li>
<li><a href="http://coertvonk.com/wp-content/hp-41/ca300.raw">raw code</a> for the V41 emulator</li>
<li><a href="http://coertvonk.com/wp-content/hp-41/ca300.pdf">bar code</a> for the HP Wand (HP82153A)</li>
</ul>
<li>Part 2, can be placed in either main or extended memory. When placed in extended memory, the instruction GTO &#8220;X&#8221; should be removed. This part is available as</li>
<ul>
<li><a href="http://coertvonk.com/wp-content/hp-41/ca300xm.txt">source code</a></li>
<li><a href="http://coertvonk.com/wp-content/hp-41/ca300xm.raw">raw code</a> for the V41 emulator</li>
<li><a href="http://coertvonk.com/wp-content/hp-41/ca300xm.pdf">bar code</a> for the HP Wand</li>
</ul>
<li>The keyboard overlay is available as</li>
<ul>
<li><a href="http://coertvonk.com/wp-content/hp-41/ca300.jpg" rel="lightbox[4426]">image</a>, scaled down by 98% so when printed on 4×6&#8243;, it typically comes out as true-size.</li>
<li><a href="http://coertvonk.com/wp-content/hp-41/ca300inv.jpg" rel="lightbox[4426]">inverted image</a>, scaled down by 98% so when printed on 4×6&#8243;, it typically comes out as true-size.</li>
</ul>
</ol>
<h4>part 1</h4>
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">; The program consists of two parts.  The part listed below should be in main
; memory.  The other part (listed in CA300xm.txt) can be placed in either main
; or extended memory.  When placed in extended memory, THE INSTRUCTION GTO "X"
; SHOULD BE REMOVED.
;
; Before placing the second part in XM, the program should be PACKed
; and run in RAM.  This should be done to compile all the GTO's and
; XEQ's.  If this is not done one will see CHKSUM ERR when trying to
; download this program into RAM. [9]

1	LBL "CA"
2	CF 03		; clear prefix flags (ARC, HYP)
3	CF 04
4	RAD
5	FS? 14		; if the "do not clear stack" flag is set
6	GTO 00		;   then jump to LBL 00,
7	SIZE?		;   else if needed extended the # of data registers
8	6
9	STO 00
10	ST+ X
11	3
12	+
13	X&gt;Y?
14	PSIZE
15	CLX
16	STO 01		; clear LASTZ
17	STO 02
18	LBL 00
19	GTO "X"		 ; REMOVE THIS LINE when LBL "X" in X-memory !!
20	"\8D\BE"
21	RCL M
22	STO b		; jump to "X" in extended memory at address 0x8DBE
22	END</pre>
<h4>part 2</h4>
<ul>
<li>Stack and alpha registers:</li>
<ul>
<li>The program uses all registers</li>
</ul>
<li>Data registers:</li>
<ul>
<li>R00, depth of complex stack (default value is 6)</li>
<li>R01, real part of LASTZ1</li>
<li>R02, imaginary part of LASTZ1</li>
<li>R03, real part of complex number Z1</li>
<li>R04, imaginary part of complex number Z1</li>
<li>:</li>
<li>R13, real part of complex number Z6</li>
<li>R14, imaginary part of complex number Z6</li>
<li>Note that the internal format of the complex stack is always rectangular.</li>
</ul>
<li>Flags:</li>
<ul>
<li>flag 00, &#8220;POL&#8221;, when set indicates Polar notation (POL), otherwise rectangular notation (RECT)</li>
<li>flag 02, &#8220;no stack lift&#8221;, when set disables the stack lift</li>
<li>flag 03, &#8220;ARC&#8221;, when set indicates inverse trigonometric operation (ARC)</li>
<li>flag 04, &#8220;HYP&#8221;, when set indicates hyperbolic operation (HYP)</li>
<li>flag 10, &#8220;alt operation&#8221;, allows similar operations to reuse code</li>
<li>flag 14, &#8220;clipped corner&#8221;, is used for all but magnetic cards. During initialization it indicates &#8220;do not clear stack&#8221;; during keyboard fetching it indicates more key strokes need to follow; and during triogonometry operations, indicates inverse operation.</li>
<li>flag 22, &#8220;keyboard input&#8221;, set when numeric input is entered from the keyboard, cleared on power cycle. [7]</li>
<li>flag 25, &#8220;ignore error&#8221;, when set, ignores improper operations (like div by zero) or range errors.</li>
<li>flag 30, used for &#8220;always false&#8221; test. Used to negate prior test. [7]</li>
<li>flag 47, &#8220;shift set&#8221;, used internally in shifted operations.</li>
<li>flag 44-46, cleared as a side effect of showing the &#8220;shift&#8221; annunciator</li>
<li>flag 48-55, cleared as a side effect of showing the &#8220;shift&#8221; annunciator</li>
</ul>
<li>Legend:</li>
<ul>
<li>(x + y.j), complex number held on the regular stack</li>
<li>X register holds the real part (x)</li>
<li>Y register holds the imaginary part (y)</li>
<li>(M . e^j.phi), complex number in polar notation</li>
</ul>
</ul>
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">; INITIALIZE AND MAIN LOOP
;
; An infinite loop to fetch a keystroke identifying the operation to be
; executed.  The "shift" key causes the "shift" status to be toggled, for all
; other keys the LBL that matches the key code will be called (or keycode+5 if
; "shift" was active).
;
; called      : from "CA" in main memory, or
;               in response to [CINIT] keycode (labeled [ON] on keyboard)
; on entry    : when flag 14 is set, the complex stack will not be cleared
; on exit     : value of Z1 shown.  Also available as X,Y.

1	LBL "X"
2	RDN
3	FC?C 14		; if the "do not clear stack" flag is not set
4	XEQ 48		;   then clear the complex stack

5	LBL 01		; [CINIT] operation
6	CF 10
7	CF 22
8	CF 25
9	FS? 00
10	R-P
11	XEQ 10		; display complex number (x + y.j)
12	STOP
13	ENTER^
14	LBL 02
15	CLX
16	GETKEY		; wait for an operation keycode
17	X=0?
18	GTO 02
19	31
20	X#Y?		; if not the "shift" key
21	GTO 00		;   then handle that operation
22	R^  		;   else update the shift annunciator
23	R^
24	"\01\00"
25	FS? 47
26	CLA
27	RCLFLAG
28	ASTO d
29	STOFLAG
30	AOFF
31	GTO 02

32	LBL 00	   	; handle operation associated with a keycode
31	CLX
34	5
35	FC? 47		; if "shift was active"
36	CLX 		;   then increment key code by 5
37	+
38	RDN
39	CLD
40	SF 25
41	XEQ IND T	; call the corresponding operation
42	FC?C 14
43	GTO 01
44	ENTER^
45	GTO 02

; TOGGLE [ARC] MODIFIER, for ASIN, ACOS, ATAN

46	LBL 11		; [ARC], key label [sigma+]
47	FC?C 03
48	SF 03
49	SF 14		; indicate "more key strokes to follow"
50	RTN

; TOGGLE [HYP] MODIFIER, for SINH, COSH and TANH

51	LBL 16		; [HYP], key label [sigma-]
52	FC?C 04
53	SF 04
54	SF 14		; indicate "more key strokes to follow"
55	RTN

; SWITCH BETWEEN POLAR AND RECTANGULAR NOTATION

56	LBL 68		; [RECT], key label [P&gt;R]
57	CF 00
58	GTO 00
59	LBL 69		; [POL], key label [R&gt;P]
60	SF 00
61	LBL 00
62	RCL 04		; get Z1 from the complex stack as (x + y.j)
63	RCL 03
64	RTN

; COMPLEX RECIPROCAL (1/Z)
;
; on entry : Z in X,Y registers in the form (x + y.j)
; on exit  : the result is stored as Z1 on the complex stack
;    	     the result is stored in X,Y in the form (x + y.j)
;	     LASTZ1 holds a copy of the operation operand Z

65	LBL 12	    	; [1/Z] operation

66	XEQ 09		; push (x + y.j) onto complex stack and update LASTZ1
67	XEQ 31		; compute (x + j.y) = 1 / (x + j.y)
68	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX ENTER^
;
; on entry : Z in X,Y registers in the form (x + y.j)
; on exit  : Z is pushed up the complex stack as Z1 and Z2
;    	     Z is X,Y in the form (x + y.j)
;    	     LASTZ1 is unchanged

69	LBL 41	        ; [CENTER^] operation

70	XEQ 04		; push (x + y.j) onto complex stack
71	XEQ 11		; move complex stack up, Z1 &gt; Z2 &gt; Z3 &gt; Z4 &gt; Z5 &gt; Z6
72	SF 02		; "no stack lift"
73	RTN

; COMPLEX CLEAR STACK
;
; on entry : n/a
; on exit  : Z1..Z6 on the complex stack are set to (0 + 0j)
;    	     LASTZ1 is unchanged

74	LBL 48	        ; [CCLST] operation

75	RCL 00
76	ISG X
77	""
78	ST+ X
79	 E3
80	/
81	3
82	+
83	.
84	LBL 36
85	STO IND Y
86	ISG Y
87	GTO 36
88	CF 02		; no "no stack lift"
89	CLST
90	RTN

; COMPLEX CHANGE SIGN AND COMPLEX CONJUGATE (Complement)
;
;     -(x + y.j) = -x - y.j  (change sign)
;     (x + y.j)* =  x - y.j  (conjugate)
;
; on entry : Z in X,Y registers in the form (x + y.j)
; on exit  : the result is stored as Z1 on the complex stack
;    	     the result is stored in X,Y in the form (x + y.j)
;	     LASTZ1 holds a copy of the operation operand Z

91	LBL 42		; [CHSZ] operation
92	SF 10
93	LBL 47		; [COMPLZ] operation

94	XEQ 04		; push (x + y.j) onto complex stack
95	FS? 10
96	CHS
97	X&lt;&gt;Y
98	CHS
99	X&lt;&gt;Y
100	GTO 03		; copy (x + y.j) to complex stack, and return

; CLEAR Z1
;
; on entry : Z in X,Y registers in the form (x + y.j)
; on exit  : Z is pushed up the complex stack as Z1 and Z2
;    	     Z is X,Y in the form (x + y.j)
;    	     LASTZ1 is unchanged

101	LBL 49	        ; [CLZ1] operation

102	XEQ 04		; push (x + y.j) onto complex stack
103	CLST
104	SF 02		; "no stack lift"
105	GTO 03		; copy (x + y.j) to complex stack, and return

; LAST Z1
;
; on entry : n/a
; on exit  : the operand from the last numeric operation (except CHSZ)
;              is pushed onto the complex stack
;    	     the operand from the last numeric operation (except CHSZ)
;              is stored in X,Y in the form (x + y.j)

106	LBL 88 	  	; [LASTZ1] operation

107	FS? 02
108	FS? 22		; if "no stack lift" or "input from keyboard"
109	XEQ 41		;   then perform ENTER^
110	CF 02
111	RCL 02		; LASTZ1
112	RCL 01
113	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX ADDITION AND SUBTRACTION
;
;     (z + t.j) + (x + y.j) = (x + z) + j.(y + t)
;     (z + t.j) - (x + y.j) = (x - z) + j.(y - t)
;
; on entry : if number was entered on the keyboard,
;              then (x + y.j) as entered in X,Y registers, and
;                   (z + t.j) from Z1 on the complex stack
;              else (x + y.j) from Z1 on the complex stack, and
;                   (z + t.j) from Z2 on the complex stack
; on exit  : the result is stored as Z1 on the complex stack
;    	     the result is stored in X,Y in the form (x + y.j)
;	     LASTZ1 holds a copy of (x + y.j)

114	LBL 51		; [C-] operation
115	SF 10
116	LBL 61		; [C+] operation

117	XEQ 07		; get two operands, as (x + j.y) and (z + j.t)
118	FS? 10
119	CHS
120	X&lt;&gt;Y
121	FS? 10
122	CHS
123	ST+ T
124	RDN
125	+
126	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX MULTIPLICATION AND DIVISION
;
;     Z2 * Z1 = (re1 + j.im1) * (re2 + j.im2) =
;             = (re1.re2 - im1.im2 ) + j.(im1.re1 + re1.im2)
;
;     Z2 / Z1 = Z2 * 1/Z1

127	LBL 81		; [C/] operation
128	SF 10
129	LBL 71		; [C*] operation

130	XEQ 07		; get two operands, as (x + j.y) and (z + j.t)
131	FS? 10		; if division
132	XEQ 31		;   then compute (x + j.y) = 1 / (x + j.y)
133	XEQ 00		; compute (x + j.y) * ( z + j.t)
134	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX POWER OF A COMPLEX NUMBER
;
;           (x+y.j)      z    -t.phi1    j.(z.phi1 + t.ln(r1))
;     (z+t.j)       =  r1  . e        . e
;
;   where:
;         r1   = sqrt(x^2+y^2)
;         phi1 = .... x + y.j ....????

135	LBL 17		; [Z2^Z1] operation

136	XEQ 07		; get two operands, as (x + j.y) and (z + j.t)
137	R^
138	R^
139	RAD
140	R-P
141	LN
142	XEQ 00		; compute (x + j.y) * ( z + j.t)
143	E^X
144	P-R
145	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX PARALLEL CIRCUIT, useful in network theory
;
;            Z1 . Z2
; Z1 // Z2 = -------    {for |Z1+Z2| &lt;&gt; 0}
;            Z1 + Z2

146	LBL 32		; [CPAR] operation
147	XEQ 07		; get two operands, as (x + j.y) and (z + j.t)
148	XEQ 31		; compute 1 / ( x + j.y)
149	R^
150	R^
151	XEQ 31		; compute 1 / ( x + j.y)
152	X&lt;&gt;Y
153	ST+ T
154	RDN
155	+
156	XEQ 31		; compute 1 / ( x + j.y)

; REPLACE Z1 with (x + y.j) ON COMPLEX STACK

157	LBL 03	    	; [PRGM] keycode
158	DEG		; switch to DEG mode
159	STO 03
160	X&lt;&gt;Y
161	STO 04
162	X&lt;&gt;Y
163	RTN

; MULTIPLY TWO COMPLEX NUMBERS subroutine
;
;     (x + y.j) * (z + t.j) = (x + j.y) * (z + j.im2) =
;                           = (x.z - y.t ) + j.(y.x + x.t)

164	LBL 00
165	STO L
166	R^
167	ST* L
168	X&lt;&gt; Z
169	ST* Z
170	R^
171	ST* Y
172	ST* Z
173	X&lt;&gt; L
174	+
175	X&lt;&gt; Z
176	-
177	RTN

; COMPLEX COMMON (base 10) and NATURAL (base e) LOGARITHM
;
;     ln(x + y.j) = ln(r) + j.phi
;
;     Z1
;       log(Z2) = ln(Z2) / ln(Z1)

178	LBL 14		; [LOG(Z)] operation
179	XEQ 08		; get operand, as (x + j.y) and update LASTZ
180	LN  		; x=ln(M1), y=phi1
181	GTO 00

182	LBL 15		; [LN(Z)] operation
183	XEQ 09		; push (x + y.j) onto complex stack and update LASTZ
184	 E		; x=1

185	LBL 00
186	RDN
187	RAD
188	R-P
189	LN
190	R^
191	ST/ Z
192	/
193	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX COMMON (base 10) and NATURAL (base e) EXPONENTIAL
;
;     (x + j.y)    x              x
;    e          = e .sin(y) + j.e .cos(y)

194	LBL 19		; [n^Z] operation
195	XEQ 08		; get operand, as (x + j.y) and update LASTZ
196	LN
197	GTO 00		; reuse part of  [E^Z] operation

198	LBL 20		; [E^Z] operation
199	XEQ 09		; push (x + y.j) onto complex stack and update LASTZ
200	 E

201	LBL 00
202	ST* Z
203	*
204	E^X
205	RAD
206	P-R
207	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX EXPONENTIATION WITH REAL EXPONENT n

208	LBL 18		; [Z^n] operation

209	XEQ 08		; get operand, as (x + j.y) and update LASTZ
210	RDN
211	R-P
212	R^
213	ST* Z
214	Y^X
215	P-R
216	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX ROOT OF REAL NUMBER n
;        __
;     Z1/         1/Z1
;     \/ Z2   = Z2
;        __
;     n /        1/n   j.(phi/n)
;     \/ Z    = M   . e

217	LBL 13		; [Z^1/n] operation

218	XEQ 08		; get operand, as (x + j.y) and update LASTZ
219	RDN
220	R-P
221	R^
222	1/X
223	Y^X
224	360
225	R^
226	ST/ T
227	ST/ Y
228	R^
229	R^
230	LBL 05
231	FC? 00
232	P-R
233	XEQ 10		; display complex number (x + y.j)
234	AON
235	STOP
236	FC? 00
237	R-P
238	R^
239	ST+ Z
240	RDN
241	DSE Z
242	GTO 05		; loop back to LBL 05
243	P-R
244	AOFF
245	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX SINE, COSECANT, COSINE AND SECANT
;
;     sin( x + j.y) = sin(x).cosh(y) + j.cos(x).sinh(y)
;     cos( x + j.y) = cos(x).cosh(y) - j.sin(x).sinh(y)
;     sinh(x + j.y) = cos(y).sinh(x) + j.sin(y).cosh(x)
;     cosh(x + j.y) = cos(y).cosh(x) + j.sin(y).sinh(x)
;     csc(x + j.y)  = 1 / sin( x + j.y)
;     sec(x + j.y)  = 1 / cos( x + j.y)
;     csch(x + j.y) = 1 / sinh(x + j.y)
;     sech(x + j.y) = 1 / cosh(x + j.y)
;
; Flags used:
;     flag 04, indicates [HYP]
;     flag 10, indicates [SIN], otherwise [COS]
;     flag 14, indicates inverse operation (CSC and COS, aka SIN^-1 and COS^-1)
;
; Reference:
;     http://en.wikipedia.org/wiki/Complex_number#Complex_analysis

246	LBL 28		; [CSC(Z)] operation
247	SF 14

248	LBL 23		; [SIN(Z)] operation
249	SF 10

250	LBL 29		; [SEC(Z)] operation
251	FC? 10
252	SF 14

253	LBL 24		; [COS(Z)] operation

254	XEQ 09		; push (x + y.j) onto complex stack and update LASTZ
255	FS?C 03		; ARC?
256	GTO 13
257	XEQ 00		; calculate cos/sin/cosh/sinh
258	ST* T
259	RDN
260	*
261	CHS
262	FC? 04		; HYP?
263	FS? 10		; SIN?
264	CHS
265	FC?C 04		; HYP?
266	FC? 10		; COS?
267	X&lt;&gt;Y
268	FS?C 14		; inverse operation?
269	XEQ 31		;   then compute Z1 = 1 / Z1
270	GTO 03		; copy (x + y.j) to complex stack, and return

; COMPLEX TANGENT AND COTANGENT, doesn't support ARC or HYP variations
;
;     tan(x + j.y) = sin(2.x)  / ( cosh(2.y) + cos(2.x) ) +
;                    sinh(2.y) / ( cosh(2.y) + cos(2.x) ) . j
;     cot(Z) = 1 / tan(Z)
;
; Flags used:
;     F03 indicates [ARC]
;     F04 indicates [HYP]
;     F14 indicates inverse operation (COT aka TAN^-1]

271	LBL 30		; [COT(Z)] operation
272	SF 14
273	LBL 25		; [TAN(Z)] operation
274	FS?C 03		; ARC?
275	GTO 02		;   UNSUPPORTED, jump back to main routine
276	FS?C 04		; HYP?
277	GTO 02		;   UNSUPPORTED, jump back to main routine
278	XEQ 09		; push (x + y.j) onto complex stack and update LASTZ
279	2		; multiply x and y by 2
280	ST* Z
281	*
282	XEQ 00		; calculate cos/sin/cosh/sinh (F04=0, F10=0)
283	R^
284	+
285	ST/ Z
286	/   		; answers is now as (x + y.j)
287	FS?C 14		; inverse operation?
288	XEQ 31		;   then compute Z1 = 1 / Z1
289	GTO 03		; copy (x + y.j) to complex stack, and return

; TRIGONOMIC OPERATIONS HELPER subroutine
;
; Call with:
;   complex number on the stack as (x + y.j).
;   F04 indicates [HYP]
;   F10 indicates [SIN], otherwise [COS]
;
; This operation returns:
;
;           | [HYP]    [HYP]
;	    | [SIN]    [COS]	[SIN]	[COS]
;     ------+----------------------------------
; re  y-reg | sin(y)   sin(y)   sin(x)  sin(x)
; re  z-reg | cosh(x)  sinh(x)  cosh(y) sinh(y)
;     ------+----------------------------------
; im  x-reg | cos(y)   cos(y)   cos(x)  cos(x)
; im  t-reg | sinh(x)  cosh(x)  sinh(y) cosh(y)
;
;            x     -x      2.x
;           e  -  e       e    -  1                    1
; sinh(x) = ---------  =  ---------  ,    csch(x) = -------
;                              x                    sinh(x)
;              2            2.e
;
;            x     -x      2.x
;           e  +  e       e    +  1                   1
; cosh(x) = ---------  =  ---------  ,    sech(x) = -------
;                              x                    cosh(x)
;               2           2.e
; Reference:
;     http://en.wikipedia.org/wiki/Hyperbolic_trig_operations

290	LBL 00
291	FS? 04		; HYP?
292	X&lt;&gt;Y		;
293	2
294	RCL Z
295	ST+ X
296	E^X-1
297	ST+ Y
298	R^
299	E^X
300	ST+ X
301	ST/ Z
302	/
303	FS? 10		; SIN? (not COS)
304	X&lt;&gt;Y		;
305	R^
306	RAD
307	SIN
308	R^
309	COS
310	RTN

; INVERSE TRIGONOMIC OPERATIONS, ARC and HYP-ARC
;
;     arcsin(x + y.j) = arcsin(b) + j.sign(y).ln(a + sqrt(a^2-1)
;     arccos(x + y.j) = arccos(b) - j.sign(y).ln(a + sqrt(a^2-1))
;     arccsc(Z)  =    arcsin(1/Z)
;     arcsec(Z)  =    arccos(1/Z)
;     arcsinh(Z) = -j.arcsin(j.Z)
;     arccosh(Z) =  j.arccos(Z)
;     arccsch(Z) =  j.arccsc(j.Z)
;     arcsech(Z) =  j.arcsec(Z)
;   where
;     a = ( sqrt( (x+1)^2 + y^2 ) + sqrt( (x-1)^2 + y^2) ) / 2
;     b = ( sqrt( (x+1)^2 + y^2 ) - sqrt( (x-1)^2 + y^2) ) / 2
;     sign(y) returns 1 when y&gt;=0, othewise returns -1
;
; Flags used:
;     F04 indicates [HYP]
;     F10 indicates [SIN], otherwise [COS]
;     F14 indicates inverse operation (CSC and COS, aka SIN^-1 and COS^-1]
;
; Reference:
;     http://en.wikipedia.org/wiki/Inverse_trigonometric_operation

311	LBL 13
312	FS?C 14		; inverse operation?
313	XEQ 31		; compute Z1 = 1 / Z1
314	FS? 04		; HYP flag
315	FC? 10
316	GTO 00
317	X&lt;&gt;Y
318	CHS
319	LBL 00		; entered with Z1 as (x + y.j)
320	RCL X
321	 E
322	ST- Z
323	+
324	X^2
325	X&lt;&gt;Y
326	X^2
327	X&lt;&gt; Z
328	X^2
329	ST+ Z
330	+
331	SQRT
332	STO Z
333	X&lt;&gt;Y
334	SQRT
335	ST- Z
336	+
337	2
338	ST/ Z
339	/   		; X holds a;  Y holds b; Z holds y
340	ENTER^
341	X^2
342	SIGN
343	ST- L
344	X&lt;&gt; L
345	SQRT
346	+
347	LN
348	R^
349	SIGN
350	*
351	FC? 10
352	CHS
353	X&lt;&gt;Y
354	RAD
355	FS? 10
356	ASIN
357	FC? 10
358	ACOS		; Z1 (x + y.j) now holds the answer to simple ARCSIN or ARCCOS
359	FC?C 04
360	GTO 03		; we're done for non-HYP operations;
361	FS? 10		; proceed for for HYP or inverse-HYP
362	CHS
363	X&lt;&gt;Y
364	FC? 10
365	CHS
366	GTO 03		; copy (x + y.j) to complex stack, and return

; VIEW COMPLEX NUMBER Zn

367	LBL 89		; [VIEWZn] operation
368	RCL 00
369	X&lt;Y?		; if n &gt; complex stack depth, recall Z1 and return
370	GTO 14		; get (x + y.j) from complex stack, and return
371	SIGN
372	+
373	ST+ X
374	SIGN
375	CLX
376	RCL IND L	; recall imaginary part of Zn
377	DSE L
378	RCL IND L	; recall real part of Zn
379	FS? 00		; if notation selected
380	R-P 		;   then convert to polar notation
381	XEQ 10		; display complex number (x + y.j)
382	PSE 		; pause, but allow number input
383	GTO 14		; get (x + y.j) from complex stack, and return

; EXCHANGE COMPLEX STACK REGISTERS

384	LBL 21		; [Z1&lt;&gt;Z2] operation
385	XEQ 04		; push (x + y.j) onto complex stack
386	2
387	LBL 26		; [Z1&lt;&gt;Zn] operation
388	RCL 00
389	X&lt;Y?
390	GTO 14		; get (x + y.j) from complex stack, and return
391	X&lt;&gt;Y
392	ST+ X
393	1.003002	; X register holds 1.003002; Y register holds 2.n,
394	CF 02		; no "no stack lift"
395	GTO 00		; perform register swap and return

; COMPLEX STACK ROLL, up or down
;
; Does not roll around
; Uses block rotate trick form PPC Journal V10N3p15a

396	LBL 22		; [CR^] operation
397	SF 10
398	LBL 27		; [CRDN] operation

399	XEQ 04		; push (x + y.j) onto complex stack
400	3
401	ENTER^
402	5
403	FS? 10		; CR^?
404	X&lt;&gt;Y
405	RCL 00		; complex stack depth (csdepth)
406	DSE X
407	ST+ X
408	 E3
409	ST/ Z
410	X^2
411	/
412	+		; for CRDN
413	LBL 00
414	+
415	REGSWAP		; register swap for sss.dddnnn

; GET (x + y.j) FROM COMPLEX STACK

416	LBL 14
417	RCL 04		; imaginary part of Z1
418	RCL 03		; real part of Z1
419	RTN

; COMPLEX 1/Z1
;
; Formula:
;      1             x                 y
;    -------  =  ---------  -  j . ---------
;    x + y.j     x^2 + y^2         x^2 + y^2
;
; doesn't disturb Z and T
420	LBL 31
421	X^2
422	X&lt;&gt;Y
423	STO M
424	ST* X
425	ST+ Y
426	X&lt;&gt; M
427	CHS
428	X&lt;&gt;Y
429	ST/ Y
430	ST/ L
431	X&lt;&gt; L
432	RTN

; GET TWO OPERANDS as (x + j.y) and (z + j.t)
; 1st operand is from keyboard, otherwise from Z1
; stack management subroutine for operations with two complex number operands

433	LBL 07
434	XEQ 06		; get one operand (x + y.j) from keyboard input
                        ;  otherwise from Z1 on the complex stack
435	FC?C 02
436	FC? 22		; if "no stack lift" or no "input from keyboard"
437	XEQ 12		;   then move complex stack down
438	RCL 04		; get operand (z + t.j) from Z1 on the complex stack
439	RCL 03
440	R^
441	R^
442	GTO 00

; GET OPERAND, as (x + j.y) and UPDATE LASTZ
; stack management subroutine for operations with one complex and one real number operand

443	LBL 08	   	; called with n in register X
444	FS?C 02		; if "no stack lift"
445	XEQ 12		;   then move complex stack down, Z1 &lt; Z2 &lt; Z3 &lt; Z4 &lt; Z5 &lt; Z6
446	RCL 04		; copy Z1 to LASTZ
447	STO 02
448	RCL 03
449	STO 01
450	RCL Z		; n in register X, complex operand as (y + z.j)
451	RTN

; PUSH (x + y.j) ONTO COMPLEX STACK and UPDATE LASTZ
; stack management subroutine for operations with one complex number operand

452	LBL 09
453	XEQ 04		; push (x + y.j) onto complex stack
454	LBL 00
455	STO 01		; copy to LASTZ1
456	X&lt;&gt;Y
457	STO 02
458	X&lt;&gt;Y
459	RTN

; COMPLEX ALPHA/ALPHA ROUTINE

460	LBL 04	      	; [CVIEW] key code [ALPHA]
461	FC?C 02
462	FC? 22
463	FS? 30		; if both "no stack lift" and "keyboard input"
464	XEQ 11		;   then move complex stack up, Z1 &gt; Z2 &gt; Z3 &gt; Z4 &gt; Z5 &gt; Z6

465	XEQ 06		; get one operand
466	STO 03
467	X&lt;&gt;Y
468	STO 04
469	X&lt;&gt;Y
470	RTN

; GET ONE OPERAND (x + y.j)
; from keyboard input, otherwise from Z1 on the complex stack 

471	LBL 06
472	FS? 00		; if in polar mode, then convert it to Rect
473	FC? 22
474	FS? 30
475	P-R
476	FS? 22		; keyboard input?
477	RTN
478	RCL 04
479	RCL 03
480	RTN

; DISPLAY
; in rectangular mode "x + y.j", or in polar mode "x &lt;y" with the
; angle in degrees
; subroutine that views both parts of the complex number in X and Y in
; condensed format in the display, without disturbing Z, T or the display
; mode.  ENG 2 was chosen because, to display complex numbers in analog
; electronics.

481	LBL 10		; Z1 = x + j.y
482	SIGN		; save X in LASTX
483	RDN
484	CLA
485	RCLFLAG		; save flags
486	ENG 2
487	ARCL L
488	RDN
489	FS? 00		; in Rectangular notation append real part,
490	GTO 00		; and '+' sign if imaginary part is positive
491	X&lt;0?
492	GTO 00
493	&gt;"+"
494	LBL 00
495	R^
496	FS? 00		; for Polar notation, append angle ('&lt;') sign
497	&gt;"&lt;"
498	ARCL Y
499	FC? 00
500	&gt;"J"		; in Rectangular notation append 'J' char
501	AVIEW
502	STOFLAG		; restore flags
503	X&lt;&gt; L		; restore X from LASTX
504	RTN

; ROLL THE COMPLEX STACK, by one position up or down
; subroutine to shift the stack up or down by one complex register
;
; Does not roll around like RDN or R^
; Does not enter or retrieve data.
;
; Example:
;                  | stack lift | stack drop
;    --------------+------------+------------
;    Z6    6 + 6j  |   5 + 5j   |   6 + 6j
;    Z5    5 + 5j  |   4 + 4j   |   6 + 6j
;    Z4    4 + 4j  |   3 + 3j   |   5 + 5j
;    Z3    3 + 3j  |   2 + 2j   |   4 + 4j
;    Z2    2 + 2j  |   1 + 1j   |   3 + 3j
;    Z1    1 + 1j  |   1 + 1j   |   2 + 2j

505	LBL 11		; stack lift, Z1 &gt; Z2 &gt; Z3 &gt; Z4 &gt; Z5 &gt; Z6
506	3.005		;   typically when a new number is moved into Z1
507	GTO 00
508	LBL 12		; stack drop, Z1 &lt; Z2 &lt; Z3 &lt; Z4 &lt; Z5 &lt; Z6
509	5.003		;   typically when a operation combines Z1 and Z2
510	LBL 00
511	SIGN
512	RCL 00		; complex stack depth (csdepth)
513	X&lt;&gt;Y
514	ST- Y
515	RDN
516	ST+ X
517	 E6
518	ST/ Y
519	X&lt;&gt; L
520	+		; register X is in sss.dddnnn format
521	REGMOVE		; copies 2*(csdepth-1) registers from sss to ddd
522	RDN
523	END</pre>
<h3>References</h3>
<table>
<tbody>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[1]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">COMPLEX ARITHMETIC<br /> Frans de Vries, May 1985<br /> <a href="http://www.hp41.org/LibView.cfm?Command=Image&amp;ItemID=229&amp;FileID=6443">PPC Journal V12N5, page 4-9</a></td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[2]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">SCIENTIFIC ANALYSIS IN THE POCKET CALCULATOR, chapter 3-8, appendix 4<br /> Jon M. Smith, 1975<br /> New York, John Wiley &amp; sons</td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[3]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">LAPLACE-, FOURIER- EN Z-TRANSFORMATIE, chapter 1<br /> Ir. A. van der Knaap, 1983<br /> HTS Dordrecht, the Netherlands</td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[4]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">COMPLEXE REKENWIJZE OP DE STANDAARD HP41CV<br /> Coert Vonk, 1986<br /> HP Users Nieuws #8 June 1986 pg. 24-29</td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[5]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">MATHEMATICAL TABLES AND FORMULAS, formula 26 pg. 242<br /> R.D. Carmichael and E.R. Smith<br /> Dover Publications Inc, New York</td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[6]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">EXTEND YOUR HP-41C, page 558<br /> Wlodek Mier-Jedrzejowicz, 1986<br /> <a href="http://www.hpmuseum.org/software/swcd.htm">Synthetix</a></td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[7]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">HP-41C FLAGS, PART 1<br /> <a href="http://www.hpmuseum.net/pdf/KeyNotes_1980_Sep_Vol4No3_13pages_OCR.pdf">HP Key Notes V4N3, 1980</a></td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[8]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">COMPLEX FUNCTIONS FOR THE HP-41<br /> Jean-Marc Baillard, 2004<br /> <a href="http://www.hpmuseum.org/software/41/41cmpxf.htm">see article</a></td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top">[9]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top">RUNNING PRGMS IN X-MEMORY<br /> Philip Karras, April 1982<br /> <a href="http://www.hp41.org/LibView.cfm?Command=Image&amp;FileID=5144">PPC Journal, V9N3, pg.26</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/technology/hp41/complex-arithmetic-xmem-4426/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Polynomial Factorization (to 5th degree) for HP-41cv/cx</title>
		<link>http://www.coertvonk.com/technology/hp41/polynomial-factorization-4461</link>
		<comments>http://www.coertvonk.com/technology/hp41/polynomial-factorization-4461#comments</comments>
		<pubDate>Tue, 28 Feb 2012 22:56:50 +0000</pubDate>
		<dc:creator>Coert</dc:creator>
				<category><![CDATA[Math (HP-41)]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=4461</guid>
		<description><![CDATA[This program calculates the roots of a polynomial sigh real number up to the 5th degree (quintic). A root of polynomial P(z) is a number zi such that P(zi)=0. A polynomial of degree n has n roots. Only real number coefficients are supported, because a polynomial with complex coefficients can be rewritten as two independent polynomials with real number coefficients. <a href="http://www.coertvonk.com/technology/hp41/polynomial-factorization-4461">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>This program calculates the roots of a polynomial up to the 5<sup>th</sup> degree (quintic). </p>
<h3>History</h3>
<p>Around 1985, Michiel Niemeijer published a similar program for the HP-41 in the Dutch publication HP User News [1].  I am not sure if that was the source.  My changes were aimed at making the user experience more intuitive. This article lists my version 1.1 from October 12, 1986.</p>
<p>Now, twenty-five years later, I restored my HP-41CV and use the program once again. The HP-41 version is also verified to run under Windows using Warren Furlow’s V41 simulator when compiled with Leo Duran’s hp41uc.</p>
<h3>Theory</h3>
<p>Consider the monic fourth-order polynomial [3]</p>
<p><a href="http://www.coertvonk.com/technology/hp41/polynomial-factorization-4461/attachment/pol5-1" rel="attachment wp-att-4848"><img class="size-full wp-image-4848 aligncenter" title="pol5-1" src="http://www.coertvonk.com/wp-content/uploads/pol5-1.png" alt="" width="244" height="24" /></a>A root of polynomial <em>p(z)</em> is a number <em>x<sub>i</sub></em> such that <em>p(x<sub>i</sub>)=0</em>.  Each <em>n</em><sup>th</sup>-order polynomial has exactly <em>n</em> roots.  These roots may be real or complex.  Then we have <em>p(z<sub>1</sub>)=0, p(z<sub>2</sub>)=0, p(z<sub>3</sub>)=0, p(z<sub>4</sub>)=0</em>, and we can write</p>
<p><a href="http://www.coertvonk.com/technology/hp41/polynomial-factorization-4461/attachment/pol5-2" rel="attachment wp-att-4849"><img class="size-full wp-image-4849 aligncenter" title="pol5-2" src="http://www.coertvonk.com/wp-content/uploads/pol5-2.png" alt="" width="259" height="24" /></a>This is the factored form of the monic polynomial.  Multiplying out the symbolic factored form gives a nonlinear system of four equations and four unknowns.  Solving it gives</p>
<h3><a href="http://www.coertvonk.com/technology/hp41/polynomial-factorization-4461/attachment/pol5-3" rel="attachment wp-att-4850"><img class="size-full wp-image-4850 aligncenter" title="pol5-3" src="http://www.coertvonk.com/wp-content/uploads/pol5-3.png" alt="" width="86" height="73" /></a>Examples</h3>
<p>Assumes <span class="hp41-key">FIX</span> 3 and <span class="hp41-key">SIZE</span> 15.</p>
<ol>
<li><strong>Calculate the roots for: <em>x<sup>5</sup> &#8211; x<sup>4</sup> &#8211; 101.x<sup>3</sup> + 101.x<sup>2</sup> + 100.x &#8211; 100 = 0</em></strong><br />
<table style="width: 300px;" border="1" frame="box" cellpadding="0">
<tbody>
<tr>
<td><em>entry</em></td>
<td><em>display</em></td>
</tr>
<tr>
<td><span class="hp41-key">XEQ</span> &#8220;POL5&#8243;</td>
<td class="hp41-display">ORDER?</td>
</tr>
<tr>
<td>5 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^5= ?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^4= ?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">CHS</span></td>
<td class="hp41-display"> </td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^3= ?</td>
</tr>
<tr>
<td>101 <span class="hp41-key">CHS</span></td>
<td class="hp41-display"> </td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^2= ?</td>
</tr>
<tr>
<td>101 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^1=?</td>
</tr>
<tr>
<td>100 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">CONST?</td>
</tr>
<tr>
<td>100 <span class="hp41-key">CHS</span></td>
<td class="hp41-display"> </td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">1.000</td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">-1.000</td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">10.000</td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">1.000</td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">-10.000</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-key">R/S</span></td>
<td class="hp41-display" rowspan="1" colspan="1">END</td>
</tr>
</tbody>
</table>
</li>
<li><strong>Calculate<strong> the roots for</strong>: <em>x<sup>4</sup> + x<sup>3</sup> + x<sup>2</sup> + 11.x + 10 = 0</em></strong><br />
<table style="width: 300px;" border="1">
<tbody>
<tr>
<td><em>entry</em></td>
<td><em>display</em></td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-key">R/S</span></td>
<td class="hp41-display" rowspan="1" colspan="1">ORDER?</td>
</tr>
<tr>
<td>4 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^4= ?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^3= ?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^2= ?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^1= ?</td>
</tr>
<tr>
<td>11 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">CONST= ?</td>
</tr>
<tr>
<td>10 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">-1.000</td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">-2.000</td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">1.000+2.000J</td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">1.000-2.000J</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-key">R/S</span></td>
<td rowspan="1" colspan="1">END</td>
</tr>
</tbody>
</table>
</li>
<li><strong>Calculate <strong>the roots for</strong>: <em>x<sup>3</sup> &#8211; x<sup>2</sup> + x &#8211; 1 = 0</em></strong><br />
<table style="width: 300px;" border="1">
<tbody>
<tr>
<td><em>entry</em></td>
<td><em>display</em></td>
</tr>
<tr>
<td><span class="hp41-key">XEQ</span> &#8220;POL5&#8243;</td>
<td class="hp41-display">ORDER?</td>
</tr>
<tr>
<td>3 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^3= ?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^2= ?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">CHS</span></td>
<td class="hp41-display"> </td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">X^1= ?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">CONST?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">CHS</span></td>
<td class="hp41-display"> </td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">1.000E-10+1.000J</td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">1.000E-10-1.000J</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-key">R/S</span></td>
<td class="hp41-display" rowspan="1" colspan="1">1</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-key">R/S</span></td>
<td class="hp41-display" rowspan="1" colspan="1">END</td>
</tr>
</tbody>
</table>
</li>
</ol>
<h3>Method</h3>
<p>The 5<sup>th</sup> root is numerically factored, although there are other methods. [3]</p>
<h3>Program listing</h3>
<ul>
<li>Requires</li>
<ul>
<li>X-Functions module on the HP-41cv</li>
</ul>
<li>Available as</li>
<ul>
<li><a href="http://coertvonk.com/wp-content/hp-41/pol5.txt">source code</a></li>
<li><a href="http://coertvonk.com/wp-content/hp-41/pol5.raw">raw code</a> for the V41 emulator</li>
<li><a href="http://coertvonk.com/wp-content/hp-41/pol5.pdf">bar code</a> for the HP Wand (HP82153A)</li>
</ul>
<li>Size</li>
<ul>
<li>The program takes 527 bytes including the END, and fits on 5 magnetic tracks.</li>
</ul>
<li>Registers used</li>
<ul>
<li>R00, constant</li>
<li>R01, 1st order coefficient</li>
<li>:</li>
<li>R05, 4th order coefficient</li>
<li>R06, highest order</li>
<li>R07, loop variable for coefficient input</li>
<li>R08, subroutine label (highest coefficient + 10)</li>
<li>R09, display loop variable (dd)</li>
</ul>
<li>Flags used</li>
<ul>
<li>flag 00, when set R00/R01 holds complex roots (R00+-R01.j), otherwise R00/R01 holds real roots</li>
<li>flag 02, when set, R02/R03 holds complex roots (R02+-R03.j), otherwise R02/R03 holds real roots</li>
</ul>
</ul>
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">01	LBL "POL5"
02	SF 00		; no complex root in R00/R01
03	FIX 0
04	CF 29
05	"ORDER ?"
06	PROMPT
07	STO 06		; highest order coefficient
08	STO 07		; loop variable for coefficient input
09	 E1
10	+
11	STO 08

12	LBL 21		; coefficients input
13	"X^"
14	ARCL 07
15	&gt;"= ?"
16	PROMPT
17	FS?C 00		; complex root in R00/R01?
18	GTO 20
19	RCL IND 06	; convert to depressed form
20	/
21	LBL 20
22	STO IND 07
23	DSE 07		; decrement loop variable
24	GTO 21
25	"CONST ?"
26	PROMPT
27	RCL IND 06
28	/
29	STO 00

30	SF 29		; "digit grouping"
31	FIX 3
32	 E		; x=1
33	STO IND 06	; highest order coefficient is 1 (because depressed form)
34	-1
35	STO 09		; init dd to -1
36	GTO IND 08	; jump to label matching highest order of polynomial

; SOLVE 2nd ORDER

37	LBL 12
38	XEQ 08		; find two roots
39	XEQ 09		; display two roots
40	GTO 11

; SOLVE 3rd ORDER

41	LBL 13
42	XEQ 10		; Find 3 roots
43	XEQ 09		; display first two roots
44	XEQ 16		; display next root
45	GTO 11

; SOLVE 4th ORDER

46	LBL 14
47	XEQ 18		; find four roots
48	XEQ 09		; display first two roots
49	XEQ 09		; display next two roots
50	GTO 11

; SOLVE 5th ORDER

51	LBL 15
52	XEQ 19		; find five roots
53	XEQ 09		; display first two roots
54	XEQ 09		; display next two roots
55	XEQ 16		; display next root

; FINISH UP, and get ready to do it again

56	LBL 11
57	"END"
58	PROMPT
59	XEQ "POL5"

; DISPLAY TWO ROOTS

60	LBL 09
61	CLA
62	ISG 09		; dd++
63	""              ; NOP
64	FC?C IND 09	; if they are not a complex roots,
65	GTO 17		;   then display two real roots

66	RCL IND 09	; display complex root in rectangular form
67	ISG 09
68	""
69	RCL IND 09
70	ABS
71	ARCL Y
72	&gt;"+"
73	ARCL X
74	&gt;"J"
75	AVIEW
76	STOP
77	CLA		; display conjugate of that root in rectangular form
78	ARCL Y
79	CHS
80	ARCL X
81	&gt;"J"
82	PROMPT
83	RTN

; DISPLAY TWO REAL ROOTS

84	LBL 17
85	DSE 09		; dd
86	""              ; NOP
87	XEQ 16		; display next root, then fall through to show the next one

; DISPLAY ONE REAL ROOT

88	LBL 16
89	CLA
90	ISG 09		; dd points to next root
91	""              ; NOP
92	ARCL IND 09	; display register pointed to by dd
93	PROMPT
94	RTN

; FIND FIVE ROOTS
;
; on entry:
;   depressed form coefficients a0, a1, a2, a3, a4 in R00 .. R04
;
; on exit:
;   if FS?00 then root1 = (R00 + R01.j) and root2 = (R01 - R01.j)
;            else root1 = (R00 +   0.j) and root2 = (R01 -   0.j)
;   if FS?02 then root3 = (R02 + R03.j) and root4 = (R02 - R03.j)
;            else root3 = (R02 +   0.j) and root4 = (R03 -   0.j)
;   root5 = (R04 + 0.j)

95	LBL 19
96	RCL 00
97	STO N		; N = a0
98	 E
99	%
100	STO M		; M = a0 / 100
101	CLST

102	LBL 00		; on entry Z=1
103	RCL Z		; X=Z
104	STO O		; O = starts with 1
105	4   		; fn = a0 + n*(a1 + n*(a2 + n*(a3 + n*(a4 + n))))
106	RCL N
107	LBL 01
108	RCL IND Y
109	+
110	RCL N
111	*
112	DSE Y
113	GTO 01
114	RCL 00
115	+
116	ST* M		; M = M * fn
117	ST- O		; O = O - fn
118	RCL M
119	RCL O
120	X#0?		; if (O &lt;&gt; 0 )
121	/		;   then M = M / O
122	STO M		;   else M = 0

123	X&lt;&gt; N           ; N = N + M
124	ST+ N
125	RCL N
126	X#Y?		; if ( N &lt;&gt; M )
127	GTO 00		;   then next iteration

128	RCL O		; Eliminate 5th root
129	R^  		;   a3' = a4 + root5-&gt;re
130	*		;   a2' = a3 + root5-&gt;re * a3
131	+		;   a1' = a2 + root5-&gt;re * a2
132	X&lt;&gt; 04          ;   a0' = a1 + root5-&gt;re * a1
133	3
134	X&lt;&gt;Y            ; root5 = N + O * fn
135	 E
136	LBL 02
137	RCL 04
138	*
139	+
140	ENTER^
141	X&lt;&gt; IND Z
142	X&lt;&gt;Y
143	DSE Z
144	GTO 02
145	RCL 04
146	*
147	+
148	STO 00		; rolls over to "FIND FOUR ROOTS"

; FIND FOUR ROOTS
;
; on entry:
;   depressed form coefficients a0, a1, a2, a3 in R00 .. R03
;
; on exit:
;   if FS?00 then root1 = (R00 + R01.j) and root2 = (R01 - R01.j)
;            else root1 = (R00 +   0.j) and root2 = (R01 -   0.j)
;   if FS?02 then root3 = (R02 + R03.j) and root4 = (R02 - R03.j)
;            else root3 = (R02 +   0.j) and root4 = (R03 -   0.j)

149	LBL 18
150	RCL 01
151	STO N		; N = a1
152	X^2
153	RCL 00
154	STO M		; M = a0
155	RCL 02
156	CHS
157	STO O		; O = -a2
158	STO 02
159	4
160	*
161	RCL 03
162	ST* 01
163	X^2
164	+
165	*
166	+
167	CHS
168	X&lt;&gt; 00          ; Now:
169	4		;   a2' = -a2                  (R02)
170	*		;   a1' = a1*a3-4*a0	       (R01)
171	ST- 01		;   a0' = a0*(4*a2-a3^2)-a1^2  (R00)

172	XEQ 07		; Find 3 roots

173	RCL 02		; Determine largest root
174	FS? 00		;   if complex root in R00/R01, then
175	GTO 06          ;     X = root3-&gt;re
176	RCL 01		;   else
177	X&lt;Y?            ;     X = maximum of root1-&gt;re, root2-&gt;re, root3-&gt;re
178	X&lt;&gt;Y
179	RCL 00
180	X&lt;Y?
181	X&lt;&gt;Y            ; X = largestRoot

182	LBL 06 		; Eliminate the largest root
183	STO 00		;   A = a3/2
184	STO 02     	;   B = largestRoot/2
185	RCL O		;   C = sqrt(A*A-a2+largestRoot);
186	+   		;   D = sqrt(B*B-a0);
187	RCL 03		;   S = sign(A*B-a1/2))    (sign returns 1 if &gt;=0, -1 if  02
225	STO 00
226	RCL 01
227	X&lt;&gt; 03
228	STO 01
229	CF 02
230	FS? 00
231	SF 02		; Find the next two roots
232	CLA		;   a1' = A - S.C;
233	GTO 03 		;   a0' = B - D;

; FIND THREE ROOTS
;
; on entry:
;   depressed form coefficients a0, a1, a2 in R00 .. R02
;
; on exit:
;   if FS?00 then root1 = (R00 + R01.j) and root2 = (R01 - R01.j)
;            else root1 = (R00 +   0.j) and root2 = (R01 -   0.j)
;   root3 = (R02 + 0.j)

234	LBL 10		; Find the 3rd root
235	LBL 07
236	XEQ 04
237	RCL 02
238	3
239	/
240	-

241	STO 00		; Eliminate the 3rd root
242	ST+ 02
243	RCL 02
244	*
245	ST+ 01
246	RCL 02
247	X&lt;&gt; 01          ; Find the next two roots (rolls over to LBL 08)
248	X&lt;&gt; 00          ;     a1' = a2 + root3-&gt;re                           (R01)
249	STO 02		;     a0' = a1 + root3-&gt;re * ( a2 + root3-&gt;re)       (R00)

; FIND TWO ROOTS
;
; on entry:
;   depressed for coefficients a0, a1 in R00 .. R01
;
; on exit:
;   if FS?00 then root1 = (R00 + R01.j) and root2 = (R01 - R01.j)
;            else root1 = (R00 +   0.j) and root2 = (R01 -   0.j)

250	LBL 08
251	LBL 03
252	CF 00
253	RCL 00
254	4
255	*
256	RCL 01
257	STO 00
258	X^2
259	-		; discr = (a1^2)/4 - a0;
260	X&gt;0?            ; discr &gt; 0?
261	SF 00
262	ABS
263	SQRT
264	2
265	CHS
266	ST/ 00
267	/
268	CHS
269	STO 01
270	FS? 00		; complex root in R00/R01?
271	RTN 		; X = sqrt(abs(a0-a1^2/4))

272	RCL 00
273	STO 01
274	RDN
275	ST+ 00
276	ST- 01
277	RTN 		; X = sqrt(abs(a0-a1^2/4))

; FIND 3RD ROOT HELPER, returns the real part + a2/3 in X
;
; on entry:
;   depressed form coefficients a0, a1, a2 in R00 .. R02
;
; on exit:
;   Note the ' sign, because to get root3, 2/3 needs to be subtracted
;   X register holds (root3 + a2/3)

278	LBL 04
279	RCL 01	        ; Method:
280	RCL 02	        ;   p = a1/3 - a2^2/9
281	X^2 		;   q = a1*a2/6 - a2^3/27 - a0/2;
282	3		;   tmp = p^3 + q^2
283	/
284	-
285	3
286	/
287	RCL 01
288	RCL 02
289	*
290	6
291	/
292	RCL 02
293	3
294	/
295	LASTX
296	Y^X
297	-
298	RCL 00
299	2
300	/
301	-
302	X=0?		; if (q==0) then
303	RTN		;     X = (0 + 0.j)

304	STO Z  	        ; else
305	X^2
306	X&lt;&gt;Y
307	3
308	Y^X
309	+		;     if (tmp &lt; 0)
310	Xre' = 2*(q^2+sqrt(-tmp)^2)^1/3 *
311	GTO 05		;             cos(phi(q,sqrt(-tmp))/3)

312	SQRT		;     else
313	ST- Z		;         X = sign(q-sqrt(tmp))*abs(q-sqrt(tmp))^1/3 +
314	+   		;             sign(q+sqrt(tmp))*abs(q+sqrt(tmp))^1/3
315	SIGN
316	LASTX
317	ABS
318	3
319	1/X
320	Y^X
321	*
322	X&lt;&gt;Y
323	SIGN
324	LASTX
325	ABS
326	3
327	1/X
328	Y^X
329	*
330	+
331	RTN

332	LBL 05
333	CHS
334	SQRT
335	X&lt;&gt;Y
336	R-P
337	3
338	1/X
339	Y^X
340	X&lt;&gt;Y
341	3
342	/
343	COS
344	*
345	ST+ X
346	RTN

347	END</pre>
<h3>References</h3>
<table border="0">
<tbody>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[1]</td>
<td id="" lang="" dir="" scope="" align="" valign="top"> </td>
<td><em>Title Unknown</em><br /> Michiel Niemeijer, <em>approx 1985</em><br /> HP User News, TH Boekhandel Prins, Binnenwatersloot 30, Delft, the Netherlands</td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top">[2]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top">Mathematics of the Discrete Fourier Fransform (DFT), <a href="https://ccrma.stanford.edu/~jos/mdft/Factoring_Polynomial.html">Factoring a Polynomial</a><br /> Julius O. Smith III, Stanford University, April 2007 (2nd edition)<br /> W3K Publishing, ISDN 978-0974560748</td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[3]</td>
<td id="" lang="" dir="" scope="" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">Quintic Equation (5th degree)<br /> <a href="http://mathworld.wolfram.com/QuinticEquation.html"> Wolfram</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/technology/hp41/polynomial-factorization-4461/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hyperbolic Operations for HP-41cv/cx</title>
		<link>http://www.coertvonk.com/technology/hp41/hyperbolic-4623</link>
		<comments>http://www.coertvonk.com/technology/hp41/hyperbolic-4623#comments</comments>
		<pubDate>Mon, 27 Feb 2012 21:09:28 +0000</pubDate>
		<dc:creator>Coert</dc:creator>
				<category><![CDATA[Math (HP-41)]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=4623</guid>
		<description><![CDATA[This program adds hyperbolic operations to the HP-41. <a href="http://www.coertvonk.com/technology/hp41/hyperbolic-4623">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>This program adds hyperbolic operations to the HP-41.</p>
<h3>History</h3>
<p>I wrote this code in October 1986.  I uses some modified functions to improve accuracy.</p>
<h3>Instructions</h3>
<p>The labels automatically map to the user keyboard. Note that some hyperbolic operations leave the stack disturbed.</p>
<h3>Examples</h3>
<ol>
<li>Calculate the <em>sinh(1)</em><br />
<table border="1">
<tbody>
<tr>
<td><span class="hp41-key">GTO</span> &#8220;HYP&#8221;</td>
<td class="hp41-display"></td>
</tr>
<tr>
<td><span class="hp41-nkey">USER</span></td>
<td class="hp41-display"></td>
</tr>
<tr>
<td>1 <span class="hp41-ckey">SIN</span></td>
<td class="hp41-display">1.1752</td>
</tr>
</tbody>
</table>
</li>
</ol>
<h3>Listing</h3>
<ul>
<li>Requires</li>
<ul>
<li>X-Functions module on the HP-41cv</li>
</ul>
<li>Available as</li>
<ul>
<li><a href="http://coertvonk.com/wp-content/hp-41/hyp101.txt">source code</a></li>
<li><a href="http://coertvonk.com/wp-content/hp-41/hyp101.raw">raw code</a> for the V41 emulator</li>
<li><a href="http://coertvonk.com/wp-content/hp-41/hyp101.pdf">bar code</a> for the HP Wand (HP82153A)</li>
</ul>
<li>Size</li>
<ul>
<li>12 registers; 78 bytes including END; 1 magnetic track (78/112=0.70)</li>
</ul>
</ul>
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">01	LBL "HYP"

02	LBL H	; [sinh]
03	STO M
04	E^X-1
05	LASTX
06	E^X
07	/
08	RCL M
09	E^X-1
10	+
11	LBL 00
12	2
13	/
14	RTN

15	LBL I 	; [cosh]
16	E^X
17	1/X
18	LASTX
19	+
20	GTO 00

21	LBL J	; [tanh]
22	XEQ H
23	RCL M
24	XEQ I
25	/
26	RTN

27	LBL C	; [asinh]
28	X^2
29	LASTX
30	X&lt;&gt;Y
31	 E
32	+
33	GTO 01

34	LBL E	; [atanh]
35	 E
36	+
37	ENTER^
38	ENTER^
39	2
40	-
41	/
42	CHS
43	LN
44	GTO 00

45	LBL D	; [acosh]
46	X^2
47	LASTX
48	X&lt;&gt;Y
49	 E
50	-
51	LBL 01
52	SQRT
53	+
54	LN
55	END</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/technology/hp41/hyperbolic-4623/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eigenvalues for HP-41cv/cx</title>
		<link>http://www.coertvonk.com/technology/hp41/eigenvalues-4606</link>
		<comments>http://www.coertvonk.com/technology/hp41/eigenvalues-4606#comments</comments>
		<pubDate>Mon, 27 Feb 2012 17:15:59 +0000</pubDate>
		<dc:creator>Coert</dc:creator>
				<category><![CDATA[Math (HP-41)]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=4606</guid>
		<description><![CDATA[This program determines the eigenvalues of a real number matrix. <a href="http://www.coertvonk.com/technology/hp41/eigenvalues-4606">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>This program determines the eigenvalues of a real number matrix.</p>
<h3>Theory</h3>
<p>Multiplying a vector <em></em>with a square matrix, usually changes both the magnitude (scale) and the direction of the vector.  In the special case where it changes only the magnitude of the vector and leaves the direction unchanged (or switches the vector to the opposite direction), that vector is called an eigenvector of that matrix.</p>
<p>When multiplied by a matrix, each eigenvector of that matrix changes its magnitude by a factor, called the eigenvalue corresponding to that eigenvector.  In other words: vector <em>x</em> is called an eigenvector<em></em> of the matrix <em>A</em> with eigenvalue <em>λ</em> if the following equation holds [5]</p>
<p style="text-align: center;"><em>A.x = λ.x</em></p>
<p>The eigenvalues of <em>A</em> are precisely the solutions λ to the equation <em>det(A &#8211; λ.x) = 0</em>. Here <em>det()</em> is the determinant of matrix formed by <em>A &#8211; λ.I</em> in which <em>I</em> is a <em>n</em>×<em>n</em> identity matrix. This equation is called the <em>characteristic equation</em> of <em>A</em>.</p>
<p>For a more detailed description including complex eigenvalues, refer to my article &#8220;<a href="http://www.coertvonk.com/technology/hp41/complex-eigenvalues-4532">Complex Eigenvalues for HP-41cv/cx</a>&#8220;</p>
<h3>Method</h3>
<p>The program uses the iterative power method to determine the largest eigenvalue. This value is removed from the matrix using the deflation method of Hotelling [1]. The remaining eigenvalues are determined in a similar way. Note that accumulation of rounding errors will affect the accuracy of successive eigenvalues.</p>
<p>The power method is an iterative method for approximating eigenvalues. This method is perhaps not the most respected method, and can only be used when:</p>
<ul>
<li>There are no two identical eigenvalues.</li>
<li>The start vector is not the null vector.</li>
<li>The matrix does not contain complex eigenvalues. (The method will typically work well with a strongly dominated diagonal).</li>
</ul>
<p>If desired, the eigenvectors can be calculated from the original matrix A. (The deflation method spoils the eigenvector, but not the eigenvalue.)</p>
<h3>Examples</h3>
<ol>
<li>Matrix A<br /> <a href="http://www.coertvonk.com/technology/hp41/eigenvalues-4606/attachment/eigw-1" rel="attachment wp-att-4607"><img class="alignnone size-full wp-image-4607" title="eigw-1" src="http://www.coertvonk.com/wp-content/uploads/eigw-1.png" alt="" width="79" height="37" /></a><br />
<table border="1">
<tbody>
<tr>
<td><em>keystrokes<br /> </em></td>
<td><em>display</em></td>
</tr>
<tr>
<td><span class="hp41-key">FIX</span> 3</td>
<td class="hp41-display"> </td>
</tr>
<tr>
<td><span class="hp41-key">XEQ</span> &#8220;EW&#8221;</td>
<td class="hp41-display">DIM?</td>
</tr>
<tr>
<td>2 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">INV.MATRIX:</td>
</tr>
<tr>
<td> </td>
<td class="hp41-display">1:1=0.000?</td>
</tr>
<tr>
<td>8 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">1:2=0.000?</td>
</tr>
<tr>
<td>4 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">2:1=0.000?</td>
</tr>
<tr>
<td>3 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">2:2=0.000?</td>
</tr>
<tr>
<td>6 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">INV.STARTV.:</td>
</tr>
<tr>
<td> </td>
<td class="hp41-display">1:1=0.000?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">2:1=0.000?</td>
</tr>
<tr>
<td>1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display">EPS=0.001?</td>
</tr>
<tr>
<td><span class="hp41-key">R/S</span></td>
<td class="hp41-display">10.500</td>
</tr>
<tr>
<td> </td>
<td class="hp41-display">:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"> </td>
<td class="hp41-display" rowspan="1" colspan="1">10.605</td>
</tr>
<tr>
<td rowspan="1" colspan="1"> </td>
<td class="hp41-display" rowspan="1" colspan="1">EW=10.606</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-key">R/S</span></td>
<td class="hp41-display" rowspan="1" colspan="1">INV.STARTV.:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"> </td>
<td class="hp41-display" rowspan="1" colspan="1">1:1=0.838?</td>
</tr>
<tr>
<td rowspan="1" colspan="1">1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display" rowspan="1" colspan="1">2:1=0.546?</td>
</tr>
<tr>
<td rowspan="1" colspan="1">1 <span class="hp41-key">R/S</span></td>
<td class="hp41-display" rowspan="1" colspan="1">EPS=0.001?</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-key">R/S</span></td>
<td class="hp41-display" rowspan="1" colspan="1">-0.230</td>
</tr>
<tr>
<td rowspan="1" colspan="1"> </td>
<td class="hp41-display" rowspan="1" colspan="1">3.393</td>
</tr>
<tr>
<td rowspan="1" colspan="1"> </td>
<td class="hp41-display" rowspan="1" colspan="1">3.394</td>
</tr>
<tr>
<td rowspan="1" colspan="1"> </td>
<td class="hp41-display" rowspan="1" colspan="1">EW=3.394</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><span class="hp41-key">R/S</span></td>
<td class="hp41-display" rowspan="1" colspan="1">EINDE</td>
</tr>
</tbody>
</table>
<p>The computed eigenvalues <em>10.606</em> and <em>3.394</em> can be verified through:<br /> <a href="http://www.coertvonk.com/technology/hp41/eigenvalues-4606/attachment/ew-2" rel="attachment wp-att-4735"><img class="alignnone size-full wp-image-4735" title="ew-2" src="http://www.coertvonk.com/wp-content/uploads/ew-2.png" alt="" width="538" height="120" /></a></p>
<p>This is also verified through the characteristic polynomial. The eigenvalues of <em>A</em> are precisely the solutions <em>λ</em> to the equation listed below with <em>I</em> is the<em> n×n</em> identify matrix.<br /> <a href="http://www.coertvonk.com/technology/hp41/eigenvalues-4606/attachment/ew-4" rel="attachment wp-att-4746"><img class="alignnone size-full wp-image-4746" title="ew-4" src="http://www.coertvonk.com/wp-content/uploads/ew-4.png" alt="" width="107" height="16" /><br /> </a><br /> Therefore:<br /> <a href="http://www.coertvonk.com/technology/hp41/eigenvalues-4606/attachment/ew-3" rel="attachment wp-att-4747"><img class="alignnone size-full wp-image-4747" title="ew-3" src="http://www.coertvonk.com/wp-content/uploads/ew-3.png" alt="" width="228" height="233" /></a><br /> The solutions to this equation are the eigenvalues <em>λ</em><sub>i</sub>.<br /> The JavaScript calculator &#8220;Eigenwerte und Eigenvektoren berechnen&#8221; provides another verification [7].</p>
</li>
</ol>
<h3>Listing</h3>
<ul>
<li>Requires</li>
<ul>
<li>X-Functions module on the HP-41cv</li>
<li>Advantage ROM</li>
</ul>
<li>Available as</li>
<ul>
<li><a href="http://coertvonk.com/wp-content/hp-41/eigw100.txt">source code</a></li>
<li><a href="http://coertvonk.com/wp-content/hp-41/eigw100.raw">raw code</a> for the V41 emulator</li>
<li><a href="http://coertvonk.com/wp-content/hp-41/eigw100.pdf">bar code</a> for the HP Wand (HP82153A)</li>
</ul>
<li>Size</li>
<ul>
<li>39 registers</li>
</ul>
<li>Registers:</li>
<ul>
<li>alfa, X, Y, Z, T, L</li>
<li>R00: epsilon</li>
<li>R01: loop counter</li>
<li>R02: eigenvalue</li>
</ul>
<li>Long jumps:</li>
<ul>
<li>41</li>
<li>95</li>
</ul>
</ul>
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">;  /---------------------------------------------------------------------\
;  |                      E i g e n v a l u e s                          |
;  |                                                                     |
;  |                            for the HP-41                            |
;  \---------------------------------------------------------------------/
;
;                                   1.00
;                               Coert Vonk
;
;            http://www.coertvonk.com/technology/hp41/eigenvalues-4606

01      LBL "EW"
02       E-4            ; default eps
03      STO 00
04      CF 08
05      "DIM ?"         ; invoer dimensie
06      PROMPT
07      ABS
08      INT
09      STO 01
10      ENTER^
11      ENTER^
12       E3
13      /
14      +
15      "INP. MATRIX:"
16      AVIEW
17      "B"
18      XROM 22,29      ; MATDIM: creeer B-matrix
19      "A"
20      XROM 22,29      ; MATDIM: creer A-matrix
21      XROM 22,61      ; MEDIT: invoer A-matrix

22      LBL 00
23      "A"
24      XROM 22,18      ; DIM?
25      INT
26      "INP. STARTV.:"
27      AVIEW
28      "W"             ; creer W-vector
29      XROM 22,29      ; MATDIM
30      "V"             ; creer V-vector
31      XROM 22,29      ; MATDIM
32      XROM 22,61      ; MEDIT: invoer V-vector
33      XROM 22,19      ; FNRM
34      "STARTV. ERR"
35      X=0?
36      AVIEW
37      X=0?
38      PSE             ; als startvector
39      X=0?            ; de nulvector is
40	GTO 00		; dan opnieuw
41	XEQ 03
42	RCL 00
43	"EPS="
44	ARCL X
45	&gt;"?"
46	PROMPT		; invoer epsilon
47	STO 00
48	LBL 01
49	"W"
50	XROM 22,57      ; SUM
51	XROM 22,18      ; DIM?
52	INT
53	/
54	VIEW X		; tussenresultaat v/d e.g. laten zien
55	STO 02
56	RCL 00
57	XROM 22,33      ; MIN
58	+
59	XROM 22,30      ; MAX
60	X&lt;=Y?		; test of er aan de nauwkeurigheid eps word voldaan
61	GTO 00		; zo  ja, spring
62	XEQ 03		; zo nee, ga verder
63	GTO 01

; toon de gevonden e.w.

64	LBL 00
65	RCL 02
66	"EV="
67	ARCL X
68	PROMPT
69	DSE 01		; alle ew nog niet gevonden?
70	GTO 04		; dan spring naar 04
71	"V"
72	PURFL		; maak de extended-memory weer schoon
73	"W"
74	PURFL
75	"A"
76	PURFL
77	"B"
78	PURFL
79	"EINDE"		; we're done
80	PROMPT
81	GTO E

; zeef de gevonden eigenwaarde uit de laatst gebruikte matrix (A)

82	LBL 04
83	 E
84	"X,V,W"
85	XROM 22,25      ; MAT*
86	"W"
87	XROM 22,59      ; TRNPS
88	"V,W,B"
89	XROM 22,24      ; M*M
90	RCL 02
91	"X,B"
92	XROM 22,25      ; MAT*
93	"A,B,A"
94	XROM 22,27      ; MAT-
95	GTO 00

; voer een iteratie slag uit volgens de powermethode
; zodat v:=A*v en w:=e.w. vector

96	LBL 03
97	"A,V,W"
98	XROM 22,24      ; M*M
99      "W,V"
100     XROM 22,28      ; MAT/
101     1.001
102     XROM 22,18      ; DIM?
103     RCL Y
104     "V,W"
105     XROM 22,49      ; MSWAP
106     "V"
107     XROM 22,19      ; FNRM
108     1/X
109     "X,V"
110     XROM 22,25      ; MAT*
111	RTN

112	END</pre>
<h3>References</h3>
<table border="0">
<tbody>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[1]</td>
<td id="" lang="" dir="" scope="" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">Eigenwaarden<br /> Coert Vonk, 27 September 1986<br /> HP User News, SEP86 N9, blz. 48-50</td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[2]</td>
<td id="" lang="" dir="" scope="" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">Matrixrekenen<br /> Dictaat Lineaire Algebra, blz. 51 e.v.<br /> Ir. A. van der Knaap<br /> HTS Dordrecht, the Netherlands</td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[3]</td>
<td id="" lang="" dir="" scope="" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">Wiskunde voor het HBO Deel 2, blz. 153 e.v.<br /> R. van Asselt<br /> ISBN 90 11 008480</td>
</tr>
<tr>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top">[4]</td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td>Dictaat Lineaire Algebra 4e druk, blz. 152 ev.<br /> G. W. Decnop &amp; H. van Iperen<br /> ISBN 90 65 620362</td>
</tr>
<tr>
<td lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top">[5]</td>
<td lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top">Eigenvalues and eigenvectors<br /> Wikipedia<br /> <a href="http://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors">http://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors</a></td>
</tr>
<tr>
<td lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top">[6]</td>
<td lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" rowspan="1" colspan="1" align="" valign="top">Eigenwerte und Eigenvektoren berechnen<br /> Arndt Brünner<br /> <a href="http://www.arndt-bruenner.de/mathe/scripts/engl_eigenwert2.htm">http://www.arndt-bruenner.de/mathe/scripts/engl_eigenwert2.htm</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/technology/hp41/eigenvalues-4606/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discrete Fourier Transform for HP-41cv/cx</title>
		<link>http://www.coertvonk.com/technology/hp41/dft-4588</link>
		<comments>http://www.coertvonk.com/technology/hp41/dft-4588#comments</comments>
		<pubDate>Mon, 27 Feb 2012 07:25:25 +0000</pubDate>
		<dc:creator>Coert</dc:creator>
				<category><![CDATA[Math (HP-41)]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=4588</guid>
		<description><![CDATA[Te discrete Fourier transform transforms a time domain function to frequency domain.  <a href="http://www.coertvonk.com/technology/hp41/dft-4588">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>The discrete Fourier transform transforms a time domain samples to the frequency domain.  It is used in digital signal processing applications such as audio compression (i.e. AAC), linear filtering and spectrum analysis.</p>
<h3>History</h3>
<p>I wrote this in 1987.</p>
<h3>Theory</h3>
<p>The Fourier Transform of a continuous-time signal x(t) may be defined as</p>
<p><a href="http://www.coertvonk.com/technology/hp41/dft-4588/attachment/dft-1-2" rel="attachment wp-att-4772"><img class="size-full wp-image-4772 aligncenter" title="dft-1" src="http://www.coertvonk.com/wp-content/uploads/dft-11.png" alt="" width="266" height="43" /></a></p>
<p><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif';">In digital signal processing the input signal is in sampled form.<span>  </span>The Discrete Fourier Transform (DTF) is a </span><span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif';">numerical approximation to the Fourier Transform. [1]<br /> </span></p>
<p><a href="http://www.coertvonk.com/technology/hp41/dft-4588/attachment/dft-2" rel="attachment wp-att-4773"><img class="size-full wp-image-4773 aligncenter" title="dft-2" src="http://www.coertvonk.com/wp-content/uploads/dft-2.png" alt="" width="474" height="267" /></a></p>
<h3>Method</h3>
<p>The sequence of <em>N</em> complex numbers <em>x<sub>0</sub>, &#8230;, x</em><sub>N−1</sub> is transformed into another sequence of <em>N</em> complex numbers according to the Discrete Fourier Transform formula listed below [2].</p>
<p><a href="http://www.coertvonk.com/technology/hp41/dft-4588/attachment/dft-1" rel="attachment wp-att-4597"><img class="size-full wp-image-4597 aligncenter" title="dft-1" src="http://www.coertvonk.com/wp-content/uploads/dft-1.png" alt="" width="188" height="50" /></a></p>
<h3>Examples</h3>
<ol>
<li>Sampling a sinus function using 8 samples a period.
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">01  LBL "FIE"
02  45
03	 *
04  SIN
05  VIEW X
06  RTN</pre>
<table border="1">
<tbody>
<tr>
<td><em>n</em></td>
<td><em>A<sub>n</sub></em></td>
<td><em>B<em><sub>n</sub></em></em></td>
<td><em>M<em><sub>n</sub></em></em></td>
<td><em>Φ<em><sub>n</sub></em></em></td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>1</td>
<td>0.9003</td>
<td>-0.3729</td>
<td>0.975</td>
<td>-0.125*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>2</td>
<td>0.0000</td>
<td>0.0000</td>
<td>0.000</td>
<td>0.250*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>3</td>
<td>0.0000</td>
<td>0.0000</td>
<td>0.000</td>
<td>0.000*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>4</td>
<td>0.0000</td>
<td>0.0000</td>
<td>0.000</td>
<td>0.000*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td rowspan="1" colspan="1">5</td>
<td rowspan="1" colspan="1">0.0000</td>
<td rowspan="1" colspan="1">0.0000</td>
<td rowspan="1" colspan="1">0.000</td>
<td rowspan="1" colspan="1">0.000*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td rowspan="1" colspan="1">6</td>
<td rowspan="1" colspan="1">0.0000</td>
<td rowspan="1" colspan="1">0.0000</td>
<td rowspan="1" colspan="1">0.000</td>
<td rowspan="1" colspan="1">-0.125*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td rowspan="1" colspan="1">7</td>
<td rowspan="1" colspan="1">0.1286</td>
<td rowspan="1" colspan="1">0.0533</td>
<td rowspan="1" colspan="1">0.139</td>
<td rowspan="1" colspan="1">0.125*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td rowspan="1" colspan="1">8</td>
<td rowspan="1" colspan="1">0.0000</td>
<td rowspan="1" colspan="1">0.0000</td>
<td rowspan="1" colspan="1">0.0000</td>
<td rowspan="1" colspan="1">0.000*π</td>
</tr>
</tbody>
</table>
<p><span style="color: #ffffff;">:</span></p>
</li>
<li> Same example, but with a hamming correction.
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">01  LBL "FIE"
02  45
03	 *
04  SIN
05  XEQ "HC"
05  VIEW X
06  RTN</pre>
<table border="1">
<tbody>
<tr lang="" dir="" align="center" valign="" bgcolor="">
<td>n</td>
<td>A<em><sub>n</sub></em></td>
<td>B<em><sub>n</sub></em></td>
<td>M<em><sub>n</sub></em></td>
<td>Φ<em><sub>n</sub></em></td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>1</td>
<td>0.4505</td>
<td> -0.1865</td>
<td> 0.487</td>
<td> -0.125*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>2</td>
<td>-0.1592</td>
<td> 0.1592</td>
<td> 0.225</td>
<td> 0.750*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>3</td>
<td>0.0000</td>
<td>0.0000</td>
<td> 0.000</td>
<td> -0.687*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>4</td>
<td>0.0000</td>
<td>0.0000</td>
<td> 0.000</td>
<td> 0.000*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>5</td>
<td>0.0000</td>
<td>0.0000</td>
<td> 0.000</td>
<td> -0.687*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>6</td>
<td> -0.0531</td>
<td> -0.531</td>
<td> 0.075</td>
<td> -0.750*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>7</td>
<td> 0.0643</td>
<td> 0.266</td>
<td> 0.070</td>
<td> 0.125*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td rowspan="1" colspan="1">8</td>
<td rowspan="1" colspan="1">0.0000</td>
<td rowspan="1" colspan="1">0.0000</td>
<td rowspan="1" colspan="1"> 0.000</td>
<td rowspan="1" colspan="1"> 0.000*π</td>
</tr>
</tbody>
</table>
<p><span style="color: #ffffff;">:</span></p>
</li>
<li>Sampling a sinus function using 10 samples with a sample time of 1/8 * T<sub>signal</sub>:
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">01  LBL "FIE"
02  360
03  *
04  8
05  /
06  SIN
07  VIEW X
08  RTN</pre>
<table border="1">
<tbody>
<tr lang="" dir="" align="center" valign="" bgcolor="">
<td><em>n</em></td>
<td><em>A<em><sub>n</sub></em></em></td>
<td><em>B<em><sub>n</sub></em></em></td>
<td><em>Harm</em></td>
<td><em>MOD<em><sub>n</sub></em></em></td>
<td><em>Φ<em><sub>n</sub></em></em></td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>1</td>
<td>0.7201</td>
<td>0.3802</td>
<td>0.8</td>
<td>0.814</td>
<td>0.155*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>2</td>
<td>-0.3335</td>
<td>-0.0787</td>
<td>1.6</td>
<td>0.343</td>
<td>-0.926*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>3</td>
<td>-0.1650</td>
<td>-0.0206</td>
<td>2.4</td>
<td>0.166</td>
<td>-0.961*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>4</td>
<td>-0.1146</td>
<td>0.0064</td>
<td>3.2</td>
<td>0.115</td>
<td>-0.982*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>5</td>
<td>-0.0900</td>
<td>0.0000</td>
<td>4.0</td>
<td>0.090</td>
<td>1.000*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>6</td>
<td>-0.0764</td>
<td>0.0043</td>
<td>4.8</td>
<td>0.077</td>
<td>0.982*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>7</td>
<td>-0.0707</td>
<td>0.0088</td>
<td>5.6</td>
<td>0.071</td>
<td>0.961*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>8</td>
<td>-0..0834</td>
<td>0.0197</td>
<td>6.4</td>
<td>0.086</td>
<td>0.926*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>9</td>
<td>-0.0800</td>
<td>-0.0422</td>
<td>7.2</td>
<td>0.090</td>
<td>-0.155*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>10</td>
<td>0.0000</td>
<td>0.0000</td>
<td>8.0</td>
<td>0.000</td>
<td>0.000*π</td>
</tr>
</tbody>
</table>
<p><span style="color: #ffffff;">:</span></p>
</li>
<li>Same with the hamming correction
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">01	LBL "FIE"
02	360
03	*
04	8
05	/
06	SIN
07	VIEW X
08	XEQ "HC"
09	RTN</pre>
<table border="1" frame="box">
<tbody>
<tr lang="" dir="" align="center" valign="" bgcolor="">
<td><em>n</em></td>
<td><em>A<em><sub>n</sub></em></em></td>
<td><em>B<em><sub>n</sub></em></em></td>
<td><em>Harm</em></td>
<td><em>MOD<em><sub>n</sub></em></em></td>
<td><em>Φ<em><sub>n</sub></em></em></td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>0</td>
<td>0.4263</td>
<td>0.2038</td>
<td>0.8</td>
<td>0.472</td>
<td>0.142*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>1</td>
<td>-0.316</td>
<td>-0.0532</td>
<td>1.6</td>
<td>0.321</td>
<td>-0.947*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>2</td>
<td>-0.0262</td>
<td>-0.0050</td>
<td>2.4</td>
<td>0.027</td>
<td>-0.060*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>3</td>
<td>0.0041</td>
<td>-0.0019</td>
<td>3.2</td>
<td>0.005</td>
<td>-0.134*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>4</td>
<td>0.0017</td>
<td>0.0000</td>
<td>4.0</td>
<td>0.002</td>
<td>0.000*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>5</td>
<td>0.0028</td>
<td>0.0012</td>
<td>4.8</td>
<td>0.003</td>
<td>0.134*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>6</td>
<td>0.0112</td>
<td>0.0021</td>
<td>5.6</td>
<td>0.011</td>
<td>0.060*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>7</td>
<td>-0.0791</td>
<td>0.0133</td>
<td>6.4</td>
<td>0.080</td>
<td>0.947*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>8</td>
<td>-0.0474</td>
<td>-0.0226</td>
<td>7.2</td>
<td>0.052</td>
<td>-0.0142*π</td>
</tr>
<tr lang="" dir="" align="right" valign="" bgcolor="">
<td>9</td>
<td>0.0000</td>
<td>0.000</td>
<td>8.0</td>
<td>0.000</td>
<td>0.000*π</td>
</tr>
</tbody>
</table>
<p><span style="color: #ffffff;">:</span></p>
</li>
<li>Manual
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">01  LBL "FIE"
02  "N"
03  FIX 0
04  ARCL X
05  &gt;"?"
06  PROMPT
07  RTN</pre>
</li>
</ol>
<h3>Listing</h3>
<ul>
<li>Requires</li>
<ul>
<li>X-Functions module on the HP-41cv</li>
</ul>
<li>Available as</li>
<ul>
<li><a href="http://coertvonk.com/wp-content/hp-41/dft.txt">source code</a></li>
<li><a href="http://coertvonk.com/wp-content/hp-41/dft.raw">raw code</a> for the V41 emulator</li>
<li><a href="http://coertvonk.com/wp-content/hp-41/dft.pdf">bar code</a> for the HP Wand (HP82153A)</li>
</ul>
</ul>
<pre class="brush: hpfocal; gutter: false; toolbar: off; tab-size: 8">01	LBL "DFT"
02	DEG
03	sREG 11		; ΣREG
04	CLS  	  	; CLΣ
05	"HARM=?"
06	PROMPT
07	STO 00
08	"M=?"
09	PROMPT
10	"MONSTER:"
11	AVIEW
12	STO 03
13	STO 01
14	/
15	STO 02
16	180
17	ST* 02
18	1
19	ST- 01
20	RCL 01
21	.01
22	+
23	 E3
24	/
25	STO 01
26	LBL 00
27	RCL 01
28	INT
29	ST+ X
30	1
31	+
32	RCL 02
33	*
34	ENTER^
35	SIN
36	X&lt;&gt;Y
37	COS
38	STO 04
39	X&lt;&gt;Y
40	STO 05
41	RCL 01
42	INT
43	XEQ "FIE"
44	RCL 05
45	RCL 04
46	RCL Z
47	*
48	X&lt;&gt;Y
49	LASTX
50	*
51	S+		; Σ+
52	ISG 01
53	GTO 00
54	RCL 02
55	SIN
56	RCL 00
57	/
58	PI
59	/
60	ST+ X
61	ST* 11
62	ST* 13
63	FIX 0
64	"A"
65	ARCL 00
66	&gt;"="
67	FIX 4
68	ARCL 11
69	PROMPT
70	"B"
71	FIX 0
72	ARCL 00
73	&gt;"="
74	FIX 4
75	ARCL 13
76	PROMPT
77	RCL 13
78	RCL 11
79	R-P
80	"AMP="
81	FIX 3
82	ARCL X
83	PROMPT
84	X&lt;&gt;Y
85	180
86	/
87	FIX 3
88	"ARG="
89	ARCL X
90	&gt;"*PI"
91	AVIEW
92	RTN

; Hamming Correction

93	LBL "HC"
94	1
95	RCL 01
96	INT
97	RCL 03
98	/
99	360
100	*
101	COS
102	-
103	2
104	/
105	*
106	END</pre>
<h3>References</h3>
<table width="451" border="0">
<tbody>
<tr>
<td id="" lang="" dir="" scope="" align="" valign="top">[1]</td>
<td id="" lang="" dir="" scope="" align="" valign="top"> </td>
<td id="" lang="" dir="" scope="" align="" valign="top">Mathematics of the Discrete Fourier Transform (DFT)<br /> Julius O. Smith III, April 13, 2007<br /> <a href="https://ccrma.stanford.edu/~jos/mdft/DFT_Definition.html">W3K Publishing; 2 edition, ISBN 097456074X</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/technology/hp41/dft-4588/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Electromagnetism Inquiry</title>
		<link>http://www.coertvonk.com/family/school/electromagnetism-inquiry-3464</link>
		<comments>http://www.coertvonk.com/family/school/electromagnetism-inquiry-3464#comments</comments>
		<pubDate>Tue, 29 Nov 2011 01:24:50 +0000</pubDate>
		<dc:creator>Coert</dc:creator>
				<category><![CDATA[School]]></category>
		<category><![CDATA[atoms]]></category>
		<category><![CDATA[electrons]]></category>
		<category><![CDATA[magnetism]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=3464</guid>
		<description><![CDATA[Inquiry into Electromagnetism. Starting from electrons spinning around their axis to electromagnetic fields.. <a href="http://www.coertvonk.com/family/school/electromagnetism-inquiry-3464">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<h3>Physics</h3>
<ol>
<li>Source</li>
<ul>
<li>Magnetism is caused by moving charged electrical particles (Faraday, 1830s).  These particles can be the current of electrons through an electric wire, or the movement of charged particles (protons and electrons) within an atom.  These charged particles move much like planets in a solar system:</li>
<ul>
<li><em>nucleus spin</em> around its own axis, causing a very weak magnetic field.</li>
<li><em>electrons orbit</em> around the nucleus, causing a weak magnetic field.</li>
<li><a href="http://www.coertvonk.com/wp-content/uploads/electron-orbiting3.png" rel="lightbox[3464]"><img class="alignright size-full wp-image-3498" title="electron orbiting3" src="http://www.coertvonk.com/wp-content/uploads/electron-orbiting3.png" alt="" width="177" height="159" /></a><em>electrons spin</em> around their own axis at the speed of light, causing a significant magnetic field (Goudsmit and Kronig, 1925).</li>
</ul>
<li>Spinning electrons generate the bulk of the magnetism in an atom.</li>
<ul>
<li>Within each orbit, electrons with opposite spins pair together, resulting in no net magnetic field.</li>
<li>Electrons in an orbit are filled up first by a + spin.  Once all the orbitals are filled with unpaired + spins, the orbitals are then filled with the &#8211; spin. (see <a href="http://chemwiki.ucdavis.edu/Physical_Chemistry/Quantum_Mechanics/Atomic_Theory/Electrons_in_Atoms/Electron_Spin#Assigning_Spin_Direction">Spin direction</a>)<br />
<span style="color: #ffffff;">:</span></li>
</ul>
</ul>
<li>Characteristics</li>
<ul>
<li>The electron configuration in an atom determines a the magnetic characteristics:</li>
<ul>
<li>In <em>diamagnetic</em> material, such as copper (Cu), all electrons are paired together.  There is no net magnetic field from the electrons.</li>
<li>In <em>paramagnetic</em> material, such as magnesium (Mg), there are unpaired electrons.  The atoms align to an external magnetic field.  It becomes magnetized while the external field is present.</li>
<li><a href="http://www.coertvonk.com/wp-content/uploads/bar-being-magnetized2.png" rel="lightbox[3464]"><img class="size-full wp-image-3514 alignright" title="bar being magnetized2" src="http://www.coertvonk.com/wp-content/uploads/bar-being-magnetized2.png" alt="own work" width="150" height="110" /></a>In <em>ferromagnetic</em> material, such as iron (Fe), there are unpaired electrons also.  In this case, the atoms not only align to an external magnetic field, but also orient parallel to each other.  Thus, even when the applied field is removed, the electrons maintain in a parallel orientation.</li>
<ul>
<li>experiment: use a magnet to stroke a ferromagnetic bar, such as iron, several times in the same direction.  The magnetic force from the north pole of the magnet causes the unpaired electrons to align themselves.  The iron will stay magnetic.</li>
</ul>
</ul>
<li>See also <a href="http://chemwiki.ucdavis.edu/Physical_Chemistry/Quantum_Mechanics/Atomic_Theory/Electrons_in_Atoms/Electron_Spin">Electron spin</a>, <a href="http://www.tpub.com/neets/book1/chapter1/1h.htm">Theories of magnetism</a>, <a href="http://science.howstuffworks.com/atom9.htm">How atoms work</a>, and <a href="http://www.lorentz.leidenuniv.nl/history/spin/goudsmit.html">Goudsmit&#8217;s lecture</a>.</li>
<li>added challenge</li>
<ul>
<li><a href="http://ocw.mit.edu/courses/physics/8-02-electricity-and-magnetism-spring-2002/">MIT lectures 8.02</a>,</li>
<li><a href="http://www.ndt-ed.org/EducationResources/CommunityCollege/MagParticle/Physics/MagneticMatls.htm">NDT article</a>,</li>
<li>Relativity tells us that what looks like a pure magnetic ¯eld in one frame of reference looks like an electric ¯eld in another frame of reference.</li>
</ul>
</ul>
</ol>
<h3>Properties</h3>
<ol>
<li>Magnetics</li>
<ul>
<li><a href="http://www.coertvonk.com/wp-content/uploads/iron-filings2.jpg" rel="lightbox[3464]"><img class="alignright size-full wp-image-3517" title="iron filings2" src="http://www.coertvonk.com/wp-content/uploads/iron-filings2.jpg" alt="adapted work for unknown source" width="154" height="106" /></a>The magnetic field (B) is very strong at the poles and weakens as the distance to the poles increases.</li>
<li>A magnetic field line (Faraday) is a theoretical line that loops through the north pole of a magnet, passing through surrounding space, enter the southing pole and going through the magnet back to the north pole.  A higher density of nearby field lines indicates a stronger magnetic field.  Field lines are a visual and conceptual aid only and are no more real than the <a title="Contour lines" href="http://en.wikipedia.org/wiki/Contour_lines">contour lines</a> (constant altitude) on a topographic map.</li>
<ul>
<li>simulation: move compass and bar magnet using <a href="http://phet.colorado.edu/en/simulation/faraday">Faraday&#8217;s Lab</a>.</li>
<li>experiment: visualize magnetic field using iron filings on paper/glass with bar magnet underneath.<br />
<span style="color: #ffffff;">:</span></li>
</ul>
</ul>
<li>Two magnets<a><img class="alignright size-full wp-image-3493" title="force lines in two magnets2" src="../wp-content/uploads/force-lines-in-two-magnets2.png" alt="" width="148" height="139" /></a></li>
<ul>
<li>Interaction</li>
<ul>
<li>Opposites attract.</li>
<li>Same poles repel.</li>
</ul>
<li>The force between the two poles is directly proportional to the product of the pole strengths and inversely proportional to the square of the distance between the poles.</li>
<li>A compass is tiny magnet balanced on a pivot.  It will rotate to point toward the opposite pole of a magnet.</li>
<li type="_moz">Experiment: suspend a magnet from a string.  It will align with the earth&#8217;s magnetic field, so that its S-pole points to the Earth&#8217;s N-pole.<br />
<span style="color: #ffffff;">:</span></li>
</ul>
<li>Induction</li>
<ul>
<ul>
<li>A material that is attracted by a magnet becomes a magnet itself.</li>
<li>As an iron nail is brought close to a bar magnet, some flux lines emanating from the north pole of the magnet pass through the iron nail in completing their magnetic path. Since magnetic lines of force travel inside a magnet from the south pole to the north pole, the nail will be magnetized in such a polarity that its south pole will be adjacent to the north pole of the bar magnet. There is now an attraction between the two magnets.</li>
<ul>
<li><a href="../wp-content/uploads/nail-being-magnetized.png" rel="lightbox[3464]"><img class="alignright size-full wp-image-3516" title="nail being magnetized" src="../wp-content/uploads/nail-being-magnetized.png" alt="original work" width="153" height="71" /></a>experiment: move an iron nail to a bar magnet.  Touch another nail to the end of the first nail.  The magnetic field from the bar magnet will align the unpaired spins.  First the ones closest to the bar magnet.  This process can be repeated until the strength of the magnetic field weakens with the distance from the bar magnet.  As soon as the first nail is pulled away from the bar magnet, all the nails will fall. Each nail had become a temporary magnet, but once the magnetizing force was removed, the unpaired spins once again assumed a random distribution</li>
</ul>
<li>See also  &#8230;..</li>
</ul>
</ul>
</ol>
<h3>Electromagnetism</h3>
<ol>
<li><a href="http://www.coertvonk.com/wp-content/uploads/current-causing-magnetic-field-right-hand-rule-2.png" rel="lightbox[3464]"><img class="alignright size-full wp-image-3535" title="current causing magnetic field - right hand rule #2" src="http://www.coertvonk.com/wp-content/uploads/current-causing-magnetic-field-right-hand-rule-2.png" alt="" width="148" height="153" /></a>Wire</li>
<ul>
<li>A moving charge (current) through a wire produces a magnetic field (Ørsted 1819, Ampère 1820).</li>
<li>The magnetic field lines form concentric circles around the wire.</li>
<li>The strength of the magnetic field:  |B| = μ<sub>0</sub>.|I| /2Πr, where <em>μ<sub>0</sub></em> is the permeability of free space, I is the current, <em>r</em> is the distance from the wire.</li>
<li>The direction of the field follows the right-hand rule convention for vectors.  In this case, the corkscrew rule, where the thumb points in the direction of the current, and the fingers point in the direction of the magnetic field lines.</li>
<li>Experiment, paper with iron filings, wire perpendicular to this paper and few seconds of strong current (100 A) through the wire.</li>
<li>See also the lecture <a href="http://ocw.mit.edu/courses/physics/8-02-electricity-and-magnetism-spring-2002/video-lectures/lecture-11-magnetic-field-and-lorentz-force/">Magnetic field and Lorentz Force</a>, MIT.<br />
<span style="color: #ffffff;">:</span></li>
</ul>
<li>Wire in magnetic field experiences force</li>
<ul>
<li><a href="http://www.coertvonk.com/wp-content/uploads/lorenze-force-4.png" rel="lightbox[3464]"><img class="alignright size-full wp-image-3546" title="lorenze force 4" src="http://www.coertvonk.com/wp-content/uploads/lorenze-force-4.png" alt="original work" width="152" height="128" /></a>A charge moving through a magnetic field experiences a force F<sub>B</sub><sup>→ </sup>= q . (v<sup>→</sup> × B<sup>→</sup>), where <em>v</em> is the speed of the charge, <em>q</em> is the value of the charge and <em>B<sup>→</sup></em> is the magnetic field (Lorenz, 1892).</li>
<li>The direction of F<sub>B</sub><sup>→</sup> is perpendicular to both the direction of the charge and the magnetic field.  The direction is the cross product of v<sup>→</sup> and B<sup>→</sup>, and as such defined according to the right-hand rule for vectors.   With the thumb, index, and middle fingers at right angles to each other (with the index finger pointed <a href="../wp-content/uploads/right-hand-rule-1.png" rel="lightbox[3464]"><img class="alignright size-full wp-image-3536" title="right hand rule #1" src="../wp-content/uploads/right-hand-rule-1.png" alt="" width="127" height="97" /></a>straight), the first (index) finger represents the first vector in the product (v<sup>→</sup>); the second (middle) finger represents the second vector (B<sup>→</sup>); and the thumb represents the product (F<sub>B</sub><sup>→</sup>).</li>
<li>Animation, <a href="http://www.magnet.fsu.edu/education/tutorials/java/lorentzforce/index.html">Lorenz force</a>, Univ. of Florida.</li>
<li>Experiment, current perpendicular to magnetic field.  Thin wire (50 cm) suspended in between strong magnets.  Connect wire to switch and two D-cell batteries.</li>
<li>Experiment, wire in between two poles demo as part of the lecture <a href="http://ocw.mit.edu/courses/physics/8-02-electricity-and-magnetism-spring-2002/video-lectures/lecture-11-magnetic-field-and-lorentz-force/">Magnetic field and Lorentz Force</a>, MIT.</li>
<li>Experiment, <a title="in French" href="http://ths1104.wordpress.com/2010/06/20/toute-la-verite-et-rien-que-la-verite-sur-le-moteur-homopolaire/">Homopolar motor</a>.  (see also <a href="http://en.wikipedia.org/wiki/Homopolar_motor">Homopolar</a>)<br />
<span style="color: #ffffff;">:</span></li>
</ul>
<li>Coil in magnetic field</li>
<ul>
<li>make one, http://science.howstuffworks.com/how-to-make-electromagnet.htm</li>
</ul>
<li>Rotor in magnetic field</li>
<ul>
<li>Simple motor, using D-cell battery, magnet, 2 clothes pins, and coil. (<a href="http://www.youtube.com/watch?v=Hwv4I0-Xx1M&amp;feature=related">video</a>, <a href="http://www.youtube.com/watch?v=9w8BYUU8hA4">video2</a>)</li>
</ul>
<li>Eddy currents.  Two equal masses slide down two identical aluminum tubes. Since one of the masses is magnetic it will induce eddy currents according to Lenz&#8217; Law. This damps the motion of the mass causing the magnetic mass to take much longer to fall through the tube</li>
</ol>
<h3>other stuff</h3>
<p>How voltage is produced: http://www.tpub.com/neets/book1/chapter1/1k.htm</p>
<ul>
<li>very strong at the poles and weakens as the distance to the poles increases;</li>
<li>goes from the north pole of a magnet, pass through surrounding space, enter the south pole and go through the magnet back to the north pole, thus forming a closed loop.</li>
<li>experiment: visualize magnetic field using iron filings on paper/glass with bar magnet underneath.</li>
</ul>
<p><a href="http://en.wikipedia.org/wiki/Homopolar_motor">Homopolar</a> motor, Wiki.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/family/school/electromagnetism-inquiry-3464/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Life Inquiry</title>
		<link>http://www.coertvonk.com/family/school/life-inquiry-2882</link>
		<comments>http://www.coertvonk.com/family/school/life-inquiry-2882#comments</comments>
		<pubDate>Fri, 04 Feb 2011 00:27:30 +0000</pubDate>
		<dc:creator>Johan</dc:creator>
				<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=2882</guid>
		<description><![CDATA[Inquiry into microscopic life. Describes the process, questions, resources and the resulting presentation. <a href="http://www.coertvonk.com/family/school/life-inquiry-2882">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<h3>What is alive?</h3>
<ol>
<li>Book, &#8220;<a href="http://www.amazon.com/Science-Explorer-Bacteria-Prentice-explorer/dp/0134344901">Science Explorer &#8211; From bacteria to plants</a>, §1&#8243; (Prentice Hall)
<ul>
<li>Grows</li>
<li>Uses energy</li>
<li>Responds to their surroundings</li>
<li>Reproduces</li>
</ul>
</li>
</ol>
<h3>Where does life come from?</h3>
<ol>
<li>Life comes from other life, but where did the first life come from?</li>
<li>First a little bit of Chemistry
<ul>
<li>Book, &#8220;<a href="http://www.amazon.com/Chemical-Interactions-Resources-Images-Readings/dp/B001PU2REG">Science Explorer &#8211; Chemical Interactions Resources</a>&#8221; (Foss Middle School)
<ul>
<li>A molecule is the smallest part of a substance that still has the same properties.  E.g. a water molecule is called H<sub>2</sub>O.</li>
<li>Molecules are build out of atoms.   E.g. a water molecule consists out of two Hydrogen (H<sub>2</sub>) and Oxygen (O<sub>2</sub>) atoms.</li>
<li>Atoms are build out of protons, electrons and neutrons.  E.g.  a Hydrogen (H<sub>2</sub>) atom consists of 1 proton and 1 electron.</li>
</ul>
</li>
<li>Web page, &#8220;<a href="http://education.jlab.org/qa/atom_idx.html">Atoms, Elements and Molecules Q&amp;A</a>&#8221; (Jefferson Lab)</li>
<li>Web page, &#8220;<a href="http://www.chem4kids.com/files/atom_structure.html">Atoms structure</a>&#8221; (chem4kids.com)</li>
</ul>
</li>
<li>Birth of our solar system
<ul>
<li>Web page, &#8220;<a href="http://www.suite101.com/content/very-brief-history-of-the-universe-a27546">Very brief history of the universe</a>&#8221; (suite101.com)</li>
<li>Web page, &#8220;<a href="http://www.suite101.com/content/origin-of-the-chemical-elements-a23458">Origin of the chemical elements</a>&#8221; (suite101.com)</li>
<li>Video, &#8220;<a href="http://www.pbs.org/wgbh/nova/transcripts/3114_origins.html">Origins &#8211; Back to the beginning</a>&#8221; (NOVA)
<ul>
<li>13.75 billion years ago, there was a super explosion, from which a cloud of hydrogen (H) and helium (He) formed.</li>
<li>From the dust stars were born.  The stars were very big and inside the pressure and temperature extremely high.  H atoms fused together to form He atoms.  This released energy as heat and light.  When it ran out of H, they started to burn He instead.  This He atom fused together to form carbon (C), oxygen (O) and nitrogen (N).  These are the basic ingredients of life.</li>
<li>Once no more elements could be fused it stopped and the star exploded.</li>
<li>In the middle of a dust cloud, pressure and temperature rose and our Sun was born.</li>
</ul>
</li>
<li>Video, &#8220;<a href="http://www.pbs.org/wgbh/nova/transcripts/3111_origins.html">Origins &#8211; Earth is born</a>&#8221; (NOVA)
<ul>
<li>Dust particles attached to each other and formed our planets.</li>
<li>4.5 billion years ago, Earth was born.</li>
<li>Many comets fell into the earth.  These comets were big ice rocks from space that gave us water.</li>
<li>4.4 &#8211; 4.1 billion years ago, the crust of the Earth cooled down and and water condensed.</li>
</ul>
</li>
<li>Web page, &#8220;<a href="http://en.wikipedia.org/wiki/Abiogenesis#Current_models">Abiogenesis</a>&#8221; (Wikipedia)</li>
<li>Web page, &#8220;<a href="http://en.wikipedia.org/wiki/Evolutionary_history_of_life">History of life</a>&#8221; (Wikipedia)</li>
<li>Interview, &#8220;<a href="http://www.pbs.org/wgbh/nova/evolution/how-did-life-begin.html">How did life begin</a>&#8221; (NOVA)</li>
<li>Web site, &#8220;<a href="http://exploringorigins.org/">Exploring life&#8217;s origins</a>&#8221; (Museum of science, Boston)</li>
<li>Web page, &#8220;<a href="http://faculty.clintoncc.suny.edu/faculty/michael.gregory/files/bio%20101/bio%20101%20lectures/biochemistry/biochemi.htm">Organic chemistry, biochemistry</a>&#8221; (NY State Uni)</li>
<li>Web page, &#8220;<a href="http://en.wikipedia.org/wiki/Timeline_of_evolution">Timeline of evolution</a>&#8221; (Wikipedia)</li>
<li>Web page, &#8220;<a href="https://www.llnl.gov/str/September02/pdfs/09_02.1.pdf">A hitchhiker&#8217;s guide to early earth</a>&#8221; (Lawrence Livermore Lab)</li>
<li>Web page, &#8220;<a href="http://en.wikipedia.org/wiki/Miller%E2%80%93Urey_experiment">Miller-Urey experiment</a>&#8221; (Wikipedia), &#8220;<a href="http://www.chem.duke.edu/~jds/cruise_chem/Exobiology/miller.html">Miller/Urey experiment</a>&#8221; (Duke Uni.)</li>
<li>Online book, &#8220;<a href="http://www.oup.com/us/pdf/mckee/ch5p123-143">Amino acids, peptides and proteins</a>&#8221; (Oxford Uni.)</li>
<li>Web animation, &#8220;<a href="http://plantsciences.montana.edu/cqlab/proteinformation.htm">Protein formation animation</a>&#8221; (Montana State Uni.)</li>
<li>Web site, &#8220;<a href="http://telstar.ote.cmu.edu/biology/animation/index.html">Animating biology</a>&#8221; (Carnegie Mellon Uni.)</li>
<li>Web page, &#8220;<a href="http://www.ncbi.nlm.nih.gov/books/NBK26876/">The RNA World and the origins of life</a>&#8221; (US Nat&#8217;l Lib. of Medicine)</li>
<li>http://web.visionlearning.com/custom/chemistry/animations/CHE1.3-an-animations.shtml</li>
<li>Video, &#8220;<a href="http://www.pbs.org/wgbh/nova/evolution/where-did-we-come-from.html">Where did we come from?</a>&#8221; (NOVA)</li>
<li>Video, &#8220;<a href="http://www.pbs.org/wgbh/nova/transcripts/3112_origins.html">Origins &#8211; How life began</a>&#8221; (NOVA)
<ul>
<li>All living things, are made from a small set of chemical elements: hydrogen (H), oxygen (O), carbon (C) and nitrogen (N) — four of the most common elements in the universe.</li>
<li>Life requires molecules that can catalyze reactions that lead, directly or indirectly, to the production of more molecules like themselves.  The following steps are might have generated live on Earth:
<ol>
<li>Atoms of C, H, O and N can fill their outer electron shells by forming covalent bonds.  The resulting molecules include amino acids (Black for 2.16a), sugar alcohols such as ribose (2.11b) and glycerol (2.11c), fatty acids (2.13a), phosphoric acid (2.20b) and nitrogenous bases (2.22).  There are different theories of where these bonds could have formed:
<ul>
<li>in puddles (see &#8220;<a href="http://www.pbs.org/wgbh/nova/evolution/where-did-we-come-from.html">Where did we come from?</a>&#8220;)
<ul>
<li>2BD</li>
<li>Experiments show that the building blocks of RNA can assemble themselves naturally.  (John Sutherland)</li>
</ul>
</li>
<li>near deep see volcanoes (see &#8220;<a href="http://en.wikipedia.org/wiki/Iron-sulfur_world_theory">Iron-sulfur world theory</a>&#8220;)
<ul>
<li>Hot volcanic gasses (CO, NH<sub>3</sub>, H<sub>2</sub>S) in the deep ocean pass over a metal catalyst generate catalytic metallo-peptides. Further energy from sulfides of iron in redox reaction.  Energy available for the synthesis of organic molecules but also for the formation of oilomers and polymers.  Such systems may be able to evolve into autocatalytic sets of self-replicating, metabolically active entities that would predate the life forms known today.</li>
<li>Organisms collected at deep sea volcanoes are similar to some of the earliest organisms that existed on the Earth.</li>
</ul>
</li>
<li>delivered by comets (see &#8220;<a href="http://www.chem.duke.edu/%7Ejds/cruise_chem/Exobiology/miller.html">Miller/Urey experiment</a>&#8220;)
<ul>
<li>Lightning or UV-light from the sun can help in the creation of certain basic small molecules (monomers) of life, such as amino acids.  Amino acids are the basic building blocks of proteins and cells.</li>
<li>The energy from the impact of the comet fused amino acids together to form more complex molecules called peptides (&lt; 50 amino acids linked together).</li>
<li>Experiments show that amino acids can assemble themselves naturally. (Miller–Urey)</li>
</ul>
</li>
</ul>
</li>
<li>Covalent bonds between amino acids form long chains called proteins.  Proteins provide structure and control the rate of chemical reactions in cells.</li>
<li>Covalent bonds between glycerol, two fatty acids chains and a phosphoric acid (H<sub>3</sub>PO<sub>4</sub>) creates a phospolipid.  The number of protons, electrons, energy level of the electrons and place in a molecule determine how much an atom attracts electrons  (see &#8220;<a href="http://en.wikipedia.org/wiki/Electronegativity#Electronegativities_of_the_elements">electronegativity</a>&#8220;).  An unequal relationship between atoms creates a polar covalent bond.  In phospholipids, the phosphate group is polar and can interact with water molecules, which are polar too, but the two long, uncharged fatty acid tails cannot.  As a result these molecules in water form lipid bilayers, a main component of the cell membrane.  The membrane provides a stable physical and chemical environment (see &#8220;<a href="http://telstar.ote.cmu.edu/biology/MembranePage/index2.html">Phospholipid membranes</a>&#8220;)</li>
<li>Covalent bonds between a nitrogenous base, ribose and phosphoric acid salt creates a nucleotide.  (see &#8220;<a href="http://en.wikipedia.org/wiki/Abiogenesis#Current_models">Abiogenesis</a>&#8220;)
<ul>
<li>Long chains of nucleotides form random (pre-)RNA molecules and result in self-replicating ribozymes (see &#8220;<a href="http://www.ncbi.nlm.nih.gov/books/NBK26876/">RNA world</a>&#8220;).</li>
<li>Selection pressures for catalytic efficiency and diversity might have resulted in ribozymes which catalyse peptidyl transfer (hence formation of small proteins), since oligopeptides complex with RNA to form better catalysts. The first ribosome might have been created by such a process, resulting in more prevalent protein synthesis.</li>
<li>Synthesized proteins might then outcompete ribozymes in catalytic ability, and therefore become the dominant biopolymer, relegating nucleic acids to their modern use, predominantly as a carrier of genomic information.</li>
</ul>
</li>
</ol>
</li>
<li>Life evolves
<ol>
<li>Selection pressures for catalytic efficiency and diversity result in ribozymes which catalyse peptidyl transfer (hence formation of small proteins), since oligopeptides complex with RNA to form better catalysts. Thus the first ribosome is born, and protein synthesis becomes more prevalent.</li>
<li>Proteins outcompete ribozymes in catalytic ability, and therefore become the dominant biopolymer. Nucleic acids are restricted to predominantly genomic use.</li>
</ol>
</li>
<li>aa</li>
<li>3.9 &#8211; 2.5 billion years ago, simple cells &#8220;Prokaryotes&#8221; appear
<ul>
<li>They use CO<sub>2</sub> as a carbon source and get energy from oxidizing inorganic materials such as H<sub>2</sub>S, FeO, H2 or NH<sub>3</sub>.</li>
<li>Later, they evolve glycolysis, a set of chemical reactions that free the energy of organic molecules such as glucose and store it in the chemical bonds of ATP.  Glycolysis (and ATP) continue to be used in almost all organisms, unchanged, to this day.</li>
</ul>
</li>
<li>3.5 billion years ago, first archaea (<span id="RAsnippet1">3 RNA polymerases</span>)
<ul>
<li>Organisms generate ATP by exploiting a proton gradient.</li>
</ul>
</li>
<li>2.7 billion years ago, photosynthetic cyanobacteria
<ul>
<li>They use water as a reducing agent, thereby producing oxygen as waste product.  The oxygen oxidizes dissolved iron in the oceans creating iron ore.</li>
<li>Snottites, single-cell bacteria that burn H<sub>2</sub>S (?)</li>
</ul>
</li>
<li>2.5 billion years ago, cyanobacteria, oxygen appears
<ul>
<li>Microbes evolved a green pigment known as chlorophyll.  This allowed them to trap sunlight and use it to drive a chemical reaction that converts carbon dioxide (CO2) and water (H<sub>2</sub>O) into food.  This &#8220;photosynthesis&#8221; enabled some bacteria to grow and reproduce almost without limit.  Life could spread, literally, over the entire planetary surface.  As a byproduct of photosynthesis, the ancient bacteria produced a waste gas: oxygen (O<sub>2</sub>).</li>
</ul>
</li>
<li>1.85 billion years ago, first complex cells (Eukaryotes), primitive algae</li>
<li>1.2 billion years ago, sexual reproduction, increasing rate of evolution</li>
<li>1.2 billion years ago, multi-cellular organisms
<ul>
<li>The oxygen (O<sub>2</sub>) level raised from 1% to 21% allowing multi-cellular life</li>
</ul>
</li>
<li>600 million years ago, first skeletons</li>
<li>500 million years ago, first fish</li>
<li>475 million years ago, first land plants</li>
<li>400 million years ago, first insects and seeds</li>
<li>360 million years ago, first amphibians</li>
<li>300 million years ago, first reptiles</li>
<li>200 million years ago, first mammals</li>
<li>150 million years ago, first birds</li>
<li>130 million years ago, first flowers</li>
<li>2.5 million years ago, first genus homo</li>
<li>2 million years ago, homo erectus</li>
<li>0.2 million years ago, homo sapiens (similar to how we look today)</li>
<li>0.006 million years ago, sumerians invent civilization</li>
<li>0.002 million years ago, Roman Empire civilizes Europe</li>
<li>0.000007 million years ago, you were born</li>
</ul>
</li>
</ul>
</li>
</ol>
<p>Book, &#8220;<a href="http://www.amazon.com/Prentice-Hall-Science-Explorer-Heredity/dp/0130540641/ref=sr_1_2?s=books&amp;ie=UTF8&amp;qid=1297539739&amp;sr=1-2">Science Explorer &#8211; Cells and heredity</a>&#8221; (Prentice Hall)</p>
<h3>Questions</h3>
<ol>
<li>How are they not eaten?</li>
<li>What do they eat?</li>
<li>How do they get through the fall and winter?</li>
<li>How they reproduce?</li>
<li>How they live their lives?</li>
<li>How they get there food?</li>
<li>Differences  between plants and animals?</li>
<li>How they attack hungry predators?</li>
<li>How they digest their food?</li>
<li>How they are different from plants and animals?</li>
<li>Are they plants or animals?</li>
<li>How they look under a microscope?</li>
</ol>
<h3>Group your questions</h3>
<ol>
<li>Introduction (cells)</li>
<li>Plants</li>
<li>Animals</li>
<li>Protists</li>
</ol>
<p><strong>For each of the 3 groups answer</strong></p>
<ol>
<li>Species
<ul>
<li>Are they plants or animals?</li>
<li>How they look under a microscope?</li>
<li>Differences between plants and animals?</li>
<li>How they are different from plants and animals?</li>
</ul>
</li>
<li>Feeding
<ul>
<li>What do they eat?</li>
<li>How do they get their food?</li>
<li>How do they digest their food?</li>
<li>How they live their lives?</li>
</ul>
</li>
<li>Survival
<ul>
<li>How are they not eaten?</li>
<li>How they attack hungry predators?</li>
<li>How do they get through the fall and winter?</li>
<li>How do they reproduce?</li>
</ul>
</li>
</ol>
<p><strong>(Alternate grouping)</strong></p>
<ol>
<li>Plants, protists and animals</li>
<li>Food chain</li>
<li>Life cycle</li>
<li>Under the microscope</li>
</ol>
<h3>Resources</h3>
<p>Cells</p>
<ul>
<li>Web site &#8220;<a href="http://www.windows2universe.org/earth/Life/classification_intro.html">Classification of Living Things</a>&#8221; (National Earth Science Teachers Association)</li>
<li>Web site &#8220;<a href="http://www.biology4kids.com/files/cell_main.html">Cell structure</a>&#8221; (biology4kids.com)</li>
<li>Web site &#8220;<a href="http://www.ucopenaccess.org/course/view.php?id=75">Biology course</a>&#8221; (Uni. of California)</li>
<li>Web site &#8220;<a href="http://www2.estrellamountain.edu/faculty/farabee/biobk/biobooktoc.html">Biology book</a>&#8221; (Estrella Mountain CC)</li>
<li>Web page &#8220;<a href="http://simple.wikipedia.org/wiki/Eukaryote">Eukayote</a>&#8221; (simple Wikipedia)</li>
</ul>
<p>Plants</p>
<ul>
<li>Web page <a href="http://wiki.answers.com/Q/What_is_the_difference_between_the_plants_and_animals">What is the difference between plants and animals?</a> (answers.com)</li>
<li>Web page &#8220;<a href="http://www.biology4kids.com/files/plants_photosynthesis.html">Photosynthesis</a>&#8221; and &#8220;<a href="http://www.biology4kids.com/files/cell_chloroplast.html">Chloroplast</a>&#8221; (biology4kids.com)</li>
<li>Web page &#8220;<a href="http://science.howstuffworks.com/dictionary/biology-terms/photosynthesis-info.htm">Photosynthesis</a>&#8221; (howstuffworks.com)</li>
<li>Video &#8220;<a href="http://videos.howstuffworks.com/discovery/29603-assignment-discovery-photosynthesis-video.htm">Photosynthesis</a>&#8221; (howstuffworks.com)</li>
</ul>
<p>Animals</p>
<ul>
<li>Web page &#8220;<a href="http://www.ebiomedia.com/Inside-the-Living-Cell/How-Cells-Obtain-Energy.html">How cells obtain energy</a>&#8221; (ebiomedia.com)</li>
<li>Science project &#8220;<a href="http://www.education.com/science-fair/article/microscopic-life-is-everywhere/">Life is everywhere</a>&#8221; (education.com)</li>
<li>Web page &#8220;<a href="http://en.wikipedia.org/wiki/Cellular_respiration">Cellular respiration</a>&#8221; (wikipedia.com)</li>
<li>Video &#8220;<a href="http://video.google.com/videoplay?docid=-5853069095844597830">Cells, Tissues, Organs, and Systems</a>&#8221; (nasa.gov)</li>
</ul>
<p>Microorganisms</p>
<ul>
<li>Book &#8220;<a href="http://catalog.wccls.org/polaris/view.aspx?cn=262444">A world in a drop of water</a>&#8221; (Alvin and Virginia Silverstein)</li>
<li>Web page &#8220;<a href="http://www.microscopy-uk.org.uk/">Menu of microscopy and microscopes</a>&#8221; (Microscopy UK)</li>
<li>Web page &#8220;<a href="http://www-saps.plantsci.cam.ac.uk/worksheets/ssheets/ssheet23.htm">Photosynthesis, using algae wrapped in jelly balls</a>&#8221; (Science and plants for schools)</li>
<li>Teacher Notes &#8220;<a href="http://sciencespot.net/Media/pondwaterunit.pdf">Pond water survey</a>&#8221; (sciencespot.net)</li>
<li>Web page &#8220;<a href="http://www.micrographia.com/aadirpgs/specall/specgen/spegen01.htm#freshwaterlink">Biological specimens, fresh water</a>&#8221; (micrographia.com)</li>
<li>Picture &#8220;<a href="http://news.nationalgeographic.com/news/2009/11/photogalleries/best-tiny-microscopic-life-pictures/photo3.html">Algae sex-tape</a>&#8221; (nationalgeographic.com)</li>
<li>Web page &#8220;<a href="http://101science.com/paramecium.htm">Paramecium</a>&#8221; (101science.com)</li>
</ul>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 863px; width: 1px; height: 1px; overflow: hidden;">
<h1><span class="articleTitle">Photosynthesis</span></h1>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/family/school/life-inquiry-2882/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paragliding Pictures</title>
		<link>http://www.coertvonk.com/outdoors/paragliding/pictures-2794</link>
		<comments>http://www.coertvonk.com/outdoors/paragliding/pictures-2794#comments</comments>
		<pubDate>Mon, 17 Jan 2011 06:52:17 +0000</pubDate>
		<dc:creator>Coert</dc:creator>
				<category><![CDATA[Paragliding]]></category>
		<category><![CDATA[Gleitschirm]]></category>
		<category><![CDATA[Outdoors]]></category>
		<category><![CDATA[paragliding]]></category>
		<category><![CDATA[Pictures]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=2794</guid>
		<description><![CDATA[A few of my paragliding pictures taken in Switzerland and California.  Click on the image to navigate.  <a href="http://www.coertvonk.com/outdoors/paragliding/pictures-2794">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>A few of my paragliding pictures taken in Switzerland and California.  Click on the image to navigate.</p>

<div class="ngg-galleryoverview" id="ngg-gallery-47-2794">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-2448" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1992-Fiesch-001.jpg" title="N058_01" rel="lightbox[set_47]" >
								<img title="1992-Fiesch-001" alt="1992-Fiesch-001" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1992-Fiesch-001.jpg" width="560" height="403" />
							</a>
			<span>N058_01</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2449" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1992-Fiesch-002.jpg" title="N058_03" rel="lightbox[set_47]" >
								<img title="1992-Fiesch-002" alt="1992-Fiesch-002" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1992-Fiesch-002.jpg" width="560" height="404" />
							</a>
			<span>N058_03</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2450" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1992-Fiesch-003.jpg" title="N058_05" rel="lightbox[set_47]" >
								<img title="1992-Fiesch-003" alt="1992-Fiesch-003" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1992-Fiesch-003.jpg" width="560" height="404" />
							</a>
			<span>N058_05</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2451" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1992-Fiesch-004.jpg" title="N058_07" rel="lightbox[set_47]" >
								<img title="1992-Fiesch-004" alt="1992-Fiesch-004" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1992-Fiesch-004.jpg" width="560" height="404" />
							</a>
			<span>N058_07</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2452" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1992-Fiesch-005.jpg" title="N058_08" rel="lightbox[set_47]" >
								<img title="1992-Fiesch-005" alt="1992-Fiesch-005" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1992-Fiesch-005.jpg" width="560" height="403" />
							</a>
			<span>N058_08</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2453" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1992-Fiesch-006.jpg" title="N058_10" rel="lightbox[set_47]" >
								<img title="1992-Fiesch-006" alt="1992-Fiesch-006" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1992-Fiesch-006.jpg" width="404" height="560" />
							</a>
			<span>N058_10</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2454" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-001.jpg" title="N059_10" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-001" alt="1993-Fiesch-001" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-001.jpg" width="560" height="404" />
							</a>
			<span>N059_10</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2455" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-002.jpg" title="N059_13" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-002" alt="1993-Fiesch-002" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-002.jpg" width="560" height="405" />
							</a>
			<span>N059_13</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2456" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-003.jpg" title="N059_16" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-003" alt="1993-Fiesch-003" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-003.jpg" width="402" height="560" />
							</a>
			<span>N059_16</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2457" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-004.jpg" title="N059_18" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-004" alt="1993-Fiesch-004" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-004.jpg" width="560" height="404" />
							</a>
			<span>N059_18</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2458" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-005.jpg" title="N059_19" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-005" alt="1993-Fiesch-005" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-005.jpg" width="464" height="560" />
							</a>
			<span>N059_19</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2459" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-006.jpg" title="N059_22" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-006" alt="1993-Fiesch-006" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-006.jpg" width="560" height="404" />
							</a>
			<span>N059_22</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2460" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-007.jpg" title="N059_26" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-007" alt="1993-Fiesch-007" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-007.jpg" width="560" height="404" />
							</a>
			<span>N059_26</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2461" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-009.jpg" title="N059_28" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-009" alt="1993-Fiesch-009" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-009.jpg" width="560" height="404" />
							</a>
			<span>N059_28</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2462" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-010.jpg" title="N059_29" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-010" alt="1993-Fiesch-010" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-010.jpg" width="560" height="403" />
							</a>
			<span>N059_29</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2463" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-011.jpg" title="N059_30" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-011" alt="1993-Fiesch-011" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-011.jpg" width="560" height="404" />
							</a>
			<span>N059_30</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2464" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-012.jpg" title="N059_31" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-012" alt="1993-Fiesch-012" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-012.jpg" width="560" height="404" />
							</a>
			<span>N059_31</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2465" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-013.jpg" title="N059_32" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-013" alt="1993-Fiesch-013" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-013.jpg" width="560" height="404" />
							</a>
			<span>N059_32</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2466" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-014.jpg" title="N059_33" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-014" alt="1993-Fiesch-014" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-014.jpg" width="560" height="404" />
							</a>
			<span>N059_33</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2467" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/1993-Fiesch-015.jpg" title="N059_34" rel="lightbox[set_47]" >
								<img title="1993-Fiesch-015" alt="1993-Fiesch-015" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_1993-Fiesch-015.jpg" width="560" height="404" />
							</a>
			<span>N059_34</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2468" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-002.jpg" title="Dcp_0172" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-002" alt="2000-EdLevin-002" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-002.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0172</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2469" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-003.jpg" title="Dcp_0176" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-003" alt="2000-EdLevin-003" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-003.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0176</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2470" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-004.jpg" title="Dcp_0177" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-004" alt="2000-EdLevin-004" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-004.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0177</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2471" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-005.jpg" title="Dcp_0179" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-005" alt="2000-EdLevin-005" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-005.jpg" width="371" height="560" />
							</a>
			<span>Dcp_0179</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2472" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-006.jpg" title="Dcp_0180" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-006" alt="2000-EdLevin-006" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-006.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0180</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2473" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-007.jpg" title="Dcp_0181" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-007" alt="2000-EdLevin-007" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-007.jpg" width="371" height="560" />
							</a>
			<span>Dcp_0181</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2474" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-008.jpg" title="Dcp_0182" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-008" alt="2000-EdLevin-008" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-008.jpg" width="371" height="560" />
							</a>
			<span>Dcp_0182</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2475" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-009.jpg" title="Dcp_0229" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-009" alt="2000-EdLevin-009" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-009.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0229</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2476" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-012.jpg" title="Dcp_0232" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-012" alt="2000-EdLevin-012" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-012.jpg" width="371" height="560" />
							</a>
			<span>Dcp_0232</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2477" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-015.jpg" title="Dcp_0236" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-015" alt="2000-EdLevin-015" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-015.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0236</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2478" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-016.jpg" title="Dcp_0237" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-016" alt="2000-EdLevin-016" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-016.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0237</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2479" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-017.jpg" title="Dcp_0238" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-017" alt="2000-EdLevin-017" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-017.jpg" width="371" height="560" />
							</a>
			<span>Dcp_0238</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2480" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-018.jpg" title="Dcp_0239" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-018" alt="2000-EdLevin-018" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-018.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0239</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2481" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-019.jpg" title="Dcp_0240" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-019" alt="2000-EdLevin-019" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-019.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0240</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2482" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-020.jpg" title="Dcp_0241" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-020" alt="2000-EdLevin-020" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-020.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0241</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2483" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-021.jpg" title="Dcp_0243" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-021" alt="2000-EdLevin-021" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-021.jpg" width="560" height="372" />
							</a>
			<span>Dcp_0243</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2484" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-EdLevin-022.jpg" title="Dcp_0245" rel="lightbox[set_47]" >
								<img title="2000-EdLevin-022" alt="2000-EdLevin-022" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-EdLevin-022.jpg" width="560" height="422" />
							</a>
			<span>Dcp_0245</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2485" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-002-Wetter.jpg" title="Wetter" rel="lightbox[set_47]" >
								<img title="Wetter" alt="Wetter" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-002-Wetter.jpg" width="560" height="372" />
							</a>
			<span>Wetter</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2486" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-004-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-004-" alt="2000-Schweiz-004-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-004-.jpg" width="560" height="372" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2487" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-005-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-005-" alt="2000-Schweiz-005-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-005-.jpg" width="560" height="372" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2488" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-006-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-006-" alt="2000-Schweiz-006-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-006-.jpg" width="560" height="372" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2489" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-007-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-007-" alt="2000-Schweiz-007-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-007-.jpg" width="560" height="372" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2490" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-008-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-008-" alt="2000-Schweiz-008-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-008-.jpg" width="397" height="560" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2491" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-009-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-009-" alt="2000-Schweiz-009-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-009-.jpg" width="560" height="372" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2492" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-010-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-010-" alt="2000-Schweiz-010-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-010-.jpg" width="560" height="372" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2493" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-011-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-011-" alt="2000-Schweiz-011-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-011-.jpg" width="418" height="560" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2494" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-012-Engelberg.jpg.jpg" title="Engelberg.jpg" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-012-Engelberg.jpg" alt="2000-Schweiz-012-Engelberg.jpg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-012-Engelberg.jpg.jpg" width="371" height="560" />
							</a>
			<span>Engelberg.jpg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2495" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-013-Engelberg.jpg.jpg" title="Engelberg.jpg" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-013-Engelberg.jpg" alt="2000-Schweiz-013-Engelberg.jpg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-013-Engelberg.jpg.jpg" width="560" height="379" />
							</a>
			<span>Engelberg.jpg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2496" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-014-Engelberg.jpg.jpg" title="Engelberg.jpg" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-014-Engelberg.jpg" alt="2000-Schweiz-014-Engelberg.jpg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-014-Engelberg.jpg.jpg" width="560" height="372" />
							</a>
			<span>Engelberg.jpg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2497" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-015-Engelberg.jpg.jpg" title="Engelberg.jpg" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-015-Engelberg.jpg" alt="2000-Schweiz-015-Engelberg.jpg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-015-Engelberg.jpg.jpg" width="560" height="372" />
							</a>
			<span>Engelberg.jpg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2498" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-016-Engelberg, Coert (28-mei-00).jpg" title="Engelberg, Coert (28-mei-00)" rel="lightbox[set_47]" >
								<img title="Engelberg, Coert (28-mei-00)" alt="Engelberg, Coert (28-mei-00)" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-016-Engelberg, Coert (28-mei-00).jpg" width="560" height="372" />
							</a>
			<span>Engelberg, Coert (28-mei-00)</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2499" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-017-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-017-" alt="2000-Schweiz-017-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-017-.jpg" width="560" height="372" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2500" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-018-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-018-" alt="2000-Schweiz-018-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-018-.jpg" width="441" height="560" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2501" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-019-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-019-" alt="2000-Schweiz-019-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-019-.jpg" width="560" height="437" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2502" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-020-.jpg" title=" " rel="lightbox[set_47]" >
								<img title="2000-Schweiz-020-" alt="2000-Schweiz-020-" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-020-.jpg" width="560" height="404" />
							</a>
			<span>&nbsp;</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2503" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-021-Engelberg.jpg.jpg" title="Engelberg.jpg" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-021-Engelberg.jpg" alt="2000-Schweiz-021-Engelberg.jpg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-021-Engelberg.jpg.jpg" width="560" height="373" />
							</a>
			<span>Engelberg.jpg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2504" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-022-Engelberg 2000.jpg" title="Engelberg 2000" rel="lightbox[set_47]" >
								<img title="Engelberg 2000" alt="Engelberg 2000" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-022-Engelberg 2000.jpg" width="560" height="372" />
							</a>
			<span>Engelberg 2000</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2505" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-023-Engelberg 2000.jpg" title="Engelberg 2000" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-023-Engelberg 2000" alt="2000-Schweiz-023-Engelberg 2000" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-023-Engelberg 2000.jpg" width="560" height="388" />
							</a>
			<span>Engelberg 2000</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2506" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-024-Engelberg 2000.jpg" title="Engelberg 2000" rel="lightbox[set_47]" >
								<img title="Engelberg 2000" alt="Engelberg 2000" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-024-Engelberg 2000.jpg" width="560" height="372" />
							</a>
			<span>Engelberg 2000</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2507" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-025-Engelberg 2000.jpg" title="Engelberg 2000" rel="lightbox[set_47]" >
								<img title="Engelberg 2000" alt="Engelberg 2000" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-025-Engelberg 2000.jpg" width="560" height="397" />
							</a>
			<span>Engelberg 2000</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2508" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-026-Engelberg 2000.jpg" title="Engelberg 2000" rel="lightbox[set_47]" >
								<img title="Engelberg 2000" alt="Engelberg 2000" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-026-Engelberg 2000.jpg" width="560" height="372" />
							</a>
			<span>Engelberg 2000</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2509" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-027-Engelberg 2000.jpg" title="Engelberg 2000" rel="lightbox[set_47]" >
								<img title="Engelberg 2000" alt="Engelberg 2000" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-027-Engelberg 2000.jpg" width="560" height="372" />
							</a>
			<span>Engelberg 2000</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2510" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-028-Engelberg 2000.jpg" title="Engelberg 2000" rel="lightbox[set_47]" >
								<img title="Engelberg 2000" alt="Engelberg 2000" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-028-Engelberg 2000.jpg" width="560" height="372" />
							</a>
			<span>Engelberg 2000</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2511" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-029-Engelberg 2000.jpg" title="Engelberg 2000" rel="lightbox[set_47]" >
								<img title="Engelberg 2000" alt="Engelberg 2000" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-029-Engelberg 2000.jpg" width="411" height="560" />
							</a>
			<span>Engelberg 2000</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2512" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-030-Engelberg 2000.jpg" title="Engelberg 2000" rel="lightbox[set_47]" >
								<img title="Engelberg 2000" alt="Engelberg 2000" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-030-Engelberg 2000.jpg" width="560" height="372" />
							</a>
			<span>Engelberg 2000</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2513" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-031-Klewenalp - Beckenried, Andrea + Gunter + Jean Marie.jpg" title="Klewenalp - Beckenried, Andrea + Gunter + Jean Marie" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-031-Klewenalp - Beckenried, Andrea + Gunter + Jean Marie" alt="2000-Schweiz-031-Klewenalp - Beckenried, Andrea + Gunter + Jean Marie" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-031-Klewenalp - Beckenried, Andrea + Gunter + Jean Marie.jpg" width="560" height="372" />
							</a>
			<span>Klewenalp - Beckenried, Andrea + Gunter + Jean Marie</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2514" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-032-Klewenalp - Beckenried.jpg" title="Klewenalp - Beckenried" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-032-Klewenalp - Beckenried" alt="2000-Schweiz-032-Klewenalp - Beckenried" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-032-Klewenalp - Beckenried.jpg" width="560" height="371" />
							</a>
			<span>Klewenalp - Beckenried</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2515" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-033-Klewenalp - Beckenried.jpg" title="Klewenalp - Beckenried" rel="lightbox[set_47]" >
								<img title="Klewenalp - Beckenried.jpg" alt="Klewenalp - Beckenried.jpg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-033-Klewenalp - Beckenried.jpg" width="560" height="350" />
							</a>
			<span>Klewenalp - Beckenried</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2516" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-034-Klewenalp - Beckenried, Coert.jpg" title="Klewenalp - Beckenried, Coert" rel="lightbox[set_47]" >
								<img title="Klewenalp - Beckenried, Coert" alt="Klewenalp - Beckenried, Coert" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-034-Klewenalp - Beckenried, Coert.jpg" width="560" height="372" />
							</a>
			<span>Klewenalp - Beckenried, Coert</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2517" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-035-Klewenalp - Beckenried, Coert.jpg" title="Klewenalp - Beckenried, Coert" rel="lightbox[set_47]" >
								<img title="Klewenalp - Beckenried, Coert" alt="Klewenalp - Beckenried, Coert" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-035-Klewenalp - Beckenried, Coert.jpg" width="560" height="372" />
							</a>
			<span>Klewenalp - Beckenried, Coert</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2518" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-036-Klewenalp - Beckenried, Coert.jpg" title="Klewenalp - Beckenried, Coert" rel="lightbox[set_47]" >
								<img title="Klewenalp - Beckenried, Coert" alt="Klewenalp - Beckenried, Coert" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-036-Klewenalp - Beckenried, Coert.jpg" width="560" height="372" />
							</a>
			<span>Klewenalp - Beckenried, Coert</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2519" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-037-Klewenalp - Beckenried, Coert.jpg" title="Klewenalp - Beckenried, Coert" rel="lightbox[set_47]" >
								<img title="Klewenalp - Beckenried, Coert" alt="Klewenalp - Beckenried, Coert" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-037-Klewenalp - Beckenried, Coert.jpg" width="560" height="372" />
							</a>
			<span>Klewenalp - Beckenried, Coert</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2520" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-038-Klewenalp - Beckenried, Coert.jpg" title="Klewenalp - Beckenried, Coert" rel="lightbox[set_47]" >
								<img title="Klewenalp - Beckenried, Coert" alt="Klewenalp - Beckenried, Coert" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-038-Klewenalp - Beckenried, Coert.jpg" width="389" height="560" />
							</a>
			<span>Klewenalp - Beckenried, Coert</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2521" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-039-Klewenalp - Beckenried, Tanya.jpg" title="Klewenalp - Beckenried, Tanya" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-039-Klewenalp - Beckenried, Tanya" alt="2000-Schweiz-039-Klewenalp - Beckenried, Tanya" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-039-Klewenalp - Beckenried, Tanya.jpg" width="560" height="372" />
							</a>
			<span>Klewenalp - Beckenried, Tanya</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2522" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-042-Engelberg.jpg" title="Engelberg" rel="lightbox[set_47]" >
								<img title="Engelberg" alt="Engelberg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-042-Engelberg.jpg" width="409" height="560" />
							</a>
			<span>Engelberg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2523" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-043-Engelberg.jpg" title="Engelberg" rel="lightbox[set_47]" >
								<img title="Engelberg" alt="Engelberg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-043-Engelberg.jpg" width="560" height="372" />
							</a>
			<span>Engelberg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2524" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-044-Engelberg.jpg" title="Engelberg" rel="lightbox[set_47]" >
								<img title="Engelberg" alt="Engelberg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-044-Engelberg.jpg" width="371" height="560" />
							</a>
			<span>Engelberg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2525" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-045-Engelberg.jpg" title="Engelberg" rel="lightbox[set_47]" >
								<img title="Engelberg" alt="Engelberg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-045-Engelberg.jpg" width="400" height="560" />
							</a>
			<span>Engelberg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2526" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-046-Brunni - Klostenmatte, Gunter + Tanya (2-jun-00).jpg" title="Brunni - Klostenmatte, Gunter + Tanya (2-jun-00)" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-046-Brunni - Klostenmatte, Gunter + Tanya (2-jun-00)" alt="2000-Schweiz-046-Brunni - Klostenmatte, Gunter + Tanya (2-jun-00)" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-046-Brunni - Klostenmatte, Gunter + Tanya (2-jun-00).jpg" width="560" height="381" />
							</a>
			<span>Brunni - Klostenmatte, Gunter + Tanya (2-jun-00)</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2527" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-048-Brunni - Klostenmatte.jpg" title="Brunni - Klostenmatte" rel="lightbox[set_47]" >
								<img title="Brunni - Klostenmatte" alt="Brunni - Klostenmatte" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-048-Brunni - Klostenmatte.jpg" width="371" height="560" />
							</a>
			<span>Brunni - Klostenmatte</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2528" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-049-Brunni - Klostenmatte, Andrea.jpg" title="Brunni - Klostenmatte, Andrea" rel="lightbox[set_47]" >
								<img title="Brunni - Klostenmatte, Andrea" alt="Brunni - Klostenmatte, Andrea" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-049-Brunni - Klostenmatte, Andrea.jpg" width="560" height="372" />
							</a>
			<span>Brunni - Klostenmatte, Andrea</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2529" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-050-Brunni - Klostenmatte, Coert.jpg" title="Brunni - Klostenmatte, Coert" rel="lightbox[set_47]" >
								<img title="Brunni - Klostenmatte, Coert" alt="Brunni - Klostenmatte, Coert" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-050-Brunni - Klostenmatte, Coert.jpg" width="371" height="560" />
							</a>
			<span>Brunni - Klostenmatte, Coert</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2530" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-051-Brunni - Klostenmatte.jpg" title="Brunni - Klostenmatte" rel="lightbox[set_47]" >
								<img title="Brunni - Klostenmatte" alt="Brunni - Klostenmatte" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-051-Brunni - Klostenmatte.jpg" width="560" height="372" />
							</a>
			<span>Brunni - Klostenmatte</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2531" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-052-Brunni - Klostenmatte, Coert.jpg" title="Brunni - Klostenmatte, Coert" rel="lightbox[set_47]" >
								<img title="Brunni - Klostenmatte, Coert" alt="Brunni - Klostenmatte, Coert" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-052-Brunni - Klostenmatte, Coert.jpg" width="560" height="372" />
							</a>
			<span>Brunni - Klostenmatte, Coert</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2532" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-053-Brunni - Klostenmatte.jpg" title="Brunni - Klostenmatte" rel="lightbox[set_47]" >
								<img title="Brunni - Klostenmatte" alt="Brunni - Klostenmatte" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-053-Brunni - Klostenmatte.jpg" width="560" height="372" />
							</a>
			<span>Brunni - Klostenmatte</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2533" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-054-Brunni - Klostenmatte.jpg" title="Brunni - Klostenmatte" rel="lightbox[set_47]" >
								<img title="Brunni - Klostenmatte" alt="Brunni - Klostenmatte" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-054-Brunni - Klostenmatte.jpg" width="409" height="560" />
							</a>
			<span>Brunni - Klostenmatte</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2534" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-055-Brunni - Klostenmatte.jpg" title="Brunni - Klostenmatte" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-055-Brunni - Klostenmatte" alt="2000-Schweiz-055-Brunni - Klostenmatte" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-055-Brunni - Klostenmatte.jpg" width="560" height="371" />
							</a>
			<span>Brunni - Klostenmatte</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2535" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-056-Brunni - Klostenmatte, Jean-Marie.jpg" title="Brunni - Klostenmatte, Jean-Marie" rel="lightbox[set_47]" >
								<img title="Brunni - Klostenmatte, Jean-Marie" alt="Brunni - Klostenmatte, Jean-Marie" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-056-Brunni - Klostenmatte, Jean-Marie.jpg" width="409" height="560" />
							</a>
			<span>Brunni - Klostenmatte, Jean-Marie</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2536" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-057-Brunni - Klostenmatte, Jean-Marie.jpg" title="Brunni - Klostenmatte, Jean-Marie" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-057-Brunni - Klostenmatte, Jean-Marie" alt="2000-Schweiz-057-Brunni - Klostenmatte, Jean-Marie" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-057-Brunni - Klostenmatte, Jean-Marie.jpg" width="560" height="364" />
							</a>
			<span>Brunni - Klostenmatte, Jean-Marie</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2537" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-058-Klewenalp - Beckenried, Jean-Marie.jpg" title="Klewenalp - Beckenried, Jean-Marie" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-058-Klewenalp - Beckenried, Jean-Marie" alt="2000-Schweiz-058-Klewenalp - Beckenried, Jean-Marie" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-058-Klewenalp - Beckenried, Jean-Marie.jpg" width="560" height="385" />
							</a>
			<span>Klewenalp - Beckenried, Jean-Marie</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2538" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-059-Klewenalp - Beckenried.jpg" title="Klewenalp - Beckenried" rel="lightbox[set_47]" >
								<img title="2000-Schweiz-059-Klewenalp - Beckenried" alt="2000-Schweiz-059-Klewenalp - Beckenried" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-059-Klewenalp - Beckenried.jpg" width="560" height="392" />
							</a>
			<span>Klewenalp - Beckenried</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2539" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-060-Klewenalp - Beckenried, Othmar.jpg" title="Klewenalp - Beckenried, Othmar" rel="lightbox[set_47]" >
								<img title="Klewenalp - Beckenried, Othmar" alt="Klewenalp - Beckenried, Othmar" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-060-Klewenalp - Beckenried, Othmar.jpg" width="560" height="372" />
							</a>
			<span>Klewenalp - Beckenried, Othmar</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2540" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-061-Klewenalp - Beckenried, Andrea.jpg" title="Klewenalp - Beckenried, Andrea" rel="lightbox[set_47]" >
								<img title="Klewenalp - Beckenried, Andrea" alt="Klewenalp - Beckenried, Andrea" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-061-Klewenalp - Beckenried, Andrea.jpg" width="560" height="372" />
							</a>
			<span>Klewenalp - Beckenried, Andrea</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2541" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2000-Schweiz-062-Engelberg.jpg" title="Engelberg" rel="lightbox[set_47]" >
								<img title="Engelberg" alt="Engelberg" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2000-Schweiz-062-Engelberg.jpg" width="560" height="372" />
							</a>
			<span>Engelberg</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2542" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2003-Apfenzeller-001.jpg" title="Apfenzeller" rel="lightbox[set_47]" >
								<img title="Apfenzeller" alt="Apfenzeller" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2003-Apfenzeller-001.jpg" width="560" height="403" />
							</a>
			<span>Apfenzeller</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2543" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2003-Apfenzeller-002.jpg" title="Apfenzeller" rel="lightbox[set_47]" >
								<img title="Apfenzeller" alt="Apfenzeller" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2003-Apfenzeller-002.jpg" width="403" height="560" />
							</a>
			<span>Apfenzeller</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2544" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2003-Apfenzeller-003.jpg" title="Apfenzeller" rel="lightbox[set_47]" >
								<img title="Apfenzeller" alt="Apfenzeller" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2003-Apfenzeller-003.jpg" width="560" height="404" />
							</a>
			<span>Apfenzeller</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2545" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2003-Apfenzeller-004.jpg" title="Apfenzeller" rel="lightbox[set_47]" >
								<img title="Apfenzeller" alt="Apfenzeller" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2003-Apfenzeller-004.jpg" width="560" height="403" />
							</a>
			<span>Apfenzeller</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2546" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2003-Apfenzeller-005.jpg" title="Apfenzeller" rel="lightbox[set_47]" >
								<img title="Apfenzeller" alt="Apfenzeller" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2003-Apfenzeller-005.jpg" width="560" height="404" />
							</a>
			<span>Apfenzeller</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2547" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2003-Apfenzeller-006.jpg" title="Apfenzeller" rel="lightbox[set_47]" >
								<img title="Apfenzeller" alt="Apfenzeller" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2003-Apfenzeller-006.jpg" width="560" height="403" />
							</a>
			<span>Apfenzeller</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2548" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2003-Apfenzeller-007.jpg" title="Apfenzeller" rel="lightbox[set_47]" >
								<img title="Apfenzeller" alt="Apfenzeller" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2003-Apfenzeller-007.jpg" width="560" height="404" />
							</a>
			<span>Apfenzeller</span>
		</div>
	</div>
			<br style="clear: both" />
	 		
	<div id="ngg-image-2549" class="ngg-gallery-thumbnail-box" style="width:100%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.coertvonk.com/wp-content/pictures/gleitschirm/2003-Apfenzeller-008.jpg" title="Apfenzeller" rel="lightbox[set_47]" >
								<img title="Apfenzeller" alt="Apfenzeller" src="http://www.coertvonk.com/wp-content/pictures/gleitschirm/thumbs/thumbs_2003-Apfenzeller-008.jpg" width="560" height="404" />
							</a>
			<span>Apfenzeller</span>
		</div>
	</div>
			<br style="clear: both" />
	 	 	
	<!-- Pagination -->
 	<div class="ngg-clear"></div> 	
</div>


]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/outdoors/paragliding/pictures-2794/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Edit AVCHD 24p using Adobe Premiere Pro CS5</title>
		<link>http://www.coertvonk.com/technology/videoediting/24p-avchd-with-pp-cs5-2697</link>
		<comments>http://www.coertvonk.com/technology/videoediting/24p-avchd-with-pp-cs5-2697#comments</comments>
		<pubDate>Sun, 26 Sep 2010 03:35:02 +0000</pubDate>
		<dc:creator>Coert</dc:creator>
				<category><![CDATA[Video Editing]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=2697</guid>
		<description><![CDATA[Starting with CS4, Adobe Premiere Pro supports AVCHD video.  For owners of AVCHD camcorders, this is an huge step forward. Moving from CS3 to CS4/CS5 If you were one of the early adapters, you might have followed my guide Editing AVCHD 24p using Adobe Premiere Pro CS3.  If you made the jump to CS4 or CS5, you [...] <a href="http://www.coertvonk.com/technology/videoediting/24p-avchd-with-pp-cs5-2697">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Starting with CS4, Adobe Premiere Pro supports AVCHD video.  For owners of AVCHD camcorders, this is an huge step forward.</p>
<h3>Moving from CS3 to CS4/CS5</h3>
<p>If you were one of the early adapters, you might have followed my guide <a href="../technology/videoediting/vixia-hf10-to-premiere-pro-cs3-486">Editing </a><a href="../technology/videoediting/vixia-hf10-to-premiere-pro-cs3-486">AVCHD </a><a href="../technology/videoediting/vixia-hf10-to-premiere-pro-cs3-486">24p using Adobe Premiere Pro CS3</a>.  If you made the jump to CS4 or CS5, you can not tweak your old projects so that they use the .mts files directly.  The following work flow did the trick for me:</p>
<ol>
<li>Open the .prproj file using a text editor such as GNU Emacs, and search &#8220;.avi&lt;&#8221; and replace it with &#8220;.mts&#8221;.  Once you are there, you may as well replace &#8220;&lt;FrameBlend&gt;true&#8221; with &#8220;&lt;FrameBlend&gt;false&#8221; to disable frame blending.</li>
<li>Move the .avi files (in the odd chance that you still have them) out of the way</li>
<li>Open the project in Premiere Pro.  It will automatically port it to the new version.  When it complains about the .mts being missing, just say &#8220;offline all&#8221;.</li>
<li>Once in Premiere, select all the .mts files and right-click.  Select &#8220;link media&#8221;, then point it to the .mts file.</li>
</ol>
<div>
<h4>Preventing choppy 24p video in CS5</h4>
</div>
<p>Premiere Pro makes a fair attempt at removing the pull-down, but on high motion scenes, it misses the boat and doubles frames or leaves interlaced frames.  At first glance, playing with the the Field Options appears to help, but closer inspection of the rendered output will reveal doubled frames giving the video a stuttered look.  Those who shoot &#8220;24p wrapped in 60i&#8221; and expect a correct pulldown will need additional steps.</p>
<p>Oddly enough the companion product After Effects CS5 (AE) does a better job at removing the pull-down.  Maybe one day, the Premiere Pro developers will decide to reuse the .mts import functionality from After Effects.  Until then, you will need some additional legwork to extract the 24p from the 60i container.  For this, the following approaches come to mind:</p>
<ol>
<li>Import the Premiere Project in After Effects.  Right-click each clip and have it Interpret and &#8220;Guess 3:2 pulldown&#8221;.  This can be automated by using a script such as <a href="http://hv20.com/showthread.php?13421-After-Effects-CS3-pulldown-removal-automation" target="_blank">ReverseTelicine.jsx</a>.  The only downside is that AE only supports a subset of the Premiere Pro elements.  Titles and most transitions will be rendered as black video.</li>
<li>Import the clips in After effects and have it guess the 3:2 pulldown, create compositions and dynamic link those for use in Premiere Pro.  This will only work in the Premium version.</li>
<li>Use After Effects to convert the 24p-in-60i .mts files to 24p .mp4 files.  This can be achieved by importing the .mts files; select them all; and run <a href="http://hv20.com/showthread.php?13421-After-Effects-CS3-pulldown-removal-automation" target="_blank">ReverseTelicine.jsx</a> to have it guess the cadence; select them all clips and add them to the Render Queue.  One would then import these 24p .mp4 files in Premiere Pro, or if you have an existing project using .mts files, you would replace the .mts assets with the equivalent .mp4 assets.  Note that AE still makes some mistakes, but beats PP.</li>
<li>Stick with the approach outlined in <a href="../technology/videoediting/vixia-hf10-to-premiere-pro-cs3-486">Editing </a><a href="../technology/videoediting/vixia-hf10-to-premiere-pro-cs3-486">AVCHD </a><a href="../technology/videoediting/vixia-hf10-to-premiere-pro-cs3-486">24p using Adobe Premiere Pro CS3</a>.  It takes a lot if disk space, but it is fast and accurate.  This might feel as two steps forward and one step back, but it is correct and the approach that I use myself.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/technology/videoediting/24p-avchd-with-pp-cs5-2697/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Living with Adobe Encore CS4/CS5</title>
		<link>http://www.coertvonk.com/technology/videoediting/getting-along-with-adobe-encore-2606</link>
		<comments>http://www.coertvonk.com/technology/videoediting/getting-along-with-adobe-encore-2606#comments</comments>
		<pubDate>Thu, 26 Aug 2010 14:45:41 +0000</pubDate>
		<dc:creator>Coert</dc:creator>
				<category><![CDATA[Video Editing]]></category>
		<category><![CDATA[Adobe Encore]]></category>
		<category><![CDATA[Subtitle Workshop]]></category>
		<category><![CDATA[subtitles]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.coertvonk.com/?p=2606</guid>
		<description><![CDATA[Encore is one of those acquisition products, that were shaky from the start and never fully stabilized. Having said that, let&#8217;s try to make the best of it. Inconsistent state information Creating a Blu-ray image is challenging to Encore. More often than not, the BD creation will fail with error messages such as: Blu-ray Error: &#8220;device not ready&#8221;, [...] <a href="http://www.coertvonk.com/technology/videoediting/getting-along-with-adobe-encore-2606">&#171;read more&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Encore is one of those acquisition products, that were shaky from the start and never fully stabilized. Having said that, let&#8217;s try to make the best of it.</p>
<h4>Inconsistent state information</h4>
<p>Creating a Blu-ray image is challenging to Encore. More often than not, the BD creation will fail with error messages such as:</p>
<ul>
<li>Blu-ray Error: &#8220;device not ready&#8221;, Code: &#8220;3&#8243;, Note &#8220;File can not open.(&#8230;\AuthorScriptHDMVSessions\&#8230;.ac3.ves)</li>
<li>Blu-ray Object: &#8220;nameoftimeline&#8221;, Error: &#8220;invalid parameter&#8221;, Code: &#8220;19&#8243;, Note: &#8220;Failed in Open of the VES file&#8221;</li>
<li>Blu-ray Object: &#8220;nameofmenu&#8221;, Export file not found</li>
</ul>
<p>To work around these errors, either delete the .ves file in question, or take out the big guns and delete the AuthorScriptHDMVSessions (and the Cache subdirectories) from the project directory. This causes Encore to re-analyze all of the assets and clear up the confusion.</p>
<h4>Bugs, bugs and nothing but bugs</h4>
<p>Authoring dual layer discs may cause problem such as:
<ul>
<li>Blu-ray Error: &#8220;Not enough free storage&#8221;, Code: &#8220;25&#8243;, Note: &#8220;Not enough space on media&#8221; on 50G DL BD-R.</li>
<li>Blu-ray Error: &#8220;file already exists&#8221;, Code: &#8220;6&#8243;, Note &#8220;10485888 10489952 11826176&#8243;</li>
</ul>
<p>Cache\HDMVProjectExport.log reveals &#8220;Not enough space on media, layer 0 size greater than max layer size&#8221;. Encore estimated the size of .m2ts files wrong, and as a result it can not fit the content on the first layer. See <a href="http://forums.adobe.com/message/3106312#3106312">forums.adobe.com</a>. A closer look at the .log will point you to the file that it has problems placing. Some times adding/deleting some BD-ROM Content, or re-encoding at a different bitrate appears to work around the problem. Alternately one can use &#8220;burn to folder&#8221; and then create an .iso using <a href="http://www.imgburn.com/">imgburn</a></p>
<h4>Subtitle woes</h4>
<p>Error messages that fall into this category are</p>
<ul>
<li>Timecode overlap found in subtitle script line</li>
<li>Blu-ray error encore cs5 code 13 errors in some PGs (when you told Encore to ignore the gab requirement)</li>
<li>Errors in Some PGs: end time of preceding display set is too close to the start time of succeeding display set, see trace log for more information</li>
</ul>
<p>There should be a gap of about 3 to 5 frames between subtitles. This appears to be a Encore specific &#8220;feature&#8221;. To work around this, use the scripting engine from <a href="http://www.urusoft.net/">Subtitle Workshop 4</a> to create these gap. Remember to set the correct frame rate in Subtitle Workshop! Note that in some rare circumstances this script truncates subtitles to 0 length when there is no space for them.</p>
<pre class="brush: delphi; title: ; notranslate">(* --------------------------------------------------------------------------
 *               Enforce 5 frame gap for Adobe Encore subtitles
 *                    Subtitle Workshop 4 - Pascal scripts
 *                          http://www.coertvonk.com
 *
 * Adobe Encore is very picky about enforcing a gap between subtitles.
 * This routine will enforce a 222 msec gap.  For 24p that corresponds to
 * about 5 frames.
 *
 * This script prevents errors like &quot;subtitle too close&quot; in Encore
 *
 * Remember to set the correct frame rate (FPS) before calling this script
 *
 * Usage: place this script in the &quot;Subtitle Workshop\PascalScripts&quot;
 *        directory.  Run the script from Subtitle Workshop via
 *        Tools/Pascal scripts menu, Tools &amp;amp;gt; Pascal scripts &amp;amp;gt; BlurayGap.pas
 *)

program BlurayGap;

var
   ii	     : Integer;
   Count     : Integer;
   start     : Integer;
   final     : Integer;
   startNext : Integer;
   gap       : Integer;

begin
   gap := 222; // [msec]
   Count := GetSubtitleCount;&amp;lt;br /&amp;gt;

   for ii := 0 to Count-2 do
   begin
      start := GetSubtitleInitialTime(ii);
      final := GetSubtitleFinalTime(ii);
      startNext := GetSubtitleInitialTime(ii+1);

      if final + gap &amp;amp;gt; startNext then
      begin
	 if startNext &amp;amp;gt; start + gap then
	    SetSubtitleFinalTime(ii, startNext - gap)
	 else
	    SetSubtitleFinalTime(ii, start); (* should really delete the subtitle .. *)
      end;
   end;

end.</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.coertvonk.com/technology/videoediting/getting-along-with-adobe-encore-2606/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

