diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/polexpr/README.md | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/polexpr/polexpr.html | 420 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/polexpr/polexpr.txt | 43 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/polexpr/polexpr.sty | 2 |
4 files changed, 233 insertions, 236 deletions
diff --git a/Master/texmf-dist/doc/latex/polexpr/README.md b/Master/texmf-dist/doc/latex/polexpr/README.md index ce888d45675..e4e8fa3b38f 100644 --- a/Master/texmf-dist/doc/latex/polexpr/README.md +++ b/Master/texmf-dist/doc/latex/polexpr/README.md @@ -63,8 +63,10 @@ Releases Theorem](https://en.wikipedia.org/wiki/Sturm%27s_theorem). - 0.4.1 (2018/03/01) Synced with xint 1.3. +- 0.4.2 (2018/03/03) + Documentation fix. -Files of 0.4.1 release: +Files of 0.4.2 release: - README.md, - polexpr.sty (package file), diff --git a/Master/texmf-dist/doc/latex/polexpr/polexpr.html b/Master/texmf-dist/doc/latex/polexpr/polexpr.html index 5a9404127bd..579a6172254 100644 --- a/Master/texmf-dist/doc/latex/polexpr/polexpr.html +++ b/Master/texmf-dist/doc/latex/polexpr/polexpr.html @@ -362,128 +362,128 @@ ul.auto-toc { <body> <div class="document" id="package-polexpr-documentation"> <h1 class="title">Package polexpr documentation</h1> -<h2 class="subtitle" id="id1">0.4.1 (2018/03/01)</h2> +<h2 class="subtitle" id="id1">0.4.2 (2018/03/03)</h2> <!-- comment: -*- fill-column: 72; mode: rst; -*- --> <div class="contents topic" id="contents"> <p class="topic-title first">Contents</p> <ul class="simple"> -<li><a class="reference internal" href="#basic-examples" id="id33">Basic Examples</a></li> -<li><a class="reference internal" href="#examples-of-localization-of-roots" id="id34">Examples of localization of roots</a><ul> -<li><a class="reference internal" href="#a-typical-example" id="id35">A typical example</a></li> -<li><a class="reference internal" href="#a-degree-four-polynomial-with-nearby-roots" id="id36">A degree four polynomial with nearby roots</a></li> -<li><a class="reference internal" href="#the-degree-nine-polynomial-with-0-99-0-999-0-9999-as-triple-roots" id="id37">The degree nine polynomial with 0.99, 0.999, 0.9999 as triple roots</a></li> -<li><a class="reference internal" href="#a-mignotte-type-polynomial" id="id38">A Mignotte type polynomial</a></li> -<li><a class="reference internal" href="#the-degree-41-polynomial-with-2-1-9-1-8-0-0-1-1-9-2-as-roots" id="id39">The degree 41 polynomial with -2, -1.9, -1.8, ..., 0, 0.1, ..., 1.9, 2 as roots</a></li> -<li><a class="reference internal" href="#roots-of-chebyshev-polynomials" id="id40">Roots of Chebyshev polynomials</a></li> +<li><a class="reference internal" href="#basic-examples" id="id35">Basic Examples</a></li> +<li><a class="reference internal" href="#examples-of-localization-of-roots" id="id36">Examples of localization of roots</a><ul> +<li><a class="reference internal" href="#a-typical-example" id="id37">A typical example</a></li> +<li><a class="reference internal" href="#a-degree-four-polynomial-with-nearby-roots" id="id38">A degree four polynomial with nearby roots</a></li> +<li><a class="reference internal" href="#the-degree-nine-polynomial-with-0-99-0-999-0-9999-as-triple-roots" id="id39">The degree nine polynomial with 0.99, 0.999, 0.9999 as triple roots</a></li> +<li><a class="reference internal" href="#a-mignotte-type-polynomial" id="id40">A Mignotte type polynomial</a></li> +<li><a class="reference internal" href="#the-degree-41-polynomial-with-2-1-9-1-8-0-0-1-1-9-2-as-roots" id="id41">The degree 41 polynomial with -2, -1.9, -1.8, ..., 0, 0.1, ..., 1.9, 2 as roots</a></li> +<li><a class="reference internal" href="#roots-of-chebyshev-polynomials" id="id42">Roots of Chebyshev polynomials</a></li> </ul> </li> -<li><a class="reference internal" href="#non-expandable-macros" id="id41">Non-expandable macros</a><ul> -<li><a class="reference internal" href="#poldef-polname-letter-expression-in-letter" id="id42"><tt class="docutils literal">\poldef <span class="pre">polname(letter):=</span> expression in letter;</tt></a></li> -<li><a class="reference internal" href="#poldef-letter-polname-expression-in-letter" id="id43"><tt class="docutils literal"><span class="pre">\PolDef[letter]{polname}{expression</span> in letter}</tt></a></li> -<li><a class="reference internal" href="#polgenfloatvariant-polname" id="id44"><tt class="docutils literal">\PolGenFloatVariant{polname}</tt></a></li> -<li><a class="reference internal" href="#pollet-polname-2-polname-1" id="id45"><tt class="docutils literal"><span class="pre">\PolLet{polname_2}={polname_1}</span></tt></a></li> -<li><a class="reference internal" href="#polgloballet-polname-2-polname-1" id="id46"><tt class="docutils literal"><span class="pre">\PolGlobalLet{polname_2}={polname_1}</span></tt></a></li> -<li><a class="reference internal" href="#polassign-polname-toarray-macro" id="id47"><tt class="docutils literal"><span class="pre">\PolAssign{polname}\toarray\macro</span></tt></a></li> -<li><a class="reference internal" href="#polget-polname-fromarray-macro" id="id48"><tt class="docutils literal"><span class="pre">\PolGet{polname}\fromarray\macro</span></tt></a></li> -<li><a class="reference internal" href="#polfromcsv-polname-csv" id="id49"><tt class="docutils literal"><span class="pre">\PolFromCSV{polname}{<csv>}</span></tt></a></li> -<li><a class="reference internal" href="#poltypeset-polname" id="id50"><tt class="docutils literal">\PolTypeset{polname}</tt></a><ul> -<li><a class="reference internal" href="#poltypesetcmd-raw-coeff" id="id51"><tt class="docutils literal">\PolTypesetCmd{raw_coeff}</tt></a></li> -<li><a class="reference internal" href="#poltypesetone-raw-coeff" id="id52"><tt class="docutils literal">\PolTypesetOne{raw_coeff}</tt></a></li> -<li><a class="reference internal" href="#id6" id="id53"><tt class="docutils literal">\PolTypesetMonomialCmd</tt></a></li> -<li><a class="reference internal" href="#poltypesetcmdprefix-raw-coeff" id="id54"><tt class="docutils literal">\PolTypesetCmdPrefix{raw_coeff}</tt></a></li> +<li><a class="reference internal" href="#non-expandable-macros" id="id43">Non-expandable macros</a><ul> +<li><a class="reference internal" href="#poldef-polname-letter-expression-in-letter" id="id44"><tt class="docutils literal">\poldef <span class="pre">polname(letter):=</span> expression in letter;</tt></a></li> +<li><a class="reference internal" href="#poldef-letter-polname-expression-in-letter" id="id45"><tt class="docutils literal"><span class="pre">\PolDef[letter]{polname}{expression</span> in letter}</tt></a></li> +<li><a class="reference internal" href="#polgenfloatvariant-polname" id="id46"><tt class="docutils literal">\PolGenFloatVariant{polname}</tt></a></li> +<li><a class="reference internal" href="#pollet-polname-2-polname-1" id="id47"><tt class="docutils literal"><span class="pre">\PolLet{polname_2}={polname_1}</span></tt></a></li> +<li><a class="reference internal" href="#polgloballet-polname-2-polname-1" id="id48"><tt class="docutils literal"><span class="pre">\PolGlobalLet{polname_2}={polname_1}</span></tt></a></li> +<li><a class="reference internal" href="#polassign-polname-toarray-macro" id="id49"><tt class="docutils literal"><span class="pre">\PolAssign{polname}\toarray\macro</span></tt></a></li> +<li><a class="reference internal" href="#polget-polname-fromarray-macro" id="id50"><tt class="docutils literal"><span class="pre">\PolGet{polname}\fromarray\macro</span></tt></a></li> +<li><a class="reference internal" href="#polfromcsv-polname-csv" id="id51"><tt class="docutils literal"><span class="pre">\PolFromCSV{polname}{<csv>}</span></tt></a></li> +<li><a class="reference internal" href="#poltypeset-polname" id="id52"><tt class="docutils literal">\PolTypeset{polname}</tt></a><ul> +<li><a class="reference internal" href="#poltypesetcmd-raw-coeff" id="id53"><tt class="docutils literal">\PolTypesetCmd{raw_coeff}</tt></a></li> +<li><a class="reference internal" href="#poltypesetone-raw-coeff" id="id54"><tt class="docutils literal">\PolTypesetOne{raw_coeff}</tt></a></li> +<li><a class="reference internal" href="#id6" id="id55"><tt class="docutils literal">\PolTypesetMonomialCmd</tt></a></li> +<li><a class="reference internal" href="#poltypesetcmdprefix-raw-coeff" id="id56"><tt class="docutils literal">\PolTypesetCmdPrefix{raw_coeff}</tt></a></li> </ul> </li> -<li><a class="reference internal" href="#id8" id="id55"><tt class="docutils literal"><span class="pre">\PolTypeset*{polname}</span></tt></a></li> -<li><a class="reference internal" href="#poldiff-polname-1-polname-2" id="id56"><tt class="docutils literal"><span class="pre">\PolDiff{polname_1}{polname_2}</span></tt></a></li> -<li><a class="reference internal" href="#poldiff-n-polname-1-polname-2" id="id57"><tt class="docutils literal"><span class="pre">\PolDiff[N]{polname_1}{polname_2}</span></tt></a></li> -<li><a class="reference internal" href="#polantidiff-polname-1-polname-2" id="id58"><tt class="docutils literal"><span class="pre">\PolAntiDiff{polname_1}{polname_2}</span></tt></a></li> -<li><a class="reference internal" href="#polantidiff-n-polname-1-polname-2" id="id59"><tt class="docutils literal"><span class="pre">\PolAntiDiff[N]{polname_1}{polname_2}</span></tt></a></li> -<li><a class="reference internal" href="#poldivide-polname-1-polname-2-polname-q-polname-r" id="id60"><tt class="docutils literal"><span class="pre">\PolDivide{polname_1}{polname_2}{polname_Q}{polname_R}</span></tt></a></li> -<li><a class="reference internal" href="#polquo-polname-1-polname-2-polname-q" id="id61"><tt class="docutils literal"><span class="pre">\PolQuo{polname_1}{polname_2}{polname_Q}</span></tt></a></li> -<li><a class="reference internal" href="#polrem-polname-1-polname-2-polname-r" id="id62"><tt class="docutils literal"><span class="pre">\PolRem{polname_1}{polname_2}{polname_R}</span></tt></a></li> -<li><a class="reference internal" href="#polgcd-polname-1-polname-2-polname-gcd" id="id63"><tt class="docutils literal"><span class="pre">\PolGCD{polname_1}{polname_2}{polname_GCD}</span></tt></a></li> -<li><a class="reference internal" href="#poltosturm-polname-sturmname" id="id64"><tt class="docutils literal"><span class="pre">\PolToSturm{polname}{sturmname}</span></tt></a></li> -<li><a class="reference internal" href="#id10" id="id65"><tt class="docutils literal"><span class="pre">\PolToSturm*{polname}{sturmname}</span></tt></a></li> -<li><a class="reference internal" href="#polsettosturmchainsignchangesat-macro-sturmname-fraction" id="id66"><tt class="docutils literal"><span class="pre">\PolSetToSturmChainSignChangesAt{\macro}{sturmname}{fraction}</span></tt></a></li> -<li><a class="reference internal" href="#polsettonbofzeroswithin-macro-sturmname-value-a-value-b" id="id67"><tt class="docutils literal"><span class="pre">\PolSetToNbOfZerosWithin{\macro}{sturmname}{value_a}{value_b}</span></tt></a></li> -<li><a class="reference internal" href="#polsturmisolatezeros-sturmname" id="id68"><tt class="docutils literal">\PolSturmIsolateZeros{sturmname}</tt></a></li> -<li><a class="reference internal" href="#polrefineinterval-sturmname-index" id="id69"><tt class="docutils literal"><span class="pre">\PolRefineInterval*{sturmname}{index}</span></tt></a></li> -<li><a class="reference internal" href="#polrefineinterval-n-sturmname-index" id="id70"><tt class="docutils literal"><span class="pre">\PolRefineInterval[N]{sturmname}{index}</span></tt></a></li> -<li><a class="reference internal" href="#polensureintervallength-sturmname-index-e" id="id71"><tt class="docutils literal"><span class="pre">\PolEnsureIntervalLength{sturmname}{index}{E}</span></tt></a></li> -<li><a class="reference internal" href="#polensureintervallengths-sturmname-e" id="id72"><tt class="docutils literal"><span class="pre">\PolEnsureIntervalLengths{sturmname}{E}</span></tt></a></li> -<li><a class="reference internal" href="#polprintintervals-varname-sturmname" id="id73"><tt class="docutils literal"><span class="pre">\PolPrintIntervals[varname]{sturmname}</span></tt></a><ul> -<li><a class="reference internal" href="#id11" id="id74"><tt class="docutils literal">\PolPrintIntervalsPrintExactZero</tt></a></li> -<li><a class="reference internal" href="#id12" id="id75"><tt class="docutils literal">\PolPrintIntervalsPrintLeftEndPoint</tt></a></li> -<li><a class="reference internal" href="#id13" id="id76"><tt class="docutils literal">\PolPrintIntervalsPrintRightEndPoint</tt></a></li> +<li><a class="reference internal" href="#id8" id="id57"><tt class="docutils literal"><span class="pre">\PolTypeset*{polname}</span></tt></a></li> +<li><a class="reference internal" href="#poldiff-polname-1-polname-2" id="id58"><tt class="docutils literal"><span class="pre">\PolDiff{polname_1}{polname_2}</span></tt></a></li> +<li><a class="reference internal" href="#poldiff-n-polname-1-polname-2" id="id59"><tt class="docutils literal"><span class="pre">\PolDiff[N]{polname_1}{polname_2}</span></tt></a></li> +<li><a class="reference internal" href="#polantidiff-polname-1-polname-2" id="id60"><tt class="docutils literal"><span class="pre">\PolAntiDiff{polname_1}{polname_2}</span></tt></a></li> +<li><a class="reference internal" href="#polantidiff-n-polname-1-polname-2" id="id61"><tt class="docutils literal"><span class="pre">\PolAntiDiff[N]{polname_1}{polname_2}</span></tt></a></li> +<li><a class="reference internal" href="#poldivide-polname-1-polname-2-polname-q-polname-r" id="id62"><tt class="docutils literal"><span class="pre">\PolDivide{polname_1}{polname_2}{polname_Q}{polname_R}</span></tt></a></li> +<li><a class="reference internal" href="#polquo-polname-1-polname-2-polname-q" id="id63"><tt class="docutils literal"><span class="pre">\PolQuo{polname_1}{polname_2}{polname_Q}</span></tt></a></li> +<li><a class="reference internal" href="#polrem-polname-1-polname-2-polname-r" id="id64"><tt class="docutils literal"><span class="pre">\PolRem{polname_1}{polname_2}{polname_R}</span></tt></a></li> +<li><a class="reference internal" href="#polgcd-polname-1-polname-2-polname-gcd" id="id65"><tt class="docutils literal"><span class="pre">\PolGCD{polname_1}{polname_2}{polname_GCD}</span></tt></a></li> +<li><a class="reference internal" href="#poltosturm-polname-sturmname" id="id66"><tt class="docutils literal"><span class="pre">\PolToSturm{polname}{sturmname}</span></tt></a></li> +<li><a class="reference internal" href="#id10" id="id67"><tt class="docutils literal"><span class="pre">\PolToSturm*{polname}{sturmname}</span></tt></a></li> +<li><a class="reference internal" href="#polsettosturmchainsignchangesat-macro-sturmname-fraction" id="id68"><tt class="docutils literal"><span class="pre">\PolSetToSturmChainSignChangesAt{\macro}{sturmname}{fraction}</span></tt></a></li> +<li><a class="reference internal" href="#polsettonbofzeroswithin-macro-sturmname-value-a-value-b" id="id69"><tt class="docutils literal"><span class="pre">\PolSetToNbOfZerosWithin{\macro}{sturmname}{value_a}{value_b}</span></tt></a></li> +<li><a class="reference internal" href="#polsturmisolatezeros-sturmname" id="id70"><tt class="docutils literal">\PolSturmIsolateZeros{sturmname}</tt></a></li> +<li><a class="reference internal" href="#polrefineinterval-sturmname-index" id="id71"><tt class="docutils literal"><span class="pre">\PolRefineInterval*{sturmname}{index}</span></tt></a></li> +<li><a class="reference internal" href="#polrefineinterval-n-sturmname-index" id="id72"><tt class="docutils literal"><span class="pre">\PolRefineInterval[N]{sturmname}{index}</span></tt></a></li> +<li><a class="reference internal" href="#polensureintervallength-sturmname-index-e" id="id73"><tt class="docutils literal"><span class="pre">\PolEnsureIntervalLength{sturmname}{index}{E}</span></tt></a></li> +<li><a class="reference internal" href="#polensureintervallengths-sturmname-e" id="id74"><tt class="docutils literal"><span class="pre">\PolEnsureIntervalLengths{sturmname}{E}</span></tt></a></li> +<li><a class="reference internal" href="#polprintintervals-varname-sturmname" id="id75"><tt class="docutils literal"><span class="pre">\PolPrintIntervals[varname]{sturmname}</span></tt></a><ul> +<li><a class="reference internal" href="#id11" id="id76"><tt class="docutils literal">\PolPrintIntervalsPrintExactZero</tt></a></li> +<li><a class="reference internal" href="#id12" id="id77"><tt class="docutils literal">\PolPrintIntervalsPrintLeftEndPoint</tt></a></li> +<li><a class="reference internal" href="#id13" id="id78"><tt class="docutils literal">\PolPrintIntervalsPrintRightEndPoint</tt></a></li> </ul> </li> -<li><a class="reference internal" href="#polmapcoeffs-macro-polname" id="id77"><tt class="docutils literal"><span class="pre">\PolMapCoeffs{\macro}{polname}</span></tt></a></li> -<li><a class="reference internal" href="#polreducecoeffs-polname" id="id78"><tt class="docutils literal">\PolReduceCoeffs{polname}</tt></a></li> -<li><a class="reference internal" href="#id15" id="id79"><tt class="docutils literal"><span class="pre">\PolReduceCoeffs*{polname}</span></tt></a></li> -<li><a class="reference internal" href="#polmakemonic-polname" id="id80"><tt class="docutils literal">\PolMakeMonic{polname}</tt></a></li> +<li><a class="reference internal" href="#polmapcoeffs-macro-polname" id="id79"><tt class="docutils literal"><span class="pre">\PolMapCoeffs{\macro}{polname}</span></tt></a></li> +<li><a class="reference internal" href="#polreducecoeffs-polname" id="id80"><tt class="docutils literal">\PolReduceCoeffs{polname}</tt></a></li> +<li><a class="reference internal" href="#id15" id="id81"><tt class="docutils literal"><span class="pre">\PolReduceCoeffs*{polname}</span></tt></a></li> +<li><a class="reference internal" href="#polmakemonic-polname" id="id82"><tt class="docutils literal">\PolMakeMonic{polname}</tt></a></li> </ul> </li> -<li><a class="reference internal" href="#expandable-macros" id="id81">Expandable macros</a><ul> -<li><a class="reference internal" href="#poleval-polname-atexpr-numerical-expression" id="id82"><tt class="docutils literal"><span class="pre">\PolEval{polname}\AtExpr{numerical</span> expression}</tt></a></li> -<li><a class="reference internal" href="#poleval-polname-at-fraction" id="id83"><tt class="docutils literal"><span class="pre">\PolEval{polname}\At{fraction}</span></tt></a></li> -<li><a class="reference internal" href="#polevalreduced-polname-atexpr-numerical-expression" id="id84"><tt class="docutils literal"><span class="pre">\PolEvalReduced{polname}\AtExpr{numerical</span> expression}</tt></a></li> -<li><a class="reference internal" href="#polevalreduced-polname-at-fraction" id="id85"><tt class="docutils literal"><span class="pre">\PolEvalReduced{polname}\At{fraction}</span></tt></a></li> -<li><a class="reference internal" href="#polfloateval-polname-atexpr-numerical-expression" id="id86"><tt class="docutils literal"><span class="pre">\PolFloatEval{polname}\AtExpr{numerical</span> expression}</tt></a></li> -<li><a class="reference internal" href="#polfloateval-polname-at-fraction" id="id87"><tt class="docutils literal"><span class="pre">\PolFloatEval{polname}\At{fraction}</span></tt></a></li> -<li><a class="reference internal" href="#polifcoeffisplusorminusone-a-b" id="id88"><tt class="docutils literal"><span class="pre">\PolIfCoeffIsPlusOrMinusOne{A}{B}</span></tt></a></li> -<li><a class="reference internal" href="#polleadingcoeff-polname" id="id89"><tt class="docutils literal">\PolLeadingCoeff{polname}</tt></a></li> -<li><a class="reference internal" href="#polnthcoeff-polname-number" id="id90"><tt class="docutils literal"><span class="pre">\PolNthCoeff{polname}{number}</span></tt></a></li> -<li><a class="reference internal" href="#poldegree-polname" id="id91"><tt class="docutils literal">\PolDegree{polname}</tt></a></li> -<li><a class="reference internal" href="#poltoexpr-polname" id="id92"><tt class="docutils literal">\PolToExpr{polname}</tt></a><ul> -<li><a class="reference internal" href="#poltoexproneterm-raw-coeff-number" id="id93"><tt class="docutils literal"><span class="pre">\PolToExprOneTerm{raw_coeff}{number}</span></tt></a></li> -<li><a class="reference internal" href="#poltoexpronetermstylea-raw-coeff-number" id="id94"><tt class="docutils literal"><span class="pre">\PolToExprOneTermStyleA{raw_coeff}{number}</span></tt></a></li> -<li><a class="reference internal" href="#poltoexpronetermstyleb-raw-coeff-number" id="id95"><tt class="docutils literal"><span class="pre">\PolToExprOneTermStyleB{raw_coeff}{number}</span></tt></a></li> -<li><a class="reference internal" href="#poltoexprcmd-raw-coeff" id="id96"><tt class="docutils literal">\PolToExprCmd{raw_coeff}</tt></a></li> -<li><a class="reference internal" href="#poltoexprtermprefix-raw-coeff" id="id97"><tt class="docutils literal">\PolToExprTermPrefix{raw_coeff}</tt></a></li> -<li><a class="reference internal" href="#id23" id="id98"><tt class="docutils literal">\PolToExprVar</tt></a></li> -<li><a class="reference internal" href="#id24" id="id99"><tt class="docutils literal">\PolToExprTimes</tt></a></li> +<li><a class="reference internal" href="#expandable-macros" id="id83">Expandable macros</a><ul> +<li><a class="reference internal" href="#poleval-polname-atexpr-numerical-expression" id="id84"><tt class="docutils literal"><span class="pre">\PolEval{polname}\AtExpr{numerical</span> expression}</tt></a></li> +<li><a class="reference internal" href="#poleval-polname-at-fraction" id="id85"><tt class="docutils literal"><span class="pre">\PolEval{polname}\At{fraction}</span></tt></a></li> +<li><a class="reference internal" href="#polevalreduced-polname-atexpr-numerical-expression" id="id86"><tt class="docutils literal"><span class="pre">\PolEvalReduced{polname}\AtExpr{numerical</span> expression}</tt></a></li> +<li><a class="reference internal" href="#polevalreduced-polname-at-fraction" id="id87"><tt class="docutils literal"><span class="pre">\PolEvalReduced{polname}\At{fraction}</span></tt></a></li> +<li><a class="reference internal" href="#polfloateval-polname-atexpr-numerical-expression" id="id88"><tt class="docutils literal"><span class="pre">\PolFloatEval{polname}\AtExpr{numerical</span> expression}</tt></a></li> +<li><a class="reference internal" href="#polfloateval-polname-at-fraction" id="id89"><tt class="docutils literal"><span class="pre">\PolFloatEval{polname}\At{fraction}</span></tt></a></li> +<li><a class="reference internal" href="#polifcoeffisplusorminusone-a-b" id="id90"><tt class="docutils literal"><span class="pre">\PolIfCoeffIsPlusOrMinusOne{A}{B}</span></tt></a></li> +<li><a class="reference internal" href="#polleadingcoeff-polname" id="id91"><tt class="docutils literal">\PolLeadingCoeff{polname}</tt></a></li> +<li><a class="reference internal" href="#polnthcoeff-polname-number" id="id92"><tt class="docutils literal"><span class="pre">\PolNthCoeff{polname}{number}</span></tt></a></li> +<li><a class="reference internal" href="#poldegree-polname" id="id93"><tt class="docutils literal">\PolDegree{polname}</tt></a></li> +<li><a class="reference internal" href="#poltoexpr-polname" id="id94"><tt class="docutils literal">\PolToExpr{polname}</tt></a><ul> +<li><a class="reference internal" href="#poltoexproneterm-raw-coeff-number" id="id95"><tt class="docutils literal"><span class="pre">\PolToExprOneTerm{raw_coeff}{number}</span></tt></a></li> +<li><a class="reference internal" href="#poltoexpronetermstylea-raw-coeff-number" id="id96"><tt class="docutils literal"><span class="pre">\PolToExprOneTermStyleA{raw_coeff}{number}</span></tt></a></li> +<li><a class="reference internal" href="#poltoexpronetermstyleb-raw-coeff-number" id="id97"><tt class="docutils literal"><span class="pre">\PolToExprOneTermStyleB{raw_coeff}{number}</span></tt></a></li> +<li><a class="reference internal" href="#poltoexprcmd-raw-coeff" id="id98"><tt class="docutils literal">\PolToExprCmd{raw_coeff}</tt></a></li> +<li><a class="reference internal" href="#poltoexprtermprefix-raw-coeff" id="id99"><tt class="docutils literal">\PolToExprTermPrefix{raw_coeff}</tt></a></li> +<li><a class="reference internal" href="#id23" id="id100"><tt class="docutils literal">\PolToExprVar</tt></a></li> +<li><a class="reference internal" href="#id24" id="id101"><tt class="docutils literal">\PolToExprTimes</tt></a></li> </ul> </li> -<li><a class="reference internal" href="#id26" id="id100"><tt class="docutils literal"><span class="pre">\PolToExpr*{polname}</span></tt></a></li> -<li><a class="reference internal" href="#poltofloatexpr-polname" id="id101"><tt class="docutils literal">\PolToFloatExpr{polname}</tt></a><ul> -<li><a class="reference internal" href="#poltofloatexproneterm-raw-coeff-number" id="id102"><tt class="docutils literal"><span class="pre">\PolToFloatExprOneTerm{raw_coeff}{number}</span></tt></a></li> -<li><a class="reference internal" href="#poltofloatexprcmd-raw-coeff" id="id103"><tt class="docutils literal">\PolToFloatExprCmd{raw_coeff}</tt></a></li> +<li><a class="reference internal" href="#id26" id="id102"><tt class="docutils literal"><span class="pre">\PolToExpr*{polname}</span></tt></a></li> +<li><a class="reference internal" href="#poltofloatexpr-polname" id="id103"><tt class="docutils literal">\PolToFloatExpr{polname}</tt></a><ul> +<li><a class="reference internal" href="#poltofloatexproneterm-raw-coeff-number" id="id104"><tt class="docutils literal"><span class="pre">\PolToFloatExprOneTerm{raw_coeff}{number}</span></tt></a></li> +<li><a class="reference internal" href="#poltofloatexprcmd-raw-coeff" id="id105"><tt class="docutils literal">\PolToFloatExprCmd{raw_coeff}</tt></a></li> </ul> </li> -<li><a class="reference internal" href="#id30" id="id104"><tt class="docutils literal"><span class="pre">\PolToFloatExpr*{polname}</span></tt></a></li> -<li><a class="reference internal" href="#poltolist-polname" id="id105"><tt class="docutils literal">\PolToList{polname}</tt></a></li> -<li><a class="reference internal" href="#poltocsv-polname" id="id106"><tt class="docutils literal">\PolToCSV{polname}</tt></a></li> -<li><a class="reference internal" href="#polsturmchainlength-sturmname" id="id107"><tt class="docutils literal">\PolSturmChainLength{sturmname}</tt></a></li> -<li><a class="reference internal" href="#polsturmifzeroexactlyknown-sturmname-index-a-b" id="id108"><tt class="docutils literal"><span class="pre">\PolSturmIfZeroExactlyKnown{sturmname}{index}{A}{B}</span></tt></a></li> -<li><a class="reference internal" href="#polsturmisolatedzeroleft-sturmname-index" id="id109"><tt class="docutils literal"><span class="pre">\PolSturmIsolatedZeroLeft{sturmname}{index}</span></tt></a></li> -<li><a class="reference internal" href="#polsturmisolatedzeroright-sturmname-index" id="id110"><tt class="docutils literal"><span class="pre">\PolSturmIsolatedZeroRight{sturmname}{index}</span></tt></a></li> -<li><a class="reference internal" href="#polsturmnbofisolatedzeros-sturmname" id="id111"><tt class="docutils literal">\PolSturmNbOfIsolatedZeros{sturmname}</tt></a></li> -<li><a class="reference internal" href="#polintervalwidth-sturmname-index" id="id112"><tt class="docutils literal"><span class="pre">\PolIntervalWidth{sturmname}{index}</span></tt></a></li> -<li><a class="reference internal" href="#macros-for-use-within-execution-of-polprintintervals" id="id113">Macros for use within execution of <tt class="docutils literal">\PolPrintIntervals</tt></a><ul> -<li><a class="reference internal" href="#id31" id="id114"><tt class="docutils literal">\PolPrintIntervalsTheEndPoint</tt></a></li> -<li><a class="reference internal" href="#id32" id="id115"><tt class="docutils literal">\PolPrintIntervalsTheIndex</tt></a></li> -<li><a class="reference internal" href="#polifendpointispositive-a-b" id="id116"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsPositive{A}{B}</span></tt></a></li> -<li><a class="reference internal" href="#polifendpointisnegative-a-b" id="id117"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsNegative{A}{B}</span></tt></a></li> -<li><a class="reference internal" href="#polifendpointiszero-a-b" id="id118"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsZero{A}{B}</span></tt></a></li> +<li><a class="reference internal" href="#id30" id="id106"><tt class="docutils literal"><span class="pre">\PolToFloatExpr*{polname}</span></tt></a></li> +<li><a class="reference internal" href="#poltolist-polname" id="id107"><tt class="docutils literal">\PolToList{polname}</tt></a></li> +<li><a class="reference internal" href="#poltocsv-polname" id="id108"><tt class="docutils literal">\PolToCSV{polname}</tt></a></li> +<li><a class="reference internal" href="#polsturmchainlength-sturmname" id="id109"><tt class="docutils literal">\PolSturmChainLength{sturmname}</tt></a></li> +<li><a class="reference internal" href="#polsturmifzeroexactlyknown-sturmname-index-a-b" id="id110"><tt class="docutils literal"><span class="pre">\PolSturmIfZeroExactlyKnown{sturmname}{index}{A}{B}</span></tt></a></li> +<li><a class="reference internal" href="#polsturmisolatedzeroleft-sturmname-index" id="id111"><tt class="docutils literal"><span class="pre">\PolSturmIsolatedZeroLeft{sturmname}{index}</span></tt></a></li> +<li><a class="reference internal" href="#polsturmisolatedzeroright-sturmname-index" id="id112"><tt class="docutils literal"><span class="pre">\PolSturmIsolatedZeroRight{sturmname}{index}</span></tt></a></li> +<li><a class="reference internal" href="#polsturmnbofisolatedzeros-sturmname" id="id113"><tt class="docutils literal">\PolSturmNbOfIsolatedZeros{sturmname}</tt></a></li> +<li><a class="reference internal" href="#polintervalwidth-sturmname-index" id="id114"><tt class="docutils literal"><span class="pre">\PolIntervalWidth{sturmname}{index}</span></tt></a></li> +<li><a class="reference internal" href="#macros-for-use-within-execution-of-polprintintervals" id="id115">Macros for use within execution of <tt class="docutils literal">\PolPrintIntervals</tt></a><ul> +<li><a class="reference internal" href="#id31" id="id116"><tt class="docutils literal">\PolPrintIntervalsTheEndPoint</tt></a></li> +<li><a class="reference internal" href="#id32" id="id117"><tt class="docutils literal">\PolPrintIntervalsTheIndex</tt></a></li> +<li><a class="reference internal" href="#polifendpointispositive-a-b" id="id118"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsPositive{A}{B}</span></tt></a></li> +<li><a class="reference internal" href="#polifendpointisnegative-a-b" id="id119"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsNegative{A}{B}</span></tt></a></li> +<li><a class="reference internal" href="#polifendpointiszero-a-b" id="id120"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsZero{A}{B}</span></tt></a></li> </ul> </li> -<li><a class="reference internal" href="#poldectostring-decimal-number" id="id119"><tt class="docutils literal">\PolDecToString{decimal number}</tt></a></li> +<li><a class="reference internal" href="#poldectostring-decimal-number" id="id121"><tt class="docutils literal">\PolDecToString{decimal number}</tt></a></li> </ul> </li> -<li><a class="reference internal" href="#booleans-with-default-setting-as-indicated" id="id120">Booleans (with default setting as indicated)</a><ul> -<li><a class="reference internal" href="#xintverbosefalse" id="id121"><tt class="docutils literal">\xintverbosefalse</tt></a></li> -<li><a class="reference internal" href="#poltypesetallfalse" id="id122"><tt class="docutils literal">\poltypesetallfalse</tt></a></li> -<li><a class="reference internal" href="#poltoexprallfalse" id="id123"><tt class="docutils literal">\poltoexprallfalse</tt></a></li> +<li><a class="reference internal" href="#booleans-with-default-setting-as-indicated" id="id122">Booleans (with default setting as indicated)</a><ul> +<li><a class="reference internal" href="#xintverbosefalse" id="id123"><tt class="docutils literal">\xintverbosefalse</tt></a></li> +<li><a class="reference internal" href="#poltypesetallfalse" id="id124"><tt class="docutils literal">\poltypesetallfalse</tt></a></li> +<li><a class="reference internal" href="#poltoexprallfalse" id="id125"><tt class="docutils literal">\poltoexprallfalse</tt></a></li> </ul> </li> -<li><a class="reference internal" href="#technicalities" id="id124">Technicalities</a></li> -<li><a class="reference internal" href="#change-log" id="id125">CHANGE LOG</a></li> -<li><a class="reference internal" href="#acknowledgments" id="id126">Acknowledgments</a></li> +<li><a class="reference internal" href="#technicalities" id="id126">Technicalities</a></li> +<li><a class="reference internal" href="#change-log" id="id127">CHANGE LOG</a></li> +<li><a class="reference internal" href="#acknowledgments" id="id128">Acknowledgments</a></li> </ul> </div> <div class="section" id="basic-examples"> -<h1><a class="toc-backref" href="#id33">Basic Examples</a></h1> +<h1><a class="toc-backref" href="#id35">Basic Examples</a></h1> <p>The syntax is:</p> <pre class="literal-block"> \poldef polname(x):= expression in variable x; @@ -579,7 +579,7 @@ PSTricks-compatible; the letter used in output can be </dl> </div> <div class="section" id="examples-of-localization-of-roots"> -<h1><a class="toc-backref" href="#id34">Examples of localization of roots</a></h1> +<h1><a class="toc-backref" href="#id36">Examples of localization of roots</a></h1> <p>First some remarks about auxiliaries.</p> <ul> <li><p class="first">To make printed decimal numbers more enjoyable than via @@ -603,7 +603,7 @@ work from command line then (I recommend <tt class="docutils literal">rlwrap</tt </li> </ul> <div class="section" id="a-typical-example"> -<h2><a class="toc-backref" href="#id35">A typical example</a></h2> +<h2><a class="toc-backref" href="#id37">A typical example</a></h2> <p>In this example the polynomial is square-free; we can make sure of that by comparing the degree of the first element of the Sturm chain with the degree of the original polynomial. In such case the second element of @@ -647,7 +647,7 @@ to give the exact value for $X_2$! </pre> </div> <div class="section" id="a-degree-four-polynomial-with-nearby-roots"> -<h2><a class="toc-backref" href="#id36">A degree four polynomial with nearby roots</a></h2> +<h2><a class="toc-backref" href="#id38">A degree four polynomial with nearby roots</a></h2> <pre class="literal-block"> \PolDef{Q}{(x-1.050001)(x-1.105001)(x-1.110501)(x-1.111051)} \PolTypeset{Q} @@ -670,7 +670,7 @@ to give the exact value for $X_2$! </pre> </div> <div class="section" id="the-degree-nine-polynomial-with-0-99-0-999-0-9999-as-triple-roots"> -<h2><a class="toc-backref" href="#id37">The degree nine polynomial with 0.99, 0.999, 0.9999 as triple roots</a></h2> +<h2><a class="toc-backref" href="#id39">The degree nine polynomial with 0.99, 0.999, 0.9999 as triple roots</a></h2> <pre class="literal-block"> \PolDef{P}{(x-0.99)^3(x-0.999)^3(x-0.9999)^3} \PolTypeset{P}\par @@ -685,7 +685,7 @@ It has \PolSturmNbOfIsolatedZeros{P} real roots. </pre> </div> <div class="section" id="a-mignotte-type-polynomial"> -<h2><a class="toc-backref" href="#id38">A Mignotte type polynomial</a></h2> +<h2><a class="toc-backref" href="#id40">A Mignotte type polynomial</a></h2> <pre class="literal-block"> \PolDef{P}{x^10 - (10x-1)^2}% \PolTypeset{P} % prints it in expanded form @@ -708,7 +708,7 @@ $\PolSturmIsolatedZeroLeft{P}{2}<Z_2<\PolSturmIsolatedZeroRight{P}{2}$. </pre> </div> <div class="section" id="the-degree-41-polynomial-with-2-1-9-1-8-0-0-1-1-9-2-as-roots"> -<h2><a class="toc-backref" href="#id39">The degree 41 polynomial with -2, -1.9, -1.8, ..., 0, 0.1, ..., 1.9, 2 as roots</a></h2> +<h2><a class="toc-backref" href="#id41">The degree 41 polynomial with -2, -1.9, -1.8, ..., 0, 0.1, ..., 1.9, 2 as roots</a></h2> <pre class="literal-block"> \PolDef{P}{mul((x-i*1e-1), i=-20..20)}% i/10 is same but less efficient </pre> @@ -752,7 +752,7 @@ x^41 </pre> </div> <div class="section" id="roots-of-chebyshev-polynomials"> -<h2><a class="toc-backref" href="#id40">Roots of Chebyshev polynomials</a></h2> +<h2><a class="toc-backref" href="#id42">Roots of Chebyshev polynomials</a></h2> <pre class="literal-block"> \newcount\mycount \poldef T_0(x) := 1; @@ -775,9 +775,9 @@ x^41 </div> </div> <div class="section" id="non-expandable-macros"> -<h1><a class="toc-backref" href="#id41">Non-expandable macros</a></h1> +<h1><a class="toc-backref" href="#id43">Non-expandable macros</a></h1> <div class="section" id="poldef-polname-letter-expression-in-letter"> -<span id="poldef"></span><h2><a class="toc-backref" href="#id42"><tt class="docutils literal">\poldef <span class="pre">polname(letter):=</span> expression in letter;</tt></a></h2> +<span id="poldef"></span><h2><a class="toc-backref" href="#id44"><tt class="docutils literal">\poldef <span class="pre">polname(letter):=</span> expression in letter;</tt></a></h2> <blockquote> <p>This evaluates the <em>polynomial expression</em> and stores the coefficients in a private structure accessible later via other package macros, @@ -813,7 +813,7 @@ manually, if needed.</p> </blockquote> </div> <div class="section" id="poldef-letter-polname-expression-in-letter"> -<span id="id2"></span><h2><a class="toc-backref" href="#id43"><tt class="docutils literal"><span class="pre">\PolDef[letter]{polname}{expression</span> in letter}</tt></a></h2> +<span id="id2"></span><h2><a class="toc-backref" href="#id45"><tt class="docutils literal"><span class="pre">\PolDef[letter]{polname}{expression</span> in letter}</tt></a></h2> <blockquote> Does the same as <a class="reference external" href="poldef;">\poldef</a> in an undelimited macro format (thus avoiding potential problems with the catcode of the @@ -821,7 +821,7 @@ semi-colon in presence of some packages.) In absence of the <tt class="docutils literal">[letter]</tt> optional argument, the variable is assumed to be <tt class="docutils literal">x</tt>.</blockquote> </div> <div class="section" id="polgenfloatvariant-polname"> -<span id="polgenfloatvariant"></span><h2><a class="toc-backref" href="#id44"><tt class="docutils literal">\PolGenFloatVariant{polname}</tt></a></h2> +<span id="polgenfloatvariant"></span><h2><a class="toc-backref" href="#id46"><tt class="docutils literal">\PolGenFloatVariant{polname}</tt></a></h2> <blockquote> <p>Makes the polynomial also usable in the <tt class="docutils literal">\xintfloatexpr</tt> parser. It will therein evaluates via an Horner scheme with coefficients @@ -840,7 +840,7 @@ context.</p> </blockquote> </div> <div class="section" id="pollet-polname-2-polname-1"> -<span id="pollet"></span><h2><a class="toc-backref" href="#id45"><tt class="docutils literal"><span class="pre">\PolLet{polname_2}={polname_1}</span></tt></a></h2> +<span id="pollet"></span><h2><a class="toc-backref" href="#id47"><tt class="docutils literal"><span class="pre">\PolLet{polname_2}={polname_1}</span></tt></a></h2> <blockquote> Makes a copy of the already defined polynomial <tt class="docutils literal">polname_1</tt> to a new one <tt class="docutils literal">polname_2</tt>. Same effect as @@ -848,12 +848,12 @@ new one <tt class="docutils literal">polname_2</tt>. Same effect as <tt class="docutils literal">=</tt> is optional.</blockquote> </div> <div class="section" id="polgloballet-polname-2-polname-1"> -<span id="polgloballet"></span><h2><a class="toc-backref" href="#id46"><tt class="docutils literal"><span class="pre">\PolGlobalLet{polname_2}={polname_1}</span></tt></a></h2> +<span id="polgloballet"></span><h2><a class="toc-backref" href="#id48"><tt class="docutils literal"><span class="pre">\PolGlobalLet{polname_2}={polname_1}</span></tt></a></h2> <blockquote> Acts globally.</blockquote> </div> <div class="section" id="polassign-polname-toarray-macro"> -<span id="polassign"></span><h2><a class="toc-backref" href="#id47"><tt class="docutils literal"><span class="pre">\PolAssign{polname}\toarray\macro</span></tt></a></h2> +<span id="polassign"></span><h2><a class="toc-backref" href="#id49"><tt class="docutils literal"><span class="pre">\PolAssign{polname}\toarray\macro</span></tt></a></h2> <blockquote> <p>Defines a one-argument expandable macro <tt class="docutils literal"><span class="pre">\macro{#1}</span></tt> which expands to the (raw) #1th polynomial coefficient.</p> @@ -876,7 +876,7 @@ indices act the same in both.)</p> </blockquote> </div> <div class="section" id="polget-polname-fromarray-macro"> -<span id="polget"></span><h2><a class="toc-backref" href="#id48"><tt class="docutils literal"><span class="pre">\PolGet{polname}\fromarray\macro</span></tt></a></h2> +<span id="polget"></span><h2><a class="toc-backref" href="#id50"><tt class="docutils literal"><span class="pre">\PolGet{polname}\fromarray\macro</span></tt></a></h2> <blockquote> <p>Does the converse operation to <tt class="docutils literal"><span class="pre">\PolAssign{polname}\toarray\macro</span></tt>. No error checks on validity of coefficients as numbers. Each @@ -894,7 +894,7 @@ they were not subjected to <tt class="docutils literal">\xintRaw</tt> or similar </blockquote> </div> <div class="section" id="polfromcsv-polname-csv"> -<span id="polfromcsv"></span><h2><a class="toc-backref" href="#id49"><tt class="docutils literal"><span class="pre">\PolFromCSV{polname}{<csv>}</span></tt></a></h2> +<span id="polfromcsv"></span><h2><a class="toc-backref" href="#id51"><tt class="docutils literal"><span class="pre">\PolFromCSV{polname}{<csv>}</span></tt></a></h2> <blockquote> <p>Defines a polynomial directly from the comma separated list of values (or a macro expanding to such a list) of its coefficients, @@ -912,7 +912,7 @@ format (this may change).</p> </blockquote> </div> <div class="section" id="poltypeset-polname"> -<span id="poltypeset"></span><h2><a class="toc-backref" href="#id50"><tt class="docutils literal">\PolTypeset{polname}</tt></a></h2> +<span id="poltypeset"></span><h2><a class="toc-backref" href="#id52"><tt class="docutils literal">\PolTypeset{polname}</tt></a></h2> <blockquote> <p>Typesets in descending powers in math mode. It uses letter <tt class="docutils literal">x</tt> but this can be changed via an optional argument:</p> @@ -926,7 +926,7 @@ can be re-defined for customization. Their default definitions are expandable, but this is not a requirement.</p> </blockquote> <div class="section" id="poltypesetcmd-raw-coeff"> -<span id="poltypesetcmd"></span><h3><a class="toc-backref" href="#id51"><tt class="docutils literal">\PolTypesetCmd{raw_coeff}</tt></a></h3> +<span id="poltypesetcmd"></span><h3><a class="toc-backref" href="#id53"><tt class="docutils literal">\PolTypesetCmd{raw_coeff}</tt></a></h3> <blockquote> <p>Checks if the coefficient is <tt class="docutils literal">1</tt> or <tt class="docutils literal"><span class="pre">-1</span></tt> and then skips printing the <tt class="docutils literal">1</tt>, except for the constant term. Also it sets conditional @@ -936,7 +936,7 @@ minus one is handled by <a class="reference internal" href="#poltypesetone-raw-c </blockquote> </div> <div class="section" id="poltypesetone-raw-coeff"> -<span id="poltypesetone"></span><h3><a class="toc-backref" href="#id52"><tt class="docutils literal">\PolTypesetOne{raw_coeff}</tt></a></h3> +<span id="poltypesetone"></span><h3><a class="toc-backref" href="#id54"><tt class="docutils literal">\PolTypesetOne{raw_coeff}</tt></a></h3> <blockquote> <p>The default is <tt class="docutils literal">\xintSignedFrac</tt> but this macro is annoying as it insists to use a power of ten, and not decimal notation.</p> @@ -961,7 +961,7 @@ which uses decimal notation (at least for the numerator part).</p> </blockquote> </div> <div class="section" id="id6"> -<span id="poltypesetmonomialcmd"></span><h3><a class="toc-backref" href="#id53"><tt class="docutils literal">\PolTypesetMonomialCmd</tt></a></h3> +<span id="poltypesetmonomialcmd"></span><h3><a class="toc-backref" href="#id55"><tt class="docutils literal">\PolTypesetMonomialCmd</tt></a></h3> <blockquote> This decides how a monomial (in variable <tt class="docutils literal">\PolVar</tt> and with exponent <tt class="docutils literal">\PolIndex</tt>) is to be printed. The default does nothing @@ -971,7 +971,7 @@ for the constant term, <tt class="docutils literal">\PolVar</tt> for the first d <tt class="docutils literal">\ifnum</tt> tests.</blockquote> </div> <div class="section" id="poltypesetcmdprefix-raw-coeff"> -<span id="poltypesetcmdprefix"></span><h3><a class="toc-backref" href="#id54"><tt class="docutils literal">\PolTypesetCmdPrefix{raw_coeff}</tt></a></h3> +<span id="poltypesetcmdprefix"></span><h3><a class="toc-backref" href="#id56"><tt class="docutils literal">\PolTypesetCmdPrefix{raw_coeff}</tt></a></h3> <blockquote> Expands to a <tt class="docutils literal">+</tt> if the <tt class="docutils literal">raw_coeff</tt> is zero or positive, and to nothing if <tt class="docutils literal">raw_coeff</tt> is negative, as in latter case the @@ -982,13 +982,13 @@ for the first term.</blockquote> </div> </div> <div class="section" id="id8"> -<span id="id7"></span><h2><a class="toc-backref" href="#id55"><tt class="docutils literal"><span class="pre">\PolTypeset*{polname}</span></tt></a></h2> +<span id="id7"></span><h2><a class="toc-backref" href="#id57"><tt class="docutils literal"><span class="pre">\PolTypeset*{polname}</span></tt></a></h2> <blockquote> Typesets in ascending powers. Use e.g. <tt class="docutils literal">[h]</tt> optional argument (after the <tt class="docutils literal">*</tt>) to use letter <tt class="docutils literal">h</tt> rather than <tt class="docutils literal">x</tt>.</blockquote> </div> <div class="section" id="poldiff-polname-1-polname-2"> -<span id="poldiff"></span><h2><a class="toc-backref" href="#id56"><tt class="docutils literal"><span class="pre">\PolDiff{polname_1}{polname_2}</span></tt></a></h2> +<span id="poldiff"></span><h2><a class="toc-backref" href="#id58"><tt class="docutils literal"><span class="pre">\PolDiff{polname_1}{polname_2}</span></tt></a></h2> <blockquote> <p>This sets <tt class="docutils literal">polname_2</tt> to the first derivative of <tt class="docutils literal">polname_1</tt>. It is allowed to issue <tt class="docutils literal"><span class="pre">\PolDiff{f}{f}</span></tt>, effectively replacing <tt class="docutils literal">f</tt> @@ -998,7 +998,7 @@ by <tt class="docutils literal">f'</tt>.</p> </blockquote> </div> <div class="section" id="poldiff-n-polname-1-polname-2"> -<span id="poldiff-n"></span><h2><a class="toc-backref" href="#id57"><tt class="docutils literal"><span class="pre">\PolDiff[N]{polname_1}{polname_2}</span></tt></a></h2> +<span id="poldiff-n"></span><h2><a class="toc-backref" href="#id59"><tt class="docutils literal"><span class="pre">\PolDiff[N]{polname_1}{polname_2}</span></tt></a></h2> <blockquote> This sets <tt class="docutils literal">polname_2</tt> to the <tt class="docutils literal">N</tt>-th derivative of <tt class="docutils literal">polname_1</tt>. Identical arguments is allowed. With <tt class="docutils literal">N=0</tt>, same effect as @@ -1006,7 +1006,7 @@ Identical arguments is allowed. With <tt class="docutils literal">N=0</tt>, same using <tt class="docutils literal">\PolAntiDiff</tt>.</blockquote> </div> <div class="section" id="polantidiff-polname-1-polname-2"> -<span id="polantidiff"></span><h2><a class="toc-backref" href="#id58"><tt class="docutils literal"><span class="pre">\PolAntiDiff{polname_1}{polname_2}</span></tt></a></h2> +<span id="polantidiff"></span><h2><a class="toc-backref" href="#id60"><tt class="docutils literal"><span class="pre">\PolAntiDiff{polname_1}{polname_2}</span></tt></a></h2> <blockquote> <p>This sets <tt class="docutils literal">polname_2</tt> to the primitive of <tt class="docutils literal">polname_1</tt> vanishing at zero.</p> @@ -1015,32 +1015,32 @@ at zero.</p> </blockquote> </div> <div class="section" id="polantidiff-n-polname-1-polname-2"> -<span id="polantidiff-n"></span><h2><a class="toc-backref" href="#id59"><tt class="docutils literal"><span class="pre">\PolAntiDiff[N]{polname_1}{polname_2}</span></tt></a></h2> +<span id="polantidiff-n"></span><h2><a class="toc-backref" href="#id61"><tt class="docutils literal"><span class="pre">\PolAntiDiff[N]{polname_1}{polname_2}</span></tt></a></h2> <blockquote> This sets <tt class="docutils literal">polname_2</tt> to the result of <tt class="docutils literal">N</tt> successive integrations on <tt class="docutils literal">polname_1</tt>. With negative <tt class="docutils literal">N</tt>, it switches to using <tt class="docutils literal">\PolDiff</tt>.</blockquote> </div> <div class="section" id="poldivide-polname-1-polname-2-polname-q-polname-r"> -<span id="poldivide"></span><h2><a class="toc-backref" href="#id60"><tt class="docutils literal"><span class="pre">\PolDivide{polname_1}{polname_2}{polname_Q}{polname_R}</span></tt></a></h2> +<span id="poldivide"></span><h2><a class="toc-backref" href="#id62"><tt class="docutils literal"><span class="pre">\PolDivide{polname_1}{polname_2}{polname_Q}{polname_R}</span></tt></a></h2> <blockquote> This sets <tt class="docutils literal">polname_Q</tt> and <tt class="docutils literal">polname_R</tt> to be the quotient and remainder in the Euclidean division of <tt class="docutils literal">polname_1</tt> by <tt class="docutils literal">polname_2</tt>.</blockquote> </div> <div class="section" id="polquo-polname-1-polname-2-polname-q"> -<span id="polquo"></span><h2><a class="toc-backref" href="#id61"><tt class="docutils literal"><span class="pre">\PolQuo{polname_1}{polname_2}{polname_Q}</span></tt></a></h2> +<span id="polquo"></span><h2><a class="toc-backref" href="#id63"><tt class="docutils literal"><span class="pre">\PolQuo{polname_1}{polname_2}{polname_Q}</span></tt></a></h2> <blockquote> This sets <tt class="docutils literal">polname_Q</tt> to be the quotient in the Euclidean division of <tt class="docutils literal">polname_1</tt> by <tt class="docutils literal">polname_2</tt>.</blockquote> </div> <div class="section" id="polrem-polname-1-polname-2-polname-r"> -<span id="polrem"></span><h2><a class="toc-backref" href="#id62"><tt class="docutils literal"><span class="pre">\PolRem{polname_1}{polname_2}{polname_R}</span></tt></a></h2> +<span id="polrem"></span><h2><a class="toc-backref" href="#id64"><tt class="docutils literal"><span class="pre">\PolRem{polname_1}{polname_2}{polname_R}</span></tt></a></h2> <blockquote> This sets <tt class="docutils literal">polname_R</tt> to be the remainder in the Euclidean division of <tt class="docutils literal">polname_1</tt> by <tt class="docutils literal">polname_2</tt>.</blockquote> </div> <div class="section" id="polgcd-polname-1-polname-2-polname-gcd"> -<span id="polgcd"></span><h2><a class="toc-backref" href="#id63"><tt class="docutils literal"><span class="pre">\PolGCD{polname_1}{polname_2}{polname_GCD}</span></tt></a></h2> +<span id="polgcd"></span><h2><a class="toc-backref" href="#id65"><tt class="docutils literal"><span class="pre">\PolGCD{polname_1}{polname_2}{polname_GCD}</span></tt></a></h2> <blockquote> This sets <tt class="docutils literal">polname_GCD</tt> to be the (monic) GCD of the two first polynomials. It is a unitary polynomial except if both <tt class="docutils literal">polname_1</tt> @@ -1066,7 +1066,7 @@ polynomial.</blockquote> no common factor among the coefficients. --> </div> <div class="section" id="poltosturm-polname-sturmname"> -<span id="poltosturm"></span><h2><a class="toc-backref" href="#id64"><tt class="docutils literal"><span class="pre">\PolToSturm{polname}{sturmname}</span></tt></a></h2> +<span id="poltosturm"></span><h2><a class="toc-backref" href="#id66"><tt class="docutils literal"><span class="pre">\PolToSturm{polname}{sturmname}</span></tt></a></h2> <blockquote> <p>With, for example, <tt class="docutils literal">polname</tt> being <tt class="docutils literal">P</tt> and <tt class="docutils literal">sturmname</tt> being <tt class="docutils literal">S</tt>, the macro starts by computing polynomials <tt class="docutils literal">S_0 = P</tt>, <tt class="docutils literal">S_1 @@ -1081,12 +1081,12 @@ roots as polynomial <tt class="docutils literal">polname</tt>, but each with mul </blockquote> </div> <div class="section" id="id10"> -<span id="id9"></span><h2><a class="toc-backref" href="#id65"><tt class="docutils literal"><span class="pre">\PolToSturm*{polname}{sturmname}</span></tt></a></h2> +<span id="id9"></span><h2><a class="toc-backref" href="#id67"><tt class="docutils literal"><span class="pre">\PolToSturm*{polname}{sturmname}</span></tt></a></h2> <blockquote> Does not divide the Sturm chain by its last element.</blockquote> </div> <div class="section" id="polsettosturmchainsignchangesat-macro-sturmname-fraction"> -<span id="polsettosturmchainsignchangesat"></span><h2><a class="toc-backref" href="#id66"><tt class="docutils literal"><span class="pre">\PolSetToSturmChainSignChangesAt{\macro}{sturmname}{fraction}</span></tt></a></h2> +<span id="polsettosturmchainsignchangesat"></span><h2><a class="toc-backref" href="#id68"><tt class="docutils literal"><span class="pre">\PolSetToSturmChainSignChangesAt{\macro}{sturmname}{fraction}</span></tt></a></h2> <blockquote> <p>Sets macro <tt class="docutils literal">\macro</tt> to the number of sign changes in the Sturm chain with name prefix <tt class="docutils literal">sturmname</tt>, at location <tt class="docutils literal">fraction</tt> @@ -1103,7 +1103,7 @@ use <tt class="docutils literal">[\empty]</tt> as extra optional argument.</p> </blockquote> </div> <div class="section" id="polsettonbofzeroswithin-macro-sturmname-value-a-value-b"> -<span id="polsettonbofzeroswithin"></span><h2><a class="toc-backref" href="#id67"><tt class="docutils literal"><span class="pre">\PolSetToNbOfZerosWithin{\macro}{sturmname}{value_a}{value_b}</span></tt></a></h2> +<span id="polsettonbofzeroswithin"></span><h2><a class="toc-backref" href="#id69"><tt class="docutils literal"><span class="pre">\PolSetToNbOfZerosWithin{\macro}{sturmname}{value_a}{value_b}</span></tt></a></h2> <blockquote> <p>Applies the <a class="reference external" href="https://en.wikipedia.org/wiki/Sturm%27s_theorem">Sturm Theorem</a> to set <tt class="docutils literal">\macro</tt> to the exact number of distinct roots of <tt class="docutils literal">sturmname_0</tt> in the interval <tt class="docutils literal">(value_a, @@ -1121,7 +1121,7 @@ use <tt class="docutils literal">[\empty]</tt> as extra optional argument.</p> </blockquote> </div> <div class="section" id="polsturmisolatezeros-sturmname"> -<span id="polsturmisolatezeros"></span><h2><a class="toc-backref" href="#id68"><tt class="docutils literal">\PolSturmIsolateZeros{sturmname}</tt></a></h2> +<span id="polsturmisolatezeros"></span><h2><a class="toc-backref" href="#id70"><tt class="docutils literal">\PolSturmIsolateZeros{sturmname}</tt></a></h2> <blockquote> <p>First, it evaluates using <a class="reference external" href="https://en.wikipedia.org/wiki/Sturm%27s_theorem">Sturm theorem</a> the number of distinct real roots of <tt class="docutils literal">sturmname_0</tt>.</p> @@ -1205,7 +1205,7 @@ are studied in numerical mathematics.</p> </blockquote> </div> <div class="section" id="polrefineinterval-sturmname-index"> -<span id="polrefineinterval"></span><h2><a class="toc-backref" href="#id69"><tt class="docutils literal"><span class="pre">\PolRefineInterval*{sturmname}{index}</span></tt></a></h2> +<span id="polrefineinterval"></span><h2><a class="toc-backref" href="#id71"><tt class="docutils literal"><span class="pre">\PolRefineInterval*{sturmname}{index}</span></tt></a></h2> <blockquote> The <tt class="docutils literal">index</tt>-th interval (starting indexing at one) is further subdivided as many times as is necessary in order for the newer @@ -1214,21 +1214,21 @@ the original interval. This means that the <tt class="docutils literal">k</tt>th strictly separated from the other roots.</blockquote> </div> <div class="section" id="polrefineinterval-n-sturmname-index"> -<span id="polrefineinterval-n"></span><h2><a class="toc-backref" href="#id70"><tt class="docutils literal"><span class="pre">\PolRefineInterval[N]{sturmname}{index}</span></tt></a></h2> +<span id="polrefineinterval-n"></span><h2><a class="toc-backref" href="#id72"><tt class="docutils literal"><span class="pre">\PolRefineInterval[N]{sturmname}{index}</span></tt></a></h2> <blockquote> The <tt class="docutils literal">index</tt>-th interval (starting count at one) is further subdivided once, reducing its length by a factor of 10. This is done <tt class="docutils literal">N</tt> times if the optional argument <tt class="docutils literal">[N]</tt> is present.</blockquote> </div> <div class="section" id="polensureintervallength-sturmname-index-e"> -<span id="polensureintervallength"></span><h2><a class="toc-backref" href="#id71"><tt class="docutils literal"><span class="pre">\PolEnsureIntervalLength{sturmname}{index}{E}</span></tt></a></h2> +<span id="polensureintervallength"></span><h2><a class="toc-backref" href="#id73"><tt class="docutils literal"><span class="pre">\PolEnsureIntervalLength{sturmname}{index}{E}</span></tt></a></h2> <blockquote> The <tt class="docutils literal">index</tt>-th interval is subdivided until its length becomes at most <tt class="docutils literal">10^E</tt>. This means (for <tt class="docutils literal">E<0</tt>) that the first <tt class="docutils literal"><span class="pre">-E</span></tt> digits after decimal mark of the <tt class="docutils literal">k</tt>th root will then be known exactly.</blockquote> </div> <div class="section" id="polensureintervallengths-sturmname-e"> -<span id="polensureintervallengths"></span><h2><a class="toc-backref" href="#id72"><tt class="docutils literal"><span class="pre">\PolEnsureIntervalLengths{sturmname}{E}</span></tt></a></h2> +<span id="polensureintervallengths"></span><h2><a class="toc-backref" href="#id74"><tt class="docutils literal"><span class="pre">\PolEnsureIntervalLengths{sturmname}{E}</span></tt></a></h2> <blockquote> <p>The intervals as obtained from <tt class="docutils literal">\PolSturmIsolateZeros</tt> are (if necessary) subdivided further by (base 10) dichotomy in order for @@ -1239,7 +1239,7 @@ than <tt class="docutils literal">10^E</tt> in output only if it did not change </blockquote> </div> <div class="section" id="polprintintervals-varname-sturmname"> -<span id="polprintintervals"></span><h2><a class="toc-backref" href="#id73"><tt class="docutils literal"><span class="pre">\PolPrintIntervals[varname]{sturmname}</span></tt></a></h2> +<span id="polprintintervals"></span><h2><a class="toc-backref" href="#id75"><tt class="docutils literal"><span class="pre">\PolPrintIntervals[varname]{sturmname}</span></tt></a></h2> <blockquote> <p>This is a convenience macro which prints the bounds for the roots <tt class="docutils literal">Z_1</tt>, <tt class="docutils literal">Z_2</tt>, ... (the optional argument <tt class="docutils literal">varname</tt> allows to @@ -1261,7 +1261,7 @@ following conditionals: <a class="reference internal" href="#polifendpointisposi <a class="reference internal" href="#polifendpointisnegative-a-b">\PolIfEndPointIsNegative{A}{B}</a>, <a class="reference internal" href="#polifendpointiszero-a-b">\PolIfEndPointIsZero{A}{B}</a>.</p> </blockquote> <div class="section" id="id11"> -<span id="polprintintervalsprintexactzero"></span><h3><a class="toc-backref" href="#id74"><tt class="docutils literal">\PolPrintIntervalsPrintExactZero</tt></a></h3> +<span id="polprintintervalsprintexactzero"></span><h3><a class="toc-backref" href="#id76"><tt class="docutils literal">\PolPrintIntervalsPrintExactZero</tt></a></h3> <blockquote> <p>This is provided to help customize how an exactly known root is printed in the right most column of the array. The package @@ -1276,7 +1276,7 @@ exactly, the macro could make a test for the value of </blockquote> </div> <div class="section" id="id12"> -<span id="polprintintervalsprintleftendpoint"></span><h3><a class="toc-backref" href="#id75"><tt class="docutils literal">\PolPrintIntervalsPrintLeftEndPoint</tt></a></h3> +<span id="polprintintervalsprintleftendpoint"></span><h3><a class="toc-backref" href="#id77"><tt class="docutils literal">\PolPrintIntervalsPrintLeftEndPoint</tt></a></h3> <blockquote> <p>Package definition is:</p> <pre class="literal-block"> @@ -1285,7 +1285,7 @@ exactly, the macro could make a test for the value of </blockquote> </div> <div class="section" id="id13"> -<span id="polprintintervalsprintrightendpoint"></span><h3><a class="toc-backref" href="#id76"><tt class="docutils literal">\PolPrintIntervalsPrintRightEndPoint</tt></a></h3> +<span id="polprintintervalsprintrightendpoint"></span><h3><a class="toc-backref" href="#id78"><tt class="docutils literal">\PolPrintIntervalsPrintRightEndPoint</tt></a></h3> <blockquote> <p>Package definition is:</p> <pre class="literal-block"> @@ -1295,7 +1295,7 @@ exactly, the macro could make a test for the value of </div> </div> <div class="section" id="polmapcoeffs-macro-polname"> -<span id="polmapcoeffs"></span><h2><a class="toc-backref" href="#id77"><tt class="docutils literal"><span class="pre">\PolMapCoeffs{\macro}{polname}</span></tt></a></h2> +<span id="polmapcoeffs"></span><h2><a class="toc-backref" href="#id79"><tt class="docutils literal"><span class="pre">\PolMapCoeffs{\macro}{polname}</span></tt></a></h2> <blockquote> <p>It modifies ('in-place': original coefficients get lost) each coefficient of the defined polynomial via the <em>expandable</em> macro @@ -1315,7 +1315,7 @@ will have to be expressed in terms of macros from <a class="reference external" </blockquote> </div> <div class="section" id="polreducecoeffs-polname"> -<span id="polreducecoeffs"></span><h2><a class="toc-backref" href="#id78"><tt class="docutils literal">\PolReduceCoeffs{polname}</tt></a></h2> +<span id="polreducecoeffs"></span><h2><a class="toc-backref" href="#id80"><tt class="docutils literal">\PolReduceCoeffs{polname}</tt></a></h2> <blockquote> About the same as <tt class="docutils literal"><span class="pre">\PolMapCoeffs{\xintIrr}{polname}</span></tt> (but maintaining a <tt class="docutils literal">[0]</tt> postfix for speedier <a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> parsing when @@ -1323,7 +1323,7 @@ polynomial function is used for computations.) This is a one-argument macro, working 'in-place'.</blockquote> </div> <div class="section" id="id15"> -<span id="id14"></span><h2><a class="toc-backref" href="#id79"><tt class="docutils literal"><span class="pre">\PolReduceCoeffs*{polname}</span></tt></a></h2> +<span id="id14"></span><h2><a class="toc-backref" href="#id81"><tt class="docutils literal"><span class="pre">\PolReduceCoeffs*{polname}</span></tt></a></h2> <blockquote> <p>This starred variant leaves un-touched the decimal exponent in the internal representation of the fractional coefficients, i.e. if a @@ -1342,7 +1342,7 @@ expansion speed of the <a class="reference external" href="http://www.ctan.org/p </blockquote> </div> <div class="section" id="polmakemonic-polname"> -<span id="polmakemonic"></span><h2><a class="toc-backref" href="#id80"><tt class="docutils literal">\PolMakeMonic{polname}</tt></a></h2> +<span id="polmakemonic"></span><h2><a class="toc-backref" href="#id82"><tt class="docutils literal">\PolMakeMonic{polname}</tt></a></h2> <blockquote> Divides by the leading coefficient. It is recommended to execute <a class="reference internal" href="#id15">\PolReduceCoeffs*{polname}</a> immediately afterwards. This is not @@ -1352,18 +1352,18 @@ denominator.</blockquote> </div> </div> <div class="section" id="expandable-macros"> -<h1><a class="toc-backref" href="#id81">Expandable macros</a></h1> +<h1><a class="toc-backref" href="#id83">Expandable macros</a></h1> <p>All these macros expand completely in two steps except <tt class="docutils literal">\PolToExpr</tt> and <tt class="docutils literal">\PolToFloatExpr</tt> (and their auxiliaries) which need a <tt class="docutils literal">\write</tt>, <tt class="docutils literal">\edef</tt> or a <tt class="docutils literal"><span class="pre">\csname...\endcsname</span></tt> context.</p> <div class="section" id="poleval-polname-atexpr-numerical-expression"> -<span id="polevalatexpr"></span><h2><a class="toc-backref" href="#id82"><tt class="docutils literal"><span class="pre">\PolEval{polname}\AtExpr{numerical</span> expression}</tt></a></h2> +<span id="polevalatexpr"></span><h2><a class="toc-backref" href="#id84"><tt class="docutils literal"><span class="pre">\PolEval{polname}\AtExpr{numerical</span> expression}</tt></a></h2> <blockquote> It boils down to <tt class="docutils literal">\xinttheexpr polname(numerical <span class="pre">expression)\relax</span></tt>.</blockquote> </div> <div class="section" id="poleval-polname-at-fraction"> -<span id="polevalat"></span><h2><a class="toc-backref" href="#id83"><tt class="docutils literal"><span class="pre">\PolEval{polname}\At{fraction}</span></tt></a></h2> +<span id="polevalat"></span><h2><a class="toc-backref" href="#id85"><tt class="docutils literal"><span class="pre">\PolEval{polname}\At{fraction}</span></tt></a></h2> <blockquote> <p>Evaluates the polynomial at value <tt class="docutils literal">fraction</tt> which must be in (or expand to) a format acceptable to the <a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> macros.</p> @@ -1379,12 +1379,12 @@ e.g. the variables as defined by <a class="reference external" href="PolSturmIso </blockquote> </div> <div class="section" id="polevalreduced-polname-atexpr-numerical-expression"> -<span id="polevalreducedatexpr"></span><h2><a class="toc-backref" href="#id84"><tt class="docutils literal"><span class="pre">\PolEvalReduced{polname}\AtExpr{numerical</span> expression}</tt></a></h2> +<span id="polevalreducedatexpr"></span><h2><a class="toc-backref" href="#id86"><tt class="docutils literal"><span class="pre">\PolEvalReduced{polname}\AtExpr{numerical</span> expression}</tt></a></h2> <blockquote> Boils down to <tt class="docutils literal">\xinttheexpr reduce(polname(numerical <span class="pre">expression))\relax</span></tt>.</blockquote> </div> <div class="section" id="polevalreduced-polname-at-fraction"> -<span id="polevalreducedat"></span><h2><a class="toc-backref" href="#id85"><tt class="docutils literal"><span class="pre">\PolEvalReduced{polname}\At{fraction}</span></tt></a></h2> +<span id="polevalreducedat"></span><h2><a class="toc-backref" href="#id87"><tt class="docutils literal"><span class="pre">\PolEvalReduced{polname}\At{fraction}</span></tt></a></h2> <blockquote> <p>Evaluates the polynomial at value <tt class="docutils literal">fraction</tt> which must be in (or expand to) a format acceptable to the <a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> macros, and produce @@ -1397,7 +1397,7 @@ could be given as an expression.</p> </blockquote> </div> <div class="section" id="polfloateval-polname-atexpr-numerical-expression"> -<span id="polfloatevalatexpr"></span><h2><a class="toc-backref" href="#id86"><tt class="docutils literal"><span class="pre">\PolFloatEval{polname}\AtExpr{numerical</span> expression}</tt></a></h2> +<span id="polfloatevalatexpr"></span><h2><a class="toc-backref" href="#id88"><tt class="docutils literal"><span class="pre">\PolFloatEval{polname}\AtExpr{numerical</span> expression}</tt></a></h2> <blockquote> <p>Boils down to <tt class="docutils literal">\xintthefloatexpr polname(numerical <span class="pre">expression)\relax</span></tt>.</p> <p>This is done via a Horner Scheme (see <a class="reference internal" href="#poldef">\poldef</a> and @@ -1435,7 +1435,7 @@ nested expressions.</td></tr> </blockquote> </div> <div class="section" id="polfloateval-polname-at-fraction"> -<span id="polfloatevalat"></span><h2><a class="toc-backref" href="#id87"><tt class="docutils literal"><span class="pre">\PolFloatEval{polname}\At{fraction}</span></tt></a></h2> +<span id="polfloatevalat"></span><h2><a class="toc-backref" href="#id89"><tt class="docutils literal"><span class="pre">\PolFloatEval{polname}\At{fraction}</span></tt></a></h2> <blockquote> <p>Evaluates the polynomial at value <tt class="docutils literal">fraction</tt> which must be in (or expand to) a format acceptable to the <a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> macros, and produces @@ -1448,7 +1448,7 @@ could be given as an expression.</p> </blockquote> </div> <div class="section" id="polifcoeffisplusorminusone-a-b"> -<span id="polifcoeffisplusorminusone"></span><h2><a class="toc-backref" href="#id88"><tt class="docutils literal"><span class="pre">\PolIfCoeffIsPlusOrMinusOne{A}{B}</span></tt></a></h2> +<span id="polifcoeffisplusorminusone"></span><h2><a class="toc-backref" href="#id90"><tt class="docutils literal"><span class="pre">\PolIfCoeffIsPlusOrMinusOne{A}{B}</span></tt></a></h2> <blockquote> <p>This macro is a priori undefined.</p> <p>It is defined via the default <a class="reference internal" href="#poltypesetcmd-raw-coeff">\PolTypesetCmd{raw_coeff}</a> to be @@ -1460,25 +1460,25 @@ plus or minus one, and <tt class="docutils literal">B</tt> if not.</p> </blockquote> </div> <div class="section" id="polleadingcoeff-polname"> -<span id="polleadingcoeff"></span><h2><a class="toc-backref" href="#id89"><tt class="docutils literal">\PolLeadingCoeff{polname}</tt></a></h2> +<span id="polleadingcoeff"></span><h2><a class="toc-backref" href="#id91"><tt class="docutils literal">\PolLeadingCoeff{polname}</tt></a></h2> <blockquote> Expands to the leading coefficient.</blockquote> </div> <div class="section" id="polnthcoeff-polname-number"> -<span id="polnthcoeff"></span><h2><a class="toc-backref" href="#id90"><tt class="docutils literal"><span class="pre">\PolNthCoeff{polname}{number}</span></tt></a></h2> +<span id="polnthcoeff"></span><h2><a class="toc-backref" href="#id92"><tt class="docutils literal"><span class="pre">\PolNthCoeff{polname}{number}</span></tt></a></h2> <blockquote> It expands to the raw <tt class="docutils literal">N</tt>-th coefficient (<tt class="docutils literal">0/1[0]</tt> if the index number is out of range). With <tt class="docutils literal"><span class="pre">N=-1</span></tt>, <tt class="docutils literal"><span class="pre">-2</span></tt>, ... expands to the leading coefficients.</blockquote> </div> <div class="section" id="poldegree-polname"> -<span id="poldegree"></span><h2><a class="toc-backref" href="#id91"><tt class="docutils literal">\PolDegree{polname}</tt></a></h2> +<span id="poldegree"></span><h2><a class="toc-backref" href="#id93"><tt class="docutils literal">\PolDegree{polname}</tt></a></h2> <blockquote> It expands to the degree. This is <tt class="docutils literal"><span class="pre">-1</span></tt> if zero polynomial but this may change in future. Should it then expand to <tt class="docutils literal"><span class="pre">-\infty</span></tt> ?</blockquote> </div> <div class="section" id="poltoexpr-polname"> -<span id="poltoexpr"></span><h2><a class="toc-backref" href="#id92"><tt class="docutils literal">\PolToExpr{polname}</tt></a></h2> +<span id="poltoexpr"></span><h2><a class="toc-backref" href="#id94"><tt class="docutils literal">\PolToExpr{polname}</tt></a></h2> <blockquote> <p>Expands <a class="footnote-reference" href="#id22" id="id21">[4]</a> to <tt class="docutils literal"><span class="pre">coeff_N*x^N+...</span></tt> (descending powers.)</p> <table class="docutils footnote" frame="void" id="id22" rules="none"> @@ -1503,7 +1503,7 @@ of <tt class="docutils literal">\PolToExpr{f}</tt>, but a simple <tt class="docu the identical result.</p> </blockquote> <div class="section" id="poltoexproneterm-raw-coeff-number"> -<span id="poltoexproneterm"></span><h3><a class="toc-backref" href="#id93"><tt class="docutils literal"><span class="pre">\PolToExprOneTerm{raw_coeff}{number}</span></tt></a></h3> +<span id="poltoexproneterm"></span><h3><a class="toc-backref" href="#id95"><tt class="docutils literal"><span class="pre">\PolToExprOneTerm{raw_coeff}{number}</span></tt></a></h3> <blockquote> <p>This two argument expandable command takes care of the monomial and its coefficient. The default definition is done in order for @@ -1516,13 +1516,13 @@ or a minus one. See <a class="reference internal" href="#poltoexprtimes">\PolToE </blockquote> </div> <div class="section" id="poltoexpronetermstylea-raw-coeff-number"> -<span id="poltoexpronetermstylea"></span><h3><a class="toc-backref" href="#id94"><tt class="docutils literal"><span class="pre">\PolToExprOneTermStyleA{raw_coeff}{number}</span></tt></a></h3> +<span id="poltoexpronetermstylea"></span><h3><a class="toc-backref" href="#id96"><tt class="docutils literal"><span class="pre">\PolToExprOneTermStyleA{raw_coeff}{number}</span></tt></a></h3> <blockquote> Holds the default package meaning of <a class="reference internal" href="#poltoexproneterm-raw-coeff-number">\PolToExprOneTerm{raw_coeff}{number}</a>.</blockquote> </div> <div class="section" id="poltoexpronetermstyleb-raw-coeff-number"> -<span id="poltoexpronetermstyleb"></span><h3><a class="toc-backref" href="#id95"><tt class="docutils literal"><span class="pre">\PolToExprOneTermStyleB{raw_coeff}{number}</span></tt></a></h3> +<span id="poltoexpronetermstyleb"></span><h3><a class="toc-backref" href="#id97"><tt class="docutils literal"><span class="pre">\PolToExprOneTermStyleB{raw_coeff}{number}</span></tt></a></h3> <blockquote> <p>For output in this style:</p> <pre class="literal-block"> @@ -1536,7 +1536,7 @@ To revert to package default, issue </blockquote> </div> <div class="section" id="poltoexprcmd-raw-coeff"> -<span id="poltoexprcmd"></span><h3><a class="toc-backref" href="#id96"><tt class="docutils literal">\PolToExprCmd{raw_coeff}</tt></a></h3> +<span id="poltoexprcmd"></span><h3><a class="toc-backref" href="#id98"><tt class="docutils literal">\PolToExprCmd{raw_coeff}</tt></a></h3> <blockquote> It is the one-argument macro used by the package definition of <tt class="docutils literal">\PolToExprOneTerm</tt> for the coefficients themselves (when not @@ -1546,21 +1546,21 @@ to <tt class="docutils literal"><span class="pre">\xintIrr{#1}</span></tt> or to output forcefully reduced coefficients.</blockquote> </div> <div class="section" id="poltoexprtermprefix-raw-coeff"> -<span id="poltoexprtermprefix"></span><h3><a class="toc-backref" href="#id97"><tt class="docutils literal">\PolToExprTermPrefix{raw_coeff}</tt></a></h3> +<span id="poltoexprtermprefix"></span><h3><a class="toc-backref" href="#id99"><tt class="docutils literal">\PolToExprTermPrefix{raw_coeff}</tt></a></h3> <blockquote> Defined identically as <a class="reference internal" href="#poltypesetcmdprefix-raw-coeff">\PolTypesetCmdPrefix{raw_coeff}</a>. It prefixes with a plus sign for non-negative coefficients, because they don't carry one by themselves.</blockquote> </div> <div class="section" id="id23"> -<span id="poltoexprvar"></span><h3><a class="toc-backref" href="#id98"><tt class="docutils literal">\PolToExprVar</tt></a></h3> +<span id="poltoexprvar"></span><h3><a class="toc-backref" href="#id100"><tt class="docutils literal">\PolToExprVar</tt></a></h3> <blockquote> This expands to the variable to use in output (it does not have to be a single letter, may be an expandable macro.) Initial definition is <tt class="docutils literal">x</tt>.</blockquote> </div> <div class="section" id="id24"> -<span id="poltoexprtimes"></span><h3><a class="toc-backref" href="#id99"><tt class="docutils literal">\PolToExprTimes</tt></a></h3> +<span id="poltoexprtimes"></span><h3><a class="toc-backref" href="#id101"><tt class="docutils literal">\PolToExprTimes</tt></a></h3> <blockquote> This expands to the symbol used for multiplication of an <tt class="docutils literal"><span class="pre">x^{number}</span></tt> by the corresponding coefficient. The default is @@ -1570,13 +1570,13 @@ algebra software).</blockquote> </div> </div> <div class="section" id="id26"> -<span id="id25"></span><h2><a class="toc-backref" href="#id100"><tt class="docutils literal"><span class="pre">\PolToExpr*{polname}</span></tt></a></h2> +<span id="id25"></span><h2><a class="toc-backref" href="#id102"><tt class="docutils literal"><span class="pre">\PolToExpr*{polname}</span></tt></a></h2> <blockquote> Expands to <tt class="docutils literal"><span class="pre">coeff_0+coeff_1*x+coeff_2*x^2+...</span></tt> (ascending powers). Customizable like <a class="reference internal" href="#poltoexpr-polname">\PolToExpr{polname}</a> via the same macros.</blockquote> </div> <div class="section" id="poltofloatexpr-polname"> -<span id="poltofloatexpr"></span><h2><a class="toc-backref" href="#id101"><tt class="docutils literal">\PolToFloatExpr{polname}</tt></a></h2> +<span id="poltofloatexpr"></span><h2><a class="toc-backref" href="#id103"><tt class="docutils literal">\PolToFloatExpr{polname}</tt></a></h2> <blockquote> <p>Similar to <a class="reference internal" href="#poltoexpr-polname">\PolToExpr{polname}</a> but uses <a class="reference external" href="\PolToFloatExprCmd{raw_coeff}">\PolToFloatExprCmd</a> which by default rounds and converts the coefficients to floating @@ -1595,13 +1595,13 @@ those output by <tt class="docutils literal">\PolToFloatExpr{polname}</tt>.</p> </div> </blockquote> <div class="section" id="poltofloatexproneterm-raw-coeff-number"> -<span id="poltofloatexproneterm"></span><h3><a class="toc-backref" href="#id102"><tt class="docutils literal"><span class="pre">\PolToFloatExprOneTerm{raw_coeff}{number}</span></tt></a></h3> +<span id="poltofloatexproneterm"></span><h3><a class="toc-backref" href="#id104"><tt class="docutils literal"><span class="pre">\PolToFloatExprOneTerm{raw_coeff}{number}</span></tt></a></h3> <blockquote> Similar to <a class="reference external" href="\PolToExprOneTerm{raw_coeff}{number}">\PolToExprOneTerm</a>. But does not treat especially coefficients equal to plus or minus one.</blockquote> </div> <div class="section" id="poltofloatexprcmd-raw-coeff"> -<span id="id28"></span><h3><a class="toc-backref" href="#id103"><tt class="docutils literal">\PolToFloatExprCmd{raw_coeff}</tt></a></h3> +<span id="id28"></span><h3><a class="toc-backref" href="#id105"><tt class="docutils literal">\PolToFloatExprCmd{raw_coeff}</tt></a></h3> <blockquote> <p>It is the one-argument macro used by <tt class="docutils literal">\PolToFloatExprOneTerm</tt>. Its package definition is <tt class="docutils literal"><span class="pre">\xintFloat{#1}</span></tt>.</p> @@ -1624,25 +1624,25 @@ in <tt class="docutils literal">xintfrac</tt> raw format.</p> </div> </div> <div class="section" id="id30"> -<span id="id29"></span><h2><a class="toc-backref" href="#id104"><tt class="docutils literal"><span class="pre">\PolToFloatExpr*{polname}</span></tt></a></h2> +<span id="id29"></span><h2><a class="toc-backref" href="#id106"><tt class="docutils literal"><span class="pre">\PolToFloatExpr*{polname}</span></tt></a></h2> <blockquote> Typesets in ascending powers.</blockquote> </div> <div class="section" id="poltolist-polname"> -<span id="poltolist"></span><h2><a class="toc-backref" href="#id105"><tt class="docutils literal">\PolToList{polname}</tt></a></h2> +<span id="poltolist"></span><h2><a class="toc-backref" href="#id107"><tt class="docutils literal">\PolToList{polname}</tt></a></h2> <blockquote> Expands to <tt class="docutils literal"><span class="pre">{coeff_0}{coeff_1}...{coeff_N}</span></tt> with <tt class="docutils literal">N</tt> = degree (except zero polynomial which does give <tt class="docutils literal">{0/1[0]}</tt> and not an empty output.)</blockquote> </div> <div class="section" id="poltocsv-polname"> -<span id="poltocsv"></span><h2><a class="toc-backref" href="#id106"><tt class="docutils literal">\PolToCSV{polname}</tt></a></h2> +<span id="poltocsv"></span><h2><a class="toc-backref" href="#id108"><tt class="docutils literal">\PolToCSV{polname}</tt></a></h2> <blockquote> Expands to <tt class="docutils literal">coeff_0, coeff_1, coeff_2, <span class="pre">.....,</span> coeff_N</tt>. Converse to <a class="reference internal" href="#polfromcsv-polname-csv">\PolFromCSV</a>.</blockquote> </div> <div class="section" id="polsturmchainlength-sturmname"> -<span id="polsturmchainlength"></span><h2><a class="toc-backref" href="#id107"><tt class="docutils literal">\PolSturmChainLength{sturmname}</tt></a></h2> +<span id="polsturmchainlength"></span><h2><a class="toc-backref" href="#id109"><tt class="docutils literal">\PolSturmChainLength{sturmname}</tt></a></h2> <blockquote> <p>Returns the integer <tt class="docutils literal">N</tt> such that <tt class="docutils literal">sturmname_N</tt> is the last one in the Sturm chain <tt class="docutils literal">sturmname_0</tt>, <tt class="docutils literal">sturmname_1</tt>, ...</p> @@ -1650,7 +1650,7 @@ in the Sturm chain <tt class="docutils literal">sturmname_0</tt>, <tt class="doc </blockquote> </div> <div class="section" id="polsturmifzeroexactlyknown-sturmname-index-a-b"> -<span id="polsturmifzeroexactlyknown"></span><h2><a class="toc-backref" href="#id108"><tt class="docutils literal"><span class="pre">\PolSturmIfZeroExactlyKnown{sturmname}{index}{A}{B}</span></tt></a></h2> +<span id="polsturmifzeroexactlyknown"></span><h2><a class="toc-backref" href="#id110"><tt class="docutils literal"><span class="pre">\PolSturmIfZeroExactlyKnown{sturmname}{index}{A}{B}</span></tt></a></h2> <blockquote> <p>Executes <tt class="docutils literal">A</tt> if the <tt class="docutils literal">index</tt>th interval reduces to a singleton, i.e. the root is known exactly, else <tt class="docutils literal">B</tt>.</p> @@ -1667,21 +1667,21 @@ error message (right before everything goes haywire).</p> </blockquote> </div> <div class="section" id="polsturmisolatedzeroleft-sturmname-index"> -<span id="polsturmisolatedzeroleft"></span><h2><a class="toc-backref" href="#id109"><tt class="docutils literal"><span class="pre">\PolSturmIsolatedZeroLeft{sturmname}{index}</span></tt></a></h2> +<span id="polsturmisolatedzeroleft"></span><h2><a class="toc-backref" href="#id111"><tt class="docutils literal"><span class="pre">\PolSturmIsolatedZeroLeft{sturmname}{index}</span></tt></a></h2> <blockquote> Expands to the left end-point for the <tt class="docutils literal">index</tt>th interval obtained via <a class="reference internal" href="#polsturmisolatezeros-sturmname">\PolSturmIsolateZeros{sturmname}</a> and possibly refined afterwards.</blockquote> </div> <div class="section" id="polsturmisolatedzeroright-sturmname-index"> -<span id="polsturmisolatedzeroright"></span><h2><a class="toc-backref" href="#id110"><tt class="docutils literal"><span class="pre">\PolSturmIsolatedZeroRight{sturmname}{index}</span></tt></a></h2> +<span id="polsturmisolatedzeroright"></span><h2><a class="toc-backref" href="#id112"><tt class="docutils literal"><span class="pre">\PolSturmIsolatedZeroRight{sturmname}{index}</span></tt></a></h2> <blockquote> Expands to the right end-point for the <tt class="docutils literal">index</tt>th interval obtained via <a class="reference internal" href="#polsturmisolatezeros-sturmname">\PolSturmIsolateZeros{sturmname}</a> and possibly refined afterwards.</blockquote> </div> <div class="section" id="polsturmnbofisolatedzeros-sturmname"> -<span id="polsturmnbofisolatedzeros"></span><h2><a class="toc-backref" href="#id111"><tt class="docutils literal">\PolSturmNbOfIsolatedZeros{sturmname}</tt></a></h2> +<span id="polsturmnbofisolatedzeros"></span><h2><a class="toc-backref" href="#id113"><tt class="docutils literal">\PolSturmNbOfIsolatedZeros{sturmname}</tt></a></h2> <blockquote> Expands to the number of real roots of the polynomial <tt class="docutils literal"><sturmname>_0</tt> (which is the number of distinct real roots of the @@ -1689,17 +1689,17 @@ polynomial used to create the Sturm chain via <a class="reference internal" href="#poltosturm-polname-sturmname">\PolToSturm{polname}{sturmname}</a>.</blockquote> </div> <div class="section" id="polintervalwidth-sturmname-index"> -<span id="polintervalwidth"></span><h2><a class="toc-backref" href="#id112"><tt class="docutils literal"><span class="pre">\PolIntervalWidth{sturmname}{index}</span></tt></a></h2> +<span id="polintervalwidth"></span><h2><a class="toc-backref" href="#id114"><tt class="docutils literal"><span class="pre">\PolIntervalWidth{sturmname}{index}</span></tt></a></h2> <blockquote> The <tt class="docutils literal">10^E</tt> width of the current <tt class="docutils literal">index</tt>th root localization interval. Output is in <a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> raw <tt class="docutils literal">1/1[E]</tt> format (if not zero).</blockquote> </div> <div class="section" id="macros-for-use-within-execution-of-polprintintervals"> -<h2><a class="toc-backref" href="#id113">Macros for use within execution of <tt class="docutils literal">\PolPrintIntervals</tt></a></h2> +<h2><a class="toc-backref" href="#id115">Macros for use within execution of <tt class="docutils literal">\PolPrintIntervals</tt></a></h2> <p>More precisely, they can be used within the replacement texts of the <a class="reference internal" href="#polprintintervalsprintleftendpoint">\PolPrintIntervalsPrintLeftEndPoint</a>, etc, macros.</p> <div class="section" id="id31"> -<span id="polprintintervalstheendpoint"></span><h3><a class="toc-backref" href="#id114"><tt class="docutils literal">\PolPrintIntervalsTheEndPoint</tt></a></h3> +<span id="polprintintervalstheendpoint"></span><h3><a class="toc-backref" href="#id116"><tt class="docutils literal">\PolPrintIntervalsTheEndPoint</tt></a></h3> <blockquote> Within a custom <a class="reference internal" href="#polprintintervalsprintleftendpoint">\PolPrintIntervalsPrintLeftEndPoint</a>, custom <a class="reference internal" href="#polprintintervalsprintrightendpoint">\PolPrintIntervalsPrintRightEndPoint</a>, or custom @@ -1708,7 +1708,7 @@ or right end point of the considered interval. Serves as default replacement for <a class="reference internal" href="#polprintintervalsprintleftendpoint">\PolPrintIntervalsPrintLeftEndPoint</a> , etc...</blockquote> </div> <div class="section" id="id32"> -<span id="polprintintervalstheindex"></span><h3><a class="toc-backref" href="#id115"><tt class="docutils literal">\PolPrintIntervalsTheIndex</tt></a></h3> +<span id="polprintintervalstheindex"></span><h3><a class="toc-backref" href="#id117"><tt class="docutils literal">\PolPrintIntervalsTheIndex</tt></a></h3> <blockquote> Within a custom <a class="reference internal" href="#polprintintervalsprintleftendpoint">\PolPrintIntervalsPrintLeftEndPoint</a>, custom <a class="reference internal" href="#polprintintervalsprintrightendpoint">\PolPrintIntervalsPrintRightEndPoint</a>, or custom @@ -1719,7 +1719,7 @@ in the replacement text of <a class="reference internal" href="#polprintinterval the other two similar macros.</blockquote> </div> <div class="section" id="polifendpointispositive-a-b"> -<span id="polifendpointispositive"></span><h3><a class="toc-backref" href="#id116"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsPositive{A}{B}</span></tt></a></h3> +<span id="polifendpointispositive"></span><h3><a class="toc-backref" href="#id118"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsPositive{A}{B}</span></tt></a></h3> <blockquote> Within a custom <a class="reference internal" href="#polprintintervalsprintleftendpoint">\PolPrintIntervalsPrintLeftEndPoint</a>, custom <a class="reference internal" href="#polprintintervalsprintrightendpoint">\PolPrintIntervalsPrintRightEndPoint</a>, or custom @@ -1727,7 +1727,7 @@ Within a custom <a class="reference internal" href="#polprintintervalsprintlefte the considered interval end-point is positive, else <tt class="docutils literal">B</tt>.</blockquote> </div> <div class="section" id="polifendpointisnegative-a-b"> -<span id="polifendpointisnegative"></span><h3><a class="toc-backref" href="#id117"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsNegative{A}{B}</span></tt></a></h3> +<span id="polifendpointisnegative"></span><h3><a class="toc-backref" href="#id119"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsNegative{A}{B}</span></tt></a></h3> <blockquote> Within a custom <a class="reference internal" href="#polprintintervalsprintleftendpoint">\PolPrintIntervalsPrintLeftEndPoint</a>, custom <a class="reference internal" href="#polprintintervalsprintrightendpoint">\PolPrintIntervalsPrintRightEndPoint</a>, or custom @@ -1735,7 +1735,7 @@ Within a custom <a class="reference internal" href="#polprintintervalsprintlefte the considered interval end-point is negative, else <tt class="docutils literal">B</tt>.</blockquote> </div> <div class="section" id="polifendpointiszero-a-b"> -<span id="polifendpointiszero"></span><h3><a class="toc-backref" href="#id118"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsZero{A}{B}</span></tt></a></h3> +<span id="polifendpointiszero"></span><h3><a class="toc-backref" href="#id120"><tt class="docutils literal"><span class="pre">\PolIfEndPointIsZero{A}{B}</span></tt></a></h3> <blockquote> Within a custom <a class="reference internal" href="#polprintintervalsprintleftendpoint">\PolPrintIntervalsPrintLeftEndPoint</a>, custom <a class="reference internal" href="#polprintintervalsprintrightendpoint">\PolPrintIntervalsPrintRightEndPoint</a>, or custom @@ -1744,7 +1744,7 @@ the considered interval end-point is zero, else <tt class="docutils literal">B</ </div> </div> <div class="section" id="poldectostring-decimal-number"> -<span id="poldectostring"></span><h2><a class="toc-backref" href="#id119"><tt class="docutils literal">\PolDecToString{decimal number}</tt></a></h2> +<span id="poldectostring"></span><h2><a class="toc-backref" href="#id121"><tt class="docutils literal">\PolDecToString{decimal number}</tt></a></h2> <blockquote> <p>This is a utility macro to print decimal numbers. It has been backported to <a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> (release <tt class="docutils literal">1.3</tt> of <tt class="docutils literal">2018/03/01</tt>) under @@ -1761,9 +1761,9 @@ zeroes, one can use <tt class="docutils literal"><span class="pre">\PolDecToStri </div> </div> <div class="section" id="booleans-with-default-setting-as-indicated"> -<h1><a class="toc-backref" href="#id120">Booleans (with default setting as indicated)</a></h1> +<h1><a class="toc-backref" href="#id122">Booleans (with default setting as indicated)</a></h1> <div class="section" id="xintverbosefalse"> -<h2><a class="toc-backref" href="#id121"><tt class="docutils literal">\xintverbosefalse</tt></a></h2> +<h2><a class="toc-backref" href="#id123"><tt class="docutils literal">\xintverbosefalse</tt></a></h2> <blockquote> <p>This is actually an <a class="reference external" href="http://www.ctan.org/pkg/xint">xintexpr</a> configuration. Setting it to <tt class="docutils literal">true</tt> triggers the writing of information to the log when new @@ -1776,20 +1776,20 @@ unstable and undocumented internal structures.</p> </blockquote> </div> <div class="section" id="poltypesetallfalse"> -<h2><a class="toc-backref" href="#id122"><tt class="docutils literal">\poltypesetallfalse</tt></a></h2> +<h2><a class="toc-backref" href="#id124"><tt class="docutils literal">\poltypesetallfalse</tt></a></h2> <blockquote> If <tt class="docutils literal">true</tt>, <a class="reference internal" href="#poltypeset-polname">\PolTypeset{polname}</a> will also typeset the vanishing coefficients.</blockquote> </div> <div class="section" id="poltoexprallfalse"> -<h2><a class="toc-backref" href="#id123"><tt class="docutils literal">\poltoexprallfalse</tt></a></h2> +<h2><a class="toc-backref" href="#id125"><tt class="docutils literal">\poltoexprallfalse</tt></a></h2> <blockquote> If <tt class="docutils literal">true</tt>, <a class="reference internal" href="#poltoexpr-polname">\PolToExpr{polname}</a> and <a class="reference internal" href="#poltofloatexpr-polname">\PolToFloatExpr{polname}</a> will also include the vanishing coefficients in their outputs.</blockquote> </div> </div> <div class="section" id="technicalities"> -<h1><a class="toc-backref" href="#id124">Technicalities</a></h1> +<h1><a class="toc-backref" href="#id126">Technicalities</a></h1> <ul> <li><p class="first">The catcode of the semi-colon is reset temporarily by <a class="reference internal" href="#poldef">\poldef</a> macro in case some other package (for example the French babel module) may have made it active. This will fail though if the @@ -1797,35 +1797,32 @@ whole thing was already part of a macro argument, in such cases one can use <a class="reference internal" href="#id2">\PolDef{f}{P(x)}</a> rather. The colon in <tt class="docutils literal">:=</tt> may be active with no consequences.</p> </li> -<li><p class="first">During execution of polynomial operations by <tt class="docutils literal">\poldef</tt> (but not -during the initial purely numerical parsing of the expression), the -<a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> macro <tt class="docutils literal">\xintAdd</tt> is temporarily patched to always express -<tt class="docutils literal">a/b + c/d</tt> with <tt class="docutils literal">lcm(b,d)</tt> as denominator. Indeed the current -(xint 1.2p) <tt class="docutils literal">\xintAdd</tt> uses <tt class="docutils literal"><span class="pre">(ad+bc)/bd</span></tt> formula except if <tt class="docutils literal">b</tt> -divides <tt class="docutils literal">d</tt> or <tt class="docutils literal">d</tt> divides <tt class="docutils literal">b</tt>, which quickly leads in real life -to big denominators.</p> -<p>It is probable that this convention will be backported as default -behaviour of xintfrac's <tt class="docutils literal">\xintAdd</tt> in a future xint release. When this -change is merged, there will be an impact on coefficients computed by -<tt class="docutils literal">\poldef</tt> because the change will apply even to the pure numerical -evaluations arising during the initial stage of the parsing. Of course -the coefficients are still the same rational numbers, only -representation as fractions may change.</p> -</li> -<li><p class="first">As a consequence of previous rule, user-chosen common denominators -survive addition and multiplications:</p> +<li><p class="first">As a consequence of <a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> addition and subtraction always using +least common multiples for the denominators <a class="footnote-reference" href="#id34" id="id33">[5]</a>, user-chosen common +denominators survive additions and multiplications. For example, this:</p> <pre class="literal-block"> \poldef P(x):= 1/2 + 2/2*x + 3/2*x^3 + 4/2*x^4; \poldef Q(x):= 1/3 + (2/3)x + (3/3)x^3 + (4/3)x^4; \poldef PQ(x):= P(x)Q(x); </pre> -<p>gives the polynomial:</p> +<p>gives internally the polynomial:</p> <pre class="literal-block"> 1/6+4/6*x^1+4/6*x^2+6/6*x^3+20/6*x^4+16/6*x^5+9/6*x^6+24/6*x^7+16/6*x^8 </pre> -<p>where all coefficients have the same denominator 6 (which in this -example is the least common multiple of the denominators of the -reduced coefficients.)</p> +<p>where all coefficients have the same denominator 6. Notice though that +<tt class="docutils literal">\PolToExpr{PQ}</tt> outputs the <tt class="docutils literal">6/6*x^3</tt> as <tt class="docutils literal">x^3</tt> because (by +default) it recognizes and filters out coefficients equal to one or +minus one (since release <tt class="docutils literal">0.3</tt>). One can use for example +<tt class="docutils literal">\PolToCSV{PQ}</tt> to see the internally stored coefficients.</p> +<table class="docutils footnote" frame="void" id="id34" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id33">[5]</a></td><td><p class="first last">prior to <tt class="docutils literal">0.4.1</tt>, <tt class="docutils literal">polexpr</tt> used to temporarily patch +during the parsing of polynomials the <a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> macros. This +patch was backported to <a class="reference external" href="http://www.ctan.org/pkg/xint">xint</a> at release <tt class="docutils literal">1.3</tt>.</p> +</td></tr> +</tbody> +</table> </li> <li><p class="first"><a class="reference internal" href="#poldiff-polname-1-polname-2">\PolDiff{polname_1}{polname_2}</a> always applies <tt class="docutils literal">\xintIrr</tt> to the resulting coefficients, except that the <em>power of ten</em> part <tt class="docutils literal">[N]</tt> @@ -1860,7 +1857,7 @@ documented and unstable. Don't use them.</p> </ul> </div> <div class="section" id="change-log"> -<h1><a class="toc-backref" href="#id125">CHANGE LOG</a></h1> +<h1><a class="toc-backref" href="#id127">CHANGE LOG</a></h1> <ul> <li><p class="first">v0.1 (2018/01/11): initial release. Features:</p> <ul class="simple"> @@ -2034,10 +2031,13 @@ for localization of the real roots of polynomials.</p> <li><p class="first">v0.4.1 (2018/03/01)</p> <p>Synced with xint 1.3.</p> </li> +<li><p class="first">v0.4.2 (2018/03/03)</p> +<p>Documentation fix.</p> +</li> </ul> </div> <div class="section" id="acknowledgments"> -<h1><a class="toc-backref" href="#id126">Acknowledgments</a></h1> +<h1><a class="toc-backref" href="#id128">Acknowledgments</a></h1> <p>Thanks to Jürgen Gilg whose question about <a class="reference external" href="http://www.ctan.org/pkg/xint">xint</a> 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 diff --git a/Master/texmf-dist/doc/latex/polexpr/polexpr.txt b/Master/texmf-dist/doc/latex/polexpr/polexpr.txt index fe99d075a49..16cdff04d1e 100644 --- a/Master/texmf-dist/doc/latex/polexpr/polexpr.txt +++ b/Master/texmf-dist/doc/latex/polexpr/polexpr.txt @@ -4,7 +4,7 @@ Package polexpr documentation =============================== -0.4.1 (2018/03/01) +0.4.2 (2018/03/03) ================== .. contents:: @@ -1521,36 +1521,27 @@ Technicalities can use `\\PolDef{f}{P(x)} <PolDef_>`_ rather. The colon in ``:=`` may be active with no consequences. -- During execution of polynomial operations by ``\poldef`` (but not - during the initial purely numerical parsing of the expression), the - xintfrac_ macro ``\xintAdd`` is temporarily patched to always express - ``a/b + c/d`` with ``lcm(b,d)`` as denominator. Indeed the current - (xint 1.2p) ``\xintAdd`` uses ``(ad+bc)/bd`` formula except if ``b`` - divides ``d`` or ``d`` divides ``b``, which quickly leads in real life - to big denominators. - - It is probable that this convention will be backported as default - behaviour of xintfrac's ``\xintAdd`` in a future xint release. When this - change is merged, there will be an impact on coefficients computed by - ``\poldef`` because the change will apply even to the pure numerical - evaluations arising during the initial stage of the parsing. Of course - the coefficients are still the same rational numbers, only - representation as fractions may change. - -- As a consequence of previous rule, user-chosen common denominators - survive addition and multiplications:: +- As a consequence of xintfrac_ addition and subtraction always using + least common multiples for the denominators [#]_, user-chosen common + denominators survive additions and multiplications. For example, this:: \poldef P(x):= 1/2 + 2/2*x + 3/2*x^3 + 4/2*x^4; \poldef Q(x):= 1/3 + (2/3)x + (3/3)x^3 + (4/3)x^4; \poldef PQ(x):= P(x)Q(x); - gives the polynomial:: + gives internally the polynomial:: 1/6+4/6*x^1+4/6*x^2+6/6*x^3+20/6*x^4+16/6*x^5+9/6*x^6+24/6*x^7+16/6*x^8 - where all coefficients have the same denominator 6 (which in this - example is the least common multiple of the denominators of the - reduced coefficients.) + where all coefficients have the same denominator 6. Notice though that + ``\PolToExpr{PQ}`` outputs the ``6/6*x^3`` as ``x^3`` because (by + default) it recognizes and filters out coefficients equal to one or + minus one (since release ``0.3``). One can use for example + ``\PolToCSV{PQ}`` to see the internally stored coefficients. + + .. [#] prior to ``0.4.1``, ``polexpr`` used to temporarily patch + during the parsing of polynomials the xintfrac_ macros. This + patch was backported to xint_ at release ``1.3``. - `\\PolDiff{polname_1}{polname_2}`_ always applies ``\xintIrr`` to the resulting coefficients, except that the *power of ten* part ``[N]`` @@ -1738,11 +1729,15 @@ CHANGE LOG The main new feature is implementation of the `Sturm algorithm`_ for localization of the real roots of polynomials. - - v0.4.1 (2018/03/01) Synced with xint 1.3. +- v0.4.2 (2018/03/03) + + Documentation fix. + + Acknowledgments --------------- diff --git a/Master/texmf-dist/tex/latex/polexpr/polexpr.sty b/Master/texmf-dist/tex/latex/polexpr/polexpr.sty index fd295dfe687..7e132905392 100644 --- a/Master/texmf-dist/tex/latex/polexpr/polexpr.sty +++ b/Master/texmf-dist/tex/latex/polexpr/polexpr.sty @@ -1,7 +1,7 @@ % author: Jean-François Burnol % License: LPPL 1.3c (author-maintained) \ProvidesPackage{polexpr}% - [2018/03/01 v0.4.1 Polynomial expressions with rational coefficients (JFB)]% + [2018/03/03 v0.4.2 Polynomial expressions with rational coefficients (JFB)]% \RequirePackage{xintexpr}[2018/03/01]% xint 1.3 \edef\POL@restorecatcodes {\catcode`\noexpand\_ \the\catcode`\_ \catcode0 \the\catcode0\relax}% |