summaryrefslogtreecommitdiff
path: root/macros/generic/polexpr/polexpr-changes.html
diff options
context:
space:
mode:
Diffstat (limited to 'macros/generic/polexpr/polexpr-changes.html')
-rw-r--r--macros/generic/polexpr/polexpr-changes.html629
1 files changed, 629 insertions, 0 deletions
diff --git a/macros/generic/polexpr/polexpr-changes.html b/macros/generic/polexpr/polexpr-changes.html
new file mode 100644
index 0000000000..51392f6565
--- /dev/null
+++ b/macros/generic/polexpr/polexpr-changes.html
@@ -0,0 +1,629 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
+
+ <title>CHANGES &#8212; polexpr 0.8.7 documentation</title>
+ <link rel="stylesheet" type="text/css" href="polexpr.css" />
+ <link rel="prev" title="polexpr reference" href="polexpr-ref.html" />
+ </head><body>
+ <div class="related" role="navigation" aria-label="related navigation">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="polexpr-ref.html" title="polexpr reference"
+ accesskey="P">previous</a></li>
+ <li class="nav-item nav-item-0"><a href="polexpr.html">polexpr 0.8.7 documentation</a> &#187;</li>
+ <li class="nav-item nav-item-this"><a href="">CHANGES</a></li>
+ </ul>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body" role="main">
+
+ <section id="changes">
+<h1>CHANGES</h1>
+<section id="v0-1-2018-01-11-initial-release-features">
+<span id="firstrelease"></span><h2>v0.1 (2018/01/11): initial release. Features:</h2>
+<ul class="simple">
+<li><p>The <a class="reference internal" href="polexpr-ref.html#poldef"><span class="std std-ref">\poldef</span></a> parser itself,</p></li>
+<li><p>Differentiation and anti-differentiation,</p></li>
+<li><p>Euclidean division and GCDs,</p></li>
+<li><p>Various utilities such as <a class="reference internal" href="polexpr-ref.html#polfromcsv"><span class="std std-ref">\PolFromCSV</span></a>,
+<a class="reference internal" href="polexpr-ref.html#polmapcoeffs"><span class="std std-ref">\PolMapCoeffs</span></a>,
+<a class="reference internal" href="polexpr-ref.html#poltocsv"><span class="std std-ref">\PolToCSV</span></a>, <a class="reference internal" href="polexpr-ref.html#poltoexpr"><span class="std std-ref">\PolToExpr</span></a>, …</p></li>
+</ul>
+<p>Only one-variable polynomials so far.</p>
+</section>
+<section id="v0-2-2018-01-14">
+<h2>v0.2 (2018/01/14)</h2>
+<ul class="simple">
+<li><p>Fix: <code class="docutils literal notranslate"><span class="pre">&quot;README</span> <span class="pre">thinks</span> <span class="pre">\numexpr</span> <span class="pre">recognizes</span> <span class="pre">^</span> <span class="pre">operator&quot;</span></code>.</p></li>
+<li><p>Convert README to reStructuredText markup.</p></li>
+<li><p>Move main documentation from README to separate <code class="docutils literal notranslate"><span class="pre">polexpr.txt</span></code> file.</p></li>
+<li><p>Provide <code class="docutils literal notranslate"><span class="pre">polexpr.html</span></code> as obtained via <a class="reference external" href="http://docutils.sourceforge.net/docs/index.html">DocUtils</a> <code class="docutils literal notranslate"><span class="pre">rst2html.py</span></code>.</p></li>
+<li><p>Convert README to (CTAN compatible) Markdown markup.</p></li>
+</ul>
+<p>Due to lack of available time the test suite might not be extensive
+enough. Bug reports are very welcome!</p>
+</section>
+<section id="v0-3-2018-01-17">
+<h2>v0.3 (2018/01/17)</h2>
+<ul>
+<li><p>bug fixes:</p>
+<ul>
+<li><p>the <code class="docutils literal notranslate"><span class="pre">0.1</span></code> <a class="reference internal" href="polexpr-ref.html#polevalat"><span class="std std-ref">\PolEval</span></a> accepted expressions for its
+second argument, but this was removed by mistake at <code class="docutils literal notranslate"><span class="pre">0.2</span></code>. Restored.</p>
+<p><strong>Attention</strong>: at <code class="docutils literal notranslate"><span class="pre">0.4</span></code> this has been reverted again, and
+<a class="reference internal" href="polexpr-ref.html#polevalatexpr"><span class="std std-ref">\PolEval{P}\AtExpr{foo}</span></a> syntax is needed for
+using expressions in the second argument.</p>
+</li>
+</ul>
+</li>
+<li><p>incompatible or breaking changes:</p>
+<ul class="simple">
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexpr"><span class="std std-ref">\PolToExpr</span></a> now by default uses <em>descending</em>
+powers (it also treats differently coefficients equal to 1 or -1.)
+Use <a class="reference internal" href="polexpr-ref.html#id78"><span class="std std-ref">\PolToExpr*</span></a> for <em>ascending</em> powers.</p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polevalat"><span class="std std-ref">\PolEval</span></a> reduced the output to smallest terms,
+but as this is costly with big fractions and not needed if e.g.
+wrapped in an <code class="docutils literal notranslate"><span class="pre">\xintRound</span></code> or <code class="docutils literal notranslate"><span class="pre">\xintFloat</span></code>, this step has been
+removed; the former meaning is available as
+<a class="reference internal" href="polexpr-ref.html#polevalreducedat"><span class="std std-ref">\PolEvalReduced</span></a>.</p></li>
+</ul>
+</li>
+<li><p>new (or newly documented) macros:</p>
+<ul class="simple">
+<li><p><a class="reference internal" href="polexpr-ref.html#poltypesetcmd"><span class="std std-ref">\PolTypesetCmd</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltypesetcmdprefix"><span class="std std-ref">\PolTypesetCmdPrefix</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltypesetmonomialcmd"><span class="std std-ref">\PolTypesetMonomialCmd</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polevalreducedat"><span class="std std-ref">\PolEvalReducedAt</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltofloatexpr"><span class="std std-ref">\PolToFloatExpr</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexproneterm"><span class="std std-ref">\PolToExprOneTerm</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltofloatexproneterm"><span class="std std-ref">\PolToFloatExprOneTerm</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexprcmd"><span class="std std-ref">\PolToExprCmd</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltofloatexprcmd"><span class="std std-ref">\PolToFloatExprCmd</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexprtermprefix"><span class="std std-ref">\PolToExprTermPrefix</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexprvar"><span class="std std-ref">\PolToExprVar</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexprtimes"><span class="std std-ref">\PolToExprTimes</span></a></p></li>
+</ul>
+</li>
+<li><p>improvements:</p>
+<ul>
+<li><p>documentation has a table of contents, internal hyperlinks,
+standardized signature notations and added explanations.</p></li>
+<li><p>one can do <code class="docutils literal notranslate"><span class="pre">\PolLet{g}={f}</span></code> or <code class="docutils literal notranslate"><span class="pre">\PolLet{g}{f}</span></code>.</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">\PolToExpr{f}</span></code> is highly customizable.</p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poldef"><span class="std std-ref">\poldef</span></a> and other defining macros prepare the
+polynomial functions for usage within <code class="docutils literal notranslate"><span class="pre">\xintthefloatexpr</span></code> (or
+<code class="docutils literal notranslate"><span class="pre">\xintdeffloatvar</span></code>). Coefficients are pre-rounded to the floating
+point precision. Indispensible for numerical algorithms, as exact
+fractions, even reduced, quickly become very big. See the documentation
+about how to use the exact polynomials also in floating point context.</p>
+<p><strong>Attention</strong>: this has been reverted at <code class="docutils literal notranslate"><span class="pre">0.4</span></code>. The macro
+<a class="reference internal" href="polexpr-ref.html#polgenfloatvariant"><span class="std std-ref">\PolGenFloatVariant</span></a> must be used for
+generation floating point polynomial functions.</p>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section id="v0-3-1-2018-01-18">
+<h2>v0.3.1 (2018/01/18)</h2>
+<p>Fixes two typos in example code included in the documentation.</p>
+</section>
+<section id="v0-4-2018-02-16">
+<h2>v0.4 (2018/02/16)</h2>
+<ul>
+<li><p>bug fixes:</p>
+<ul class="simple">
+<li><p>when Euclidean division gave a zero remainder, the internal
+representation of this zero polynomial could be faulty; this
+could cause mysterious bugs in conjunction with other package
+macros such as <a class="reference internal" href="polexpr-ref.html#polmapcoeffs"><span class="std std-ref">\PolMapCoeffs</span></a>.</p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polgcd"><span class="std std-ref">\PolGCD</span></a> was buggy in case of first polynomial being
+of lesser degree than the second one.</p></li>
+</ul>
+</li>
+<li><p>breaking changes:</p>
+<ul>
+<li><p>formerly <a class="reference internal" href="polexpr-ref.html#polevalat"><span class="std std-ref">\PolEval{P}\At{foo}</span></a> allowed <code class="docutils literal notranslate"><span class="pre">foo</span></code> to
+be an expression, which was transparently handled via
+<code class="docutils literal notranslate"><span class="pre">\xinttheexpr</span></code>. Now, <code class="docutils literal notranslate"><span class="pre">foo</span></code> must be a fraction (or a macro
+expanding to such) in the format acceptable by <code class="docutils literal notranslate"><span class="pre">xintfrac.sty</span></code>
+macros. Use <a class="reference internal" href="polexpr-ref.html#polevalatexpr"><span class="std std-ref">\PolEval{P}\AtExpr{foo}</span></a> for more
+general arguments using expression syntax. E.g., if <code class="docutils literal notranslate"><span class="pre">foo</span></code> is the
+name of a variable known to <code class="docutils literal notranslate"><span class="pre">\xintexpr</span></code>.</p>
+<p>The same holds for <a class="reference internal" href="polexpr-ref.html#polevalreducedat"><span class="std std-ref">\PolEvalReduced</span></a>
+and <a class="reference internal" href="polexpr-ref.html#polfloatevalat"><span class="std std-ref">\PolFloatEval</span></a>.</p>
+</li>
+<li><p>the <code class="docutils literal notranslate"><span class="pre">3.0</span></code> automatic generation of floating point variants has
+been reverted. Not only do <em>not</em> the package macros automatically
+generate floating point variants of newly created polynomials,
+they actually make pre-existing such variant undefined.</p>
+<p>See <a class="reference internal" href="polexpr-ref.html#polgenfloatvariant"><span class="std std-ref">\PolGenFloatVariant</span></a>.</p>
+</li>
+</ul>
+</li>
+<li><p>new non-expandable macros:</p>
+<ul class="simple">
+<li><p><a class="reference internal" href="polexpr-ref.html#polgenfloatvariant"><span class="std std-ref">\PolGenFloatVariant</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polgloballet"><span class="std std-ref">\PolGlobalLet</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltypesetone"><span class="std std-ref">\PolTypesetOne</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polquo"><span class="std std-ref">\PolQuo</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polrem"><span class="std std-ref">\PolRem</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltosturm"><span class="std std-ref">\PolToSturm</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#id35"><span class="std std-ref">\PolToSturm*</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsettosturmchainsignchangesat"><span class="std std-ref">\PolSetToSturmChainSignChangesAt</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsettonbofzeroswithin"><span class="std std-ref">\PolSetToNbOfZerosWithin</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmisolatezeros"><span class="std std-ref">\PolSturmIsolateZeros</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polrefineinterval"><span class="std std-ref">\PolRefineInterval*</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#id46"><span class="std std-ref">\PolRefineInterval[N]</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polensureintervallength"><span class="std std-ref">\PolEnsureIntervalLength</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polensureintervallengths"><span class="std std-ref">\PolEnsureIntervalLengths</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervals"><span class="std std-ref">\PolPrintIntervals</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsprintexactzero"><span class="std std-ref">\PolPrintIntervalsPrintExactZero</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsprintleftendpoint"><span class="std std-ref">\PolPrintIntervalsPrintLeftEndPoint</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsprintrightendpoint"><span class="std std-ref">\PolPrintIntervalsPrintRightEndPoint</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#id20"><span class="std std-ref">\PolReduceCoeffs*</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polmakemonic"><span class="std std-ref">\PolMakeMonic</span></a></p></li>
+</ul>
+</li>
+<li><p>new expandable macros:</p>
+<ul class="simple">
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexpronetermstylea"><span class="std std-ref">\PolToExprOneTermStyleA</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polifcoeffisplusorminusone"><span class="std std-ref">\PolIfCoeffIsPlusOrMinusOne</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polleadingcoeff"><span class="std std-ref">\PolLeadingCoeff</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmchainlength"><span class="std std-ref">\PolSturmChainLength</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmnbofisolatedzeros"><span class="std std-ref">\PolSturmNbOfIsolatedZeros</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmifzeroexactlyknown"><span class="std std-ref">\PolSturmIfZeroExactlyKnown</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmisolatedzeroleft"><span class="std std-ref">\PolSturmIsolatedZeroLeft</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmisolatedzeroright"><span class="std std-ref">\PolSturmIsolatedZeroRight</span></a></p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">\PolPrintIntervalsTheEndPoint</span></code> (removed at 0.7)</p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalstheindex"><span class="std std-ref">\PolPrintIntervalsTheIndex</span></a></p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">\PolIfEndPointIsPositive</span></code> (removed at 0.7)</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">\PolIfEndPointIsNegative</span></code> (removed at 0.7)</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">\PolIfEndPointIsZero</span></code> (removed at 0.7)</p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polintervalwidth"><span class="std std-ref">\PolIntervalWidth</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poldectostring"><span class="std std-ref">\PolDecToString</span></a></p></li>
+</ul>
+</li>
+<li><p>improvements:</p>
+<p>The main new feature is implementation of the <a class="reference external" href="https://en.wikipedia.org/wiki/Sturm%27s_theorem">Sturm algorithm</a>
+for localization of the real roots of polynomials.</p>
+</li>
+</ul>
+</section>
+<section id="v0-4-1-2018-03-01">
+<h2>v0.4.1 (2018/03/01)</h2>
+<p>Synced with xint 1.3.</p>
+</section>
+<section id="v0-4-2-2018-03-03">
+<h2>v0.4.2 (2018/03/03)</h2>
+<p>Documentation fix.</p>
+</section>
+<section id="v0-5-2018-04-08">
+<h2>v0.5 (2018/04/08)</h2>
+<ul class="simple">
+<li><p>bug fixes:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#polget"><span class="std std-ref">\PolGet{polname}\fromarray\macro</span></a>
+crashed when <code class="docutils literal notranslate"><span class="pre">\macro</span></code> was
+an <a class="reference external" href="https://www.ctan.org/pkg/xint">xinttools</a> array macro with no items. It now produces the zero
+polynomial.</p></li>
+</ul>
+</li>
+<li><p>breaking changes:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltosturm"><span class="std std-ref">\PolToSturm</span></a> creates primitive integer coefficients
+polynomials. This speeds up localization of roots via
+<a class="reference internal" href="polexpr-ref.html#polsturmisolatezeros"><span class="std std-ref">\PolSturmIsolateZeros</span></a>. In case of user
+protests the author will make available again the code producing the
+bona fide Sturm polynomials as used formerly.</p></li>
+<li><p>polynomials created from <a class="reference internal" href="polexpr-ref.html#polfromcsv"><span class="std std-ref">\PolFromCSV</span></a> or
+<a class="reference internal" href="polexpr-ref.html#polget"><span class="std std-ref">\PolGet</span></a>
+get their coefficients normalized via <a class="reference external" href="https://www.ctan.org/pkg/xint">xintfrac</a>‘s <code class="docutils literal notranslate"><span class="pre">\xintRaw</span></code>.</p></li>
+</ul>
+</li>
+<li><p>experimental change:</p>
+<ul>
+<li><p>optional argument to <a class="reference internal" href="polexpr-ref.html#polsturmisolatezeros"><span class="std std-ref">\PolSturmIsolateZeros</span></a>
+(see <code class="docutils literal notranslate"><span class="pre">The</span> <span class="pre">degree</span> <span class="pre">41</span> <span class="pre">polynomial</span> <span class="pre">with</span> <span class="pre">-2,</span> <span class="pre">-1.9,</span> <span class="pre">-1.8,</span> <span class="pre">...,</span> <span class="pre">0,</span> <span class="pre">0.1,</span> <span class="pre">...,</span>
+<span class="pre">1.9,</span> <span class="pre">2</span> <span class="pre">as</span> <span class="pre">roots</span></code> in <code class="docutils literal notranslate"><span class="pre">polexpr-examples.pdf</span></code>). It will presumably be
+replaced in future by an interval specification.</p></li>
+</ul>
+</li>
+<li><p>new non-expandable macro:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#polmakeprimitive"><span class="std std-ref">\PolMakePrimitive</span></a></p></li>
+</ul>
+</li>
+<li><p>new expandable macro:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#policontent"><span class="std std-ref">\PolIContent</span></a></p></li>
+</ul>
+</li>
+</ul>
+</section>
+<section id="v0-5-1-2018-04-22">
+<h2>v0.5.1 (2018/04/22)</h2>
+<ul class="simple">
+<li><p>new feature:</p>
+<ul>
+<li><p>the character <code class="docutils literal notranslate"><span class="pre">'</span></code> can be used in polynomial names.</p></li>
+</ul>
+</li>
+</ul>
+</section>
+<section id="v0-6-2018-11-20">
+<h2>v0.6 (2018/11/20)</h2>
+<ul class="simple">
+<li><p>bugfix:</p>
+<ul>
+<li><p>the starred variant
+<a class="reference internal" href="polexpr-ref.html#id35"><span class="std std-ref">\PolToSturm*{&lt;polname&gt;}{&lt;sturmname&gt;}</span></a>
+was broken. On the occasion of the fix, its meaning has
+been modified, see its documentation.</p></li>
+<li><p>using <a class="reference internal" href="polexpr-ref.html#poltosturm"><span class="std std-ref">\PolToSturm</span></a> with a constant polynomial
+caused a division by zero error.</p></li>
+</ul>
+</li>
+<li><p>new macro:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#id38"><span class="std std-ref">\PolSturmIsolateZeros*</span></a>
+acts like the <a class="reference internal" href="polexpr-ref.html#polsturmisolatezeros"><span class="std std-ref">non-starred variant</span></a> then computes all the multiplicities.</p></li>
+</ul>
+</li>
+<li><p>new expandable macros:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmisolatedzeromultiplicity"><span class="std std-ref">\PolSturmIsolatedZeroMultiplicity{&lt;sturmname&gt;}{&lt;index&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmnbofrootsoflessthanorequalto"><span class="std std-ref">\PolSturmNbOfRootsOf{&lt;sturmname&gt;}\LessThanOrEqualTo{&lt;value&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmnbofrootsoflessthanorequaltoexpr"><span class="std std-ref">\PolSturmNbOfRootsOf{&lt;sturmname&gt;}\LessThanOrEqualToExpr{&lt;num. expr.&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmnbwithmultofrootsoflessthanorequalto"><span class="std std-ref">\PolSturmNbWithMultOfRootsOf{&lt;sturmname&gt;}\LessThanOrEqualTo{&lt;value&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmnbwithmultofrootsoflessthanorequaltoexpr"><span class="std std-ref">\PolSturmNbWithMultOfRootsOf{&lt;sturmname&gt;}\LessThanOrEqualToExpr{&lt;num. expr.&gt;}</span></a></p></li>
+</ul>
+</li>
+</ul>
+</section>
+<section id="v0-7-2018-12-08-v0-7-1-bugfix-v0-7-2-2nd-bugfix-2018-12-09">
+<h2>v0.7 (2018/12/08), v0.7.1 (bugfix), v0.7.2 (2nd bugfix) (2018/12/09)</h2>
+<ul class="simple">
+<li><p>breaking changes:</p>
+<ul>
+<li><p>although <a class="reference internal" href="polexpr-ref.html#polprintintervals"><span class="std std-ref">\PolPrintIntervals[&lt;varname&gt;]{&lt;sturmname&gt;}</span></a> default output
+remains the same, some auxiliary macros for user-customization
+have been removed: <code class="docutils literal notranslate"><span class="pre">\PolPrintIntervalsTheEndPoint</span></code>,
+<code class="docutils literal notranslate"><span class="pre">\PolIfEndPointIsPositive{T}{F}</span></code>,
+<code class="docutils literal notranslate"><span class="pre">\PolIfEndPointIsNegative{T}{F}</span></code>, and
+<code class="docutils literal notranslate"><span class="pre">\PolIfEndPointIsZero{T}{F}</span></code>.</p></li>
+</ul>
+</li>
+<li><p>bugfix:</p>
+<ul>
+<li><p>it could happen that, contrarily to documentation, an interval computed
+by <a class="reference internal" href="polexpr-ref.html#polsturmisolatezeros"><span class="std std-ref">\PolSturmIsolateZeros{&lt;sturmname&gt;}</span></a> had
+zero as an endpoint,</p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polensureintervallength"><span class="std std-ref">\PolEnsureIntervalLength{&lt;sturmname&gt;}{&lt;index&gt;}{&lt;exponent&gt;}</span></a> could under certain circumstances erroneously
+replace a non-zero root by zero,</p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polensureintervallengths"><span class="std std-ref">\PolEnsureIntervalLengths{&lt;sturmname&gt;}{&lt;exponent&gt;}</span></a> crashed when used with a polynomial with no
+real roots, hence for which no isolation intervals existed (thanks to
+Thomas Söll for report).</p></li>
+</ul>
+</li>
+<li><p>new macros:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#id41"><span class="std std-ref">\PolSturmIsolateZeros**{&lt;sturmname&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmisolatezerosgetmultiplicitiesandrationalroots"><span class="std std-ref">\PolSturmIsolateZerosGetMultiplicitiesAndRationalRoots{&lt;sturmname&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmisolatezerosandfindrationalroots"><span class="std std-ref">\PolSturmIsolateZerosAndFindRationalRoots{&lt;sturmname&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polexprsetup"><span class="std std-ref">\polexprsetup</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#id61"><span class="std std-ref">\PolPrintIntervals*</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsnorealroots"><span class="std std-ref">\PolPrintIntervalsNoRealRoots</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsbeginenv"><span class="std std-ref">\PolPrintIntervalsBeginEnv</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsendenv"><span class="std std-ref">\PolPrintIntervalsEndEnv</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsknownroot"><span class="std std-ref">\PolPrintIntervalsKnownRoot</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsunknownroot"><span class="std std-ref">\PolPrintIntervalsUnknownRoot</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsprintmultiplicity"><span class="std std-ref">\PolPrintIntervalsPrintMultiplicity</span></a></p></li>
+</ul>
+</li>
+<li><p>new expandable macros:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmnbofrationalroots"><span class="std std-ref">\PolSturmNbOfRationalRoots{&lt;sturmname&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmnbofrationalrootswithmultiplicities"><span class="std std-ref">\PolSturmNbOfRationalRootsWithMultiplicities{&lt;sturmname&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmrationalroot"><span class="std std-ref">\PolSturmRationalRoot{&lt;sturmname&gt;}{&lt;k&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmrationalrootindex"><span class="std std-ref">\PolSturmRationalRootIndex{&lt;sturmname&gt;}{&lt;k&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polsturmrationalrootmultiplicity"><span class="std std-ref">\PolSturmRationalRootMultiplicity{&lt;sturmname&gt;}{&lt;k&gt;}</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsthevar"><span class="std std-ref">\PolPrintIntervalsTheVar</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsthesturmname"><span class="std std-ref">\PolPrintIntervalsTheSturmName</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsthemultiplicity"><span class="std std-ref">\PolPrintIntervalsTheMultiplicity</span></a></p></li>
+</ul>
+</li>
+</ul>
+</section>
+<section id="v0-7-3-2019-02-04">
+<h2>v0.7.3 (2019/02/04)</h2>
+<ul class="simple">
+<li><p>bugfix:</p>
+<ul>
+<li><p>Debugging information not destined to user showed in log if root
+finding was done under <code class="docutils literal notranslate"><span class="pre">\xintverbosetrue</span></code> regime.</p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#polprintintervalsthevar"><span class="std std-ref">\PolPrintIntervalsTheVar</span></a> remained
+defined after <a class="reference internal" href="polexpr-ref.html#polprintintervals"><span class="std std-ref">\PolPrintIntervals</span></a> but was
+left undefined after <a class="reference internal" href="polexpr-ref.html#id61"><span class="std std-ref">\PolPrintIntervals*</span></a>
+(reported by Jürgen Gilg). Now remains defined in both cases, and
+<a class="reference internal" href="polexpr-ref.html#polprintintervalsthesturmname"><span class="std std-ref">\PolPrintIntervalsTheSturmName</span></a>
+also.</p></li>
+<li><p>Polynomial names ending in digits caused errors (reported by Thomas
+Söll).</p></li>
+</ul>
+</li>
+</ul>
+</section>
+<section id="v0-7-4-2019-02-12">
+<h2>v0.7.4 (2019/02/12)</h2>
+<ul class="simple">
+<li><p>bugfix:</p>
+<ul>
+<li><p>20000000000 is too big for <code class="docutils literal notranslate"><span class="pre">\numexpr</span></code>, shouldn’t I know that?
+Thanks to Jürgen Gilg for report.</p></li>
+</ul>
+</li>
+</ul>
+</section>
+<section id="v0-7-5-2020-01-31">
+<h2>v0.7.5 (2020/01/31)</h2>
+<p>Synced with xintexpr 1.4. Requires it.</p>
+</section>
+<section id="v0-8-2021-03-29">
+<span id="polexpr08release"></span><h2>v0.8 (2021/03/29)</h2>
+<p>Synced with xintexpr 1.4d. Requires it.</p>
+<ul class="simple">
+<li><p>breaking changes:</p>
+<ul>
+<li><p>As the usability of character <code class="docutils literal notranslate"><span class="pre">'</span></code> in names has been extended
+from <code class="docutils literal notranslate"><span class="pre">\poldef</span></code> to also generally <code class="docutils literal notranslate"><span class="pre">\xintexpr</span></code>, <code class="docutils literal notranslate"><span class="pre">\xintdefvar</span></code>,
+and <code class="docutils literal notranslate"><span class="pre">\xintdeffunc</span></code>, it means that the infix operators
+<code class="docutils literal notranslate"><span class="pre">'and'</span></code>, <code class="docutils literal notranslate"><span class="pre">'or'</span></code>, and <code class="docutils literal notranslate"><span class="pre">'mod'</span></code> must be replaced
+by <code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>, <code class="docutils literal notranslate"><span class="pre">||</span></code>, and <code class="docutils literal notranslate"><span class="pre">/:</span></code> if they
+follow immediately a variable name (similarly <code class="docutils literal notranslate"><span class="pre">'xor'</span></code> must
+be replaced by the <code class="docutils literal notranslate"><span class="pre">xor()</span></code> function in such case).</p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexpr"><span class="std std-ref">\PolToExpr</span></a> by default uses a catcode 12
+<code class="docutils literal notranslate"><span class="pre">^</span></code>. See its documentation and the new configuration
+<a class="reference internal" href="polexpr-ref.html#poltoexprcaret"><span class="std std-ref">\PolToExprCaret</span></a>.</p></li>
+</ul>
+</li>
+<li><p>deprecated:</p>
+<ul>
+<li><p>Usage of <code class="docutils literal notranslate"><span class="pre">P/Q</span></code> for the euclidean quotient of two polynomials is
+deprecated. Start using <code class="docutils literal notranslate"><span class="pre">quo(P,Q)</span></code> in its place.</p></li>
+</ul>
+</li>
+<li><p>bugfix:</p>
+<ul>
+<li><p>The <code class="docutils literal notranslate"><span class="pre">\xintglobaldefstrue</span></code> setting was obeyed only partially
+by the polexpr macros defining polynomials.</p></li>
+<li><p>The <code class="docutils literal notranslate"><span class="pre">\xintexpr</span></code> variables storing the values of the extremities of the
+intervals as found by <a class="reference internal" href="polexpr-ref.html#polsturmisolatezeros"><span class="std std-ref">\PolSturmIsolateZeros</span></a> were not updated at 0.7.5 to the xintexpr 1.4
+format and thus caused low-level TeX errors if used.</p></li>
+<li><p>Attempting to use in <code class="docutils literal notranslate"><span class="pre">\poldef</span></code> a function previously declared
+via <code class="docutils literal notranslate"><span class="pre">\xintdeffunc</span></code> which made usage of the indexing or slicing
+“ople” syntax typically caused <code class="docutils literal notranslate"><span class="pre">TeX</span> <span class="pre">capacity</span> <span class="pre">exceeded</span></code> error.
+Indeed 0.7.5 only partially made polexpr able to cope with the
+extended possibilities for xintexpr 1.4 user-declared functions.
+Hopefully <code class="docutils literal notranslate"><span class="pre">0.8</span></code> achieves full functionality in this context.</p></li>
+</ul>
+</li>
+<li><p>new macros:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#polnewpolverbosefalse"><span class="std std-ref">\polnewpolverbosefalse</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexprcaret"><span class="std std-ref">\PolToExprCaret</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#poltoexprinvar"><span class="std std-ref">\PolToExprInVar</span></a></p></li>
+<li><p>alongside the major new functionalities described in the next item
+<a class="reference internal" href="polexpr-ref.html#poltypeset"><span class="std std-ref">\PolTypeset</span></a> and <a class="reference internal" href="polexpr-ref.html#poltoexpr"><span class="std std-ref">\PolToExpr</span></a> have
+been enhanced to accept as argument a general expression and not
+only a pre-declared polynomial name.</p></li>
+</ul>
+</li>
+<li><p>new features:</p>
+<ul>
+<li><p>The package is usable under Plain and probably most any TeX format,
+and not only under LaTeX.</p></li>
+<li><p>The core of the package has been rewritten entirely in order to
+start letting <code class="docutils literal notranslate"><span class="pre">\xintexpr</span></code> recognize a polynomial type as a genuine
+variable. This has allowed:</p>
+<ul>
+<li><p>to solve the reduced inter-operability problems between polexpr
+and <a class="reference external" href="https://www.ctan.org/pkg/xintexpr">xintexpr</a> which arose as consequences to the deep <a class="reference external" href="https://www.ctan.org/pkg/xintexpr">xintexpr</a> <code class="docutils literal notranslate"><span class="pre">1.4</span></code>
+evolution,</p></li>
+<li><p>to make available most of the functionality associated to
+expandable macros directly in the <code class="docutils literal notranslate"><span class="pre">\xinteval</span></code> syntax as
+operators or functions,</p></li>
+<li><p>to provide (expandable) functional interface in <code class="docutils literal notranslate"><span class="pre">\xinteval</span></code> to
+features previously available only via (for some, non-expandable)
+macro interface such as gcd computations.</p></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p>See the updated <a class="reference internal" href="polexpr-ref.html#quick"><span class="std std-ref">Quick syntax overview</span></a> and then
+<a class="reference internal" href="polexpr-ref.html#polexpr08"><span class="std std-ref">the extended syntax description</span></a>.</p>
+</section>
+<section id="v0-8-1-2021-04-12">
+<h2>v0.8.1 (2021/04/12)</h2>
+<ul class="simple">
+<li><p>breaking changes:</p>
+<ul>
+<li><p>renamed v0.8’s <code class="docutils literal notranslate"><span class="pre">icontent()</span></code> to <a class="reference internal" href="polexpr-ref.html#cont"><span class="std std-ref">cont()</span></a>.</p></li>
+<li><p>renamed v0.8’s <code class="docutils literal notranslate"><span class="pre">lcoeff()</span></code> to <a class="reference internal" href="polexpr-ref.html#lc"><span class="std std-ref">lc()</span></a>.</p></li>
+</ul>
+</li>
+<li><p>bugfix:</p>
+<ul>
+<li><p>Sadly, <code class="docutils literal notranslate"><span class="pre">diff1()</span></code>, <code class="docutils literal notranslate"><span class="pre">diff2()</span></code>, <code class="docutils literal notranslate"><span class="pre">diffn()</span></code> were broken
+for polynomials of degrees 8 or more, due to a typo and
+insufficient testing.</p></li>
+<li><p>The package should have (as documented) required <a class="reference external" href="https://www.ctan.org/pkg/xintexpr">xintexpr</a> 1.4d
+but in practice it accepted to work with <a class="reference external" href="https://www.ctan.org/pkg/xintexpr">xintexpr</a> 1.4c, whose
+<code class="docutils literal notranslate"><span class="pre">\xinteval</span></code> does not know how to “output” a polynomial.</p></li>
+<li><p>The definition of one of the two variants of
+<a class="reference internal" href="polexpr-ref.html#polsturmnbofrootsoflessthanorequalto"><span class="std std-ref">\PolSturmNbOfRootsOf…</span></a>
+was broken by an end-of-line space, left-over
+from mass conversion from LaTeX to TeX syntax.</p></li>
+</ul>
+</li>
+<li><p>added:</p>
+<ul>
+<li><p><a class="reference internal" href="polexpr-ref.html#lpol"><span class="std std-ref">lpol()</span></a></p></li>
+<li><p><a class="reference internal" href="polexpr-ref.html#lcoeffs"><span class="std std-ref">lcoeffs()</span></a></p></li>
+</ul>
+</li>
+</ul>
+</section>
+<section id="v0-8-2-2021-05-05">
+<h2>v0.8.2 (2021/05/05)</h2>
+<ul class="simple">
+<li><p>breaking change:</p>
+<ul>
+<li><p>usage of <code class="docutils literal notranslate"><span class="pre">\xintPFloat</span></code> in place of <code class="docutils literal notranslate"><span class="pre">\xintFloat</span></code> for
+<a class="reference internal" href="polexpr-ref.html#poltofloatexprcmd"><span class="std std-ref">\PolToFloatExprCmd</span></a>.</p></li>
+</ul>
+</li>
+<li><p>improved:</p>
+<ul>
+<li><p>Some <a class="reference external" href="https://www.ctan.org/pkg/xintexpr">xintexpr</a> functions such as <code class="docutils literal notranslate"><span class="pre">rseq()</span></code> use the semi-colon,
+and it was mentioned in the documentation that <a class="reference internal" href="polexpr-ref.html#poldef"><span class="std std-ref">\poldef</span></a>
+will be confused by this and that inner semi-colons could be
+set within braces <code class="docutils literal notranslate"><span class="pre">{;}</span></code> as a work-around. It was not clear from
+this documentation that also <a class="reference internal" href="polexpr-ref.html#id5"><span class="std std-ref">\PolDef</span></a> required
+this work-around. With this relase only <a class="reference internal" href="polexpr-ref.html#poldef"><span class="std std-ref">\poldef</span></a> but
+not <a class="reference internal" href="polexpr-ref.html#id5"><span class="std std-ref">\PolDef</span></a> needs the work-around.</p></li>
+</ul>
+</li>
+<li><p>track <a class="reference external" href="https://www.ctan.org/pkg/xintexpr">xintexpr</a> <code class="docutils literal notranslate"><span class="pre">1.4e</span></code> changes relative to powers.</p></li>
+</ul>
+</section>
+<section id="v0-8-3-2021-05-27">
+<h2>v0.8.3 (2021/05/27)</h2>
+<ul class="simple">
+<li><p>small internal update to track an <a class="reference external" href="https://www.ctan.org/pkg/xintexpr">xintexpr</a> <code class="docutils literal notranslate"><span class="pre">1.4h</span></code> change
+regarding handling of exceptions. Will require this version at
+least on loading.</p></li>
+</ul>
+</section>
+<section id="v0-8-4-2021-11-01">
+<h2>v0.8.4 (2021/11/01)</h2>
+<ul class="simple">
+<li><p>bugfix: <a class="reference internal" href="polexpr-ref.html#id41"><span class="std std-ref">\PolSturmIsolateZeros**{&lt;sturmname&gt;}</span></a> did not declare the <code class="docutils literal notranslate"><span class="pre">&lt;sturmname&gt;_norr</span></code> and
+<code class="docutils literal notranslate"><span class="pre">&lt;sturmname&gt;_sqf_norr</span></code> polynomials if original polynomial had no real
+root!</p></li>
+</ul>
+</section>
+<section id="v0-8-5-2021-11-30">
+<h2>v0.8.5 (2021/11/30)</h2>
+<ul class="simple">
+<li><p>bugfix: support for the <code class="docutils literal notranslate"><span class="pre">intfrom()</span></code> function was in the code,
+but the declaration to the polynomial parser had not been done.</p></li>
+<li><p>track (belatedly) upstream deprecation of <code class="docutils literal notranslate"><span class="pre">\xintSignedFrac</span></code> and
+<code class="docutils literal notranslate"><span class="pre">\xintSignedFwOver</span></code> at <a class="reference external" href="https://www.ctan.org/pkg/xintexpr">xintexpr</a> <code class="docutils literal notranslate"><span class="pre">1.4g</span></code></p></li>
+</ul>
+</section>
+<section id="v0-8-6-2022-01-09">
+<h2>v0.8.6 (2022/01/09)</h2>
+<ul class="simple">
+<li><p>provide a separate <code class="docutils literal notranslate"><span class="pre">polexpr-examples.pdf</span></code> with examples formerly
+shown as part of the html documentation.</p></li>
+<li><p>minor improvement to the computation of a priori bounds on real roots.</p></li>
+<li><p>add <a class="reference internal" href="polexpr-ref.html#polprintintervalsrowseparator"><span class="std std-ref">\PolPrintIntervalsRowSeparator</span></a>
+and allow usage of <code class="docutils literal notranslate"><span class="pre">amsmath</span></code> environments in custom
+<a class="reference internal" href="polexpr-ref.html#polprintintervalsbeginenv"><span class="std std-ref">\PolPrintIntervalsBeginEnv</span></a> and
+<a class="reference internal" href="polexpr-ref.html#polprintintervalsendenv"><span class="std std-ref">\PolPrintIntervalsEndEnv</span></a>.</p></li>
+</ul>
+</section>
+<section id="v0-8-7-2022-05-14">
+<h2>v0.8.7 (2022/05/14)</h2>
+<ul class="simple">
+<li><p>bugfix: catcode sanitization by <a class="reference internal" href="polexpr-ref.html#poldef"><span class="std std-ref">\poldef</span></a> was minimal
+ever since <code class="docutils literal notranslate"><span class="pre">0.1</span></code> and handled only the semi-colon. Thus e.g. the
+active <code class="docutils literal notranslate"><span class="pre">!</span></code> from babel-french caused errors and <code class="docutils literal notranslate"><span class="pre">\string!</span></code> was
+needed as work-around for factorials. Now the same sanitization as
+for <code class="docutils literal notranslate"><span class="pre">\xintdefvar</span></code> and <code class="docutils literal notranslate"><span class="pre">\xintdeffunc</span></code> is applied. This however can
+only work at locations where the catcodes are not yet frozen at the
+time <code class="docutils literal notranslate"><span class="pre">\poldef</span></code> expands.</p></li>
+<li><p>split the html documentation into three files and enhance it via CSS
+styling.</p></li>
+</ul>
+</section>
+</section>
+
+
+ <div class="clearer"></div>
+ </div>
+ </div>
+ </div>
+ <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+ <div class="sphinxsidebarwrapper"><h3>Contents of this page</h3>
+<ul>
+<li><a class="reference internal" href="#">CHANGES</a><ul>
+<li><a class="reference internal" href="#v0-1-2018-01-11-initial-release-features">v0.1 (2018/01/11): initial release. Features:</a></li>
+<li><a class="reference internal" href="#v0-2-2018-01-14">v0.2 (2018/01/14)</a></li>
+<li><a class="reference internal" href="#v0-3-2018-01-17">v0.3 (2018/01/17)</a></li>
+<li><a class="reference internal" href="#v0-3-1-2018-01-18">v0.3.1 (2018/01/18)</a></li>
+<li><a class="reference internal" href="#v0-4-2018-02-16">v0.4 (2018/02/16)</a></li>
+<li><a class="reference internal" href="#v0-4-1-2018-03-01">v0.4.1 (2018/03/01)</a></li>
+<li><a class="reference internal" href="#v0-4-2-2018-03-03">v0.4.2 (2018/03/03)</a></li>
+<li><a class="reference internal" href="#v0-5-2018-04-08">v0.5 (2018/04/08)</a></li>
+<li><a class="reference internal" href="#v0-5-1-2018-04-22">v0.5.1 (2018/04/22)</a></li>
+<li><a class="reference internal" href="#v0-6-2018-11-20">v0.6 (2018/11/20)</a></li>
+<li><a class="reference internal" href="#v0-7-2018-12-08-v0-7-1-bugfix-v0-7-2-2nd-bugfix-2018-12-09">v0.7 (2018/12/08), v0.7.1 (bugfix), v0.7.2 (2nd bugfix) (2018/12/09)</a></li>
+<li><a class="reference internal" href="#v0-7-3-2019-02-04">v0.7.3 (2019/02/04)</a></li>
+<li><a class="reference internal" href="#v0-7-4-2019-02-12">v0.7.4 (2019/02/12)</a></li>
+<li><a class="reference internal" href="#v0-7-5-2020-01-31">v0.7.5 (2020/01/31)</a></li>
+<li><a class="reference internal" href="#v0-8-2021-03-29">v0.8 (2021/03/29)</a></li>
+<li><a class="reference internal" href="#v0-8-1-2021-04-12">v0.8.1 (2021/04/12)</a></li>
+<li><a class="reference internal" href="#v0-8-2-2021-05-05">v0.8.2 (2021/05/05)</a></li>
+<li><a class="reference internal" href="#v0-8-3-2021-05-27">v0.8.3 (2021/05/27)</a></li>
+<li><a class="reference internal" href="#v0-8-4-2021-11-01">v0.8.4 (2021/11/01)</a></li>
+<li><a class="reference internal" href="#v0-8-5-2021-11-30">v0.8.5 (2021/11/30)</a></li>
+<li><a class="reference internal" href="#v0-8-6-2022-01-09">v0.8.6 (2022/01/09)</a></li>
+<li><a class="reference internal" href="#v0-8-7-2022-05-14">v0.8.7 (2022/05/14)</a></li>
+</ul>
+</li>
+</ul>
+
+ <div role="note" aria-label="source link">
+ <h3>This Page</h3>
+ <ul class="this-page-menu">
+ <li><a href="polexpr-changes.rst.txt"
+ rel="nofollow">Show Source</a></li>
+ </ul>
+ </div>
+ <div>
+ <h4>Previous topic</h4>
+ <p class="topless"><a href="polexpr-ref.html"
+ title="previous chapter">polexpr reference</a></p>
+ </div>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related" role="navigation" aria-label="related navigation">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="polexpr-ref.html" title="polexpr reference"
+ >previous</a></li>
+ <li class="nav-item nav-item-0"><a href="polexpr.html">polexpr 0.8.7 documentation</a> &#187;</li>
+ <li class="nav-item nav-item-this"><a href="">CHANGES</a></li>
+ </ul>
+ </div>
+ <div class="footer" role="contentinfo">
+ &#169; Copyright 2022, Jean-François Burnol.
+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.0.0+/f58771c09.
+ </div>
+ </body>
+</html> \ No newline at end of file