Skip to content

Commit 6cbaf32

Browse files
committed
Merge branch 'master' into github-ci
2 parents 45808fa + 5893896 commit 6cbaf32

File tree

4 files changed

+50
-34
lines changed

4 files changed

+50
-34
lines changed

ChangeLog

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ New items in core:
88
* New command-line option --quit-on-error to make Maxima quit upon first
99
runtime error
1010
* New command-line option --very-very-quiet to silence Maxima
11+
* New command-line option --suppress-input-echo to suppress input echo
12+
when running noninteractively
1113
* New global variable batch_answers_from_file
1214
* New Unicode display2d and global variable display2d_unicode
1315
* A new function random-name in plot.lisp that generates a random string
@@ -32,14 +34,19 @@ Changes in core:
3234
* In src/plot.lisp, clipping is no longer done when plot_format is xmaxima
3335
* The default y-range for plots is determined only by points within x-range
3436
* Function chinese renamed to solve_congruences
37+
* Function 'system': capture output (e.g. with_stdout) from executed command
3538

3639
Changes in share:
3740
-----------------
41+
* openr_binary: work around bug in Allegro CL by omitting :ELEMENT-TYPE argument.
42+
* readline: trim carriage return from end of string, if any.
3843

3944
Changes in Xmaxima:
4045
-------------------
4146
* Line clipping in plot2d and plotdf
4247
* Better integration algorithm for plotdf
48+
* new options tstep and algorithm for plotdf
49+
* plot linewidths and arrow lengths change when a plot window is resized
4350

4451
Changes in the Windows installer:
4552
---------------------------------
@@ -62,8 +69,10 @@ Bug fixes for numbered bugs:
6269
* \#2905: Assigning variable twice yields different results
6370
* \#3054: limit(exp(exp(2*log(x**5 + x)*log(log(x)))) / exp(exp(10*log(x)*log(log(x)))), x, inf)
6471
* \#3191: parsing problem: thru 3 for i in [a,b]
72+
* \#3579: Overly eager simplification in trigreduce
6573
* \#3755: Insecure tmpdir usage
6674
* \#3803: Xmaxima should reopen the browser when needed
75+
* \#3981: Trigreduce doesn't return principal value of atan(tan(...))
6776
* \#4117: Unexpected Behaviour of run_viewer and gnu_term dumb
6877
* \#4154: Some info nodes have bad headers (and no "Up"s)
6978
* \#4160: LISP error when integrating
@@ -74,6 +83,7 @@ Bug fixes for numbered bugs:
7483
* \#4191: limits of gamma_incomplete
7584
* \#4195: cmucl 21e intermittent lisp error in limit
7685
* \#4200: simplim%limit ignoring special variables
86+
* \#4208: Error with complex numbers - example with trigreduce
7787
* \#4210: tlimit consults global assumptions for limit variable
7888
* \#4214: read_xpm not autoloading and not documented as requiring load("draw")
7989
* \#4215: limit(sqrt(-1+%i*x),x,0,minus)
@@ -103,6 +113,7 @@ Bug fixes for numbered bugs:
103113
* \#4388: tex() output under simp:false, incorrect placement of `+`
104114
* \#4408: letsimp doesn't simplify before returning result
105115
* \#4417: letsimp treats minus expressions as -1 times something
116+
* \#4418: arctan and trigreduce error
106117
* \#4424: draw2d doesnt accept fill_density in order to create opaque shapes
107118
* \#4426: Remove repeated function resm1
108119
* \#4427: Turn number to cell in [email protected]
@@ -120,12 +131,16 @@ Bug fixes for numbered bugs:
120131

121132
Unnumbered bugs fixed:
122133
---------------------
123-
* Correct failing test in share/contrib/diffequations/tests
124-
* plotdf sliders hidden (reported on the mailing list on 2023/11/26)
125134
* mailing list 2023-11-25: Possibilities for basic image processing
135+
* mailing list 2023-11-26: plotdf sliders hidden
126136
* mailing list 2023-09-25: Casting SPELs
127-
* recover option xfun of plotdf which was no longer working (2024-03-16)
128137
* mailing list 2024-12-24: Typographic Error (xmaxima)
138+
* mailing list 2025-03-04: trigsolve requires to_poly_solve to work
139+
* correct failing test in share/contrib/diffequations/tests
140+
* recovers option xfun of plotdf which was no longer working
141+
* fixes narrows option of plotdf (narrows should remain after window resizing)
142+
* unreported bug: Clisp error when standard input is not writeable
143+
* unreported bug: Function 'system': fix problems encountered when testing on Windows
129144

130145
Documentation:
131146
--------------
@@ -137,3 +152,5 @@ Documentation:
137152
Build system:
138153
-------------
139154
* Install Maxima icons in an 'icons' subdirectory rather than 'pixmaps'
155+
* maxima.asd: load defsystem.lisp in order to load share packages which use it.
156+
* Various compatibility fixes for Allegro CL and LispWorks

doc/info/Numerical.texi

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -891,31 +891,26 @@ numerical method used is 4th order Runge-Kutta with variable time steps.
891891

892892
@b{Plot window menu:}
893893

894-
The menu bar of the plot window has the following seven icons:
894+
The menu bar of the plot window has the following five buttons:
895895

896-
An X. Can be used to close the plot window.
896+
Close: can be used to close the plot window.
897897

898-
A wrench and a screwdriver. Opens the configuration menu with several
898+
Config: opens the configuration menu with several
899899
fields that show the ODE(s) in use and various other settings. If a pair
900900
of coordinates are entered in the field @emph{Trajectory at} and the
901901
@key{enter} key is pressed, a new integral curve will be shown, in
902902
addition to the ones already shown.
903903

904-
Two arrows following a circle. Replots the direction field with the
905-
new settings defined in the configuration menu and replots only the last
906-
integral curve that was previously plotted.
904+
Save: used to save a copy of the plot, in Postscript format, in the file
905+
specified in a field of the window that appears when that button is clicked.
907906

908-
Hard disk drive with an arrow. Used to save a copy of the
909-
plot, in Postscript format, in the file specified in a field of the
910-
box that appears when that icon is clicked.
907+
Replot: replots the direction field with the new settings defined in the
908+
configuration menu and replots only the last integral curve that was
909+
previously plotted. If you just resized the plot window, the size and
910+
width of the arrows and curves will be adapted to the new size if you
911+
click on Replot.
911912

912-
Magnifying glass with a plus sign. Zooms in the plot.
913-
914-
Magnifying glass with a minus sign. Zooms out the plot. The plot can be
915-
displaced by holding down the right mouse button while the mouse is
916-
moved.
917-
918-
Icon of a plot. Opens another window with a plot of the two variables
913+
Time plot: creates two new window showing the plots of the two variables
919914
in terms of time, for the last integral curve that was plotted.
920915

921916
@b{Plot options:}
@@ -977,6 +972,12 @@ interactively using slider buttons, and the range of variation of those
977972
parameters. The names and ranges of the parameters must be given in a
978973
string with a comma-separated sequence of elements @code{name=min:max}
979974

975+
@item
976+
@dfn{tstep} sets the value of the time intervals used in the integration
977+
algorithm. It must be a floating point number; you might have to adjust
978+
its value to get good results for the integral curves. If not given, a
979+
default value will be chosen according to the region to be plotted.
980+
980981
@item
981982
@dfn{xfun} defines a string with semi-colon-separated sequence
982983
of functions of @var{x} to be displayed, on top of the direction field.

doc/info/commandline-options.texi

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,6 @@ The following command line options are available for Maxima:
138138
Do not verify on startup that the set of html topics is consistent with
139139
text topics.
140140

141-
@need 150
142-
@item --suppress-input-echo
143-
Do not print input expressions when processing noninteractively.
144-
145141

146142
@end table
147143

interfaces/xmaxima/Tkmaxima/Plotdf.tcl

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# For distribution under GNU public License. See COPYING. #
55
# #
66
# Modified by Jaime E. Villate #
7-
# Time-stamp: "2025-02-01 16:35:14 villate" #
7+
# Time-stamp: "2025-05-27 10:54:55 villate" #
88
############################################################
99

1010
global plotdfOptions
@@ -107,15 +107,15 @@ proc doIntegrate { win x0 y0 } {
107107
set linewidth [expr {$linewidth*[vectorlength $width $height]/1000.}]
108108
set arrowshape [scalarTimesVector $linewidth {3 5 2}]
109109

110-
# method can be rungeKutta, rungeKuttaA or adamsMoulton
111-
set method {adamsMoulton}
110+
# integrator can be rungeKutta, rungeKuttaA or adamsMoulton
111+
set integrator {adamsMoulton}
112112
oset $win trajectory_at [format "%.10g %.10g" $x0 $y0]
113113
lappend trajectoryStarts [list $x0 $y0]
114114
set didLast {}
115115
# puts "doing at $trajectory_at"
116-
# A reasonabel value of tstep has already been set up in drawDF by
117-
# using the maximum length of the field vectors. This is just in case.
118-
if {$tstep eq {}} {set tstep 0.1}
116+
# Default value for tstep equal to the plot box's diagonal divided by 400
117+
set steps $nsteps
118+
set h $tstep
119119

120120
set todo {1}
121121
switch -- $direction {
@@ -150,7 +150,7 @@ proc doIntegrate { win x0 y0 } {
150150
set arrow {last}
151151
set coords {}}}}
152152
set h [expr {$sgn*$tstep}]
153-
set form [list $method xff yff $tinitial $x0 $y0 $h $nsteps]
153+
set form [list $integrator xff yff $tinitial $x0 $y0 $h $nsteps]
154154

155155
# puts "doing: $form"
156156
# pts will be a list with values of t, x and y, at the initial
@@ -263,7 +263,7 @@ proc drawArrowScreen { c atx aty dfx dfy color } {
263263
proc drawDF { win tinitial } {
264264
global axisGray
265265
makeLocal $win xmin xmax xcenter ycenter c ymin ymax transform vectors \
266-
xaxislabel yaxislabel nobox axes width height narrows tstep
266+
xaxislabel yaxislabel nobox axes width height narrows
267267
set rtosx rtosx$win
268268
set rtosy rtosy$win
269269
set storx storx$win
@@ -295,7 +295,6 @@ proc drawDF { win tinitial } {
295295
append all " $len $dfx $dfy "
296296
if { $min > $len } {set min $len}
297297
if { $max < $len } {set max $len}}}
298-
if {$tstep eq {}} {oset $win tstep [expr {$stepsize/(10.0*$max)}]}
299298
set arrowmin [expr {0.25*$stepsize}]
300299
set arrowrange [expr {0.85*$stepsize - $arrowmin}]
301300
set s1 [expr {($arrowrange*$min+$arrowmin*$min-$arrowmin*$max)/($min-$max)}]
@@ -399,7 +398,10 @@ proc plotdf { args } {
399398
getOptions $plotdfOptions $args -usearray [oarray $win]
400399
oset $win didLast {}
401400
# Makes extra vertical space for sliders
402-
linkLocal $win sliders height
401+
linkLocal $win sliders height tstep xradius yradius
402+
if { "$tstep" == "" } {
403+
set tstep [expr {[vectorlength $xradius $yradius] / 200.0}]
404+
}
403405
if {[string length $sliders] > 0} {
404406
oset $win height [expr {$height + 40*[llength [split $sliders ,]]}]}
405407

@@ -471,7 +473,7 @@ proc doConfigdf { win } {
471473
pack $frdydx.dxdt $frdydx.dydt -side bottom -fill x -expand 1
472474
pack $frdydx.dydxbut $frdydx.dydtbut -side left -fill x -expand 1
473475

474-
foreach w {narrows parameters xfun linewidth xradius yradius xcenter ycenter tinitial versus_t nsteps direction curves vectors fieldlines } {
476+
foreach w {narrows parameters xfun linewidth xradius yradius xcenter ycenter tinitial versus_t tstep nsteps direction curves vectors fieldlines } {
475477
mkentry $wb1.$w [oloc $win $w] $w $buttonFont
476478
pack $wb1.$w -side bottom -expand 1 -fill x
477479
}

0 commit comments

Comments
 (0)