Package polexpr README ====================== License ------- Copyright (C) 2018 Jean-François Burnol See documentation of package [xint](http://www.ctan.org/pkg/xint) for contact information. This Work may be distributed and/or modified under the conditions of the LaTeX Project Public License version 1.3c. This version of this license is in > and version 1.3 or later is part of all distributions of LaTeX version 2005/12/01 or later. 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 file polexpr.sty, this README.md and the documentation file polexpr.txt. Abstract -------- The package provides `\poldef`. This a parser of polynomial expressions based upon the `\xintdeffunc` mechanism of xintexpr. The parsed expressions use the operations of algebra (inclusive of composition of functions) with standard operators, fractional numbers (possibly in scientific notation) and previously defined polynomial functions or other constructs as recognized by the `\xintexpr` numerical parser. The polynomials are then not only genuine `\xintexpr` (and `\xintfloatexpr`) numerical functions but additionally are known to the package via their coefficients. This allows dedicated macros to implement polynomial algorithmics. CHANGE LOG ---------- - v0.1 (2018/01/11): initial release. Features: - The `\poldef` parser itself, - Differentiation and anti-differentiation, - Euclidean division and GCDs, - Various utilities such as `\PolFromCSV`, `\PolMapCoeffs`, `\PolToCSV`, `\PolToExpr`, ... Only one-variable polynomials so far. - v0.2 (2018/01/14) - Fix: `"README thinks \numexpr recognizes ^ operator"`. - Convert README to reStructuredText markup. - Move main documentation from README to separate `polexpr.txt` file. - Provide `polexpr.html` as obtained via [DocUtils](http://docutils.sourceforge.net/docs/index.html) `rst2html.py`. - Convert README to (CTAN compatible) Markdown markup. Due to lack of available time the test suite might not be extensive enough. Bug reports are very welcome! - v0.3 (2018/01/17) - bug fixes: - the `0.1` `\PolEval` accepted expressions for its second argument, but this was removed by mistake at `0.2`. Restored. - 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 removed; the former meaning is available as `\PolEvalReduced`. - new (or newly documented) macros: - `\PolTypesetCmd` - `\PolTypesetCmdPrefix`, - `\PolTypesetMonomialCmd`, - `\PolEvalReduced`, - `\PolFloatEval`, - `\PolToFloatExpr`, - `\PolToExprOneTerm`, - `\PolToFloatExprOneTerm`, - `\PolToExprCmd`, - `\PolToFloatExprCmd`, - `\PolToExprTermPrefix`, - `\PolToExprVar`, - `\PolToExprTimes`. - improvements: - documentation has a table of contents, internal hyperlinks, standardized signature notations and added explanations. - 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 `\xintdeffloatvar`). Coefficients are pre-rounded to the floating point precision. Indispensible for numerical algorithms, as exact fractions, even reduced, quickly become very big. See the documentation about how to use the exact polynomials also in floating point context. - v0.3.1 (2018/01/18) Fixes two typos in example code included in the documentation.