add sequence function seq

This commit is contained in:
2019-10-14 09:21:21 +02:00
parent b95f2d1bb0
commit 3309613871
10 changed files with 189 additions and 18 deletions

View File

@@ -35,13 +35,13 @@
<h1>Source code for data</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="sd">&quot;&quot;&quot;Read and write data to or from file.</span>
<span class="sd">&quot;&quot;&quot;Read and write data to or from file and manipulate data structures.</span>
<span class="sd">:Date: 2019-07-29</span>
<span class="sd">:Date: 2019-10-11</span>
<span class="sd">.. module:: data</span>
<span class="sd"> :platform: *nix, Windows</span>
<span class="sd"> :synopsis: Handle data files.</span>
<span class="sd"> :synopsis: Handle data files and structures.</span>
<span class="sd">.. moduleauthor:: Daniel Weschke &lt;daniel.weschke@directbox.de&gt;</span>
<span class="sd">&quot;&quot;&quot;</span>
@@ -155,6 +155,34 @@
<span class="n">length</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">k</span><span class="o">/</span><span class="n">n</span><span class="p">)</span>
<span class="k">return</span> <span class="p">[</span><span class="n">lst</span><span class="p">[</span><span class="n">i</span><span class="o">*</span><span class="n">n</span><span class="p">:</span><span class="n">i</span><span class="o">*</span><span class="n">n</span><span class="o">+</span><span class="n">n</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">length</span><span class="p">)]</span></div>
<div class="viewcode-block" id="seq"><a class="viewcode-back" href="../data.html#data.seq">[docs]</a><span class="k">def</span> <span class="nf">seq</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">stop</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">step</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="sa">r</span><span class="sd">&quot;&quot;&quot;Create an arithmetic bounded sequence.</span>
<span class="sd"> The sequence is one of the following;</span>
<span class="sd"> - empty :math:`\{\}=\emptyset`, if start and stop are the same</span>
<span class="sd"> - degenerate :math:`\{a\}`, if the sequence has only one element.</span>
<span class="sd"> - left-close and right-open :math:`[a, b)`</span>
<span class="sd"> :param start: start of the sequence, the lower bound. If only start</span>
<span class="sd"> is given than it is interpreted as stop and start will be 0.</span>
<span class="sd"> :type start: int or float</span>
<span class="sd"> :param stop: stop of sequence, the upper bound.</span>
<span class="sd"> :type stop: int or float</span>
<span class="sd"> :param step: step size, the common difference (constant difference</span>
<span class="sd"> between consecutive terms).</span>
<span class="sd"> :type step: int or float</span>
<span class="sd"> :returns: arithmetic bounded sequence</span>
<span class="sd"> :rtype: list</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">stop</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="n">seq</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
<span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">ceil</span><span class="p">((</span><span class="n">stop</span> <span class="o">-</span> <span class="n">start</span><span class="p">)</span><span class="o">/</span><span class="nb">float</span><span class="p">(</span><span class="n">step</span><span class="p">)))</span>
<span class="n">lst</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">if</span> <span class="n">n</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">lst</span> <span class="o">=</span> <span class="p">[</span><span class="n">start</span> <span class="o">+</span> <span class="n">step</span><span class="o">*</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">)]</span>
<span class="k">return</span> <span class="n">lst</span></div>
<div class="viewcode-block" id="unique_ending"><a class="viewcode-back" href="../data.html#data.unique_ending">[docs]</a><span class="k">def</span> <span class="nf">unique_ending</span><span class="p">(</span><span class="n">ids</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="sd">&quot;&quot;&quot;From id list get list with unique ending.</span>

View File

@@ -37,7 +37,7 @@
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="sd">&quot;&quot;&quot;2D geometry objects.</span>
<span class="sd">:Date: 2019-08-20</span>
<span class="sd">:Date: 2019-08-28</span>
<span class="sd">.. module:: geometry</span>
<span class="sd"> :platform: *nix, Windows</span>
@@ -49,6 +49,36 @@
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<div class="viewcode-block" id="distance"><a class="viewcode-back" href="../geometry.html#geometry.distance">[docs]</a><span class="k">def</span> <span class="nf">distance</span><span class="p">(</span><span class="n">point1</span><span class="p">,</span> <span class="n">point2</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Distance between two points (or length of a straight line).</span>
<span class="sd"> :param point1: first point (first end point of straight line)</span>
<span class="sd"> :type point1: tuple</span>
<span class="sd"> :param point2: second point (second end point of straight line)</span>
<span class="sd"> :type point2: tuple</span>
<span class="sd"> :returns: distance between the two points</span>
<span class="sd"> :rtype: float</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">((</span><span class="n">point2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="n">point1</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="p">(</span><span class="n">point2</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">point1</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span></div>
<div class="viewcode-block" id="angle"><a class="viewcode-back" href="../geometry.html#geometry.angle">[docs]</a><span class="k">def</span> <span class="nf">angle</span><span class="p">(</span><span class="n">point1</span><span class="p">,</span> <span class="n">point2</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Angle of point or between two points.</span>
<span class="sd"> :param point1: (first) point</span>
<span class="sd"> :type point1: tuple</span>
<span class="sd"> :param point2: second point (default = None)</span>
<span class="sd"> :type point2: tuple</span>
<span class="sd"> :returns: angle of point or between two points</span>
<span class="sd"> :rtype: float</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">point2</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">atan2</span><span class="p">(</span><span class="n">point1</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">point1</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">atan2</span><span class="p">(</span><span class="n">point2</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">point1</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">point2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="n">point1</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span></div>
<div class="viewcode-block" id="translate"><a class="viewcode-back" href="../geometry.html#geometry.translate">[docs]</a><span class="k">def</span> <span class="nf">translate</span><span class="p">(</span><span class="n">vec</span><span class="p">,</span> <span class="o">*</span><span class="n">pts</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Translate a point or polygon by a given vector.</span>
@@ -316,7 +346,7 @@
<span class="k">if</span> <span class="s1">&#39;global_deformation&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
<span class="n">lr</span> <span class="o">=</span> <span class="p">[(</span><span class="n">pts</span><span class="p">[</span><span class="n">l</span><span class="o">-</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;index_offset&#39;</span><span class="p">]],</span>
<span class="n">pts</span><span class="p">[</span><span class="n">r</span><span class="o">-</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;index_offset&#39;</span><span class="p">]])</span> <span class="k">for</span> <span class="n">l</span><span class="p">,</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;inc&#39;</span><span class="p">]]</span>
<span class="n">ang</span> <span class="o">=</span> <span class="p">[</span><span class="n">math</span><span class="o">.</span><span class="n">atan2</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">l</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="n">l</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="k">for</span> <span class="n">l</span><span class="p">,</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">lr</span><span class="p">]</span>
<span class="n">ang</span> <span class="o">=</span> <span class="p">[</span><span class="n">angle</span><span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span> <span class="k">for</span> <span class="n">l</span><span class="p">,</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">lr</span><span class="p">]</span>
<span class="c1"># system deformation</span>
<span class="n">U</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;global_deformation&#39;</span><span class="p">]</span>
<span class="k">if</span> <span class="s1">&#39;rotation_plane&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span> <span class="ow">and</span> <span class="s1">&#39;xz&#39;</span> <span class="o">==</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;rotation_plane&#39;</span><span class="p">]:</span>

View File

@@ -47,7 +47,9 @@
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">math</span>
<span class="kn">import</span> <span class="nn">pylab</span>
<span class="kn">from</span> <span class="nn">geometry</span> <span class="k">import</span> <span class="n">line</span><span class="p">,</span> <span class="n">interpolate_hermite</span><span class="p">,</span> <span class="n">rotate_xy</span><span class="p">,</span> <span class="n">translate_xy</span>
<span class="kn">from</span> <span class="nn">geometry</span> <span class="k">import</span> <span class="p">(</span>
<span class="n">distance</span><span class="p">,</span> <span class="n">angle</span><span class="p">,</span> <span class="n">line</span><span class="p">,</span> <span class="n">interpolate_hermite</span><span class="p">,</span> <span class="n">rotate_xy</span><span class="p">,</span> <span class="n">translate_xy</span>
<span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="s1">&#39;dark_background&#39;</span><span class="p">)</span>
<span class="n">pylab</span><span class="o">.</span><span class="n">rcParams</span><span class="p">[</span><span class="s1">&#39;grid.color&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;gray&#39;</span>
@@ -109,8 +111,8 @@
<span class="k">for</span> <span class="n">ln</span> <span class="ow">in</span> <span class="n">lns</span><span class="p">:</span>
<span class="n">l</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="n">d</span> <span class="o">=</span> <span class="n">ln</span>
<span class="n">L</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">((</span><span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="n">l</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">l</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
<span class="n">ang</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">atan2</span><span class="p">(</span><span class="n">r</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">l</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">r</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="n">l</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="n">L</span> <span class="o">=</span> <span class="n">distance</span><span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="n">ang</span> <span class="o">=</span> <span class="n">angle</span><span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">interpolate_hermite</span><span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">d</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span>
<span class="n">scale_x</span><span class="o">=</span><span class="n">L</span><span class="p">,</span> <span class="n">scale_y</span><span class="o">=</span><span class="n">factor</span><span class="p">,</span> <span class="n">samples</span><span class="o">=</span><span class="n">samples</span><span class="p">)</span>
<span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">rotate_xy</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">ang</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>

View File

@@ -34,10 +34,10 @@
<div class="section" id="module-data">
<span id="data-module"></span><h1>data module<a class="headerlink" href="#module-data" title="Permalink to this headline"></a></h1>
<p>Read and write data to or from file.</p>
<p>Read and write data to or from file and manipulate data structures.</p>
<dl class="field-list simple">
<dt class="field-odd">Date</dt>
<dd class="field-odd"><p>2019-07-29</p>
<dd class="field-odd"><p>2019-10-11</p>
</dd>
</dl>
<span class="target" id="module-data"></span><dl class="function">
@@ -125,6 +125,35 @@ array. m = k / n</p>
</dl>
</dd></dl>
<dl class="function">
<dt id="data.seq">
<code class="sig-name descname">seq</code><span class="sig-paren">(</span><em class="sig-param">start</em>, <em class="sig-param">stop=None</em>, <em class="sig-param">step=1</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/data.html#seq"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#data.seq" title="Permalink to this definition"></a></dt>
<dd><p>Create an arithmetic bounded sequence.</p>
<p>The sequence is one of the following;</p>
<ul class="simple">
<li><p>empty <span class="math notranslate nohighlight">\(\{\}=\emptyset\)</span>, if start and stop are the same</p></li>
<li><p>degenerate <span class="math notranslate nohighlight">\(\{a\}\)</span>, if the sequence has only one element.</p></li>
<li><p>left-close and right-open <span class="math notranslate nohighlight">\([a, b)\)</span></p></li>
</ul>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>start</strong> (<em>int</em><em> or </em><em>float</em>) start of the sequence, the lower bound. If only start
is given than it is interpreted as stop and start will be 0.</p></li>
<li><p><strong>stop</strong> (<em>int</em><em> or </em><em>float</em>) stop of sequence, the upper bound.</p></li>
<li><p><strong>step</strong> (<em>int</em><em> or </em><em>float</em>) step size, the common difference (constant difference
between consecutive terms).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>arithmetic bounded sequence</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>list</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="data.store">
<code class="sig-name descname">store</code><span class="sig-paren">(</span><em class="sig-param">file_name</em>, <em class="sig-param">object_data</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/data.html#store"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#data.store" title="Permalink to this definition"></a></dt>

View File

@@ -59,6 +59,10 @@
</div>
<h2 id="A">A</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="geometry.html#geometry.angle">angle() (in module geometry)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="date.html#date.ascension_of_jesus">ascension_of_jesus() (in module date)</a>
</li>
@@ -88,15 +92,17 @@
</li>
<li><a href="time_of_day.html#time_of_day.days">days() (in module time_of_day)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="time_of_day.html#time_of_day.days_norm">days_norm() (in module time_of_day)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="numerical.html#numerical.ode_model.disk">disk() (in module numerical.ode_model)</a>
</li>
<li><a href="numerical.html#numerical.ode_model.disk_nm">disk_nm() (in module numerical.ode_model)</a>
</li>
<li><a href="numerical.html#numerical.ode_model.disk_nmmdk">disk_nmmdk() (in module numerical.ode_model)</a>
</li>
<li><a href="geometry.html#geometry.distance">distance() (in module geometry)</a>
</li>
</ul></td>
</tr></table>
@@ -284,6 +290,8 @@
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="data.html#data.seq">seq() (in module data)</a>
</li>
<li><a href="geometry.html#geometry.square">square() (in module geometry)</a>
</li>
<li><a href="data.html#data.store">store() (in module data)</a>

View File

@@ -37,10 +37,30 @@
<p>2D geometry objects.</p>
<dl class="field-list simple">
<dt class="field-odd">Date</dt>
<dd class="field-odd"><p>2019-08-20</p>
<dd class="field-odd"><p>2019-08-28</p>
</dd>
</dl>
<span class="target" id="module-geometry"></span><dl class="function">
<dt id="geometry.angle">
<code class="sig-name descname">angle</code><span class="sig-paren">(</span><em class="sig-param">point1</em>, <em class="sig-param">point2=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/geometry.html#angle"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#geometry.angle" title="Permalink to this definition"></a></dt>
<dd><p>Angle of point or between two points.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>point1</strong> (<em>tuple</em>) (first) point</p></li>
<li><p><strong>point2</strong> (<em>tuple</em>) second point (default = None)</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>angle of point or between two points</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="geometry.cubic">
<code class="sig-name descname">cubic</code><span class="sig-paren">(</span><em class="sig-param">point1</em>, <em class="sig-param">angle1</em>, <em class="sig-param">point2</em>, <em class="sig-param">angle2</em>, <em class="sig-param">samples=10</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/geometry.html#cubic"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#geometry.cubic" title="Permalink to this definition"></a></dt>
<dd><p>Cubic line defined by two end points and the rotation in radians
@@ -141,6 +161,26 @@ decides what the left and the right end point of the line is.</p></li>
</dl>
</dd></dl>
<dl class="function">
<dt id="geometry.distance">
<code class="sig-name descname">distance</code><span class="sig-paren">(</span><em class="sig-param">point1</em>, <em class="sig-param">point2</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/geometry.html#distance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#geometry.distance" title="Permalink to this definition"></a></dt>
<dd><p>Distance between two points (or length of a straight line).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>point1</strong> (<em>tuple</em>) first point (first end point of straight line)</p></li>
<li><p><strong>point2</strong> (<em>tuple</em>) second point (second end point of straight line)</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>distance between the two points</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="geometry.interpolate_hermite">
<code class="sig-name descname">interpolate_hermite</code><span class="sig-paren">(</span><em class="sig-param">lvd</em>, <em class="sig-param">lr</em>, <em class="sig-param">rvd</em>, <em class="sig-param">rr</em>, <em class="sig-param">lhd=0</em>, <em class="sig-param">rhd=0</em>, <em class="sig-param">scale_x=1</em>, <em class="sig-param">scale_y=1</em>, <em class="sig-param">samples=10</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/geometry.html#interpolate_hermite"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#geometry.interpolate_hermite" title="Permalink to this definition"></a></dt>

Binary file not shown.

View File

@@ -60,7 +60,7 @@
<td></td>
<td>
<a href="data.html#module-data"><code class="xref">data</code></a> <em>(*nix, Windows)</em></td><td>
<em>Handle data files.</em></td></tr>
<em>Handle data files and structures.</em></td></tr>
<tr>
<td></td>
<td>

File diff suppressed because one or more lines are too long

View File

@@ -1,12 +1,12 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Read and write data to or from file.
"""Read and write data to or from file and manipulate data structures.
:Date: 2019-07-29
:Date: 2019-10-11
.. module:: data
:platform: *nix, Windows
:synopsis: Handle data files.
:synopsis: Handle data files and structures.
.. moduleauthor:: Daniel Weschke <daniel.weschke@directbox.de>
"""
@@ -120,6 +120,40 @@ def fold_list(lst, n):
length = int(k/n)
return [lst[i*n:i*n+n] for i in range(length)]
def seq(start, stop=None, step=1):
r"""Create an arithmetic bounded sequence.
The sequence is one of the following;
- empty :math:`\{\}=\emptyset`, if start and stop are the same
- degenerate :math:`\{a\}`, if the sequence has only one element.
- left-close and right-open :math:`[a, b)`
:param start: start of the sequence, the lower bound. If only start
is given than it is interpreted as stop and start will be 0.
:type start: int or float
:param stop: stop of sequence, the upper bound.
:type stop: int or float
:param step: step size, the common difference (constant difference
between consecutive terms).
:type step: int or float
:returns: arithmetic bounded sequence
:rtype: list
"""
if stop is None:
return seq(0, start, step)
step_str = str(step)
exponent = 0
if '.' in step_str:
exponent = len(step_str.split('.')[1])
n = int(math.ceil((stop - start)/float(step)))
lst = []
if n > 0:
lst = [round(start + step*i, exponent) for i in range(n)]
return lst
def unique_ending(ids, n=1):
"""From id list get list with unique ending.