OSDN Git Service

Still converting syntax highlighter spec.
[joypy/Thun.git] / docs / sphinx_docs / _build / html / notebooks / Developing.html
1
2 <!DOCTYPE html>
3
4 <html>
5   <head>
6     <meta charset="utf-8" />
7     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
8
9     <title>Developing a Program in Joy &#8212; Thun 0.4.1 documentation</title>
10     <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
11     <link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
12     <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
13     <script src="../_static/jquery.js"></script>
14     <script src="../_static/underscore.js"></script>
15     <script src="../_static/doctools.js"></script>
16     <script defer="defer" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
17     <link rel="index" title="Index" href="../genindex.html" />
18     <link rel="search" title="Search" href="../search.html" />
19     <link rel="next" title="Quadratic formula" href="Quadratic.html" />
20     <link rel="prev" title="Essays about Programming in Joy" href="index.html" />
21    
22   <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
23   
24   
25   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
26
27   </head><body>
28   
29
30     <div class="document">
31       <div class="documentwrapper">
32         <div class="bodywrapper">
33           
34
35           <div class="body" role="main">
36             
37   <section id="developing-a-program-in-joy">
38 <h1>Developing a Program in Joy<a class="headerlink" href="#developing-a-program-in-joy" title="Permalink to this headline">¶</a></h1>
39 <p>As an example of developing a program in Joy let’s take the first problem from the Project Euler website.</p>
40 <section id="project-euler-first-problem-multiples-of-3-and-5">
41 <h2><a class="reference external" href="https://projecteuler.net/problem=1">Project Euler, first problem: “Multiples of 3 and 5”</a><a class="headerlink" href="#project-euler-first-problem-multiples-of-3-and-5" title="Permalink to this headline">¶</a></h2>
42 <blockquote>
43 <div><p>If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.</p>
44 <p>Find the sum of all the multiples of 3 or 5 below 1000.</p>
45 </div></blockquote>
46 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">notebook_preamble</span> <span class="kn">import</span> <span class="n">J</span><span class="p">,</span> <span class="n">V</span><span class="p">,</span> <span class="n">define</span>
47 </pre></div>
48 </div>
49 <section id="sum-a-range-filtered-by-a-predicate">
50 <h3>Sum a range filtered by a predicate<a class="headerlink" href="#sum-a-range-filtered-by-a-predicate" title="Permalink to this headline">¶</a></h3>
51 <p>Let’s create a predicate that returns <code class="docutils literal notranslate"><span class="pre">True</span></code> if a number is a multiple
52 of 3 or 5 and <code class="docutils literal notranslate"><span class="pre">False</span></code> otherwise.</p>
53 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;P == [3 % not] dupdip 5 % not or&#39;</span><span class="p">)</span>
54 </pre></div>
55 </div>
56 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">&#39;80 P&#39;</span><span class="p">)</span>
57 </pre></div>
58 </div>
59 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>             <span class="o">.</span> <span class="mi">80</span> <span class="n">P</span>
60           <span class="mi">80</span> <span class="o">.</span> <span class="n">P</span>
61           <span class="mi">80</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">%</span> <span class="ow">not</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">5</span> <span class="o">%</span> <span class="ow">not</span> <span class="ow">or</span>
62 <span class="mi">80</span> <span class="p">[</span><span class="mi">3</span> <span class="o">%</span> <span class="ow">not</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">5</span> <span class="o">%</span> <span class="ow">not</span> <span class="ow">or</span>
63           <span class="mi">80</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">%</span> <span class="ow">not</span> <span class="mi">80</span> <span class="mi">5</span> <span class="o">%</span> <span class="ow">not</span> <span class="ow">or</span>
64         <span class="mi">80</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">%</span> <span class="ow">not</span> <span class="mi">80</span> <span class="mi">5</span> <span class="o">%</span> <span class="ow">not</span> <span class="ow">or</span>
65            <span class="mi">2</span> <span class="o">.</span> <span class="ow">not</span> <span class="mi">80</span> <span class="mi">5</span> <span class="o">%</span> <span class="ow">not</span> <span class="ow">or</span>
66        <span class="kc">False</span> <span class="o">.</span> <span class="mi">80</span> <span class="mi">5</span> <span class="o">%</span> <span class="ow">not</span> <span class="ow">or</span>
67     <span class="kc">False</span> <span class="mi">80</span> <span class="o">.</span> <span class="mi">5</span> <span class="o">%</span> <span class="ow">not</span> <span class="ow">or</span>
68   <span class="kc">False</span> <span class="mi">80</span> <span class="mi">5</span> <span class="o">.</span> <span class="o">%</span> <span class="ow">not</span> <span class="ow">or</span>
69      <span class="kc">False</span> <span class="mi">0</span> <span class="o">.</span> <span class="ow">not</span> <span class="ow">or</span>
70   <span class="kc">False</span> <span class="kc">True</span> <span class="o">.</span> <span class="ow">or</span>
71         <span class="kc">True</span> <span class="o">.</span>
72 </pre></div>
73 </div>
74 <p>Given the predicate function <code class="docutils literal notranslate"><span class="pre">P</span></code> a suitable program is:</p>
75 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">PE1</span> <span class="o">==</span> <span class="mi">1000</span> <span class="nb">range</span> <span class="p">[</span><span class="n">P</span><span class="p">]</span> <span class="nb">filter</span> <span class="nb">sum</span>
76 </pre></div>
77 </div>
78 <p>This function generates a list of the integers from 0 to 999, filters
79 that list by <code class="docutils literal notranslate"><span class="pre">P</span></code>, and then sums the result.</p>
80 <p>Logically this is fine, but pragmatically we are doing more work than we
81 should be; we generate one thousand integers but actually use less than
82 half of them. A better solution would be to generate just the multiples
83 we want to sum, and to add them as we go rather than storing them and
84 and summing them at the end.</p>
85 </section>
86 <section id="generate-just-the-multiples">
87 <h3>Generate just the multiples<a class="headerlink" href="#generate-just-the-multiples" title="Permalink to this headline">¶</a></h3>
88 <p>At first I had the idea to use two counters and increase them by three
89 and five, respectively. This way we only generate the terms that we
90 actually want to sum. We have to proceed by incrementing the counter
91 that is lower, or if they are equal, the three counter, and we have to
92 take care not to double add numbers like 15 that are multiples of both
93 three and five.</p>
94 <p>This seemed a little clunky, so I tried a different approach.</p>
95 <p>Consider the first few terms in the series:</p>
96 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">3</span> <span class="mi">5</span> <span class="mi">6</span> <span class="mi">9</span> <span class="mi">10</span> <span class="mi">12</span> <span class="mi">15</span> <span class="mi">18</span> <span class="mi">20</span> <span class="mi">21</span> <span class="o">...</span>
97 </pre></div>
98 </div>
99 <p>Subtract each number from the one after it (subtracting 0 from 3):</p>
100 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">3</span> <span class="mi">5</span> <span class="mi">6</span> <span class="mi">9</span> <span class="mi">10</span> <span class="mi">12</span> <span class="mi">15</span> <span class="mi">18</span> <span class="mi">20</span> <span class="mi">21</span> <span class="mi">24</span> <span class="mi">25</span> <span class="mi">27</span> <span class="mi">30</span> <span class="o">...</span>
101 <span class="mi">0</span> <span class="mi">3</span> <span class="mi">5</span> <span class="mi">6</span>  <span class="mi">9</span> <span class="mi">10</span> <span class="mi">12</span> <span class="mi">15</span> <span class="mi">18</span> <span class="mi">20</span> <span class="mi">21</span> <span class="mi">24</span> <span class="mi">25</span> <span class="mi">27</span> <span class="o">...</span>
102 <span class="o">-------------------------------------------</span>
103 <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span>  <span class="mi">1</span>  <span class="mi">2</span>  <span class="mi">3</span>  <span class="mi">3</span>  <span class="mi">2</span>  <span class="mi">1</span>  <span class="mi">3</span>  <span class="mi">1</span>  <span class="mi">2</span>  <span class="mi">3</span> <span class="o">...</span>
104 </pre></div>
105 </div>
106 <p>You get this lovely repeating palindromic sequence:</p>
107 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span>
108 </pre></div>
109 </div>
110 <p>To make a counter that increments by factors of 3 and 5 you just add
111 these differences to the counter one-by-one in a loop.</p>
112 <p>To make use of this sequence to increment a counter and sum terms as we
113 go we need a function that will accept the sum, the counter, and the
114 next term to add, and that adds the term to the counter and a copy of
115 the counter to the running sum. This function will do that:</p>
116 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="o">==</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span>
117 </pre></div>
118 </div>
119 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;PE1.1 == + [+] dupdip&#39;</span><span class="p">)</span>
120 </pre></div>
121 </div>
122 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">&#39;0 0 3 PE1.1&#39;</span><span class="p">)</span>
123 </pre></div>
124 </div>
125 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>        <span class="o">.</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span>
126       <span class="mi">0</span> <span class="o">.</span> <span class="mi">0</span> <span class="mi">3</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span>
127     <span class="mi">0</span> <span class="mi">0</span> <span class="o">.</span> <span class="mi">3</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span>
128   <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span>
129   <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span>
130     <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span>
131 <span class="mi">0</span> <span class="mi">3</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span>
132     <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">3</span>
133       <span class="mi">3</span> <span class="o">.</span> <span class="mi">3</span>
134     <span class="mi">3</span> <span class="mi">3</span> <span class="o">.</span>
135 </pre></div>
136 </div>
137 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">&#39;0 0 [3 2 1 3 1 2 3] [PE1.1] step&#39;</span><span class="p">)</span>
138 </pre></div>
139 </div>
140 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>                            <span class="o">.</span> <span class="mi">0</span> <span class="mi">0</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
141                           <span class="mi">0</span> <span class="o">.</span> <span class="mi">0</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
142                         <span class="mi">0</span> <span class="mi">0</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
143         <span class="mi">0</span> <span class="mi">0</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
144 <span class="mi">0</span> <span class="mi">0</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
145               <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
146                       <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
147                       <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
148                         <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
149                     <span class="mi">0</span> <span class="mi">3</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
150                         <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">3</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
151                           <span class="mi">3</span> <span class="o">.</span> <span class="mi">3</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
152                         <span class="mi">3</span> <span class="mi">3</span> <span class="o">.</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
153           <span class="mi">3</span> <span class="mi">3</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
154   <span class="mi">3</span> <span class="mi">3</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
155               <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
156                       <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
157                       <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
158                         <span class="mi">3</span> <span class="mi">5</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
159                     <span class="mi">3</span> <span class="mi">5</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
160                         <span class="mi">3</span> <span class="mi">5</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">5</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
161                           <span class="mi">8</span> <span class="o">.</span> <span class="mi">5</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
162                         <span class="mi">8</span> <span class="mi">5</span> <span class="o">.</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
163             <span class="mi">8</span> <span class="mi">5</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
164     <span class="mi">8</span> <span class="mi">5</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
165               <span class="mi">8</span> <span class="mi">5</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
166                       <span class="mi">8</span> <span class="mi">5</span> <span class="mi">1</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
167                       <span class="mi">8</span> <span class="mi">5</span> <span class="mi">1</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
168                         <span class="mi">8</span> <span class="mi">6</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
169                     <span class="mi">8</span> <span class="mi">6</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
170                         <span class="mi">8</span> <span class="mi">6</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">6</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
171                          <span class="mi">14</span> <span class="o">.</span> <span class="mi">6</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
172                        <span class="mi">14</span> <span class="mi">6</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
173              <span class="mi">14</span> <span class="mi">6</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
174      <span class="mi">14</span> <span class="mi">6</span> <span class="p">[</span><span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
175              <span class="mi">14</span> <span class="mi">6</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
176                      <span class="mi">14</span> <span class="mi">6</span> <span class="mi">3</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
177                      <span class="mi">14</span> <span class="mi">6</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
178                        <span class="mi">14</span> <span class="mi">9</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
179                    <span class="mi">14</span> <span class="mi">9</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
180                        <span class="mi">14</span> <span class="mi">9</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">9</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
181                          <span class="mi">23</span> <span class="o">.</span> <span class="mi">9</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
182                        <span class="mi">23</span> <span class="mi">9</span> <span class="o">.</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
183                <span class="mi">23</span> <span class="mi">9</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
184        <span class="mi">23</span> <span class="mi">9</span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
185              <span class="mi">23</span> <span class="mi">9</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
186                      <span class="mi">23</span> <span class="mi">9</span> <span class="mi">1</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
187                      <span class="mi">23</span> <span class="mi">9</span> <span class="mi">1</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
188                       <span class="mi">23</span> <span class="mi">10</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
189                   <span class="mi">23</span> <span class="mi">10</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
190                       <span class="mi">23</span> <span class="mi">10</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">10</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
191                          <span class="mi">33</span> <span class="o">.</span> <span class="mi">10</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
192                       <span class="mi">33</span> <span class="mi">10</span> <span class="o">.</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
193                 <span class="mi">33</span> <span class="mi">10</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
194         <span class="mi">33</span> <span class="mi">10</span> <span class="p">[</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
195             <span class="mi">33</span> <span class="mi">10</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
196                     <span class="mi">33</span> <span class="mi">10</span> <span class="mi">2</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
197                     <span class="mi">33</span> <span class="mi">10</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
198                       <span class="mi">33</span> <span class="mi">12</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
199                   <span class="mi">33</span> <span class="mi">12</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
200                       <span class="mi">33</span> <span class="mi">12</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">12</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
201                          <span class="mi">45</span> <span class="o">.</span> <span class="mi">12</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
202                       <span class="mi">45</span> <span class="mi">12</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
203                   <span class="mi">45</span> <span class="mi">12</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">step</span>
204           <span class="mi">45</span> <span class="mi">12</span> <span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
205             <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span>
206                     <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span>
207                     <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span>
208                       <span class="mi">45</span> <span class="mi">15</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span>
209                   <span class="mi">45</span> <span class="mi">15</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span>
210                       <span class="mi">45</span> <span class="mi">15</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">15</span>
211                          <span class="mi">60</span> <span class="o">.</span> <span class="mi">15</span>
212                       <span class="mi">60</span> <span class="mi">15</span> <span class="o">.</span>
213 </pre></div>
214 </div>
215 <p>So one <code class="docutils literal notranslate"><span class="pre">step</span></code> through all seven terms brings the counter to 15 and the
216 total to 60.</p>
217 </section>
218 <section id="how-many-multiples-to-sum">
219 <h3>How many multiples to sum?<a class="headerlink" href="#how-many-multiples-to-sum" title="Permalink to this headline">¶</a></h3>
220 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="mi">1000</span> <span class="o">/</span> <span class="mi">15</span>
221 </pre></div>
222 </div>
223 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">66</span>
224 </pre></div>
225 </div>
226 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="mi">66</span> <span class="o">*</span> <span class="mi">15</span>
227 </pre></div>
228 </div>
229 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">990</span>
230 </pre></div>
231 </div>
232 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="mi">1000</span> <span class="o">-</span> <span class="mi">990</span>
233 </pre></div>
234 </div>
235 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">10</span>
236 </pre></div>
237 </div>
238 <p>We only want the terms <em>less than</em> 1000.</p>
239 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="mi">999</span> <span class="o">-</span> <span class="mi">990</span>
240 </pre></div>
241 </div>
242 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">9</span>
243 </pre></div>
244 </div>
245 <p>That means we want to run the full list of numbers sixty-six times to
246 get to 990 and then the first four numbers 3 2 1 3 to get to 999.</p>
247 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;PE1 == 0 0 66 [[3 2 1 3 1 2 3] [PE1.1] step] times [3 2 1 3] [PE1.1] step pop&#39;</span><span class="p">)</span>
248 </pre></div>
249 </div>
250 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;PE1&#39;</span><span class="p">)</span>
251 </pre></div>
252 </div>
253 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">233168</span>
254 </pre></div>
255 </div>
256 </section>
257 <section id="packing-the-terms-into-an-integer">
258 <h3>Packing the terms into an integer<a class="headerlink" href="#packing-the-terms-into-an-integer" title="Permalink to this headline">¶</a></h3>
259 <p>This form uses no extra storage and produces no unused summands. It’s
260 good but there’s one more trick we can apply. The list of seven terms
261 takes up at least seven bytes. But notice that all of the terms are less
262 than four, and so each can fit in just two bits. We could store all
263 seven terms in just fourteen bits and use masking and shifts to pick out
264 each term as we go. This will use less space and save time loading whole
265 integer terms from the list.</p>
266 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>    <span class="mi">3</span>  <span class="mi">2</span>  <span class="mi">1</span>  <span class="mi">3</span>  <span class="mi">1</span>  <span class="mi">2</span>  <span class="mi">3</span>
267 <span class="mi">0</span><span class="n">b</span> <span class="mi">11</span> <span class="mi">10</span> <span class="mi">01</span> <span class="mi">11</span> <span class="mi">01</span> <span class="mi">10</span> <span class="mi">11</span> <span class="o">==</span> <span class="mi">14811</span>
268 </pre></div>
269 </div>
270 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="mb">0b11100111011011</span>
271 </pre></div>
272 </div>
273 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">14811</span>
274 </pre></div>
275 </div>
276 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;PE1.2 == [3 &amp; PE1.1] dupdip 2 &gt;&gt;&#39;</span><span class="p">)</span>
277 </pre></div>
278 </div>
279 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">&#39;0 0 14811 PE1.2&#39;</span><span class="p">)</span>
280 </pre></div>
281 </div>
282 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>                      <span class="o">.</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span>
283                     <span class="mi">0</span> <span class="o">.</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span>
284                   <span class="mi">0</span> <span class="mi">0</span> <span class="o">.</span> <span class="mi">14811</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span>
285             <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span>
286             <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
287 <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
288             <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
289           <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
290                 <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
291                 <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
292                   <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
293               <span class="mi">0</span> <span class="mi">3</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
294                   <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">3</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
295                     <span class="mi">3</span> <span class="o">.</span> <span class="mi">3</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
296                   <span class="mi">3</span> <span class="mi">3</span> <span class="o">.</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
297             <span class="mi">3</span> <span class="mi">3</span> <span class="mi">14811</span> <span class="o">.</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
298           <span class="mi">3</span> <span class="mi">3</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">&gt;&gt;</span>
299              <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="o">.</span>
300 </pre></div>
301 </div>
302 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">&#39;3 3 3702 PE1.2&#39;</span><span class="p">)</span>
303 </pre></div>
304 </div>
305 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>                     <span class="o">.</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span>
306                    <span class="mi">3</span> <span class="o">.</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span>
307                  <span class="mi">3</span> <span class="mi">3</span> <span class="o">.</span> <span class="mi">3702</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span>
308             <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span>
309             <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
310 <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
311             <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
312           <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
313                <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
314                <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
315                  <span class="mi">3</span> <span class="mi">5</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
316              <span class="mi">3</span> <span class="mi">5</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
317                  <span class="mi">3</span> <span class="mi">5</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">5</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
318                    <span class="mi">8</span> <span class="o">.</span> <span class="mi">5</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
319                  <span class="mi">8</span> <span class="mi">5</span> <span class="o">.</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
320             <span class="mi">8</span> <span class="mi">5</span> <span class="mi">3702</span> <span class="o">.</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
321           <span class="mi">8</span> <span class="mi">5</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">&gt;&gt;</span>
322              <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="o">.</span>
323 </pre></div>
324 </div>
325 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">&#39;0 0 14811 7 [PE1.2] times pop&#39;</span><span class="p">)</span>
326 </pre></div>
327 </div>
328 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>                      <span class="o">.</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="mi">7</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
329                     <span class="mi">0</span> <span class="o">.</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="mi">7</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
330                   <span class="mi">0</span> <span class="mi">0</span> <span class="o">.</span> <span class="mi">14811</span> <span class="mi">7</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
331             <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="o">.</span> <span class="mi">7</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
332           <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="mi">7</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
333   <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="mi">7</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span> <span class="n">pop</span>
334     <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
335             <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
336             <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
337 <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
338             <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
339           <span class="mi">0</span> <span class="mi">0</span> <span class="mi">14811</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
340                 <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
341                 <span class="mi">0</span> <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
342                   <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
343               <span class="mi">0</span> <span class="mi">3</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
344                   <span class="mi">0</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">3</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
345                     <span class="mi">3</span> <span class="o">.</span> <span class="mi">3</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
346                   <span class="mi">3</span> <span class="mi">3</span> <span class="o">.</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
347             <span class="mi">3</span> <span class="mi">3</span> <span class="mi">14811</span> <span class="o">.</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
348           <span class="mi">3</span> <span class="mi">3</span> <span class="mi">14811</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
349              <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="o">.</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
350            <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="mi">6</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
351    <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="mi">6</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span> <span class="n">pop</span>
352      <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
353              <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
354              <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
355  <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
356              <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
357            <span class="mi">3</span> <span class="mi">3</span> <span class="mi">3702</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
358                 <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
359                 <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
360                   <span class="mi">3</span> <span class="mi">5</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
361               <span class="mi">3</span> <span class="mi">5</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
362                   <span class="mi">3</span> <span class="mi">5</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">5</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
363                     <span class="mi">8</span> <span class="o">.</span> <span class="mi">5</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
364                   <span class="mi">8</span> <span class="mi">5</span> <span class="o">.</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
365              <span class="mi">8</span> <span class="mi">5</span> <span class="mi">3702</span> <span class="o">.</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
366            <span class="mi">8</span> <span class="mi">5</span> <span class="mi">3702</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
367               <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="o">.</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
368             <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="mi">5</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
369     <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="mi">5</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span> <span class="n">pop</span>
370       <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
371               <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
372               <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
373   <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
374               <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
375             <span class="mi">8</span> <span class="mi">5</span> <span class="mi">925</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
376                 <span class="mi">8</span> <span class="mi">5</span> <span class="mi">1</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
377                 <span class="mi">8</span> <span class="mi">5</span> <span class="mi">1</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
378                   <span class="mi">8</span> <span class="mi">6</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
379               <span class="mi">8</span> <span class="mi">6</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
380                   <span class="mi">8</span> <span class="mi">6</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">6</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
381                    <span class="mi">14</span> <span class="o">.</span> <span class="mi">6</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
382                  <span class="mi">14</span> <span class="mi">6</span> <span class="o">.</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
383              <span class="mi">14</span> <span class="mi">6</span> <span class="mi">925</span> <span class="o">.</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
384            <span class="mi">14</span> <span class="mi">6</span> <span class="mi">925</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
385              <span class="mi">14</span> <span class="mi">6</span> <span class="mi">231</span> <span class="o">.</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
386            <span class="mi">14</span> <span class="mi">6</span> <span class="mi">231</span> <span class="mi">4</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
387    <span class="mi">14</span> <span class="mi">6</span> <span class="mi">231</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span> <span class="n">pop</span>
388      <span class="mi">14</span> <span class="mi">6</span> <span class="mi">231</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
389              <span class="mi">14</span> <span class="mi">6</span> <span class="mi">231</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
390              <span class="mi">14</span> <span class="mi">6</span> <span class="mi">231</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
391  <span class="mi">14</span> <span class="mi">6</span> <span class="mi">231</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
392              <span class="mi">14</span> <span class="mi">6</span> <span class="mi">231</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
393            <span class="mi">14</span> <span class="mi">6</span> <span class="mi">231</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
394                <span class="mi">14</span> <span class="mi">6</span> <span class="mi">3</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
395                <span class="mi">14</span> <span class="mi">6</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
396                  <span class="mi">14</span> <span class="mi">9</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
397              <span class="mi">14</span> <span class="mi">9</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
398                  <span class="mi">14</span> <span class="mi">9</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">9</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
399                    <span class="mi">23</span> <span class="o">.</span> <span class="mi">9</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
400                  <span class="mi">23</span> <span class="mi">9</span> <span class="o">.</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
401              <span class="mi">23</span> <span class="mi">9</span> <span class="mi">231</span> <span class="o">.</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
402            <span class="mi">23</span> <span class="mi">9</span> <span class="mi">231</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
403               <span class="mi">23</span> <span class="mi">9</span> <span class="mi">57</span> <span class="o">.</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
404             <span class="mi">23</span> <span class="mi">9</span> <span class="mi">57</span> <span class="mi">3</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
405     <span class="mi">23</span> <span class="mi">9</span> <span class="mi">57</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span> <span class="n">pop</span>
406       <span class="mi">23</span> <span class="mi">9</span> <span class="mi">57</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
407               <span class="mi">23</span> <span class="mi">9</span> <span class="mi">57</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
408               <span class="mi">23</span> <span class="mi">9</span> <span class="mi">57</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
409   <span class="mi">23</span> <span class="mi">9</span> <span class="mi">57</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
410               <span class="mi">23</span> <span class="mi">9</span> <span class="mi">57</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
411             <span class="mi">23</span> <span class="mi">9</span> <span class="mi">57</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
412                <span class="mi">23</span> <span class="mi">9</span> <span class="mi">1</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
413                <span class="mi">23</span> <span class="mi">9</span> <span class="mi">1</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
414                 <span class="mi">23</span> <span class="mi">10</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
415             <span class="mi">23</span> <span class="mi">10</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
416                 <span class="mi">23</span> <span class="mi">10</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">10</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
417                    <span class="mi">33</span> <span class="o">.</span> <span class="mi">10</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
418                 <span class="mi">33</span> <span class="mi">10</span> <span class="o">.</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
419              <span class="mi">33</span> <span class="mi">10</span> <span class="mi">57</span> <span class="o">.</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
420            <span class="mi">33</span> <span class="mi">10</span> <span class="mi">57</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
421              <span class="mi">33</span> <span class="mi">10</span> <span class="mi">14</span> <span class="o">.</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
422            <span class="mi">33</span> <span class="mi">10</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
423    <span class="mi">33</span> <span class="mi">10</span> <span class="mi">14</span> <span class="mi">2</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span> <span class="n">pop</span>
424      <span class="mi">33</span> <span class="mi">10</span> <span class="mi">14</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
425              <span class="mi">33</span> <span class="mi">10</span> <span class="mi">14</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
426              <span class="mi">33</span> <span class="mi">10</span> <span class="mi">14</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
427  <span class="mi">33</span> <span class="mi">10</span> <span class="mi">14</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
428              <span class="mi">33</span> <span class="mi">10</span> <span class="mi">14</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
429            <span class="mi">33</span> <span class="mi">10</span> <span class="mi">14</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
430               <span class="mi">33</span> <span class="mi">10</span> <span class="mi">2</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
431               <span class="mi">33</span> <span class="mi">10</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
432                 <span class="mi">33</span> <span class="mi">12</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
433             <span class="mi">33</span> <span class="mi">12</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
434                 <span class="mi">33</span> <span class="mi">12</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">12</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
435                    <span class="mi">45</span> <span class="o">.</span> <span class="mi">12</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
436                 <span class="mi">45</span> <span class="mi">12</span> <span class="o">.</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
437              <span class="mi">45</span> <span class="mi">12</span> <span class="mi">14</span> <span class="o">.</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
438            <span class="mi">45</span> <span class="mi">12</span> <span class="mi">14</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
439               <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="o">.</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
440             <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="mi">1</span> <span class="o">.</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
441     <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="mi">1</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span> <span class="n">pop</span>
442       <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="o">.</span> <span class="n">i</span> <span class="n">pop</span>
443               <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span> <span class="n">pop</span>
444               <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="o">.</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
445   <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
446               <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="o">.</span> <span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
447             <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
448               <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="o">.</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
449               <span class="mi">45</span> <span class="mi">12</span> <span class="mi">3</span> <span class="o">.</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
450                 <span class="mi">45</span> <span class="mi">15</span> <span class="o">.</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
451             <span class="mi">45</span> <span class="mi">15</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="o">.</span> <span class="n">dupdip</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
452                 <span class="mi">45</span> <span class="mi">15</span> <span class="o">.</span> <span class="o">+</span> <span class="mi">15</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
453                    <span class="mi">60</span> <span class="o">.</span> <span class="mi">15</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
454                 <span class="mi">60</span> <span class="mi">15</span> <span class="o">.</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
455               <span class="mi">60</span> <span class="mi">15</span> <span class="mi">3</span> <span class="o">.</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
456             <span class="mi">60</span> <span class="mi">15</span> <span class="mi">3</span> <span class="mi">2</span> <span class="o">.</span> <span class="o">&gt;&gt;</span> <span class="n">pop</span>
457               <span class="mi">60</span> <span class="mi">15</span> <span class="mi">0</span> <span class="o">.</span> <span class="n">pop</span>
458                 <span class="mi">60</span> <span class="mi">15</span> <span class="o">.</span>
459 </pre></div>
460 </div>
461 <p>And so we have at last:</p>
462 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;PE1 == 0 0 66 [14811 7 [PE1.2] times pop] times 14811 4 [PE1.2] times popop&#39;</span><span class="p">)</span>
463 </pre></div>
464 </div>
465 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;PE1&#39;</span><span class="p">)</span>
466 </pre></div>
467 </div>
468 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">233168</span>
469 </pre></div>
470 </div>
471 </section>
472 <section id="let-s-refactor">
473 <h3>Let’s refactor<a class="headerlink" href="#let-s-refactor" title="Permalink to this headline">¶</a></h3>
474 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>  <span class="mi">14811</span> <span class="mi">7</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
475   <span class="mi">14811</span> <span class="mi">4</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
476   <span class="mi">14811</span> <span class="n">n</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
477 <span class="n">n</span> <span class="mi">14811</span> <span class="n">swap</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
478 </pre></div>
479 </div>
480 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;PE1.3 == 14811 swap [PE1.2] times pop&#39;</span><span class="p">)</span>
481 </pre></div>
482 </div>
483 <p>Now we can simplify the definition above:</p>
484 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;PE1 == 0 0 66 [7 PE1.3] times 4 PE1.3 pop&#39;</span><span class="p">)</span>
485 </pre></div>
486 </div>
487 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;PE1&#39;</span><span class="p">)</span>
488 </pre></div>
489 </div>
490 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">233168</span>
491 </pre></div>
492 </div>
493 <p>Here’s our joy program all in one place. It doesn’t make so much sense,
494 but if you have read through the above description of how it was derived
495 I hope it’s clear.</p>
496 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">PE1</span><span class="o">.</span><span class="mi">1</span> <span class="o">==</span> <span class="o">+</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">dupdip</span>
497 <span class="n">PE1</span><span class="o">.</span><span class="mi">2</span> <span class="o">==</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">1</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span>
498 <span class="n">PE1</span><span class="o">.</span><span class="mi">3</span> <span class="o">==</span> <span class="mi">14811</span> <span class="n">swap</span> <span class="p">[</span><span class="n">PE1</span><span class="o">.</span><span class="mi">2</span><span class="p">]</span> <span class="n">times</span> <span class="n">pop</span>
499 <span class="n">PE1</span> <span class="o">==</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">66</span> <span class="p">[</span><span class="mi">7</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">3</span><span class="p">]</span> <span class="n">times</span> <span class="mi">4</span> <span class="n">PE1</span><span class="o">.</span><span class="mi">3</span> <span class="n">pop</span>
500 </pre></div>
501 </div>
502 </section>
503 </section>
504 <section id="generator-version">
505 <h2>Generator Version<a class="headerlink" href="#generator-version" title="Permalink to this headline">¶</a></h2>
506 <p>It’s a little clunky iterating sixty-six times though the seven numbers
507 then four more. In the <em>Generator Programs</em> notebook we derive a
508 generator that can be repeatedly driven by the <code class="docutils literal notranslate"><span class="pre">x</span></code> combinator to
509 produce a stream of the seven numbers repeating over and over again.</p>
510 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;PE1.terms == [0 swap [dup [pop 14811] [] branch [3 &amp;] dupdip 2 &gt;&gt;] dip rest cons]&#39;</span><span class="p">)</span>
511 </pre></div>
512 </div>
513 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;PE1.terms 21 [x] times&#39;</span><span class="p">)</span>
514 </pre></div>
515 </div>
516 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="p">[</span><span class="mi">0</span> <span class="n">swap</span> <span class="p">[</span><span class="n">dup</span> <span class="p">[</span><span class="n">pop</span> <span class="mi">14811</span><span class="p">]</span> <span class="p">[]</span> <span class="n">branch</span> <span class="p">[</span><span class="mi">3</span> <span class="o">&amp;</span><span class="p">]</span> <span class="n">dupdip</span> <span class="mi">2</span> <span class="o">&gt;&gt;</span><span class="p">]</span> <span class="n">dip</span> <span class="n">rest</span> <span class="n">cons</span><span class="p">]</span>
517 </pre></div>
518 </div>
519 <p>We know from above that we need sixty-six times seven then four more
520 terms to reach up to but not over one thousand.</p>
521 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;7 66 * 4 +&#39;</span><span class="p">)</span>
522 </pre></div>
523 </div>
524 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">466</span>
525 </pre></div>
526 </div>
527 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;PE1.terms 466 [x] times pop&#39;</span><span class="p">)</span>
528 </pre></div>
529 </div>
530 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mi">2</span> <span class="mi">1</span> <span class="mi">3</span>
531 </pre></div>
532 </div>
533 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[PE1.terms 466 [x] times pop] run sum&#39;</span><span class="p">)</span>
534 </pre></div>
535 </div>
536 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">999</span>
537 </pre></div>
538 </div>
539 <p>Now we can use <code class="docutils literal notranslate"><span class="pre">PE1.1</span></code> to accumulate the terms as we go, and then
540 <code class="docutils literal notranslate"><span class="pre">pop</span></code> the generator and the counter from the stack when we’re done,
541 leaving just the sum.</p>
542 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;0 0 PE1.terms 466 [x [PE1.1] dip] times popop&#39;</span><span class="p">)</span>
543 </pre></div>
544 </div>
545 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">233168</span>
546 </pre></div>
547 </div>
548 </section>
549 <section id="a-little-further-analysis-renders-iteration-unnecessary">
550 <h2>A little further analysis renders iteration unnecessary.<a class="headerlink" href="#a-little-further-analysis-renders-iteration-unnecessary" title="Permalink to this headline">¶</a></h2>
551 <p>Consider finding the sum of the positive integers less than or equal to
552 ten.</p>
553 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[10 9 8 7 6 5 4 3 2 1] sum&#39;</span><span class="p">)</span>
554 </pre></div>
555 </div>
556 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">55</span>
557 </pre></div>
558 </div>
559 <p>Instead of summing them,
560 <a class="reference external" href="https://en.wikipedia.org/wiki/File:Animated_proof_for_the_formula_giving_the_sum_of_the_first_integers_1%2B2%2B...%2Bn.gif">observe</a>:</p>
561 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>  <span class="mi">10</span>  <span class="mi">9</span>  <span class="mi">8</span>  <span class="mi">7</span>  <span class="mi">6</span>
562 <span class="o">+</span>  <span class="mi">1</span>  <span class="mi">2</span>  <span class="mi">3</span>  <span class="mi">4</span>  <span class="mi">5</span>
563 <span class="o">----</span> <span class="o">--</span> <span class="o">--</span> <span class="o">--</span> <span class="o">--</span>
564   <span class="mi">11</span> <span class="mi">11</span> <span class="mi">11</span> <span class="mi">11</span> <span class="mi">11</span>
565
566   <span class="mi">11</span> <span class="o">*</span> <span class="mi">5</span> <span class="o">=</span> <span class="mi">55</span>
567 </pre></div>
568 </div>
569 <p>From the above example we can deduce that the sum of the first N
570 positive integers is:</p>
571 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">N</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="n">N</span> <span class="o">/</span> <span class="mi">2</span>
572 </pre></div>
573 </div>
574 <p>(The formula also works for odd values of N, I’ll leave that to you if
575 you want to work it out or you can take my word for it.)</p>
576 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;F == dup ++ * 2 floordiv&#39;</span><span class="p">)</span>
577 </pre></div>
578 </div>
579 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">V</span><span class="p">(</span><span class="s1">&#39;10 F&#39;</span><span class="p">)</span>
580 </pre></div>
581 </div>
582 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>      <span class="o">.</span> <span class="mi">10</span> <span class="n">F</span>
583    <span class="mi">10</span> <span class="o">.</span> <span class="n">F</span>
584    <span class="mi">10</span> <span class="o">.</span> <span class="n">dup</span> <span class="o">++</span> <span class="o">*</span> <span class="mi">2</span> <span class="n">floordiv</span>
585 <span class="mi">10</span> <span class="mi">10</span> <span class="o">.</span> <span class="o">++</span> <span class="o">*</span> <span class="mi">2</span> <span class="n">floordiv</span>
586 <span class="mi">10</span> <span class="mi">11</span> <span class="o">.</span> <span class="o">*</span> <span class="mi">2</span> <span class="n">floordiv</span>
587   <span class="mi">110</span> <span class="o">.</span> <span class="mi">2</span> <span class="n">floordiv</span>
588 <span class="mi">110</span> <span class="mi">2</span> <span class="o">.</span> <span class="n">floordiv</span>
589    <span class="mi">55</span> <span class="o">.</span>
590 </pre></div>
591 </div>
592 <p>We can apply the same reasoning to the PE1 problem.</p>
593 <p>Between 0 and 990 inclusive there are sixty-six “blocks” of seven terms
594 each, starting with:</p>
595 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="mi">3</span> <span class="mi">5</span> <span class="mi">6</span> <span class="mi">9</span> <span class="mi">10</span> <span class="mi">12</span> <span class="mi">15</span><span class="p">]</span>
596 </pre></div>
597 </div>
598 <p>And ending with:</p>
599 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="mi">978</span> <span class="mi">980</span> <span class="mi">981</span> <span class="mi">984</span> <span class="mi">985</span> <span class="mi">987</span> <span class="mi">990</span><span class="p">]</span>
600 </pre></div>
601 </div>
602 <p>If we reverse one of these two blocks and sum pairs…</p>
603 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip&#39;</span><span class="p">)</span>
604 </pre></div>
605 </div>
606 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="mi">978</span> <span class="mi">15</span><span class="p">]</span> <span class="p">[</span><span class="mi">980</span> <span class="mi">12</span><span class="p">]</span> <span class="p">[</span><span class="mi">981</span> <span class="mi">10</span><span class="p">]</span> <span class="p">[</span><span class="mi">984</span> <span class="mi">9</span><span class="p">]</span> <span class="p">[</span><span class="mi">985</span> <span class="mi">6</span><span class="p">]</span> <span class="p">[</span><span class="mi">987</span> <span class="mi">5</span><span class="p">]</span> <span class="p">[</span><span class="mi">990</span> <span class="mi">3</span><span class="p">]]</span>
607 </pre></div>
608 </div>
609 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map&#39;</span><span class="p">)</span>
610 </pre></div>
611 </div>
612 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="mi">993</span> <span class="mi">992</span> <span class="mi">991</span> <span class="mi">993</span> <span class="mi">991</span> <span class="mi">992</span> <span class="mi">993</span><span class="p">]</span>
613 </pre></div>
614 </div>
615 <p>(Interesting that the sequence of seven numbers appears again in the
616 rightmost digit of each term.)</p>
617 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[ 3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map sum&#39;</span><span class="p">)</span>
618 </pre></div>
619 </div>
620 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">6945</span>
621 </pre></div>
622 </div>
623 <p>Since there are sixty-six blocks and we are pairing them up, there must
624 be thirty-three pairs, each of which sums to 6945. We also have these
625 additional unpaired terms between 990 and 1000:</p>
626 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">993</span> <span class="mi">995</span> <span class="mi">996</span> <span class="mi">999</span>
627 </pre></div>
628 </div>
629 <p>So we can give the “sum of all the multiples of 3 or 5 below 1000” like
630 so:</p>
631 <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;6945 33 * [993 995 996 999] cons sum&#39;</span><span class="p">)</span>
632 </pre></div>
633 </div>
634 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">233168</span>
635 </pre></div>
636 </div>
637 <p>It’s worth noting, I think, that this same reasoning holds for any two
638 numbers <span class="math notranslate nohighlight">\(n\)</span> and <span class="math notranslate nohighlight">\(m\)</span> the multiples of which we hope to sum.
639 The multiples would have a cycle of differences of length <span class="math notranslate nohighlight">\(k\)</span> and
640 so we could compute the sum of <span class="math notranslate nohighlight">\(Nk\)</span> multiples as above.</p>
641 <p>The sequence of differences will always be a palidrome. Consider an
642 interval spanning the least common multiple of <span class="math notranslate nohighlight">\(n\)</span> and <span class="math notranslate nohighlight">\(m\)</span>:</p>
643 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">|</span>   <span class="o">|</span>   <span class="o">|</span>   <span class="o">|</span>   <span class="o">|</span>   <span class="o">|</span>   <span class="o">|</span>   <span class="o">|</span>
644 <span class="o">|</span>      <span class="o">|</span>      <span class="o">|</span>      <span class="o">|</span>      <span class="o">|</span>
645 </pre></div>
646 </div>
647 <p>Here we have 4 and 7, and you can read off the sequence of differences
648 directly from the diagram: 4 3 1 4 2 2 4 1 3 4.</p>
649 <p>Geometrically, the actual values of <span class="math notranslate nohighlight">\(n\)</span> and <span class="math notranslate nohighlight">\(m\)</span> and their
650 <em>lcm</em> don’t matter, the pattern they make will always be symmetrical
651 around its midpoint. The same reasoning holds for multiples of more than
652 two numbers.</p>
653 </section>
654 <section id="the-simplest-program">
655 <h2>The Simplest Program<a class="headerlink" href="#the-simplest-program" title="Permalink to this headline">¶</a></h2>
656 <p>Of course, the simplest joy program for the first Project Euler problem
657 is just:</p>
658 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">PE1</span> <span class="o">==</span> <span class="mi">233168</span>
659 </pre></div>
660 </div>
661 <p>Fin.</p>
662 </section>
663 </section>
664
665
666           </div>
667           
668         </div>
669       </div>
670       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
671         <div class="sphinxsidebarwrapper">
672 <h1 class="logo"><a href="../index.html">Thun</a></h1>
673
674
675
676
677
678
679
680
681 <h3>Navigation</h3>
682 <ul class="current">
683 <li class="toctree-l1"><a class="reference internal" href="Intro.html">Thun: Joy in Python</a></li>
684 <li class="toctree-l1"><a class="reference internal" href="../joy.html">Joy Interpreter</a></li>
685 <li class="toctree-l1"><a class="reference internal" href="../stack.html">Stack or Quote or Sequence or List…</a></li>
686 <li class="toctree-l1"><a class="reference internal" href="../parser.html">Parsing Text into Joy Expressions</a></li>
687 <li class="toctree-l1"><a class="reference internal" href="../pretty.html">Tracing Joy Execution</a></li>
688 <li class="toctree-l1"><a class="reference internal" href="../library.html">Function Reference</a></li>
689 <li class="toctree-l1"><a class="reference internal" href="../lib.html">Functions Grouped by, er, Function with Examples</a></li>
690 <li class="toctree-l1"><a class="reference internal" href="../types.html">Type Inference of Joy Expressions</a></li>
691 <li class="toctree-l1 current"><a class="reference internal" href="index.html">Essays about Programming in Joy</a><ul class="current">
692 <li class="toctree-l2 current"><a class="current reference internal" href="#">Developing a Program in Joy</a></li>
693 <li class="toctree-l2"><a class="reference internal" href="Quadratic.html">Quadratic formula</a></li>
694 <li class="toctree-l2"><a class="reference internal" href="Replacing.html">Replacing Functions in the Dictionary</a></li>
695 <li class="toctree-l2"><a class="reference internal" href="Recursion_Combinators.html">Recursion Combinators</a></li>
696 <li class="toctree-l2"><a class="reference internal" href="Ordered_Binary_Trees.html">Treating Trees I: Ordered Binary Trees</a></li>
697 <li class="toctree-l2"><a class="reference internal" href="Treestep.html">Treating Trees II: <code class="docutils literal notranslate"><span class="pre">treestep</span></code></a></li>
698 <li class="toctree-l2"><a class="reference internal" href="Generator_Programs.html">Using <code class="docutils literal notranslate"><span class="pre">x</span></code> to Generate Values</a></li>
699 <li class="toctree-l2"><a class="reference internal" href="Newton-Raphson.html">Newton’s method</a></li>
700 <li class="toctree-l2"><a class="reference internal" href="Zipper.html">Traversing Datastructures with Zippers</a></li>
701 <li class="toctree-l2"><a class="reference internal" href="Types.html">The Blissful Elegance of Typing Joy</a></li>
702 <li class="toctree-l2"><a class="reference internal" href="TypeChecking.html">Type Checking</a></li>
703 <li class="toctree-l2"><a class="reference internal" href="NoUpdates.html">No Updates</a></li>
704 <li class="toctree-l2"><a class="reference internal" href="Categorical.html">Categorical Programming</a></li>
705 <li class="toctree-l2"><a class="reference internal" href="The_Four_Operations.html">The Four Fundamental Operations of Definite Action</a></li>
706 <li class="toctree-l2"><a class="reference internal" href="Derivatives_of_Regular_Expressions.html">∂RE</a></li>
707 </ul>
708 </li>
709 </ul>
710
711 <div class="relations">
712 <h3>Related Topics</h3>
713 <ul>
714   <li><a href="../index.html">Documentation overview</a><ul>
715   <li><a href="index.html">Essays about Programming in Joy</a><ul>
716       <li>Previous: <a href="index.html" title="previous chapter">Essays about Programming in Joy</a></li>
717       <li>Next: <a href="Quadratic.html" title="next chapter">Quadratic formula</a></li>
718   </ul></li>
719   </ul></li>
720 </ul>
721 </div>
722 <div id="searchbox" style="display: none" role="search">
723   <h3 id="searchlabel">Quick search</h3>
724     <div class="searchformwrapper">
725     <form class="search" action="../search.html" method="get">
726       <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
727       <input type="submit" value="Go" />
728     </form>
729     </div>
730 </div>
731 <script>$('#searchbox').show(0);</script>
732
733
734
735
736
737
738
739
740         </div>
741       </div>
742       <div class="clearer"></div>
743     </div>
744     <div class="footer" role="contentinfo">
745 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">
746 <img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" />
747 </a>
748 <br />
749 <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">Thun Documentation</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="https://joypy.osdn.io/" property="cc:attributionName" rel="cc:attributionURL">Simon Forman</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.<br />Based on a work at <a xmlns:dct="http://purl.org/dc/terms/" href="https://osdn.net/projects/joypy/" rel="dct:source">https://osdn.net/projects/joypy/</a>.
750       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 4.3.0.
751     </div>
752
753   </body>
754 </html>