summaryrefslogtreecommitdiff
path: root/macros/plain/contrib/xintsession/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'macros/plain/contrib/xintsession/README.md')
-rw-r--r--macros/plain/contrib/xintsession/README.md68
1 files changed, 44 insertions, 24 deletions
diff --git a/macros/plain/contrib/xintsession/README.md b/macros/plain/contrib/xintsession/README.md
index 422e5f88b6..2152a1be16 100644
--- a/macros/plain/contrib/xintsession/README.md
+++ b/macros/plain/contrib/xintsession/README.md
@@ -1,6 +1,6 @@
# xintsession README #
-Release: 0.3b (2021-07-01)
+Release: 0.4alpha (2021-11-01)
## Usage ##
@@ -12,22 +12,22 @@ It will load [xintexpr](http://www.ctan.org/pkg/xint) and
To start a session:
-1. Execute `etex xintsession`, or if available, `rlwrap etex xintsession`
- to benefit from arrow keys navigation and other improvements such
- as parentheses highlighting.\
- \
- Alternatively, execute `rlwrap etex` and enter `xintsession` at the `**`
- prompt.\
- \
- One can also use the `-jobname` option of `etex` at this step.\
- \
- At my locale I added `alias xs="rlwrap etex xintsession"` to my `.bashrc`
- so I only have to type `xs` at the command line.
+1. Execute `etex xintsession`,
2. An `>>>` invite appears, and computations can begin!\
\
Start entering input, terminate it via a semi-colon `;`.
Say `&help` for help and `&bye` to quit.
+In more details: if available at your locale use `rlwrap etex xintsession` to
+benefit from arrow keys navigation and other improvements such as parentheses
+highlighting. Alternatively, execute `rlwrap etex` and enter `xintsession` at
+the `**` prompt.
+
+One can also use the `-jobname` option of `etex` at this step.
+
+At my locale I added `alias xs="rlwrap etex xintsession"` to my `.bashrc`
+so I only have to type `xs` at the command line.
+
The above explanations have been tested on a Unixen (Mac OS), and probably
`rlwrap` is not available on all platforms, but it is not a requirement.
@@ -45,25 +45,38 @@ Here is a sample session (spaces do not matter):
@_4 4.499205338329425
>>> add(1/i, i=1..1000);
@_5 7.485470860550346
- >>> 1
- ... +
- ... \message{xintsession is great!}
- (executing \message {xintsession is great!} in background)
- xintsession is great!
- ... 2
- ... ;
- @_6 3.0
+ >>> &pol
+ pol mode (i.e. function definitions use \poldef)
+ >>> P(x):=(x-0.1)^3 (x+1.8)^2 (x^10 - (100x-1)^2);
+
+ P = x^15+33*x^14/10+219*x^13/100-865*x^12/1000+936*x^11/10000-324*x^10/100000-1
+ 0000*x^7-328000*x^6/10-2124100*x^5/100+9084700*x^4/1000-11111900*x^3/10000+5198
+ 500*x^2/100000-74160*x/100000+324/100000
+ --> &GenFloat(P) lets P become usable as function in fp mode
+ --> &ROOTS(P) (resp. &ROOTS(P,N)) finds all rational roots exactly and
+ all irrational roots with at least 10 (resp. N) fractional digits
+ >>> &ROOTS(P,30)
+ Solving for real roots of P and assigning them (please wait...)
+ (mult. 1) RootP_1 = -3.164772734675337090200909653480...
+ (mult. 2) RootP_2 = -1.8
+ (mult. 1) RootP_3 = 0.009999999999000000000499999999...
+ (mult. 1) RootP_4 = 0.010000000001000000000500000000...
+ (mult. 3) RootP_5 = 0.1
+ (mult. 1) RootP_6 = 3.159772703424837079727026834533...
+ Square-free irrational part: x^10-10000*x^2+200*x-1
+ --> &REFINEROOTS(P,N) to extend real irr. roots to N fractional digits
>>> &bye
Did I say something wrong?
- Session transcript written on xintsession-210531_09h08.tex
+ Session transcript written on xintsession-211101_18h17.tex
)
No pages of output.
Transcript written on xintsession.log.
As this example illustrates, the computational engine can work in
-various modes: exact, fp, int, and pol. Say `&fp=number` at the
-`>>>` prompt to activate floating point mode with `number` digits
-of precision.
+various modes: exact, fp, int, and pol (the `&ROOTS()` will work in
+any mode the same once the polynomial as been defined in pol mode).
+Say `&fp=number` at the `>>>` prompt to activate floating point mode
+with `number` digits of precision.
If ill-formed input drops you deep into TeX error interaction mode,
try hitting `S` as it may work to bring you back to normal session.
@@ -72,6 +85,13 @@ For additional explanations, enter `&help` at the `>>>` prompt.
## Change log ##
+- 0.4alpha (2021-11-01)
+ - add `&GenFloat` interface to `\PolGenFloatVariant`
+ - add `&ROOTS` and `&REFINEROOTS` interface to under-the-hood
+ usage of the
+ [polexpr](http://www.ctan.org/pkg/polexpr) facilities
+ allowing to get all real roots of the given polynomial
+ to arbitrary precision (and all rational roots exactly)
- 0.3b (2021-07-01)
- fix output still uses `(@_<n>)` when a variable is defined
but the parentheses were dropped a while ago in general