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 @@
  • previous
  • - + @@ -28,8 +28,8 @@

    CHANGES

    -
    -

    v0.1 (2018/01/11): initial release. Features:

    +
    +

    0.1 (2018/01/11): initial release. Features:

    • The \poldef parser itself,

    • Differentiation and anti-differentiation,

    • @@ -40,8 +40,8 @@

    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.

    • @@ -52,12 +52,12 @@

      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 \PolEval accepted expressions for its +

      • 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.

      • +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.

    • -
    • new (or newly documented) macros:

      +
    • New (or newly documented) macros:

    • -
    • 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.

      • \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)

    -
    -

    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)

    -
    -

    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:

    • -
    • new macro:

      +
    • New macro:

    • -
    • new expandable macros:

      +
    • New expandable macros:

      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 @@
    • previous |
    • - +
    @@ -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.

        +

        For guidelines regarding _ and @ see Technicalities.

        +
      • 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 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, +(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.

    +

    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{}={}

    +

    \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

    -

    \PolGlobalLet{}={}

    +

    \PolGlobalLet{}={}

    Syntax: \PolGlobalLet{<polname_2>}={<polname_1>}

    Acts globally.

    @@ -1212,7 +1211,7 @@ via xintfrac<
    -

    \PolFromCSV{}{}

    +

    \PolFromCSV{}{}

    Syntax: \PolFromCSV{<polname>}{<csv>}

    -

    \PolMapCoeffs{}{}

    +

    \PolMapCoeffs{}{}

    Syntax: \PolMapCoeffs{\macro}{<polname>}

    -
    -

    \PolReduceCoeffs*{}

    +
    +

    \PolReduceCoeffs*{}

    Syntax: \PolReduceCoeffs*{<polname>}

    Reduces the internal representations of the coefficients to their @@ -1275,18 +1274,18 @@ remain generally smaller.

    -

    \PolMakeMonic{}

    +

    \PolMakeMonic{}

    Syntax: \PolMakeMonic{<polname>}

    Divides by the leading coefficient. It is recommended to execute -\PolReduceCoeffs*{<polname>} immediately afterwards. This is not +\PolReduceCoeffs*{<polname>} immediately afterwards. This is not done automatically, in case the original polynomial had integer coefficients and the user wants to keep the leading one as common denominator for typesetting purposes.

    -

    \PolMakePrimitive{}

    +

    \PolMakePrimitive{}

    Syntax: \PolMakePrimitive{<polname>}

    Divides by the integer content see (\PolIContent). @@ -1296,7 +1295,7 @@ coefficient is not modified.

    -

    \PolDiff{}{}

    +

    \PolDiff{}{}

    Syntax: \PolDiff{<polname_1>}{<polname_2>}

    This sets polname_2 to the first derivative of polname_1. It @@ -1306,8 +1305,8 @@ by f' (see Technicalities for the whole story.)

    -
    -

    \PolDiff[]{}{}

    +
    +

    \PolDiff[]{}{}

    Syntax: \PolDiff[N]{<polname_1>}{<polname_2>}

    This sets polname_2 to the N-th derivative of polname_1. @@ -1317,7 +1316,7 @@ using \PolAntiDiff<

    -

    \PolAntiDiff{}{}

    +

    \PolAntiDiff{}{}

    Syntax: \PolAntiDiff{<polname_1>}{<polname_2>}

    This sets polname_2 to the primitive of polname_1 vanishing @@ -1326,8 +1325,8 @@ at zero.

    (see Technicalities for the whole story.)

    -
    -

    \PolAntiDiff[]{}{}

    +
    +

    \PolAntiDiff[]{}{}

    Syntax: \PolAntiDiff[N]{<polname_1>}{<polname_2>}

    This sets polname_2 to the result of N successive integrations on @@ -1335,7 +1334,7 @@ at zero.

    -

    \PolDivide{}{}{}{}

    +

    \PolDivide{}{}{}{}

    Syntax: \PolDivide{<polname_1>}{<polname_2>}{<polname_Q>}{<polname_R>}

    This sets polname_Q and polname_R to be the quotient and @@ -1344,7 +1343,7 @@ remainder in the Euclidean division of -

    \PolQuo{}{}{}

    +

    \PolQuo{}{}{}

    Syntax: \PolQuo{<polname_1>}{<polname_2>}{<polname_Q>}

    This sets polname_Q to be the quotient in the Euclidean division @@ -1352,7 +1351,7 @@ of polname_1

    -

    \PolRem{}{}{}

    +

    \PolRem{}{}{}

    Syntax: \PolRem{<polname_1>}{<polname_2>}{<polname_R>}

    This sets polname_R to be the remainder in the Euclidean division @@ -1360,7 +1359,7 @@ of polname_1

    -

    \PolGCD{}{}{}

    +

    \PolGCD{}{}{}

    Syntax: \PolGCD{<polname_1>}{<polname_2>}{<polname_GCD>}

    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.

    -
    -

    \PolSturmIsolateZeros*{}

    +
    +

    \PolSturmIsolateZeros*{}

    Syntax: \PolSturmIsolateZeros*{<sturmname>}

    The macro does the same as \PolSturmIsolateZeros{<sturmname>} and @@ -1592,7 +1594,7 @@ computed.

    Note

    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.

    roots
    example in polexpr-examples.pdf.

    -
    \PolSturmIsolateZerosAndGetMultiplicities{}
    +
    \PolSturmIsolateZerosAndGetMultiplicities{}

    Syntax: \PolSturmIsolateZerosAndGetMultiplicities{<sturmname>}

    -

    This is another name for \PolSturmIsolateZeros*{<sturmname>}.

    +

    This is another name for \PolSturmIsolateZeros*{<sturmname>}.

    -
    -

    \PolSturmIsolateZeros**{}

    +
    +

    \PolSturmIsolateZeros**{}

    Syntax: \PolSturmIsolateZeros**{<sturmname>}

    -

    The macro does the same as \PolSturmIsolateZeros*{<sturmname>} and +

    The macro does the same as \PolSturmIsolateZeros*{<sturmname>} and in addition it does the extra work to determine all the rational roots.

    @@ -1634,18 +1636,18 @@ the original polynomial, with the same multiplicities.

    roots
    in polexpr-examples.pdf.

    -
    \PolSturmIsolateZerosGetMultiplicitiesAndRationalRoots
    +
    \PolSturmIsolateZerosGetMultiplicitiesAndRationalRoots

    Syntax: \PolSturmIsolateZerosGetMultiplicitiesAndRationalRoots

    -

    This is another name for \PolSturmIsolateZeros**{<sturmname>}.

    +

    This is another name for \PolSturmIsolateZeros**{<sturmname>}.

    -

    \PolSturmIsolateZerosAndFindRationalRoots{}

    +

    \PolSturmIsolateZerosAndFindRationalRoots{}

    Syntax: \PolSturmIsolateZerosAndFindRationalRoots{<sturmname>}

    -

    This works exactly like \PolSturmIsolateZeros**{<sturmname>} +

    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 -

    \PolRefineInterval[]{}{}

    +
    +

    \PolRefineInterval[]{}{}

    Syntax: \PolRefineInterval[N]{<sturmname>}{<index>}

    The index-th interval (starting count at one) is further @@ -1693,7 +1695,7 @@ subdivided once, reducing its length by a factor of 10. This is done

    -

    \PolEnsureIntervalLength{}{}{}

    +

    \PolEnsureIntervalLength{}{}{}

    Syntax: \PolEnsureIntervalLength{<sturmname>}{<index>}{<exponent>}

    The index-th interval is subdivided until its length becomes at @@ -1702,7 +1704,7 @@ after decimal mark of the

    -

    \PolEnsureIntervalLengths{}{}

    +

    \PolEnsureIntervalLengths{}{}

    Syntax: \PolEnsureIntervalLengths{<sturmname>}{<exponent>}

    The intervals as obtained from \PolSturmIsolateZeros are (if @@ -1713,7 +1715,7 @@ each of them to have length at most <

    -

    \PolSetToSturmChainSignChangesAt{}{}{}

    +

    \PolSetToSturmChainSignChangesAt{}{}{}

    Syntax: \PolSetToSturmChainSignChangesAt{\foo}{<sturmname>}{<value>}

    @@ -1773,7 +1775,7 @@ primitives.

    The next macros which govern its output.

    -

    \PolPrintIntervalsNoRealRoots

    +

    \PolPrintIntervalsNoRealRoots

    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.

    +at any rate be kept in sync with \PolPrintIntervalsKnownRoot and +\PolPrintIntervalsUnknownRoot.

    Prior to 0.8.6 it was not possible to use here for example \begin{align} due to the latter executing twice in contents.

    -

    \PolPrintIntervalsEndEnv

    +

    \PolPrintIntervalsEndEnv

    Default definition:

    \newcommand\PolPrintIntervalsEndEnv{\end{array}\]}
    @@ -1807,14 +1809,14 @@ at any rate be kept in sync with \Pol
     
    -

    \PolPrintIntervalsRowSeparator

    +

    \PolPrintIntervalsRowSeparator

    Expands by default to \\ with LaTeX and to \cr with Plain

    Added at 0.8.6.

    -

    \PolPrintIntervalsKnownRoot

    +

    \PolPrintIntervalsKnownRoot

    -

    \PolPrintIntervalsUnknownRoot

    +

    \PolPrintIntervalsUnknownRoot

    -

    \PolPrintIntervalsPrintExactZero

    +

    \PolPrintIntervalsPrintExactZero

    -

    \PolPrintIntervalsPrintLeftEndPoint

    +

    \PolPrintIntervalsPrintLeftEndPoint

    -

    \PolPrintIntervalsPrintRightEndPoint

    +

    \PolPrintIntervalsPrintRightEndPoint

    -

    \PolPrintIntervals*[<varname>]{}

    +

    \PolPrintIntervals*[<varname>]{}

    Syntax: \PolPrintIntervals*[<varname>]{<sturmname>}

    This starred variant produces an alternative output (which displays the root multiplicity), and is provided as an example of customization.

    -

    As replacement for \PolPrintIntervalsKnownRoot, -\PolPrintIntervalsPrintExactZero, -\PolPrintIntervalsUnknownRoot it uses its own +

    As replacement for \PolPrintIntervalsKnownRoot, +\PolPrintIntervalsPrintExactZero, +\PolPrintIntervalsUnknownRoot it uses its own \POL@@PrintIntervals... macros. We only reproduce here one definition:

    \newcommand\POL@@PrintIntervalsPrintExactZero{%
    @@ -1886,7 +1888,7 @@ definition:

    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.

    -

    \PolToExprOneTerm{}{}

    +

    \PolToExprOneTerm{}{}

    Syntax: \PolToExprOneTerm{<raw_coeff>}{<exponent>}

    This is the macro which from the coefficient and the exponent produces the corresponding term in output, such as 2/3*x^7.

    For its default definition, see the source code. It uses \PolToExprCmd, \PolToExprTimes, \PolToExprVar and -\PolToExprCaret.

    +\PolToExprCaret.

    -

    \PolToExprOneTermStyleA{}{}

    +

    \PolToExprOneTermStyleA{}{}

    Syntax: \PolToExprOneTermStyleA{<raw_coeff>}{<exponent>}

    This holds the default package meaning of \PolToExprOneTerm.

    -

    \PolToExprOneTermStyleB{}{}

    +

    \PolToExprOneTermStyleB{}{}

    Syntax: \PolToExprOneTermStyleB{<raw_coeff>}{<exponent>}

    This holds an alternative meaning, which puts the fractional part of @@ -2032,14 +2037,14 @@ a coefficient after the monomial, i.e. like this:

    \PolToExprCmd isn’t used at all in this style. But -\PolToExprTimes, \PolToExprVar and \PolToExprCaret are obeyed.

    +\PolToExprTimes, \PolToExprVar and \PolToExprCaret are obeyed.

    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 -

    \PolToFloatExpr{}

    +

    \PolToFloatExpr{}

    Syntax: \PolToFloatExpr{<pol. expr.>}

    Similar to \PolToExpr{<pol. expr.>} but using @@ -2069,7 +2074,7 @@ in between).

    Extended at 0.8 to accept general expressions as input.

    -

    \PolToFloatExprOneTerm{}{}

    +

    \PolToFloatExprOneTerm{}{}

    Syntax: \PolToFloatExprOneTerm{<raw_coeff>}{<exponent>}

    Similar to \PolToExprOneTerm{<raw_coeff>}{<exponent>}. But does not treat @@ -2077,7 +2082,7 @@ especially coefficients equal to plus or minus one.

    -

    \PolToFloatExprCmd{}

    +

    \PolToFloatExprCmd{}

    Syntax: \PolToFloatExprCmd{<raw_coeff>}

    The one-argument macro used by \PolToFloatExprOneTerm. @@ -2087,8 +2092,8 @@ zeroes.

    -
    -

    \PolToExpr*{}

    +
    +

    \PolToExpr*{}

    Syntax: \PolToExpr*{<pol. expr.>}

    Ascending powers: coeff_0+coeff_1*x+coeff_2*x^2+....

    @@ -2097,8 +2102,8 @@ zeroes.

    \PolToExpr{<pol. expr.>}.

    -
    -

    \PolToFloatExpr*{}

    +
    +

    \PolToFloatExpr*{}

    Syntax: \PolToFloatExpr*{<pol. expr.>}

    Ascending powers.

    @@ -2106,7 +2111,7 @@ zeroes.

    -

    \PolNthCoeff{}{}

    +

    \PolNthCoeff{}{}

    Syntax: \PolNthCoeff{<polname>}{<index>}

    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]

    +the following syntax can be used: [4]

    \xintfloateval{3.27*\xintexpr f(2.53)\relax^2}
     
    -
    @@ -2226,7 +2231,7 @@ to) a format acceptable to the

    Expandable macros in relation to root localization via Sturm Theorem

    -

    \PolSturmChainLength{}

    +

    \PolSturmChainLength{}

    Syntax: \PolSturmChainLength{<sturmname>}

    Returns the integer N such that sturmname_N is the last one @@ -2235,7 +2240,7 @@ in the Sturm chain

    -

    \PolSturmIfZeroExactlyKnown{}{}{}{}

    +

    \PolSturmIfZeroExactlyKnown{}{}{}{}

    Syntax: \PolSturmIfZeroExactlyKnown{<sturmname>}{<index>}{T}{F}

    Executes T if the index-th interval reduces to a singleton, @@ -2243,7 +2248,7 @@ i.e. the root is known exactly, else

    -

    \PolSturmIsolatedZeroLeft{}{}

    +

    \PolSturmIsolatedZeroLeft{}{}

    Syntax: \PolSturmIsolatedZeroLeft{<sturmname>}{<index>}

    Expands to the left end-point for the index-th interval, as @@ -2251,14 +2256,14 @@ computed by some earlier

    Note

    Execution of this macro after some -\PolRefineInterval{<sturmname>}{<index>} +\PolRefineInterval{<sturmname>}{<index>} will take into account the now known tighter bounds.

    The value is pre-formatted using \PolDecTostring.

    -

    \PolSturmIsolatedZeroRight{}{}

    +

    \PolSturmIsolatedZeroRight{}{}

    Syntax: \PolSturmIsolatedZeroRight{<sturmname>}{<index>}

    Expands to the right end-point for the index-th interval as @@ -2268,21 +2273,21 @@ possibly refined afterwards.

    -

    \PolSturmIsolatedZeroMultiplicity{}{}

    +

    \PolSturmIsolatedZeroMultiplicity{}{}

    Syntax: \PolSturmIsolatedZeroMultiplicity{<sturmname>}{<index>}

    Expands to the multiplicity of the unique root contained in the index-th interval.

    Attention

    -

    A prior execution of \PolSturmIsolateZeros*{<sturmname>} is mandatory.

    +

    A prior execution of \PolSturmIsolateZeros*{<sturmname>} is mandatory.

    See The degree nine polynomial with 0.99, 0.999, 0.9999 as triple roots 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.

    Attention

    -

    \PolSturmIsolateZeros*{<sturmname>} (or the double starred +

    \PolSturmIsolateZeros*{<sturmname>} (or the double starred variant) must have been executed beforehand.

    @@ -2352,50 +2357,50 @@ variant) must have been executed beforehand.

    which are less than or equal to the given expression.

    Attention

    -

    \PolSturmIsolateZeros*{<sturmname>} (or the double starred +

    \PolSturmIsolateZeros*{<sturmname>} (or the double starred variant) must have been executed beforehand.

    -

    \PolSturmNbOfRationalRoots{}

    +

    \PolSturmNbOfRationalRoots{}

    Syntax: \PolSturmNbOfRationalRoots{<sturmname>}

    Expands to the number of rational roots (without multiplicities).

    Attention

    -

    \PolSturmIsolateZeros**{<sturmname>} must have been executed +

    \PolSturmIsolateZeros**{<sturmname>} must have been executed beforehand.

    -

    \PolSturmNbOfRationalRootsWithMultiplicities{}

    +

    \PolSturmNbOfRationalRootsWithMultiplicities{}

    Syntax: \PolSturmNbOfRationalRootsWithMultiplicities{<sturmname>}

    Expands to the number of rational roots (counted with multiplicities).

    Attention

    -

    \PolSturmIsolateZeros**{<sturmname>} must have been executed +

    \PolSturmIsolateZeros**{<sturmname>} must have been executed beforehand.

    -

    \PolSturmRationalRoot{}{}

    +

    \PolSturmRationalRoot{}{}

    Syntax: \PolSturmRationalRoot{<sturmname>}{<k>}

    Expands to the k-th rational root. They are enumerated from left to right starting at index value 1.

    Attention

    -

    \PolSturmIsolateZeros**{<sturmname>} must have been executed +

    \PolSturmIsolateZeros**{<sturmname>} must have been executed beforehand.

    -

    \PolSturmRationalRootIndex{}{}

    +

    \PolSturmRationalRootIndex{}{}

    Syntax: \PolSturmRationalRootIndex{<sturmname>}{<k>}

    Expands to the index of the kth rational root as part of the @@ -2407,25 +2412,25 @@ this nested call:

    Attention

    -

    \PolSturmIsolateZeros**{<sturmname>} must have been executed +

    \PolSturmIsolateZeros**{<sturmname>} must have been executed beforehand.

    -

    \PolSturmRationalRootMultiplicity{}{}

    +

    \PolSturmRationalRootMultiplicity{}{}

    Syntax: \PolSturmRationalRootMultiplicity{<sturmname>}{<k>}

    Expands to the multiplicity of the kth rational root.

    Attention

    -

    \PolSturmIsolateZeros**{<sturmname>} must have been executed +

    \PolSturmIsolateZeros**{<sturmname>} must have been executed beforehand.

    -

    \PolIntervalWidth{}{}

    +

    \PolIntervalWidth{}{}

    Syntax: \PolIntervalWidth{<sturmname>}{<index>}

    The 10^E width of the current index-th root localization @@ -2436,13 +2441,13 @@ interval. Output is in

    Expandable macros for use within execution of \PolPrintIntervals

    These macros are for usage within custom user redefinitions of -\PolPrintIntervalsKnownRoot, \PolPrintIntervalsUnknownRoot, or +\PolPrintIntervalsKnownRoot, \PolPrintIntervalsUnknownRoot, or in redefinitions of PolPrintIntervalsPrintExactZero (used in the -default for the former) and of \PolPrintIntervalsPrintLeftEndPoint, -\PolPrintIntervalsPrintRightEndPoint (used in the default for the +default for the former) and of \PolPrintIntervalsPrintLeftEndPoint, +\PolPrintIntervalsPrintRightEndPoint (used in the default for the latter).

    -

    \PolPrintIntervalsTheVar

    +

    \PolPrintIntervalsTheVar

    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).

    -

    \PolPrintIntervalsTheSturmName

    +

    \PolPrintIntervalsTheSturmName

    Expands to the argument which was passed as <sturmname> to \PolPrintIntervals[varname]{<sturmname>}.

    -

    \PolPrintIntervalsTheLeftEndPoint

    +

    \PolPrintIntervalsTheLeftEndPoint

    The left end point of the interval, as would be produced by \PolSturmIsolatedZeroLeft if it was used with arguments the Sturm chain name and interval index returned -by \PolPrintIntervalsTheSturmName and -\PolPrintIntervalsTheIndex.

    +by \PolPrintIntervalsTheSturmName and +\PolPrintIntervalsTheIndex.

    -

    \PolPrintIntervalsTheRightEndPoint

    +

    \PolPrintIntervalsTheRightEndPoint

    The right end point of the interval, as would be produced by \PolSturmIsolatedZeroRight for @@ -2482,10 +2487,10 @@ this Sturm chain name and index.

    -

    \PolPrintIntervalsTheMultiplicity

    +

    \PolPrintIntervalsTheMultiplicity

    The multiplicity of the unique root within the interval of index -\PolPrintIntervalsTheIndex. Makes sense only if the starred (or +\PolPrintIntervalsTheIndex. Makes sense only if the starred (or double-starred) variant of \PolSturmIsolateZeros was used earlier.

    @@ -2494,7 +2499,7 @@ double-starred) variant of

    TeX Booleans (with names enacting their defaults)

    -

    \xintverbosefalse

    +

    \xintverbosefalse

    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.

    -

    \poltoexprallfalse

    +

    \poltoexprallfalse

    If true, \PolToExpr{<pol. expr.>} and \PolToFloatExpr{<pol. expr.>} will also @@ -2546,7 +2551,7 @@ include the vanishing coefficients in their outputs.

    Utilities

    -

    \PolDecToString{}

    +

    \PolDecToString{}

    Syntax: \PolDecToString{decimal number}

    This is a utility macro to print decimal numbers. It is an alias @@ -2571,11 +2576,11 @@ documentation.

    Serves to customize the package. Currently only two keys are recognized:

    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. ``_k``. This is why the macro was designed + to expect two names: ```` and ````. 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 ```` 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 + ``L_``, ``R_``, and ``Z_``, also + ``M_`` for holding the multiplicities, and this may + overwrite pre-existing user-defined xintexpr_ variables. .. warning:: @@ -2300,7 +2302,9 @@ Syntax: ``\PolToExpr{}`` ^^^^^^^^^^^^^^^^^^^ 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 @@ -3086,16 +3090,20 @@ Syntax: ``\PolDecToString{decimal number}`` Technicalities -------------- +- 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:: -- 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 ``@_`` 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 diff --git a/Master/texmf-dist/doc/generic/polexpr/polexpr.css b/Master/texmf-dist/doc/generic/polexpr/polexpr.css index b95962ac845..c780cab085e 100644 --- a/Master/texmf-dist/doc/generic/polexpr/polexpr.css +++ b/Master/texmf-dist/doc/generic/polexpr/polexpr.css @@ -230,6 +230,10 @@ blockquote::after { clear: both; } +.footnote { + background-color: #f8f9de; /* polexpr.css */ +} + .footnote:target { background-color: #ffa; } diff --git a/Master/texmf-dist/doc/generic/polexpr/polexpr.html b/Master/texmf-dist/doc/generic/polexpr/polexpr.html index 23dafab2c2d..bcb4dba2276 100644 --- a/Master/texmf-dist/doc/generic/polexpr/polexpr.html +++ b/Master/texmf-dist/doc/generic/polexpr/polexpr.html @@ -6,7 +6,7 @@ - Introduction to polexpr — polexpr 0.8.7 documentation + Introduction to polexpr — polexpr 0.8.7a documentation @@ -16,7 +16,7 @@
  • next
  • - +
    @@ -28,6 +28,8 @@

    Introduction to polexpr

    +
    +

    polexpr is a TeX and LaTeX macro package.

    To use it with Plain or formats other than LaTeX:

    \input polexpr.sty
    @@ -63,7 +65,7 @@ work):

    Usage via xintsession

    The simplest manner to get a feeling for the package abilities regarding -in particularl root localization is to use it on the command line +in particular root localization is to use it on the command line via the xintsession interface. Here is an example:

    $ rlwrap etex xintsession
     [...xintsession welcome message...]
    @@ -111,8 +113,8 @@ defined by polexpr<
     LaTeX Project Public License version 1.3c.

    See README.md for details.

    -
    -

    In memoriam: Jürgen Gilg (1967-2022)

    +
    +

    In memoriam: Jürgen Gilg (1966-2022)

    My first contact with Jürgen was in January 2018, and his little question about usage of xintexpr for differentiating polynomials proved the direct cause for the creation of polexpr. His regular comments and questions (often, jointly @@ -129,8 +131,6 @@ thought I had been knowing him for at least 10 years, but it is actually only a bit more than 4 years… I will sorely miss this friendship with a gentle soul from over the Rhine.

    I dedicate the work which has gone into polexpr to Jürgen’s memory.

    -
    -
    @@ -145,7 +145,7 @@ a gentle soul from over the Rhine.

  • Introduction to polexpr
  • @@ -178,7 +178,7 @@ a gentle soul from over the Rhine.

  • next
  • - +
    diff --git a/Master/texmf-dist/doc/generic/polexpr/polexpr.rst.txt b/Master/texmf-dist/doc/generic/polexpr/polexpr.rst.txt index 3186ab36806..c20ab4ba4f4 100644 --- a/Master/texmf-dist/doc/generic/polexpr/polexpr.rst.txt +++ b/Master/texmf-dist/doc/generic/polexpr/polexpr.rst.txt @@ -1,9 +1,23 @@ .. comment: -*- fill-column: 72; mode: rst -*- + ========================= Introduction to polexpr ========================= +.. toctree:: + :hidden: + :maxdepth: 2 + + polexpr-ref + polexpr-changes + + +.. only :: latex + + Introduction to polexpr + ----------------------- + polexpr_ is a TeX and LaTeX macro package. To use it with Plain or formats other than LaTeX:: @@ -48,7 +62,7 @@ Usage via xintsession_ ---------------------- The simplest manner to get a feeling for the package abilities regarding -in particularl root localization is to use it on the command line +in particular root localization is to use it on the command line via the xintsession_ interface. Here is an example:: $ rlwrap etex xintsession @@ -101,7 +115,7 @@ LaTeX Project Public License version 1.3c. See README.md for details. -In memoriam: Jürgen Gilg (1967-2022) +In memoriam: Jürgen Gilg (1966-2022) ------------------------------------ My first contact with Jürgen was in January 2018, and his *little @@ -143,15 +157,6 @@ I dedicate the work which has gone into polexpr_ to Jürgen's memory. .. _DocUtils: http://docutils.sourceforge.net/docs/index.html -.. toctree:: - :hidden: - :maxdepth: 2 - - polexpr-ref - polexpr-changes - - - .. Local variables: .. sentence-end-double-space: t; .. End: diff --git a/Master/texmf-dist/tex/generic/polexpr/polexpr.sty b/Master/texmf-dist/tex/generic/polexpr/polexpr.sty index b652675d916..b6b6fba2457 100644 --- a/Master/texmf-dist/tex/generic/polexpr/polexpr.sty +++ b/Master/texmf-dist/tex/generic/polexpr/polexpr.sty @@ -2,7 +2,7 @@ % License: LPPL 1.3c (author-maintained) % Usage: \input polexpr.sty (Plain or other macro formats) % or \usepackage{polexpr} (LaTeX macro format) -% Release 0.8.7 (2022/05/14) of polexpr.sty. This file inputs +% Release 0.8.7a (2022/05/19) of polexpr.sty. This file inputs % polexprcore.tex % polexprexpr.tex % polexprsturm.tex @@ -54,7 +54,7 @@ \XINTsetupcatcodes% (does \endlinechar13 in particular) \XINT_providespackage \ProvidesPackage{polexpr}% - [2022/05/14 v0.8.7 Polynomial expressions with rational coefficients (JFB)]% + [2022/05/19 v0.8.7a Polynomial expressions with rational coefficients (JFB)]% \begingroup \def\x#1/#2/#3 #4\xint:{#1#2#3}% \ifnum\expandafter\x\expanded{\csname ver@xintexpr.sty\endcsname}\xint: diff --git a/Master/texmf-dist/tex/generic/polexpr/polexprcore.tex b/Master/texmf-dist/tex/generic/polexpr/polexprcore.tex index 8bf7fe2fd0b..d3e42d1f1fa 100644 --- a/Master/texmf-dist/tex/generic/polexpr/polexprcore.tex +++ b/Master/texmf-dist/tex/generic/polexpr/polexprcore.tex @@ -1,5 +1,5 @@ %% filename: polexprcore.tex -%% Part of the polexpr package (0.8.7, 2022/05/14) +%% Part of the polexpr package (0.8.7a, 2022/05/19) %% %% Core routines for infix operators +, -, *, //, /:, ^, ** and functions %% diff --git a/Master/texmf-dist/tex/generic/polexpr/polexprexpr.tex b/Master/texmf-dist/tex/generic/polexpr/polexprexpr.tex index 91087bcf4df..ca4cff963b7 100644 --- a/Master/texmf-dist/tex/generic/polexpr/polexprexpr.tex +++ b/Master/texmf-dist/tex/generic/polexpr/polexprexpr.tex @@ -1,5 +1,5 @@ %% filename: polexprexpr.tex -%% Part of the polexpr package (0.8.7, 2022/05/14) +%% Part of the polexpr package (0.8.7a, 2022/05/19) %% %% Polynomial extensions to the \xintexpr syntax: %% diff --git a/Master/texmf-dist/tex/generic/polexpr/polexprsturm.tex b/Master/texmf-dist/tex/generic/polexpr/polexprsturm.tex index 2f417c33332..59f0a5d2445 100644 --- a/Master/texmf-dist/tex/generic/polexpr/polexprsturm.tex +++ b/Master/texmf-dist/tex/generic/polexpr/polexprsturm.tex @@ -1,5 +1,5 @@ %% filename: polexprsturm.tex -%% Part of the polexpr package (0.8.7, 2022/05/14) +%% Part of the polexpr package (0.8.7a, 2022/05/19) %% %% Implements the Sturm localization Algorithm %% Added at polexpr 0.4 -- cgit v1.2.3