summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/polexpr
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-11-01 20:33:05 +0000
committerKarl Berry <karl@freefriends.org>2021-11-01 20:33:05 +0000
commit735fd4b2ac1a25b0db74b8a68c99491a15e6a73f (patch)
treefb9e276a04a83d093d58e35072d3a40b1e759689 /Master/texmf-dist/tex/generic/polexpr
parent2ddfef560ef43640a761f00bd53b6c16365cd42f (diff)
polexpr (1nov21)
git-svn-id: svn://tug.org/texlive/trunk@60920 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/polexpr')
-rw-r--r--Master/texmf-dist/tex/generic/polexpr/polexpr.sty2
-rw-r--r--Master/texmf-dist/tex/generic/polexpr/polexprcore.tex2
-rw-r--r--Master/texmf-dist/tex/generic/polexpr/polexprexpr.tex2
-rw-r--r--Master/texmf-dist/tex/generic/polexpr/polexprsturm.tex31
4 files changed, 19 insertions, 18 deletions
diff --git a/Master/texmf-dist/tex/generic/polexpr/polexpr.sty b/Master/texmf-dist/tex/generic/polexpr/polexpr.sty
index c92f950adb1..a2334e9724e 100644
--- a/Master/texmf-dist/tex/generic/polexpr/polexpr.sty
+++ b/Master/texmf-dist/tex/generic/polexpr/polexpr.sty
@@ -2,7 +2,7 @@
% License: LPPL 1.3c (author-maintained)
% Usage: \input polexpr.sty (Plain or other macro formats)
% or \usepackage{polexpr} (LaTeX macro format)
-% Release 0.8.3 (2021/05/27) of polexpr.sty. This file inputs
+% Release 0.8.4 (2021/11/01) of polexpr.sty. This file inputs
% polexprcore.tex
% polexprexpr.tex
% polexprsturm.tex
diff --git a/Master/texmf-dist/tex/generic/polexpr/polexprcore.tex b/Master/texmf-dist/tex/generic/polexpr/polexprcore.tex
index d8a17e4fc21..3315790b954 100644
--- a/Master/texmf-dist/tex/generic/polexpr/polexprcore.tex
+++ b/Master/texmf-dist/tex/generic/polexpr/polexprcore.tex
@@ -1,4 +1,4 @@
-%% This file polexprcore.tex is part of the polexpr package (0.8.3, 2021/05/27)
+%% This file polexprcore.tex is part of the polexpr package (0.8.4, 2021/11/01)
%% Core routines to match infix operators +, -, *, //, /:, ^, ** and some
%% functions
%% The atoms representing polynomials inside \xintexpr are
diff --git a/Master/texmf-dist/tex/generic/polexpr/polexprexpr.tex b/Master/texmf-dist/tex/generic/polexpr/polexprexpr.tex
index 8e025db1c7a..d896e4b39b6 100644
--- a/Master/texmf-dist/tex/generic/polexpr/polexprexpr.tex
+++ b/Master/texmf-dist/tex/generic/polexpr/polexprexpr.tex
@@ -1,4 +1,4 @@
-%% This file polexprexpr.tex is part of the polexpr package (0.8.3, 2021/05/27)
+%% This file polexprexpr.tex is part of the polexpr package (0.8.4, 2021/11/01)
%% Extending \xintexpr syntax:
%%
%% 1. Authorize ' in variable and function names
diff --git a/Master/texmf-dist/tex/generic/polexpr/polexprsturm.tex b/Master/texmf-dist/tex/generic/polexpr/polexprsturm.tex
index f2ac7c0d171..317b9cbcd31 100644
--- a/Master/texmf-dist/tex/generic/polexpr/polexprsturm.tex
+++ b/Master/texmf-dist/tex/generic/polexpr/polexprsturm.tex
@@ -1,4 +1,4 @@
-%% This file polexprsturm.tex is part of the polexpr package (0.8.3, 2021/05/27)
+%% This file polexprsturm.tex is part of the polexpr package (0.8.4, 2021/11/01)
%% Sturm Algorithm (polexpr 0.4)
%% 0.5 uses primitive polynomials for faster evaluations afterwards
%% 0.6 corrects misuse of \@ifstar! (mumble). \PolToSturm* was broken.
@@ -196,17 +196,7 @@
\edef\POL@sturm@N{\@nameuse{PolSturmChainLength_\POL@sturmname}}%
% isolate the roots (detects case of constant polynomial)
\PolSturmIsolateZeros@{\POL@sturmname}%
- \ifnum\POL@isolz@NbOfRoots=\z@
- % no real roots, define empty arrays nevertheless
- \begingroup\globaldefs\@ne
- \expandafter\xintAssignArray\expandafter\to\csname POL_ZM\POL@sturmname*\endcsname
- \expandafter\xintAssignArray\expandafter\to\csname POL_RI\POL@sturmname*\endcsname
- \endgroup
- \else
- % all we currently know is that multiplicities are at least one
- \begingroup\globaldefs\@ne
- \expandafter\POL@initarray\csname POL_ZM\POL@sturmname*\endcsname{1}%
- \endgroup
+ % 0.8.4 fix: these declarations were formerly not executed in absence of roots!
% on ne va pas utiliser de Horner, mais des divisions par X - x, et ces
% choses vont évoluer, ainsi que le coefficient dominant entier
% (pour \POL@divide entre autres if faut des noms de user pol)
@@ -218,6 +208,17 @@
\expandafter\let
\csname POLuserpol@\POL@sturmname\POL@norr\expandafter\endcsname
\csname POLuserpol@\POL@sturmname _0_\endcsname
+ \ifnum\POL@isolz@NbOfRoots=\z@
+ % no real roots, define empty arrays nevertheless
+ \begingroup\globaldefs\@ne
+ \expandafter\xintAssignArray\expandafter\to\csname POL_ZM\POL@sturmname*\endcsname
+ \expandafter\xintAssignArray\expandafter\to\csname POL_RI\POL@sturmname*\endcsname
+ \endgroup
+ \else
+ % all we currently know is that multiplicities are at least one
+ \begingroup\globaldefs\@ne
+ \expandafter\POL@initarray\csname POL_ZM\POL@sturmname*\endcsname{1}%
+ \endgroup
% attention formé avec\xintREZ d'où le \xintAbs pas \xintiiAbs
% D and its exponent E will get updated along the way
\edef\POL@findrat@D{\xintAbs{\PolLeadingCoeff{\POL@sturmname _0}}}%
@@ -243,12 +244,12 @@
\def\POL@findrat@index{1}%
\POL@findrat@loop@secondpass
\fi
- % declare the new polynomials
- \POL@newpol{\POL@sturmname\POL@sqfnorr}% without multiplicities
- \POL@newpol{\POL@sturmname\POL@norr}% with multiplicities
% declare the array holding the interval indices for the rational roots
\expandafter\POL@findrat@doRRarray\csname POL_RI\POL@sturmname*\endcsname
\fi
+ % declare the new polynomials (also if no real roots exist)
+ \POL@newpol{\POL@sturmname\POL@sqfnorr}% without multiplicities
+ \POL@newpol{\POL@sturmname\POL@norr}% with multiplicities
}%
\def\POL@findrat@doRRarray#1{%
% il faudrait un \xintAssignArray* qui fasse même expansion que \xintFor*