diff options
Diffstat (limited to 'macros/generic/polexpr/README.md')
-rw-r--r-- | macros/generic/polexpr/README.md | 151 |
1 files changed, 64 insertions, 87 deletions
diff --git a/macros/generic/polexpr/README.md b/macros/generic/polexpr/README.md index 4a74900100..0f70c6cb34 100644 --- a/macros/generic/polexpr/README.md +++ b/macros/generic/polexpr/README.md @@ -1,88 +1,65 @@ Package polexpr README ====================== +Version ``0.8.7`` of ``2022/05/14``. + +Abstract +-------- + +The package provides a parser `\poldef` of algebraic expressions. +As it is based on [xintexpr](http://www.ctan.org/pkg/xintexpr) the +polynomial coefficients are allowed to be arbitrary rational +numbers. Operations on declared polynomials, such as computing +G.C.D.'s or evaluating definite and indefinite integrals are +available directly inside the parser via a functional syntax, or +also via dedicated package macros. + +Root localization is available via package macros. All real roots +can be obtained with arbitrarily long decimal expansions, and all +rational rounds found exactly. + +In memoriam: Jürgen Gilg +------------------------ + +`polexpr` is dedicated to the memory of Jürgen Gilg (1967-2022). + +His question in January 2018 about using +[xintexpr](http://www.ctan.org/pkg/xintexpr) to compute derivatives +of polynomials was the original motivation for the creation of this +package. Jointly with Thomas Söll, he used it and kept expressing +his interest in it throughout the subsequent years, and provided +motivation and encouragements for time-consuming tasks such as (as +was done finally in 2021) re-enacting full interoperability with +[xintexpr](http://www.ctan.org/pkg/xintexpr) after its `1.4` update +from 2020. + +I will remember with gratitude his generous and unassuming +character, which I witnessed during our numerous exchanges on a wide +range of topics. + Usage ----- -The package can be used with TeX based formats incorporating the -e-TeX primitives. The `\expanded` primitive available generally -since TeXLive 2019 is required. +The package can be used with eTeX based formats via \input polexpr.sty -with Plain or other non-LaTeX macro formats, or: +or with LaTeX via \usepackage{polexpr} -with the LaTeX macro format. +[xintexpr](http://www.ctan.org/pkg/xintexpr) `1.4h` or later is +required. -The package currently requires xintexpr.sty `1.4d` or later. - -Abstract --------- +Recent changes +-------------- -The package provides a parser `\poldef` of algebraic polynomial -expressions. As it is based on -[xintexpr](http://www.ctan.org/pkg/xint) -the coefficients are allowed to be arbitrary rational numbers. - -Once defined, a polynomial is usable by its name either as a numerical -function in `\xintexpr/\xinteval`, or for additional polynomial -definitions, or as argument to the package macros. The localization of -real roots to arbitrary precision as well as the determination of all -rational roots is implemented via such macros. - -Since release `0.8`, polexpr extends the -[xintexpr](http://www.ctan.org/pkg/xint) syntax to recognize -polynomials as a new variable type (and not only as functions). -Functionality which previously was implemented via macros such as the -computation of a greatest common divisor is now available directly in -`\xintexpr`, `\xinteval` or `\poldef` via infix or functional syntax. - -Releases --------- - -- 0.1 (2018/01/11) - Initial release (files README, polexpr.sty). -- 0.2 (2018/01/14) - Documentation moved to polexpr.{txt,html}. -- 0.3 (2018/01/17) - Make polynomials known to `\xintfloatexpr` and improve - documentation. -- 0.3.1 (2018/01/18) - Fix two typos in documentation. -- 0.4 (2018/02/16) - - Revert 0.3 automatic generation of floating point variants. - - Move CHANGE LOG from README.md to HTML documentation. - - A few bug fixes and breaking changes. Please refer to - `polexpr.html`. - - Main new feature: root localization via [Sturm - Theorem](https://en.wikipedia.org/wiki/Sturm%27s_theorem). -- 0.4.1 (2018/03/01) - Synced with xintexpr 1.3. -- 0.4.2 (2018/03/03) - Documentation fix. -- 0.5 (2018/04/08) - - new macros `\PolMakePrimitive` and `\PolIContent`. - - main (breaking) change: `\PolToSturm` creates a chain of primitive - integer coefficients polynomials. -- 0.5.1 (2018/04/22) - The `'` character can be used in polynomial names. -- 0.6 (2018/11/20) - New feature: multiplicity of roots. -- 0.7 (2018/12/08), 0.7.1 (bugfix), 0.7.2 (bugfix) (2018/12/09) - New feature: finding all rational roots. -- 0.7.3 (2019/02/04) - Bugfix: polynomial names ending in digits caused errors. Thanks to - Thomas Söll for report. -- 0.7.4 (2019/02/12) - Bugfix: 20000000000 is too big for \numexpr, shouldn't I know that? - Thanks to Jürgen Gilg for report. -- 0.7.5 (2020/01/31) - Synced with xintexpr 1.4. Requires it. - 0.8 (2021/03/29) - Complete refactoring of the package core for better integration with - and enhancement of xintexpr 1.4. + Complete refactoring of the package core for better interoperability + with `xintexpr` internal changes at its release `1.4 (2020/01/31)`. + Extension of the functional syntax to cover operations such as + 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. - 0.8.2 (2021/05/05) @@ -96,21 +73,13 @@ Releases Bugfix: `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 - -Files of the 0.8.6 release: -- polexpr.sty, polexprcore.tex, polexprexpr.tex, polexprsturm.tex, -- README.md, -- polexpr.html (reference documentation), -- polexpr-examples.pdf, polexpr-examples.tex (pdf doc and its source). + Separate `polexpr-examples.{tex,pdf}` from the `polexpr.html` reference. +- 0.8.7 (2022/05/14) + CSS styling of the `html` documentation, which is now split over + three files. Catcode protection for `\poldef` now matches + long-standing behaviour of `\xintdefvar`. This fixes issues + with ``babel+french``. -Acknowledgments ---------------- - -Thanks to Jürgen Gilg whose question about -[xintexpr](http://www.ctan.org/pkg/xint) usage for differentiating -polynomials was the initial trigger leading to this package, and to -Jürgen Gilg and Thomas Söll for testing it on some concrete problems. License ------- @@ -133,6 +102,14 @@ This Work has the LPPL maintenance status author-maintained. The Author of this Work is Jean-François Burnol. -This Work consists of the package files polexpr.sty, polexprcore.tex, -polexprexpr.tex, polexprsturm.tex, this README.md and documentation -polexpr.html, polexpr-examples.tex, polexpr-examples.pdf +This Work consists of: + +- the package files: polexpr.sty, polexprcore.tex, + polexprexpr.tex, polexprsturm.tex, +- this README.md, +- the documentation files: + polexpr.html, polexpr-ref.html, polexpr-changes.html, + polexpr.css, polexpr-examples.pdf, + polexpr.rst.txt, polexpr-ref.rst.txt, polexpr-changes.rst.txt, + polexpr-examples.tex + |