update docstring

This commit is contained in:
2026-01-22 18:50:07 +01:00
parent d0eabd3252
commit 22cc4f2943
46 changed files with 3647 additions and 1624 deletions

View File

@@ -344,6 +344,26 @@
<span class="k">except</span><span class="p">:</span>
<span class="k">return</span> <span class="s1">&#39;&#39;</span></div>
<div class="viewcode-block" id="strs_between"><a class="viewcode-back" href="../../pylib.data.html#pylib.data.strs_between">[docs]</a><span class="k">def</span> <span class="nf">strs_between</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get text between two pattern.</span>
<span class="sd"> Text can be multi-line.</span>
<span class="sd"> :param text: text to search in</span>
<span class="sd"> :type text: str</span>
<span class="sd"> :param left: left pattern</span>
<span class="sd"> :type left: str</span>
<span class="sd"> :param right: right pattern</span>
<span class="sd"> :type right: str</span>
<span class="sd"> :returns: text between the left and right pattern</span>
<span class="sd"> :rtype: str</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">return</span> <span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="n">left</span><span class="o">+</span><span class="s1">&#39;(.+?)&#39;</span><span class="o">+</span><span class="n">right</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">DOTALL</span><span class="p">)</span>
<span class="k">except</span><span class="p">:</span>
<span class="k">return</span> <span class="s1">&#39;&#39;</span></div>
<div class="viewcode-block" id="str_to_list"><a class="viewcode-back" href="../../pylib.data.html#pylib.data.str_to_list">[docs]</a><span class="k">def</span> <span class="nf">str_to_list</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">delimiter</span><span class="o">=</span><span class="s1">&#39;;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">newline_replacement</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">):</span>
<span class="sa">r</span><span class="sd">&quot;&quot;&quot;Converts a string with block information into a list.</span>

File diff suppressed because it is too large Load Diff

View File

@@ -159,10 +159,10 @@
<div class="viewcode-block" id="cosine_wave"><a class="viewcode-back" href="../../pylib.function.html#pylib.function.cosine_wave">[docs]</a><span class="k">def</span> <span class="nf">cosine_wave</span><span class="p">(</span><span class="n">A</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">f</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">phi</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">D</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">degree</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="sa">r</span><span class="sd">&quot;&quot;&quot;A cosine wave is said to be sinusoidal, because,</span>
<span class="sd"> :math:`\cos(x) = \sin(x + \pi/2)`, which is also a sine wave with a</span>
<span class="sd"> phase-shift of π/2 radians. Because of this head start, it is often</span>
<span class="sd"> said that the cosine function leads the sine function or the sine</span>
<span class="sd"> lags the cosine.</span>
<span class="sd"> :math:`\cos(x) = \sin(x + \pi/2)`, which is also a sine wave with</span>
<span class="sd"> a phase-shift of π/2 radians. Because of this head start, it is</span>
<span class="sd"> often said that the cosine function leads the sine function or</span>
<span class="sd"> the sine lags the cosine.</span>
<span class="sd"> :param A: amplitude</span>
<span class="sd"> :type A: float or int</span>
@@ -195,22 +195,25 @@
<div class="viewcode-block" id="b_spline_basis"><a class="viewcode-back" href="../../pylib.function.html#pylib.function.b_spline_basis">[docs]</a><span class="k">def</span> <span class="nf">b_spline_basis</span><span class="p">(</span><span class="n">knots</span><span class="p">,</span> <span class="n">knot_span</span><span class="p">,</span> <span class="n">degree</span><span class="p">):</span>
<span class="sa">r</span><span class="sd">&quot;&quot;&quot;Cox-de Boor algorithm / recursion formula.</span>
<span class="sd"> Calculate the i-th B-spline basis function of degree p: N_{i,p}(u)</span>
<span class="sd"> Calculate the i-th B-spline basis function of degree p:</span>
<span class="sd"> :math:`N_{i,p}(u)`</span>
<span class="sd"> :param knots: Knot vector U. m + 1 non-decreasing numbers / knots,</span>
<span class="sd"> :math:`u_0 &lt;= u_1 &lt;= u_2 &lt;= ... &lt;= u_m`</span>
<span class="sd"> :math:`u_0 \le u_1 \le u_2 \le \dots \le u_m`</span>
<span class="sd"> :type knots: list</span>
<span class="sd"> :param knot_span: i-th knot span</span>
<span class="sd"> :type knot_span: int</span>
<span class="sd"> :param degree: degree of B-spline basis function</span>
<span class="sd"> :type degree: int</span>
<span class="sd"> :returns: B-spline basis function using variable, u \in [u_0, u_m]</span>
<span class="sd"> :returns: B-spline basis function using variable,</span>
<span class="sd"> :math:`u \in [u_0, u_m]`</span>
<span class="sd"> :rtype: function</span>
<span class="sd"> .. math::</span>
<span class="sd"> N_{i,0}(u) &amp;= \begin{cases} 1 &amp; \text{if } u_i \le u \lt u_{i+1} \\</span>
<span class="sd"> 0 &amp; \text{otherwise}\end{cases} \\</span>
<span class="sd"> N_{i,0}(u) &amp;= \begin{cases}</span>
<span class="sd"> 1 &amp; \text{if } u_i \le u \lt u_{i+1} \\</span>
<span class="sd"> 0 &amp; \text{otherwise}\end{cases} \\</span>
<span class="sd"> N_{i,p}(u) &amp;= \frac{u - u_i}{u_{i+p} - u_i} N_{i,p-1}(u) +</span>
<span class="sd"> \frac{u_{i+p+1} - u}{u_{i+p+1} - u_{i+1}} N_{i+1,p-1}(u)</span>
@@ -277,10 +280,10 @@
<span class="sd"> :param control_points: control points P, n + 1 control points</span>
<span class="sd"> :type control_points: list</span>
<span class="sd"> :param knots: Knot vector U. m + 1 non-decreasing numbers / knots,</span>
<span class="sd"> :math:`u_0 &lt;= u_1 &lt;= u_2 &lt;= ... &lt;= u_m`</span>
<span class="sd"> :math:`u_0 \le u_1 \le u_2 \le \dots \le u_m`</span>
<span class="sd"> :type knots: list</span>
<span class="sd"> :returns: B-spline curve using variable, u \in [u_0, u_m]</span>
<span class="sd"> :returns: B-spline curve using variable, :math:`u \in [u_0, u_m]`</span>
<span class="sd"> :rtype: function</span>
<span class="sd"> .. math::</span>
@@ -291,10 +294,11 @@
<span class="sd"> * the curve will not touch the first and last legs of the</span>
<span class="sd"> control polyline</span>
<span class="sd"> * the knot vector does not have any particular structure</span>
<span class="sd"> * for degree p, intervals [u_0, u_p) and [u_{n-p}, u_n) will not</span>
<span class="sd"> have &quot;full support&quot; of basis functions and are ignored when a</span>
<span class="sd"> B-spline curve is open. For open B-spline curves, the domain</span>
<span class="sd"> is inteval [u_p, u_{n-p}]</span>
<span class="sd"> * for degree p, intervals :math:`[u_0, u_p)` and</span>
<span class="sd"> :math:`[u_{n-p}, u_n)` will not have &quot;full support&quot; of basis</span>
<span class="sd"> functions and are ignored when a B-spline curve is open. For</span>
<span class="sd"> open B-spline curves, the domain is inteval</span>
<span class="sd"> :math:`[u_p, u_{n-p}]`</span>
<span class="sd"> * clamped B-spline curves, nonperiodic B-spline curves</span>
@@ -307,7 +311,7 @@
<span class="sd"> * the start and the end of the generated curve join together</span>
<span class="sd"> forming a closed loop</span>
<span class="sd"> * repeating some knots and control points # TODO: which?</span>
<span class="sd"> * repeating some knots and control points (TODO: which?)</span>
<span class="sd"> * uniform B-spline curves</span>
@@ -448,9 +452,9 @@
<span class="sd"> * *</span>
<span class="sd"> * * *</span>
<span class="sd"> &gt;&gt;&gt; x, y = hyotrochoid(20, 6, 6)[:2]</span>
<span class="sd"> &gt;&gt;&gt; x, y, _ = hyotrochoid(20, 6, 6)</span>
<span class="sd"> &gt;&gt;&gt; x, y, interval = hyotrochoid(20, 6, 6)</span>
<span class="sd"> &gt;&gt;&gt; x, y = hypotrochoid(20, 6, 6)[:2]</span>
<span class="sd"> &gt;&gt;&gt; x, y, _ = hypotrochoid(20, 6, 6)</span>
<span class="sd"> &gt;&gt;&gt; x, y, interval = hypotrochoid(20, 6, 6)</span>
<span class="sd"> .. seealso::</span>
<span class="sd"> :meth:`pylib.mathematics.lcm`</span>

View File

@@ -473,7 +473,7 @@
<span class="sd"> &gt;&gt;&gt; x, y = line((0, 0), (1, 0))</span>
<span class="sd"> &gt;&gt;&gt; print(x, y)</span>
<span class="sd"> ((0, 1), (0, 0))</span>
<span class="sd"> (0, 1) (0, 0)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">p1x</span><span class="p">,</span> <span class="n">p1y</span> <span class="o">=</span> <span class="n">point1</span>
<span class="n">p2x</span><span class="p">,</span> <span class="n">p2y</span> <span class="o">=</span> <span class="n">point2</span>

View File

@@ -58,18 +58,18 @@
<span class="sd"> :Example:</span>
<span class="sd"> &gt;&gt;&gt; with timeit(&#39;section_test&#39;):</span>
<span class="sd"> ... # code</span>
<span class="sd"> section_test took 0.006 ms</span>
<span class="sd"> ::</span>
<span class="sd"> with timeit(&#39;section_test&#39;):</span>
<span class="sd"> # code</span>
<span class="sd"> section_test took 0.006 ms</span>
<span class="sd"> @timeit(&#39;func&#39;)</span>
<span class="sd"> def func():</span>
<span class="sd"> # code</span>
<span class="sd"> &gt;&gt;&gt; func()</span>
<span class="sd"> func took 0.006 ms</span>
<span class="sd"> func()</span>
<span class="sd"> func took 0.006 ms</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="n">description</span>

View File

@@ -114,7 +114,7 @@
<span class="sd"> &gt;&gt;&gt; m = vector([1, 2, 3])</span>
<span class="sd"> &gt;&gt;&gt; m *= vector([3, 3, 3])</span>
<span class="sd"> &gt;&gt;&gt; print(v)</span>
<span class="sd"> [[3, 3, 3], [6, 6, 6], [9, 9, 9]]</span>
<span class="sd"> 18</span>
<span class="sd"> &quot;&quot;&quot;</span>
<div class="viewcode-block" id="vector.__getitem__"><a class="viewcode-back" href="../../pylib.mathematics.html#pylib.mathematics.vector.__getitem__">[docs]</a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">):</span>
@@ -124,7 +124,7 @@
<span class="sd"> :Example:</span>
<span class="sd"> &gt;&gt;&gt; v = vector([1, 2, 3, 4, 5])</span>
<span class="sd"> &gt;&gt;&gt; v[1:3]</span>
<span class="sd"> &gt;&gt;&gt; print(v[1:3])</span>
<span class="sd"> [2, 3]</span>
<span class="sd"> &gt;&gt;&gt; v = vector([1, 2, 3, 4, 5])</span>
<span class="sd"> &gt;&gt;&gt; v[3]</span>
@@ -440,12 +440,15 @@
<span class="sd"> :Example:</span>
<span class="sd"> &gt;&gt;&gt; import random</span>
<span class="sd"> &gt;&gt;&gt; random.seed(1)</span>
<span class="sd"> &gt;&gt;&gt; v = vector.random(3)</span>
<span class="sd"> &gt;&gt;&gt; print(v)</span>
<span class="sd"> [0.9172905912930438, 0.8908124278322492, 0.5256002790725927]</span>
<span class="sd"> [0.13436424411240122, 0.8474337369372327, 0.763774618976614]</span>
<span class="sd"> &gt;&gt;&gt; random.seed(1)</span>
<span class="sd"> &gt;&gt;&gt; v = vector.random(3, 1, 2)</span>
<span class="sd"> &gt;&gt;&gt; print(v)</span>
<span class="sd"> [1.2563665665080803, 1.9270454509964547, 1.2381672401270487]</span>
<span class="sd"> [1.134364244112401, 1.8474337369372327, 1.7637746189766141]</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">random</span>
<span class="n">dl</span> <span class="o">=</span> <span class="n">lmax</span><span class="o">-</span><span class="n">lmin</span>
@@ -673,8 +676,7 @@
<span class="sd"> :Example:</span>
<span class="sd"> &gt;&gt;&gt; m = matrix([[1, 2, 3, 0], [4, 5, 6, 0], [7, 8, 9, 0], \</span>
<span class="sd"> [0, 0, 0, 0]])</span>
<span class="sd"> &gt;&gt;&gt; m = matrix([[1, 2, 3, 0], [4, 5, 6, 0], [7, 8, 9, 0], [0, 0, 0, 0]])</span>
<span class="sd"> &gt;&gt;&gt; print(m[:])</span>
<span class="sd"> [[1, 2, 3, 0], [4, 5, 6, 0], [7, 8, 9, 0], [0, 0, 0, 0]]</span>
<span class="sd"> &gt;&gt;&gt; print(m[2])</span>
@@ -737,20 +739,16 @@
<span class="sd"> :Example:</span>
<span class="sd"> &gt;&gt;&gt; m = matrix([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], \</span>
<span class="sd"> [0, 0, 0, 1]]) * 5</span>
<span class="sd"> &gt;&gt;&gt; m = matrix([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [0, 0, 0, 1]]) * 5</span>
<span class="sd"> &gt;&gt;&gt; print(m)</span>
<span class="sd"> [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60], [0, 0, 0, 5]]</span>
<span class="sd"> &gt;&gt;&gt; m = matrix([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], \</span>
<span class="sd"> [0, 0, 0, 1]]) * 5.</span>
<span class="sd"> &gt;&gt;&gt; m = matrix([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [0, 0, 0, 1]]) * 5.</span>
<span class="sd"> &gt;&gt;&gt; print(m)</span>
<span class="sd"> [[5.0, 10.0, 15.0, 20.0], [25.0, 30.0, 35.0, 40.0], [45.0, 50.0, 55.0, 60.0], [0.0, 0.0, 0.0, 5.0]]</span>
<span class="sd"> &gt;&gt;&gt; v = matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) * \</span>
<span class="sd"> vector([12, 12, 13])</span>
<span class="sd"> &gt;&gt;&gt; v = matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) * vector([12, 12, 13])</span>
<span class="sd"> &gt;&gt;&gt; print(v)</span>
<span class="sd"> [75, 186, 297]</span>
<span class="sd"> &gt;&gt;&gt; m = matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) * \</span>
<span class="sd"> matrix([[12, 12, 13], [14, 15, 16], [17, 18, 19]])</span>
<span class="sd"> &gt;&gt;&gt; m = matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) * matrix([[12, 12, 13], [14, 15, 16], [17, 18, 19]])</span>
<span class="sd"> &gt;&gt;&gt; print(m)</span>
<span class="sd"> [[91, 96, 102], [220, 231, 246], [349, 366, 390]]</span>
@@ -784,12 +782,10 @@
<span class="sd"> :Example:</span>
<span class="sd"> &gt;&gt;&gt; m = 5 * matrix([[1, 2, 3, 4], [5, 6, 7, 8], \</span>
<span class="sd"> [9, 10, 11, 12], [0, 0, 0, 1]])</span>
<span class="sd"> &gt;&gt;&gt; m = 5 * matrix([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [0, 0, 0, 1]])</span>
<span class="sd"> &gt;&gt;&gt; print(m)</span>
<span class="sd"> [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60], [0, 0, 0, 5]]</span>
<span class="sd"> &gt;&gt;&gt; m = 5. * matrix([[1, 2, 3, 4], [5, 6, 7, 8], \</span>
<span class="sd"> [9, 10, 11, 12], [0, 0, 0, 1]])</span>
<span class="sd"> &gt;&gt;&gt; m = 5. * matrix([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [0, 0, 0, 1]])</span>
<span class="sd"> &gt;&gt;&gt; print(m)</span>
<span class="sd"> [[5.0, 10.0, 15.0, 20.0], [25.0, 30.0, 35.0, 40.0], [45.0, 50.0, 55.0, 60.0], [0.0, 0.0, 0.0, 5.0]]</span>

View File

@@ -132,7 +132,7 @@
<span class="sd"> numerical solution</span>
<span class="sd"> &gt;&gt;&gt; f = lambda(x): x**2</span>
<span class="sd"> &gt;&gt;&gt; f = lambda x: x**2</span>
<span class="sd"> &gt;&gt;&gt; trapez(f, 0, 1, 1)</span>
<span class="sd"> 0.5</span>
<span class="sd"> &gt;&gt;&gt; trapez(f, 0, 1, 10)</span>