From b9769098c5fcee8329d370e153f3b332f137850b Mon Sep 17 00:00:00 2001
From: Karl Berry
Date: Thu, 19 May 2022 20:10:47 +0000
Subject: polexpr (19may22)
git-svn-id: svn://tug.org/texlive/trunk@63337 c570f23f-e606-0410-a88d-b1316a301751
---
Master/texmf-dist/doc/generic/polexpr/README.md | 13 +-
.../doc/generic/polexpr/polexpr-changes.html | 285 ++++++++-------
.../doc/generic/polexpr/polexpr-changes.rst.txt | 215 +++++------
.../doc/generic/polexpr/polexpr-examples.pdf | Bin 57444 -> 57444 bytes
.../doc/generic/polexpr/polexpr-ref.html | 406 +++++++++++----------
.../doc/generic/polexpr/polexpr-ref.rst.txt | 106 +++---
Master/texmf-dist/doc/generic/polexpr/polexpr.css | 4 +
Master/texmf-dist/doc/generic/polexpr/polexpr.html | 18 +-
.../texmf-dist/doc/generic/polexpr/polexpr.rst.txt | 27 +-
Master/texmf-dist/tex/generic/polexpr/polexpr.sty | 4 +-
.../texmf-dist/tex/generic/polexpr/polexprcore.tex | 2 +-
.../texmf-dist/tex/generic/polexpr/polexprexpr.tex | 2 +-
.../tex/generic/polexpr/polexprsturm.tex | 2 +-
13 files changed, 562 insertions(+), 522 deletions(-)
(limited to 'Master')
diff --git a/Master/texmf-dist/doc/generic/polexpr/README.md b/Master/texmf-dist/doc/generic/polexpr/README.md
index 0f70c6cb343..7dd46d2f34b 100644
--- a/Master/texmf-dist/doc/generic/polexpr/README.md
+++ b/Master/texmf-dist/doc/generic/polexpr/README.md
@@ -1,7 +1,7 @@
Package polexpr README
======================
-Version ``0.8.7`` of ``2022/05/14``.
+Version ``0.8.7a`` of ``2022/05/19``.
Abstract
--------
@@ -21,7 +21,7 @@ rational rounds found exactly.
In memoriam: Jürgen Gilg
------------------------
-`polexpr` is dedicated to the memory of Jürgen Gilg (1967-2022).
+`polexpr` is dedicated to the memory of Jürgen Gilg (1966-2022).
His question in January 2018 about using
[xintexpr](http://www.ctan.org/pkg/xintexpr) to compute derivatives
@@ -61,16 +61,16 @@ Recent changes
G.C.D.'s, derivatives or indefinite integrals previously available
via macros.
- 0.8.1 (2021/04/12)
- Bugfix: a typo broke the 0.8 ``diff1()`` and related functions.
+ Bug fix: a typo broke the 0.8 ``diff1()`` and related functions.
- 0.8.2 (2021/05/05)
Track `xintexpr` 1.4e changes
- 0.8.3 (2021/05/27)
Track `xintexpr` 1.4h changes
- 0.8.4 (2021/11/01)
- Bugfix: `PolSturmIsolateZeros**` did not declare the square free
+ Bug fix: `PolSturmIsolateZeros**` did not declare the square free
part of the original polynomial if no real root existed.
- 0.8.5 (2021/11/30)
- Bugfix: `intfrom()` was documented at `0.8` but not declared to parser.
+ Bug fix: `intfrom()` was documented at `0.8` but not declared to parser.
Track (belatedly) `xintexpr` 1.4g changes
- 0.8.6 (2022/01/09)
Separate `polexpr-examples.{tex,pdf}` from the `polexpr.html` reference.
@@ -79,7 +79,8 @@ Recent changes
three files. Catcode protection for `\poldef` now matches
long-standing behaviour of `\xintdefvar`. This fixes issues
with ``babel+french``.
-
+- 0.8.7a (2022/05/19)
+ Documentation improvements.
License
-------
diff --git a/Master/texmf-dist/doc/generic/polexpr/polexpr-changes.html b/Master/texmf-dist/doc/generic/polexpr/polexpr-changes.html
index 51392f6565c..3cce3e76123 100644
--- a/Master/texmf-dist/doc/generic/polexpr/polexpr-changes.html
+++ b/Master/texmf-dist/doc/generic/polexpr/polexpr-changes.html
@@ -6,7 +6,7 @@
- CHANGES — polexpr 0.8.7 documentation
+ CHANGES — polexpr 0.8.7a documentation
@@ -16,7 +16,7 @@
The 0.1\PolEval accepted expressions for its
second argument, but this was removed by mistake at 0.2. Restored.
Attention: at 0.4 this has been reverted again, and
\PolEval{P}\AtExpr{foo} syntax is needed for
@@ -65,11 +65,11 @@ using expressions in the second argument.
-
incompatible or breaking changes:
+
Incompatible or breaking changes:
\PolToExpr now by default uses descending
powers (it also treats differently coefficients equal to 1 or -1.)
-Use \PolToExpr* for ascending powers.
\PolEval reduced the output to smallest terms,
but as this is costly with big fractions and not needed if e.g.
wrapped in an \xintRound or \xintFloat, this step has been
@@ -77,7 +77,7 @@ removed; the former meaning is available as
\PolEvalReduced.
documentation has a table of contents, internal hyperlinks,
+
Documentation has a table of contents, internal hyperlinks,
standardized signature notations and added explanations.
-
one can do \PolLet{g}={f} or \PolLet{g}{f}.
+
One can do \PolLet{g}={f} or \PolLet{g}{f}.
\PolToExpr{f} is highly customizable.
\poldef and other defining macros prepare the
polynomial functions for usage within \xintthefloatexpr (or
@@ -113,16 +113,16 @@ generation floating point polynomial functions.
-
-
v0.3.1 (2018/01/18)
+
+
0.3.1 (2018/01/18)
Fixes two typos in example code included in the documentation.
-
-
v0.4 (2018/02/16)
+
+
0.4 (2018/02/16)
-
bug fixes:
+
Bug fixes:
-
when Euclidean division gave a zero remainder, the internal
+
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 \PolMapCoeffs.
Formerly \PolEval{P}\At{foo} allowed foo to
be an expression, which was transparently handled via
\xinttheexpr. Now, foo must be a fraction (or a macro
expanding to such) in the format acceptable by xintfrac.sty
@@ -142,7 +142,7 @@ name of a variable known to The same holds for \PolEvalReduced
and \PolFloatEval.
-
the 3.0 automatic generation of floating point variants has
+
The 3.0 automatic generation of floating point variants has
been reverted. Not only do not the package macros automatically
generate floating point variants of newly created polynomials,
they actually make pre-existing such variant undefined.
@@ -150,7 +150,7 @@ they actually make pre-existing such variant undefined.
\PolToSturm creates primitive integer coefficients
polynomials. This speeds up localization of roots via
\PolSturmIsolateZeros. In case of user
protests the author will make available again the code producing the
bona fide Sturm polynomials as used formerly.
Optional argument to \PolSturmIsolateZeros
(see Thedegree41polynomialwith-2,-1.9,-1.8,...,0,0.1,...,1.9,2asroots in polexpr-examples.pdf). It will presumably be
replaced in future by an interval specification.
The starred variant
+\PolToSturm*{<polname>}{<sturmname>}
was broken. On the occasion of the fix, its meaning has
been modified, see its documentation.
Although \PolPrintIntervals[<varname>]{<sturmname>} default output
remains the same, some auxiliary macros for user-customization
have been removed: \PolPrintIntervalsTheEndPoint,
\PolIfEndPointIsPositive{T}{F},
@@ -303,9 +303,9 @@ have been removed: \PolIfEndPointIsZero{T}{F}.
-
bugfix:
+
Bug fixes:
-
it could happen that, contrarily to documentation, an interval computed
+
20000000000 is too big for \numexpr, shouldn’t I know that?
Thanks to Jürgen Gilg for report.
@@ -374,15 +374,15 @@ Thanks to Jürgen Gilg for report.
-
-
v0.7.5 (2020/01/31)
+
+
0.7.5 (2020/01/31)
Synced with xintexpr 1.4. Requires it.
-
-
v0.8 (2021/03/29)
+
+
0.8 (2021/03/29)
Synced with xintexpr 1.4d. Requires it.
-
breaking changes:
+
Breaking changes:
As the usability of character ' in names has been extended
from \poldef to also generally \xintexpr, \xintdefvar,
@@ -396,13 +396,13 @@ be replaced by the \PolToExprCaret.
-
deprecated:
+
Deprecated:
Usage of P/Q for the euclidean quotient of two polynomials is
deprecated. Start using quo(P,Q) in its place.
-
bugfix:
+
Bug fixes:
The \xintglobaldefstrue setting was obeyed only partially
by the polexpr macros defining polynomials.
@@ -417,18 +417,18 @@ extended possibilities for xintexpr 1.4 user-declared functions.
Hopefully 0.8 achieves full functionality in this context.
alongside the major new functionalities described in the next item
+
Alongside the major new functionalities described in the next item
\PolTypeset and \PolToExpr have
been enhanced to accept as argument a general expression and not
only a pre-declared polynomial name.
-
new features:
+
New features:
The package is usable under Plain and probably most any TeX format,
and not only under LaTeX.
@@ -453,16 +453,16 @@ macro interface such as gcd computations.
Sadly, diff1(), diff2(), diffn() were broken
for polynomials of degrees 8 or more, due to a typo and
@@ -476,7 +476,7 @@ was broken by an end-of-line space, left-over
from mass conversion from LaTeX to TeX syntax.
Some xintexpr functions such as rseq() use the semi-colon,
and it was mentioned in the documentation that \poldef
@@ -504,60 +504,66 @@ this work-around. With this relase only \PolDef needs the work-around.
Bug fix: \PolSturmIsolateZeros**{<sturmname>} did not declare the <sturmname>_norr and
<sturmname>_sqf_norr polynomials if original polynomial had no real
root!
-
-
v0.8.5 (2021/11/30)
+
+
0.8.5 (2021/11/30)
-
bugfix: support for the intfrom() function was in the code,
+
Bug fix: support for the intfrom() function was in the code,
but the declaration to the polynomial parser had not been done.
-
track (belatedly) upstream deprecation of \xintSignedFrac and
+
Track (belatedly) upstream deprecation of \xintSignedFrac and
\xintSignedFwOver at xintexpr1.4g
-
-
v0.8.6 (2022/01/09)
+
+
0.8.6 (2022/01/09)
-
provide a separate polexpr-examples.pdf with examples formerly
+
Provide a separate polexpr-examples.pdf with examples formerly
shown as part of the html documentation.
-
minor improvement to the computation of a priori bounds on real roots.
bugfix: catcode sanitization by \poldef was minimal
+
Bug fix: catcode sanitization by \poldef was minimal
ever since 0.1 and handled only the semi-colon. Thus e.g. the
active ! from babel-french caused errors and \string! was
needed as work-around for factorials. Now the same sanitization as
for \xintdefvar and \xintdeffunc is applied. This however can
only work at locations where the catcodes are not yet frozen at the
time \poldef expands.
-
split the html documentation into three files and enhance it via CSS
+
Split the html documentation into three files and enhance it via CSS
styling.
diff --git a/Master/texmf-dist/doc/generic/polexpr/polexpr-changes.rst.txt b/Master/texmf-dist/doc/generic/polexpr/polexpr-changes.rst.txt
index c1f2c834ec6..5ecc66f5f58 100644
--- a/Master/texmf-dist/doc/generic/polexpr/polexpr-changes.rst.txt
+++ b/Master/texmf-dist/doc/generic/polexpr/polexpr-changes.rst.txt
@@ -6,8 +6,8 @@
.. _firstrelease:
-v0.1 (2018/01/11): initial release. Features:
----------------------------------------------
+0.1 (2018/01/11): initial release. Features:
+--------------------------------------------
* The :ref:`\\poldef ` parser itself,
* Differentiation and anti-differentiation,
@@ -18,8 +18,8 @@ v0.1 (2018/01/11): initial release. Features:
Only one-variable polynomials so far.
-v0.2 (2018/01/14)
------------------
+0.2 (2018/01/14)
+----------------
* Fix: ``"README thinks \numexpr recognizes ^ operator"``.
* Convert README to reStructuredText markup.
@@ -30,18 +30,18 @@ v0.2 (2018/01/14)
Due to lack of available time the test suite might not be extensive
enough. Bug reports are very welcome!
-v0.3 (2018/01/17)
------------------
+0.3 (2018/01/17)
+----------------
-* bug fixes:
+* Bug fixes:
- - the ``0.1`` :ref:`\\PolEval ` accepted expressions for its
+ - The ``0.1`` :ref:`\\PolEval ` accepted expressions for its
second argument, but this was removed by mistake at ``0.2``. Restored.
**Attention**: at ``0.4`` this has been reverted again, and
:ref:`\\PolEval{P}\\AtExpr{foo} ` syntax is needed for
using expressions in the second argument.
-* incompatible or breaking changes:
+* Incompatible or breaking changes:
- :ref:`\\PolToExpr ` now by default uses *descending*
powers (it also treats differently coefficients equal to 1 or -1.)
@@ -51,7 +51,7 @@ v0.3 (2018/01/17)
wrapped in an ``\xintRound`` or ``\xintFloat``, this step has been
removed; the former meaning is available as
:ref:`\\PolEvalReduced `.
-* new (or newly documented) macros:
+* New (or newly documented) macros:
- :ref:`\\PolTypesetCmd `
- :ref:`\\PolTypesetCmdPrefix `
@@ -65,11 +65,11 @@ v0.3 (2018/01/17)
- :ref:`\\PolToExprTermPrefix `
- :ref:`\\PolToExprVar `
- :ref:`\\PolToExprTimes `
-* improvements:
+* Improvements:
- - documentation has a table of contents, internal hyperlinks,
+ - Documentation has a table of contents, internal hyperlinks,
standardized signature notations and added explanations.
- - one can do ``\PolLet{g}={f}`` or ``\PolLet{g}{f}``.
+ - One can do ``\PolLet{g}={f}`` or ``\PolLet{g}{f}``.
- ``\PolToExpr{f}`` is highly customizable.
- :ref:`\\poldef ` and other defining macros prepare the
polynomial functions for usage within ``\xintthefloatexpr`` (or
@@ -82,25 +82,25 @@ v0.3 (2018/01/17)
:ref:`\\PolGenFloatVariant ` must be used for
generation floating point polynomial functions.
-v0.3.1 (2018/01/18)
--------------------
+0.3.1 (2018/01/18)
+------------------
Fixes two typos in example code included in the documentation.
-v0.4 (2018/02/16)
------------------
+0.4 (2018/02/16)
+----------------
-* bug fixes:
+* Bug fixes:
- - when Euclidean division gave a zero remainder, the internal
+ - 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 :ref:`\\PolMapCoeffs `.
- :ref:`\\PolGCD ` was buggy in case of first polynomial being
of lesser degree than the second one.
-* breaking changes:
+* Breaking changes:
- - formerly :ref:`\\PolEval{P}\\At{foo} ` allowed ``foo`` to
+ - Formerly :ref:`\\PolEval{P}\\At{foo} ` allowed ``foo`` to
be an expression, which was transparently handled via
``\xinttheexpr``. Now, ``foo`` must be a fraction (or a macro
expanding to such) in the format acceptable by ``xintfrac.sty``
@@ -110,13 +110,13 @@ v0.4 (2018/02/16)
The same holds for :ref:`\\PolEvalReduced `
and :ref:`\\PolFloatEval `.
- - the ``3.0`` automatic generation of floating point variants has
+ - The ``3.0`` automatic generation of floating point variants has
been reverted. Not only do *not* the package macros automatically
generate floating point variants of newly created polynomials,
they actually make pre-existing such variant undefined.
See :ref:`\\PolGenFloatVariant `.
-* new non-expandable macros:
+* New non-expandable macros:
- :ref:`\\PolGenFloatVariant `
- :ref:`\\PolGlobalLet `
@@ -138,7 +138,7 @@ v0.4 (2018/02/16)
- :ref:`\\PolPrintIntervalsPrintRightEndPoint `
- :ref:`\\PolReduceCoeffs* `
- :ref:`\\PolMakeMonic `
-* new expandable macros:
+* New expandable macros:
- :ref:`\\PolToExprOneTermStyleA `
- :ref:`\\PolIfCoeffIsPlusOrMinusOne `
@@ -155,80 +155,80 @@ v0.4 (2018/02/16)
- ``\PolIfEndPointIsZero`` (removed at 0.7)
- :ref:`\\PolIntervalWidth `
- :ref:`\\PolDecToString `
-* improvements:
+* Improvements:
The main new feature is implementation of the `Sturm algorithm`_
for localization of the real roots of polynomials.
-v0.4.1 (2018/03/01)
--------------------
+0.4.1 (2018/03/01)
+------------------
Synced with xint 1.3.
-v0.4.2 (2018/03/03)
--------------------
+0.4.2 (2018/03/03)
+------------------
Documentation fix.
-v0.5 (2018/04/08)
------------------
+0.5 (2018/04/08)
+----------------
-* bug fixes:
+* Bug fix:
- :ref:`\\PolGet{polname}\\fromarray\\macro `
crashed when ``\macro`` was
an xinttools_ array macro with no items. It now produces the zero
polynomial.
-* breaking changes:
+* Breaking changes:
- :ref:`\\PolToSturm ` creates primitive integer coefficients
polynomials. This speeds up localization of roots via
:ref:`\\PolSturmIsolateZeros `. In case of user
protests the author will make available again the code producing the
bona fide Sturm polynomials as used formerly.
- - polynomials created from :ref:`\\PolFromCSV ` or
+ - Polynomials created from :ref:`\\PolFromCSV ` or
:ref:`\\PolGet `
get their coefficients normalized via xintfrac_\ 's ``\xintRaw``.
-* experimental change:
+* Experimental change:
- - optional argument to :ref:`\\PolSturmIsolateZeros `
+ - Optional argument to :ref:`\\PolSturmIsolateZeros `
(see ``The degree 41 polynomial with -2, -1.9, -1.8, ..., 0, 0.1, ...,
1.9, 2 as roots`` in ``polexpr-examples.pdf``). It will presumably be
replaced in future by an interval specification.
-* new non-expandable macro:
+* New non-expandable macro:
- :ref:`\\PolMakePrimitive `
-* new expandable macro:
+* New expandable macro:
- :ref:`\\PolIContent `
-v0.5.1 (2018/04/22)
--------------------
+0.5.1 (2018/04/22)
+------------------
-* new feature:
+* New feature:
- - the character ``'`` can be used in polynomial names.
+ - The character ``'`` can be used in polynomial names.
-v0.6 (2018/11/20)
------------------
+0.6 (2018/11/20)
+----------------
-* bugfix:
+* Bug fixes:
- - the starred variant
+ - The starred variant
:ref:`\\PolToSturm*{\}{\} `
was broken. On the occasion of the fix, its meaning has
been modified, see its documentation.
- - using :ref:`\\PolToSturm ` with a constant polynomial
+ - Using :ref:`\\PolToSturm ` with a constant polynomial
caused a division by zero error.
-* new macro:
+* New macro:
- :ref:`\\PolSturmIsolateZeros* `
acts like the :ref:`non-starred variant
` then computes all the multiplicities.
-* new expandable macros:
+* New expandable macros:
- :ref:`\\PolSturmIsolatedZeroMultiplicity{\}{\} `
- :ref:`\\PolSturmNbOfRootsOf{\}\\LessThanOrEqualTo{\} `
@@ -236,21 +236,21 @@ v0.6 (2018/11/20)
- :ref:`\\PolSturmNbWithMultOfRootsOf{\}\\LessThanOrEqualTo{\} `
- :ref:`\\PolSturmNbWithMultOfRootsOf{\}\\LessThanOrEqualToExpr{\} `
-v0.7 (2018/12/08), v0.7.1 (bugfix), v0.7.2 (2nd bugfix) (2018/12/09)
---------------------------------------------------------------------
+0.7 (2018/12/08), 0.7.1 (bugfix), 0.7.2 (2nd bugfix) (2018/12/09)
+-----------------------------------------------------------------
-* breaking changes:
+* Breaking changes:
- - although :ref:`\\PolPrintIntervals[\]{\} ` default output
+ - Although :ref:`\\PolPrintIntervals[\]{\} ` default output
remains the same, some auxiliary macros for user-customization
have been removed: ``\PolPrintIntervalsTheEndPoint``,
``\PolIfEndPointIsPositive{T}{F}``,
``\PolIfEndPointIsNegative{T}{F}``, and
``\PolIfEndPointIsZero{T}{F}``.
-* bugfix:
+* Bug fixes:
- - it could happen that, contrarily to documentation, an interval computed
+ - It could happen that, contrarily to documentation, an interval computed
by :ref:`\\PolSturmIsolateZeros{\} ` had
zero as an endpoint,
- :ref:`\\PolEnsureIntervalLength{\}{\}{\}
@@ -261,7 +261,7 @@ v0.7 (2018/12/08), v0.7.1 (bugfix), v0.7.2 (2nd bugfix) (2018/12/09)
real roots, hence for which no isolation intervals existed (thanks to
Thomas Söll for report).
-* new macros:
+* New macros:
- :ref:`\\PolSturmIsolateZeros**{\} `
- :ref:`\\PolSturmIsolateZerosGetMultiplicitiesAndRationalRoots{\} `
@@ -275,7 +275,7 @@ v0.7 (2018/12/08), v0.7.1 (bugfix), v0.7.2 (2nd bugfix) (2018/12/09)
- :ref:`\\PolPrintIntervalsUnknownRoot `
- :ref:`\\PolPrintIntervalsPrintMultiplicity `
-* new expandable macros:
+* New expandable macros:
- :ref:`\\PolSturmNbOfRationalRoots{\} `
- :ref:`\\PolSturmNbOfRationalRootsWithMultiplicities{\} `
@@ -286,10 +286,10 @@ v0.7 (2018/12/08), v0.7.1 (bugfix), v0.7.2 (2nd bugfix) (2018/12/09)
- :ref:`\\PolPrintIntervalsTheSturmName `
- :ref:`\\PolPrintIntervalsTheMultiplicity `
-v0.7.3 (2019/02/04)
--------------------
+0.7.3 (2019/02/04)
+------------------
-* bugfix:
+* Bug fixes:
- Debugging information not destined to user showed in log if root
finding was done under ``\xintverbosetrue`` regime.
@@ -302,27 +302,27 @@ v0.7.3 (2019/02/04)
- Polynomial names ending in digits caused errors (reported by Thomas
Söll).
-v0.7.4 (2019/02/12)
--------------------
+0.7.4 (2019/02/12)
+------------------
-* bugfix:
+* Bug fix:
- 20000000000 is too big for ``\numexpr``, shouldn't I know that?
Thanks to Jürgen Gilg for report.
-v0.7.5 (2020/01/31)
--------------------
+0.7.5 (2020/01/31)
+------------------
Synced with xintexpr 1.4. Requires it.
.. _polexpr08release:
-v0.8 (2021/03/29)
------------------
+0.8 (2021/03/29)
+----------------
Synced with xintexpr 1.4d. Requires it.
-* breaking changes:
+* Breaking changes:
- As the usability of character ``'`` in names has been extended
from ``\poldef`` to also generally ``\xintexpr``, ``\xintdefvar``,
@@ -336,12 +336,12 @@ Synced with xintexpr 1.4d. Requires it.
``^``. See its documentation and the new configuration
:ref:`\\PolToExprCaret `.
-* deprecated:
+* Deprecated:
- Usage of ``P/Q`` for the euclidean quotient of two polynomials is
deprecated. Start using ``quo(P,Q)`` in its place.
-* bugfix:
+* Bug fixes:
- The ``\xintglobaldefstrue`` setting was obeyed only partially
by the polexpr macros defining polynomials.
@@ -358,17 +358,17 @@ Synced with xintexpr 1.4d. Requires it.
extended possibilities for xintexpr 1.4 user-declared functions.
Hopefully ``0.8`` achieves full functionality in this context.
-* new macros:
+* New macros:
- :ref:`\\polnewpolverbosefalse `
- :ref:`\\PolToExprCaret `
- :ref:`\\PolToExprInVar `
- - alongside the major new functionalities described in the next item
+ - Alongside the major new functionalities described in the next item
:ref:`\\PolTypeset ` and :ref:`\\PolToExpr ` have
been enhanced to accept as argument a general expression and not
only a pre-declared polynomial name.
-* new features:
+* New features:
- The package is usable under Plain and probably most any TeX format,
and not only under LaTeX.
@@ -392,15 +392,15 @@ Synced with xintexpr 1.4d. Requires it.
See the updated :ref:`Quick syntax overview ` and then
:ref:`the extended syntax description `.
-v0.8.1 (2021/04/12)
--------------------
+0.8.1 (2021/04/12)
+------------------
-* breaking changes:
+* Breaking changes:
- - renamed v0.8's ``icontent()`` to :ref:`cont() `.
- - renamed v0.8's ``lcoeff()`` to :ref:`lc() `.
+ - Renamed 0.8's ``icontent()`` to :ref:`cont() `.
+ - Renamed 0.8's ``lcoeff()`` to :ref:`lc() `.
-* bugfix:
+* Bug fixes:
- Sadly, ``diff1()``, ``diff2()``, ``diffn()`` were broken
for polynomials of degrees 8 or more, due to a typo and
@@ -415,20 +415,20 @@ v0.8.1 (2021/04/12)
was broken by an end-of-line space, left-over
from mass conversion from LaTeX to TeX syntax.
-* added:
+* Added:
- :ref:`lpol() `
- :ref:`lcoeffs() `
-v0.8.2 (2021/05/05)
--------------------
+0.8.2 (2021/05/05)
+------------------
-* breaking change:
+* Breaking change:
- - usage of ``\xintPFloat`` in place of ``\xintFloat`` for
+ - Usage of ``\xintPFloat`` in place of ``\xintFloat`` for
:ref:`\\PolToFloatExprCmd `.
-* improved:
+* Improved:
- Some xintexpr_ functions such as ``rseq()`` use the semi-colon,
and it was mentioned in the documentation that :ref:`\\poldef `
@@ -438,49 +438,49 @@ v0.8.2 (2021/05/05)
this work-around. With this relase only :ref:`\\poldef ` but
not :ref:`\\PolDef ` needs the work-around.
-* track xintexpr_ ``1.4e`` changes relative to powers.
+* Track xintexpr_ ``1.4e`` changes relative to powers.
-v0.8.3 (2021/05/27)
--------------------
+0.8.3 (2021/05/27)
+------------------
-* small internal update to track an xintexpr_ ``1.4h`` change
+* Small internal update to track an xintexpr_ ``1.4h`` change
regarding handling of exceptions. Will require this version at
least on loading.
-v0.8.4 (2021/11/01)
--------------------
+0.8.4 (2021/11/01)
+------------------
-* bugfix: :ref:`\\PolSturmIsolateZeros**{\}
+* Bug fix: :ref:`\\PolSturmIsolateZeros**{\}
` did not declare the ``_norr`` and
``_sqf_norr`` polynomials if original polynomial had no real
root!
-v0.8.5 (2021/11/30)
--------------------
+0.8.5 (2021/11/30)
+------------------
-* bugfix: support for the ``intfrom()`` function was in the code,
+* Bug fix: support for the ``intfrom()`` function was in the code,
but the declaration to the polynomial parser had not been done.
-* track (belatedly) upstream deprecation of ``\xintSignedFrac`` and
+* Track (belatedly) upstream deprecation of ``\xintSignedFrac`` and
``\xintSignedFwOver`` at xintexpr_ ``1.4g``
-v0.8.6 (2022/01/09)
--------------------
+0.8.6 (2022/01/09)
+------------------
-* provide a separate ``polexpr-examples.pdf`` with examples formerly
+* Provide a separate ``polexpr-examples.pdf`` with examples formerly
shown as part of the html documentation.
-* minor improvement to the computation of a priori bounds on real roots.
+* Minor improvement to the computation of a priori bounds on real roots.
-* add :ref:`\\PolPrintIntervalsRowSeparator `
+* Add :ref:`\\PolPrintIntervalsRowSeparator `
and allow usage of ``amsmath`` environments in custom
:ref:`\\PolPrintIntervalsBeginEnv ` and
:ref:`\\PolPrintIntervalsEndEnv `.
-v0.8.7 (2022/05/14)
--------------------
+0.8.7 (2022/05/14)
+------------------
-* bugfix: catcode sanitization by :ref:`\\poldef ` was minimal
+* Bug fix: catcode sanitization by :ref:`\\poldef ` was minimal
ever since ``0.1`` and handled only the semi-colon. Thus e.g. the
active ``!`` from babel-french caused errors and ``\string!`` was
needed as work-around for factorials. Now the same sanitization as
@@ -488,9 +488,14 @@ v0.8.7 (2022/05/14)
only work at locations where the catcodes are not yet frozen at the
time ``\poldef`` expands.
-* split the html documentation into three files and enhance it via CSS
+* Split the html documentation into three files and enhance it via CSS
styling.
+0.8.7a (2022/05/19)
+-------------------
+
+* Documentation updates.
+
.. _xinttools:
.. _xintfrac:
diff --git a/Master/texmf-dist/doc/generic/polexpr/polexpr-examples.pdf b/Master/texmf-dist/doc/generic/polexpr/polexpr-examples.pdf
index 5be0a95a42e..943e251c820 100644
Binary files a/Master/texmf-dist/doc/generic/polexpr/polexpr-examples.pdf and b/Master/texmf-dist/doc/generic/polexpr/polexpr-examples.pdf differ
diff --git a/Master/texmf-dist/doc/generic/polexpr/polexpr-ref.html b/Master/texmf-dist/doc/generic/polexpr/polexpr-ref.html
index 9f3767c48de..7f1b54b7490 100644
--- a/Master/texmf-dist/doc/generic/polexpr/polexpr-ref.html
+++ b/Master/texmf-dist/doc/generic/polexpr/polexpr-ref.html
@@ -6,7 +6,7 @@
- polexpr reference — polexpr 0.8.7 documentation
+ polexpr reference — polexpr 0.8.7a documentation
@@ -20,7 +20,7 @@
@@ -49,18 +49,15 @@ and, so far (but this may change in future) neither does rdcoeffs() and the macro
\PolReduceCoeffs.
-
+
In place of x an arbitrary dummy variable is authorized,
i.e. per default one a,..,z,A,..,Z (more letters can be declared
under Unicode engines).
-
polname consists of letters, digits, and also the _ and
-' characters are allowed. The polynomial name must start with
-a letter: do not use the underscore _ as first character of a
-polynomial name (even if of catcode letter). No warning is emitted
-but dire consequences will ensue. The @ is also allowed
-(independently of its catcode “letter” or “other”, which does not
-matter). It is recommended to avoid using it as first character,
-except for temporary polynomial variables.
+
polname is a word (no space) built with letters, digits, and
+the @, _ and ' characters are allowed. The polynomial
+name must start with a letter.
The colon before the equality sign is optional and its (reasonable)
catcode does not matter.
The semi-colon at the end of the expression is mandatory. It is not
@@ -248,7 +245,7 @@ coefficients.
This is useful for console or file output. This syntax is Maple and
PSTricks \psplot[algebraic] compatible; and also it is
compatible with \poldef input syntax, of course. See
-\PolToExprCaret for configuration of the ^, for example to
+\PolToExprCaret for configuration of the ^, for example to
use rather ** for Python syntax compliance.
Changed at 0.8: the ^ in output is by default of catcode 12
so in a draft document one can use \PolToExpr{P} inside the
@@ -966,7 +963,8 @@ coefficients in a private structure accessible later via other
package macros, used with argument polname. Of course the
expression can make use of previously defined polynomials.
Polynomial names must start with a letter and are constituted of
-letters, digits, underscores and the right tick '.
+letters, digits, underscores, the @ (see Technicalities) and
+the right tick '.
The whole xintexpr syntax is authorized, as long as the final
result is of polynomial type:
\poldef polname(z) := add((-1)^i z^(2i+1)/(2i+1)!, i = 0..10);
@@ -983,16 +981,16 @@ as well as in \xint
and also other polynomials (via their names, thanks to previous
item).
-
Notice that any function defined via \xintdeffunc and using
-only algebraic operations (and ople indexing or slicing operations)
-should work fine in \xintexpr/\xinteval with such polynomial
-names as argument.
-
In the case of a constant polynomial, the xintexpr variable (not the
-internal data structure on which the package macros operate)
+
Any function defined via \xintdeffunc and only algebraic
+operations, as well as ople indexing or slicing operations, should
+work fine in \xintexpr/\xinteval with such polynomial names as
+argument.
+
In the case of a constant polynomial, the xintexprvariable (not
+the internal data structure on which the package macros operate)
associated to it is indistinguishable from a scalar, it is actually
a scalar and has lost all traces from its origins as a polynomial
-(so for example can be used as argument to the cos() function).
-
The function on the other hand remains a one-argument function,
+(so for example can be used as argument to the cos() function).
+The function on the other hand remains a one-argument function,
which simply has a constant value.
Attention
@@ -1001,7 +999,7 @@ which simply has a constant value.
context. It will be unknown to \xintfloateval.
Worse, a
previously existing floating point function of the same name will
-be let undefined again, to avoid hard to debug mismatches between
+be made undefined again, to avoid hard to debug mismatches between
exact and floating point polynomials. This also applies when the
polynomial is produced not via \poldef or \PolDef but
as result of usage of the other package macros.
@@ -1058,18 +1056,18 @@ the new polynomial is to be used in <
-
\PolTypeset{}
-
Syntax: \PolTypeset{<pol.expr.>}
+
\PolTypeset[]{}
+
Syntax: \PolTypeset[<letter>]{<pol.expr.>}
Typesets in descending powers, switching to math mode if in text
mode, after evaluating the polynomial expression:
\PolTypeset{mul(x-i,i=1..5)}% possible since polexpr 0.8
-
The letter used in the input expression is by default x,
-but can be modified by a redefinition of \PolToExprInVar.
-
It uses also by default the letter x on output but this one can
-be changed via an optional argument:
+
The letter used in the input is by default assumed to be x,
+but can be modified by a redefinition of \PolToExprInVar.
+
The letter used in the output is also by default x. This one
+can be changed on-the-fly via the optional <letter>:
\PolTypeset[z]{polname or polynomial expression}
@@ -1148,18 +1146,19 @@ separator in the typeset formula. Not used for the first term.
-
\PolTypeset*{}
-
Syntax: \PolTypeset*{<pol.expr.>}
+
\PolTypeset*[]{}
+
Syntax: \PolTypeset*[<letter>]{<pol.expr.>}
-
Typesets in ascending powers. Use [<letter>] optional argument
-(after the *) to use another letter than x.
+
Typesets in ascending powers. The <letter> optional argument
+(after the *) declares the letter to use in the output.
+As for \PolTypeset, it defaults to x.
Extended at 0.8 to accept general expressions and not only
-polynomial names. Redefine \PolToExprInVar to use in the
-expression another letter than default x.
+polynomial names.
-
\PolLet{}={}
+
\PolLet{}={}
Syntax: \PolLet{<polname_2>}={<polname_1>}
Makes a copy of the already defined polynomial polname_1 to a
@@ -1170,7 +1169,7 @@ new one polname_2
This sets polname_GCD to be the (monic) GCD of polname_1
@@ -1377,7 +1376,7 @@ additional polynomial or scalar variables with names based on <sturmname> namespace separate from
the one applying to \xintexpr variables generally, or to polynomials.
-
\PolToSturm{}{}
+
\PolToSturm{}{}
Syntax: \PolToSturm{<polname>}{<sturmname>}
With <polname> being for example P, and <sturmname> being
@@ -1433,15 +1432,18 @@ other polynomials after having done
latter will behave erroneously.
Note
-
The declaration of the S_k‘s will overwrite
-with no warning previously declared polynomials with identical
-names S_k. This is original reason why the macro expects two
-names: <polname> and <sturmname>.
+
The declaration of the S_k‘s will overwrite with no warning
+previously declared polynomials with identical names S_k,
+i.e. <sturmname>_k. This is why the macro was designed
+to expect two names: <polname> and <sturmname>.
It is allowed to use the polynomial name P as Sturm chain
-name S: \PolToSturm{f}(f}, but of course fusing the
-namespaces is slightly dangerous. And, also \PolSturmIsolateZeros creates variables sharing
-the <sturmname> prefix, which must be taken into account to
-avoid name clashes.
+name S: \PolToSturm{P}{P}, but this is considered bad
+practice for the reason mentioned in the previous paragraph.
+
Furthermore, \PolSturmIsolateZeros
+creates xintexpr variables whose names start with
+<sturmname>L_, <sturmname>R_, and <sturmname>Z_, also
+<sturmname>M_ for holding the multiplicities, and this may
+overwrite pre-existing user-defined xintexpr variables.
Warning
@@ -1462,8 +1464,8 @@ the number of distinct real roots is at most S_0.
-
-
\PolToSturm*{}{}
+
+
\PolToSturm*{}{}
Syntax: \PolToSturm*{<polname>}{<sturmname>}
Does the same as un-starred version and additionally it
@@ -1474,7 +1476,7 @@ polynomials sturmna
-
\PolSturmIsolateZeros{}
+
\PolSturmIsolateZeros{}
Syntax: \PolSturmIsolateZeros{<sturmname>}
The macro locates, using the Sturm Theorem, as many disjoint
@@ -1574,8 +1576,8 @@ are studied in numerical mathematics.
Somewhat counter-intuitively, it is not necessary to have
-executed the \PolToSturm*
+executed the \PolToSturm*
starred variant: during its
execution, \PolToSturm,
even though it does not declare the
@@ -1603,18 +1605,18 @@ polynomials, stores their data in private macros.
This works exactly like \PolSturmIsolateZeros**{<sturmname>}
(inclusive of declaring the polynomials sturmname_sqf_norr and
sturmname_norr with no rational roots) except that it does not
compute the multiplicities of the non-rational roots.
@@ -1662,7 +1664,7 @@ multiplicities and it leaves the multiplicity array (whose accessor
is \PolSturmIsolatedZeroMultiplicity{<sturmname>}{<index>}) into
a broken state, as all non-rational roots will supposedly have
multiplicity one. This means that the output of
-\PolPrintIntervals* will be
+\PolPrintIntervals* will be
erroneous regarding the multiplicities of irrational roots.
I decided to document it because finding multiplicities of the
non rational roots is somewhat costly, and one may be interested
@@ -1673,7 +1675,7 @@ rational root anyhow).
-
\PolRefineInterval*{}{}
+
\PolRefineInterval*{}{}
Syntax: \PolRefineInterval*{<sturmname>}{<index>}
The index-th interval (starting indexing at one) is further
@@ -1683,8 +1685,8 @@ the original interval. As a consequence, the
-
Executed in place of an array environment, when there are no
real roots. Default definition:
@@ -1783,7 +1785,7 @@ real roots. Default definition:
-
\PolPrintIntervalsBeginEnv
+
\PolPrintIntervalsBeginEnv
Default definition (given here for LaTeX, Plain has a variant):
\newcommand\PolPrintIntervalsBeginEnv{\[\begin{array}{rcccl}}
@@ -1791,14 +1793,14 @@ real roots. Default definition:
A simpler center environment provides a straightforward way to
obtain a display allowing pagebreaks. Of course redefinitions must
-at any rate be kept in sync with \PolPrintIntervalsKnownRoot and
-\PolPrintIntervalsUnknownRoot.
Multiplicities are printed using this auxiliary macro:
-
\PolPrintIntervalsPrintMultiplicity
+
\PolPrintIntervalsPrintMultiplicity
whose default definition is:
\newcommand\PolPrintIntervalsPrintMultiplicity{(\mbox{mult. }\PolPrintIntervalsTheMultiplicity)}
@@ -1910,19 +1912,19 @@ if testing with a non LaTeX macro format.
\PolToFloatExpr which need a \write, \edef or a
\csname...\endcsname context.
-
\PolToExpr{}
+
\PolToExpr{}
Syntax: \PolToExpr{<pol.expr.>}
-
Produces expandably [3] the string coeff_N*x^N+..., i.e. the
+
Produces expandably [3] the string coeff_N*x^N+..., i.e. the
polynomial is using descending powers.
-
-
\PolToExprVar
+
\PolToExprVar
Defaults to x. The letter used in the macro output.
-
\PolToExprInVar
+
\PolToExprInVar
Defaults to x: the letter used as the polynomial indeterminate
-in the macro input.
+in the macro input:
+
\def\PolToExprInVar{x}% (default)
+
+
Recall that declared polynomials are more efficiently used in
algebraic expressions without the (x), i.e. P*Q is better
than P(x)*Q(x). Thus the input, even if an expression, does not
@@ -1971,13 +1976,13 @@ have to contain any
-
\PolToExprTimes
+
\PolToExprTimes
Defaults to *.
-
\PolToExprCaret
+
\PolToExprCaret
Defaults to ^ of catcode 12. Set it to
expand to ** for Python compatible output.
@@ -1985,7 +1990,7 @@ expand to **
-
\PolToExprCmd{}
+
\PolToExprCmd{}
Syntax: \PolToExprCmd{<raw_coeff>}
Defaults to \xintPRaw{\xintRawWithZeros{#1}}.
@@ -2005,25 +2010,25 @@ and not their finite decimal expansion with no denominator.
To activate it use \let\PolToExprOneTerm\PolToExprOneTermStyleB.
To revert to the package default behaviour, issue
\let\PolToExprOneTerm\PolToExprOneTermStyleA.
-
\PolToExprTermPrefix{}
+
\PolToExprTermPrefix{}
Syntax: \PolToExprTermPrefix{<raw_coeff>}
It receives as argument the coefficient. Its default behaviour is
@@ -2051,7 +2056,7 @@ positive coefficient does not output an explicit
-
It expands to the raw N-th coefficient (N=0 corresponds to
@@ -2118,14 +2123,14 @@ for N<-1-degree<
-
\PolLeadingCoeff{}
+
\PolLeadingCoeff{}
Syntax: \PolLeadingCoeff{<polname>}
Expands to the leading coefficient.
-
\PolDegree{}
+
\PolDegree{}
Syntax: \PolDegree{<polname>}
It expands to the degree. This is -1 if zero polynomial but this
@@ -2133,7 +2138,7 @@ may change in future. Should it then expand to
-
\PolIContent{}
+
\PolIContent{}
Syntax: \PolIContent{<polname>}
It expands to the contents of the polynomial, i.e. to the positive
@@ -2143,7 +2148,7 @@ with integer coefficients having no common prime divisor.
-
\PolToList{}
+
\PolToList{}
Syntax: \PolToList{<polname>}
Expands to {coeff_0}{coeff_1}...{coeff_N} with N = degree, and
@@ -2153,7 +2158,7 @@ empty output.)
-
\PolToCSV{}
+
\PolToCSV{}
Syntax: \PolToCSV{<polname>}
Expands to coeff_0,coeff_1,coeff_2,.....,coeff_N, starting
@@ -2205,12 +2210,12 @@ been issued before.
To use the exact coefficients with exactly executed additions
and multiplications and do the rounding only as the final last step,
-the following syntax can be used: [4]
See Thedegreeninepolynomialwith0.99,0.999,0.9999astripleroots in polexpr-examples.pdf.
-
\PolSturmNbOfIsolatedZeros{}
+
\PolSturmNbOfIsolatedZeros{}
Syntax: \PolSturmNbOfIsolatedZeros{<sturmname>}
Expands to the number of real roots of the polynomial
@@ -2339,7 +2344,7 @@ the polynomial used to create the Sturm chain) which are less than
or equal to the given value.
Expands to the name (default Z) used for representing the roots,
which was passed as optional argument varname to
@@ -2450,31 +2455,31 @@ which was passed as optional argument
-
\PolPrintIntervalsTheIndex
+
\PolPrintIntervalsTheIndex
Expands to the index of the considered interval (indexing starting
at 1 for the leftmost interval).
This is actually an xintexpr configuration. Setting it to
true triggers the writing of information to the log when new
@@ -2507,7 +2512,7 @@ considered unstable and undocumented internal structures.
-
\polnewpolverbosefalse
+
\polnewpolverbosefalse
When \poldef is used, both a variable and a function are
defined. The default \polnewpolverbosefalse setting suppresses
@@ -2528,14 +2533,14 @@ roots obey only the
-
\poltypesetallfalse
+
\poltypesetallfalse
If true, \PolTypeset will also typeset the vanishing
coefficients.
norr: the postfix that \PolSturmIsolateZeros**{<sturmname>}
should append to <sturmname> to declare the primitive polynomial
obtained from original one after removal of all rational roots.
The default value is _norr (standing for “no rational roots”).
sqfnorr: the postfix that \PolSturmIsolateZeros**{<sturmname>}
should append to <sturmname> to declare the primitive polynomial
obtained from original one after removal of all rational roots and
suppression of all multiplicities.
@@ -2590,15 +2595,20 @@ no rational roots”).
Technicalities
-
The @ is allowed in the name of a polynomial (independently of
-whether it is of catcode letter or other.) This has always been the
-case, but was not documented by polexpr prior to 0.8, as the
-author has never found the time to provide some official guidelines on
-how to name temporary variables and the @ is used already as such
-internally; time has still not yet been found to review the situation
-but it seems reasonable to recommend at any rate to restrict usage of
-@ to scratch variables of defined macros and to avoid using it to
-name document variable.
+
Do not use the underscore _ as the first character of a
+polynomial name, even if of catcode letter. This may cause an
+infinite loop.
+
The @ is allowed in the names of polynomials, independently of
+whether it is of catcode letter or other. In defining macros which
+will use \poldef to create polynomials it seems reasonable to
+adopt the convention that @ as first character in polynomial
+names is to be reserved to temporary auxiliary polynomials.
+
+
Attention
+
Do not use @_ at start of polynomial names. This is reserved for
+internal usage by the package.
+
+
Catcodes are set temporarily by \poldef macro to safe
values prior to grab the polynomial expression up to the terminator
;, and also by \PolDef prior to grab the
@@ -2709,7 +2719,7 @@ documented and unstable. Don’t use them.
diff --git a/Master/texmf-dist/doc/generic/polexpr/polexpr-ref.rst.txt b/Master/texmf-dist/doc/generic/polexpr/polexpr-ref.rst.txt
index 028e68626f6..0c6ab082af7 100644
--- a/Master/texmf-dist/doc/generic/polexpr/polexpr-ref.rst.txt
+++ b/Master/texmf-dist/doc/generic/polexpr/polexpr-ref.rst.txt
@@ -33,14 +33,11 @@ exactly arbitrarily big integers or fractions.
i.e. per default one ``a, .., z, A, .., Z`` (more letters can be declared
under Unicode engines).
-- ``polname`` consists of *letters*, *digits*, and also the ``_`` and
- ``'`` characters are allowed. The polynomial name **must** start with
- a letter: do not use the underscore ``_`` as *first character* of a
- polynomial name (even if of catcode letter). No warning is emitted
- but dire consequences will ensue. The ``@`` is also allowed
- (independently of its catcode "letter" or "other", which does not
- matter). It is recommended to avoid using it as first character,
- except for temporary polynomial variables.
+- ``polname`` is a word (no space) built with *letters*, *digits*, and
+ the ``@``, ``_`` and ``'`` characters are allowed. The polynomial
+ name **must** start with a letter.
+
+ For guidelines regarding ``_`` and ``@`` see Technicalities_.
- The colon before the equality sign is optional and its (reasonable)
catcode does not matter.
@@ -1079,7 +1076,8 @@ Non-expandable macros
*expression* can make use of previously defined polynomials.
Polynomial names must start with a letter and are constituted of
- letters, digits, underscores and the right tick ``'``.
+ letters, digits, underscores, the ``@`` (see Technicalities_) and
+ the right tick ``'``.
The whole xintexpr_ syntax is authorized, as long as the final
result is of polynomial type::
@@ -1100,17 +1098,16 @@ Non-expandable macros
and also other polynomials (via their names, thanks to previous
item).
- Notice that any function defined via ``\xintdeffunc`` and using
- only algebraic operations (and ople indexing or slicing operations)
- should work fine in ``\xintexpr/\xinteval`` with such polynomial
- names as argument.
+ Any function defined via ``\xintdeffunc`` and only algebraic
+ operations, as well as ople indexing or slicing operations, should
+ work fine in ``\xintexpr/\xinteval`` with such polynomial names as
+ argument.
- In the case of a constant polynomial, the xintexpr_ variable (not the
- internal data structure on which the package macros operate)
+ In the case of a constant polynomial, the xintexpr_ *variable* (not
+ the internal data structure on which the package macros operate)
associated to it is indistinguishable from a scalar, it is actually
a scalar and has lost all traces from its origins as a polynomial
(so for example can be used as argument to the ``cos()`` function).
-
The *function* on the other hand remains a one-argument function,
which simply has a constant value.
@@ -1122,7 +1119,7 @@ Non-expandable macros
Worse, a
previously existing floating point function of the same name will
- be let undefined again, to avoid hard to debug mismatches between
+ be made undefined again, to avoid hard to debug mismatches between
exact and floating point polynomials. This also applies when the
polynomial is produced not via ``\poldef`` or ``\PolDef`` but
as result of usage of the other package macros.
@@ -1187,21 +1184,21 @@ Syntax: ``\PolGenFloatVariant{}``
.. _PolTypeset:
-``\PolTypeset{}``
-~~~~~~~~~~~~~~~~~
+``\PolTypeset[]{}``
+~~~~~~~~~~~~~~~~~~~
-Syntax: ``\PolTypeset{}``
+Syntax: ``\PolTypeset[]{}``
Typesets in descending powers, switching to math mode if in text
mode, after evaluating the polynomial expression::
\PolTypeset{mul(x-i,i=1..5)}% possible since polexpr 0.8
- The letter used in the input expression is by default ``x``,
+ The letter used in the input is by default assumed to be ``x``,
but can be modified by a redefinition of `\\PolToExprInVar`_.
- It uses also by default the letter ``x`` on output but this one can
- be changed via an optional argument::
+ The letter used in the output is also by default ``x``. This one
+ can be changed on-the-fly via the optional ````::
\PolTypeset[z]{polname or polynomial expression}
@@ -1294,17 +1291,19 @@ Syntax: ``\PolTypesetCmdPrefix{}``
.. _PolTypeset*:
-``\PolTypeset*{}``
-~~~~~~~~~~~~~~~~~~
+``\PolTypeset*[]{}``
+~~~~~~~~~~~~~~~~~~~~
-Syntax: ``\PolTypeset*{}``
+Syntax: ``\PolTypeset*[]{}``
- Typesets in ascending powers. Use ``[]`` optional argument
- (after the ``*``) to use another letter than ``x``.
+ Typesets in ascending powers. The ```` optional argument
+ (after the ``*``) declares the letter to use in the *output*.
+ As for `\\PolTypeset `_, it defaults to ``x``.
+
+ To modify the expected ``x`` in the *input*, see `\\PolToExprInVar`_.
Extended at ``0.8`` to accept general expressions and not only
- polynomial names. Redefine `\\PolToExprInVar`_ to use in the
- expression another letter than default ``x``.
+ polynomial names.
.. _PolLet:
@@ -1667,17 +1666,20 @@ Syntax: ``\PolToSturm{}{}``
.. note::
- The declaration of the ``S_k``\ 's will overwrite
- with no warning previously declared polynomials with identical
- names ``S_k``. This is original reason why the macro expects two
- names: ```` and ````.
+ The declaration of the ``S_k``\ 's will overwrite with no warning
+ previously declared polynomials with identical names ``S_k``,
+ i.e. ``