You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(67) |
Jul
(61) |
Aug
(49) |
Sep
(43) |
Oct
(59) |
Nov
(24) |
Dec
(18) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(34) |
Feb
(35) |
Mar
(72) |
Apr
(42) |
May
(46) |
Jun
(15) |
Jul
(64) |
Aug
(62) |
Sep
(22) |
Oct
(41) |
Nov
(57) |
Dec
(56) |
| 2004 |
Jan
(48) |
Feb
(47) |
Mar
(33) |
Apr
(39) |
May
(6) |
Jun
(17) |
Jul
(19) |
Aug
(10) |
Sep
(14) |
Oct
(74) |
Nov
(80) |
Dec
(22) |
| 2005 |
Jan
(43) |
Feb
(33) |
Mar
(52) |
Apr
(74) |
May
(32) |
Jun
(58) |
Jul
(18) |
Aug
(41) |
Sep
(71) |
Oct
(28) |
Nov
(65) |
Dec
(68) |
| 2006 |
Jan
(54) |
Feb
(37) |
Mar
(82) |
Apr
(211) |
May
(69) |
Jun
(75) |
Jul
(279) |
Aug
(139) |
Sep
(135) |
Oct
(58) |
Nov
(81) |
Dec
(78) |
| 2007 |
Jan
(141) |
Feb
(134) |
Mar
(65) |
Apr
(49) |
May
(61) |
Jun
(90) |
Jul
(72) |
Aug
(53) |
Sep
(86) |
Oct
(61) |
Nov
(62) |
Dec
(101) |
| 2008 |
Jan
(100) |
Feb
(66) |
Mar
(76) |
Apr
(95) |
May
(77) |
Jun
(93) |
Jul
(103) |
Aug
(76) |
Sep
(42) |
Oct
(55) |
Nov
(44) |
Dec
(75) |
| 2009 |
Jan
(103) |
Feb
(105) |
Mar
(121) |
Apr
(59) |
May
(103) |
Jun
(82) |
Jul
(67) |
Aug
(76) |
Sep
(85) |
Oct
(75) |
Nov
(181) |
Dec
(133) |
| 2010 |
Jan
(107) |
Feb
(116) |
Mar
(145) |
Apr
(89) |
May
(138) |
Jun
(85) |
Jul
(82) |
Aug
(111) |
Sep
(70) |
Oct
(83) |
Nov
(60) |
Dec
(16) |
| 2011 |
Jan
(61) |
Feb
(16) |
Mar
(52) |
Apr
(41) |
May
(34) |
Jun
(41) |
Jul
(57) |
Aug
(73) |
Sep
(21) |
Oct
(45) |
Nov
(50) |
Dec
(28) |
| 2012 |
Jan
(70) |
Feb
(36) |
Mar
(71) |
Apr
(29) |
May
(48) |
Jun
(61) |
Jul
(44) |
Aug
(54) |
Sep
(20) |
Oct
(28) |
Nov
(41) |
Dec
(137) |
| 2013 |
Jan
(62) |
Feb
(55) |
Mar
(31) |
Apr
(23) |
May
(54) |
Jun
(54) |
Jul
(90) |
Aug
(46) |
Sep
(38) |
Oct
(60) |
Nov
(92) |
Dec
(17) |
| 2014 |
Jan
(62) |
Feb
(35) |
Mar
(72) |
Apr
(30) |
May
(97) |
Jun
(81) |
Jul
(63) |
Aug
(64) |
Sep
(28) |
Oct
(45) |
Nov
(48) |
Dec
(109) |
| 2015 |
Jan
(106) |
Feb
(36) |
Mar
(65) |
Apr
(63) |
May
(95) |
Jun
(56) |
Jul
(48) |
Aug
(55) |
Sep
(100) |
Oct
(57) |
Nov
(33) |
Dec
(46) |
| 2016 |
Jan
(76) |
Feb
(53) |
Mar
(88) |
Apr
(79) |
May
(62) |
Jun
(65) |
Jul
(37) |
Aug
(23) |
Sep
(108) |
Oct
(68) |
Nov
(66) |
Dec
(47) |
| 2017 |
Jan
(55) |
Feb
(11) |
Mar
(30) |
Apr
(19) |
May
(14) |
Jun
(21) |
Jul
(30) |
Aug
(48) |
Sep
(39) |
Oct
(30) |
Nov
(75) |
Dec
(28) |
| 2018 |
Jan
(70) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2019 |
Jan
(19) |
Feb
(61) |
Mar
(14) |
Apr
(7) |
May
(5) |
Jun
(17) |
Jul
(5) |
Aug
(7) |
Sep
(11) |
Oct
(2) |
Nov
(17) |
Dec
(9) |
| 2020 |
Jan
(8) |
Feb
(8) |
Mar
(12) |
Apr
(17) |
May
(2) |
Jun
(10) |
Jul
(24) |
Aug
(6) |
Sep
(16) |
Oct
(3) |
Nov
(10) |
Dec
(40) |
| 2021 |
Jan
(53) |
Feb
(18) |
Mar
(20) |
Apr
(11) |
May
(23) |
Jun
(37) |
Jul
(28) |
Aug
(32) |
Sep
(105) |
Oct
(81) |
Nov
(109) |
Dec
(41) |
| 2022 |
Jan
(139) |
Feb
(82) |
Mar
(96) |
Apr
(51) |
May
(58) |
Jun
(104) |
Jul
(32) |
Aug
(61) |
Sep
(37) |
Oct
(25) |
Nov
(94) |
Dec
(81) |
| 2023 |
Jan
(113) |
Feb
(77) |
Mar
(98) |
Apr
(43) |
May
(48) |
Jun
(28) |
Jul
(72) |
Aug
(40) |
Sep
(44) |
Oct
(61) |
Nov
(70) |
Dec
(94) |
| 2024 |
Jan
(101) |
Feb
(21) |
Mar
(66) |
Apr
(88) |
May
(55) |
Jun
(109) |
Jul
(57) |
Aug
(103) |
Sep
(50) |
Oct
(75) |
Nov
(132) |
Dec
(69) |
| 2025 |
Jan
(216) |
Feb
(161) |
Mar
(85) |
Apr
(50) |
May
(80) |
Jun
(51) |
Jul
(49) |
Aug
(27) |
Sep
(30) |
Oct
(84) |
Nov
(54) |
Dec
(100) |
| 2026 |
Jan
(61) |
Feb
(59) |
Mar
(85) |
Apr
(229) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Barton W. <wil...@us...> - 2026-04-30 11:27:29
|
Here is a minimal non-working example:
~~~
(%i1) xxx : 1 = (1-y/2)^(n);
(xxx) 1=(1-y/2)^n
(%i2) solve(xxx,y), solveexplicit : false;
(%o2) [(2-y)^n/2^n=1]
(%i3) solve(%,y);
"Is "n" an "integer"?"n;
(%o3) [y=0]
~~~
Calling `solve` twice results in one solution (but not all solutions).
When the option variable `solveexplicit`, Maxima realizes that it is unable to solve the equation and it returns the empty list. Unfortunately, Maxima's solve function doesn't distinguish the cases of the solution set is empty and unable to solve:
~~~
(%i1) xxx : 1 = (1-y/2)^(n);
(xxx) 1=(1-y/2)^n
(%i2) solve(xxx,y), solveexplicit : true;
(%o2) []
~~~
This is a deficiency of Maxima, not a bug. Maybe you would like to file a feature request. If you do, please try to include a simple example that shows what you want.
For clarity, unless it is necessary to use a non-default value for an option variable, I suggest using the default values--it makes an example easier for me to understand.
---
**[bugs:#4726] solve doesn't really solve**
**Status:** open
**Group:** None
**Created:** Wed Apr 29, 2026 09:28 AM UTC by dan hayes
**Last Updated:** Thu Apr 30, 2026 02:39 AM UTC
**Owner:** nobody
WxMaxima version: 26.01.0_MSW
Using wxWidgets version: wxWidgets 3.2.9
Maxima version: 5.49.0
Maxima build date: 2026-01-02 21:27:51
Host type: x86_64-w64-mingw32
System type: Win32 10.0.19041 X86-64
Lisp implementation type: SBCL
Lisp implementation version: 2.6.0
(assume_pos:true, file_output_append:true, ratprint:false, showtime:true, load(simplify_sum), intanalysis: false, simpsum:true, load("lrats") ,letrat:true, ratfac:true,algebraic:true, rootsconmode=super,algexact:true,fpprintprec:4);
(assume(n>2,m,constant),ry:integrate((1-y/b)^n,y),rx:M*integrate(1/(1-x/a),x),rs:solve(ry-rx,y));
Now from the output rs should be in the form y=some function of x but it isn't so i had to do
[p12:part(rs,1,2)*b^(n+1),t:p12^(1/(n+1)),ans:b-t,"y"=ans];
to get the correct answer. I tried even using solveradcan:true , which was default false and even that
did not even help to get maxima to give the correct answer. I shouldn't actually say "the correct"
answer because there is an arbitrary constant of integration that could be used for expression rx in
rx:M*integrate(1/(1-x/a),x). Since actually i desire the solution such that y=0 when x=0 and a text
then by some mysterious way to get the answer in the form
["y"=b-b*(1+(n+1)*M*a/b*log(1-x/a))^(1/(n+1))];
Now i would not necessarily expect maxima to be able to get this final form which is an ungodly
difficult problem in finding the correct constant of integration to get the answer in this form but
it would be nice. Though if anyone knows how to find that constant of integration would be nice. I
also add that many times prior i have had to do it myself rationalizing etc. etc. to get the answer from
maximas unwillingness to fully solve a straightforward problem. This is also a feature request to get
maxima to fully solve the problem rather than just giving an incomplete answer.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Stavros M. <mac...@us...> - 2026-04-30 09:20:00
|
assume(n,integer)
=> [meaningless,meaningless]
On Wed, Apr 29, 2026, 22:39 dan hayes via Maxima-bugs <
max...@li...> wrote:
> i also added assume(n,integer), declare(n,integer) at the beginning and it
> made no difference.
> Also there is the multivalue issue of n+1 different roots but it goes
> without saying the desired one is the principle value or for n even the
> only real root
> ------------------------------
>
> *[bugs:#4726] <https://sourceforge.net/p/maxima/bugs/4726/> solve doesn't
> really solve*
>
> *Status:* open
> *Group:* None
> *Created:* Wed Apr 29, 2026 09:28 AM UTC by dan hayes
> *Last Updated:* Wed Apr 29, 2026 09:28 AM UTC
> *Owner:* nobody
>
> WxMaxima version: 26.01.0_MSW
> Using wxWidgets version: wxWidgets 3.2.9
> Maxima version: 5.49.0
> Maxima build date: 2026-01-02 21:27:51
> Host type: x86_64-w64-mingw32
> System type: Win32 10.0.19041 X86-64
> Lisp implementation type: SBCL
> Lisp implementation version: 2.6.0
>
> (assume_pos:true, file_output_append:true, ratprint:false, showtime:true,
> load(simplify_sum), intanalysis: false, simpsum:true, load("lrats")
> ,letrat:true, ratfac:true,algebraic:true,
> rootsconmode=super,algexact:true,fpprintprec:4);
>
>
> (assume(n>2,m,constant),ry:integrate((1-y/b)^n,y),rx:M*integrate(1/(1-x/a),x),rs:solve(ry-rx,y));
>
> Now from the output rs should be in the form y=some function of x but it
> isn't so i had to do
>
> [p12:part(rs,1,2)*b^(n+1),t:p12^(1/(n+1)),ans:b-t,"y"=ans];
>
> to get the correct answer. I tried even using solveradcan:true , which was
> default false and even that
> did not even help to get maxima to give the correct answer. I shouldn't
> actually say "the correct"
> answer because there is an arbitrary constant of integration that could be
> used for expression rx in
> rx:M*integrate(1/(1-x/a),x). Since actually i desire the solution such
> that y=0 when x=0 and a text
> then by some mysterious way to get the answer in the form
>
> ["y"=b-b*(1+(n+1)*M*a/b*log(1-x/a))^(1/(n+1))];
>
> Now i would not necessarily expect maxima to be able to get this final
> form which is an ungodly
> difficult problem in finding the correct constant of integration to get
> the answer in this form but
> it would be nice. Though if anyone knows how to find that constant of
> integration would be nice. I
> also add that many times prior i have had to do it myself rationalizing
> etc. etc. to get the answer from
> maximas unwillingness to fully solve a straightforward problem. This is
> also a feature request to get
> maxima to fully solve the problem rather than just giving an incomplete
> answer.
> ------------------------------
>
> Sent from sourceforge.net because max...@li... is
> subscribed to https://sourceforge.net/p/maxima/bugs/
>
> To unsubscribe from further messages, a project admin can change settings
> at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a
> mailing list, you can unsubscribe from the mailing list.
> _______________________________________________
> Maxima-bugs mailing list
> Max...@li...
> https://lists.sourceforge.net/lists/listinfo/maxima-bugs
>
---
**[bugs:#4726] solve doesn't really solve**
**Status:** open
**Group:** None
**Created:** Wed Apr 29, 2026 09:28 AM UTC by dan hayes
**Last Updated:** Thu Apr 30, 2026 02:39 AM UTC
**Owner:** nobody
WxMaxima version: 26.01.0_MSW
Using wxWidgets version: wxWidgets 3.2.9
Maxima version: 5.49.0
Maxima build date: 2026-01-02 21:27:51
Host type: x86_64-w64-mingw32
System type: Win32 10.0.19041 X86-64
Lisp implementation type: SBCL
Lisp implementation version: 2.6.0
(assume_pos:true, file_output_append:true, ratprint:false, showtime:true, load(simplify_sum), intanalysis: false, simpsum:true, load("lrats") ,letrat:true, ratfac:true,algebraic:true, rootsconmode=super,algexact:true,fpprintprec:4);
(assume(n>2,m,constant),ry:integrate((1-y/b)^n,y),rx:M*integrate(1/(1-x/a),x),rs:solve(ry-rx,y));
Now from the output rs should be in the form y=some function of x but it isn't so i had to do
[p12:part(rs,1,2)*b^(n+1),t:p12^(1/(n+1)),ans:b-t,"y"=ans];
to get the correct answer. I tried even using solveradcan:true , which was default false and even that
did not even help to get maxima to give the correct answer. I shouldn't actually say "the correct"
answer because there is an arbitrary constant of integration that could be used for expression rx in
rx:M*integrate(1/(1-x/a),x). Since actually i desire the solution such that y=0 when x=0 and a text
then by some mysterious way to get the answer in the form
["y"=b-b*(1+(n+1)*M*a/b*log(1-x/a))^(1/(n+1))];
Now i would not necessarily expect maxima to be able to get this final form which is an ungodly
difficult problem in finding the correct constant of integration to get the answer in this form but
it would be nice. Though if anyone knows how to find that constant of integration would be nice. I
also add that many times prior i have had to do it myself rationalizing etc. etc. to get the answer from
maximas unwillingness to fully solve a straightforward problem. This is also a feature request to get
maxima to fully solve the problem rather than just giving an incomplete answer.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Stavros M. <mac...@gm...> - 2026-04-30 08:50:25
|
assume(n,integer)
=> [meaningless,meaningless]
On Wed, Apr 29, 2026, 22:39 dan hayes via Maxima-bugs <
max...@li...> wrote:
> i also added assume(n,integer), declare(n,integer) at the beginning and it
> made no difference.
> Also there is the multivalue issue of n+1 different roots but it goes
> without saying the desired one is the principle value or for n even the
> only real root
> ------------------------------
>
> *[bugs:#4726] <https://sourceforge.net/p/maxima/bugs/4726/> solve doesn't
> really solve*
>
> *Status:* open
> *Group:* None
> *Created:* Wed Apr 29, 2026 09:28 AM UTC by dan hayes
> *Last Updated:* Wed Apr 29, 2026 09:28 AM UTC
> *Owner:* nobody
>
> WxMaxima version: 26.01.0_MSW
> Using wxWidgets version: wxWidgets 3.2.9
> Maxima version: 5.49.0
> Maxima build date: 2026-01-02 21:27:51
> Host type: x86_64-w64-mingw32
> System type: Win32 10.0.19041 X86-64
> Lisp implementation type: SBCL
> Lisp implementation version: 2.6.0
>
> (assume_pos:true, file_output_append:true, ratprint:false, showtime:true,
> load(simplify_sum), intanalysis: false, simpsum:true, load("lrats")
> ,letrat:true, ratfac:true,algebraic:true,
> rootsconmode=super,algexact:true,fpprintprec:4);
>
>
> (assume(n>2,m,constant),ry:integrate((1-y/b)^n,y),rx:M*integrate(1/(1-x/a),x),rs:solve(ry-rx,y));
>
> Now from the output rs should be in the form y=some function of x but it
> isn't so i had to do
>
> [p12:part(rs,1,2)*b^(n+1),t:p12^(1/(n+1)),ans:b-t,"y"=ans];
>
> to get the correct answer. I tried even using solveradcan:true , which was
> default false and even that
> did not even help to get maxima to give the correct answer. I shouldn't
> actually say "the correct"
> answer because there is an arbitrary constant of integration that could be
> used for expression rx in
> rx:M*integrate(1/(1-x/a),x). Since actually i desire the solution such
> that y=0 when x=0 and a text
> then by some mysterious way to get the answer in the form
>
> ["y"=b-b*(1+(n+1)*M*a/b*log(1-x/a))^(1/(n+1))];
>
> Now i would not necessarily expect maxima to be able to get this final
> form which is an ungodly
> difficult problem in finding the correct constant of integration to get
> the answer in this form but
> it would be nice. Though if anyone knows how to find that constant of
> integration would be nice. I
> also add that many times prior i have had to do it myself rationalizing
> etc. etc. to get the answer from
> maximas unwillingness to fully solve a straightforward problem. This is
> also a feature request to get
> maxima to fully solve the problem rather than just giving an incomplete
> answer.
> ------------------------------
>
> Sent from sourceforge.net because max...@li... is
> subscribed to https://sourceforge.net/p/maxima/bugs/
>
> To unsubscribe from further messages, a project admin can change settings
> at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a
> mailing list, you can unsubscribe from the mailing list.
> _______________________________________________
> Maxima-bugs mailing list
> Max...@li...
> https://lists.sourceforge.net/lists/listinfo/maxima-bugs
>
|
|
From: dan h. <zm...@us...> - 2026-04-30 02:39:43
|
i also added assume(n,integer), declare(n,integer) at the beginning and it made no difference.
Also there is the multivalue issue of n+1 different roots but it goes without saying the desired one is the principle value or for n even the only real root
---
**[bugs:#4726] solve doesn't really solve**
**Status:** open
**Group:** None
**Created:** Wed Apr 29, 2026 09:28 AM UTC by dan hayes
**Last Updated:** Wed Apr 29, 2026 09:28 AM UTC
**Owner:** nobody
WxMaxima version: 26.01.0_MSW
Using wxWidgets version: wxWidgets 3.2.9
Maxima version: 5.49.0
Maxima build date: 2026-01-02 21:27:51
Host type: x86_64-w64-mingw32
System type: Win32 10.0.19041 X86-64
Lisp implementation type: SBCL
Lisp implementation version: 2.6.0
(assume_pos:true, file_output_append:true, ratprint:false, showtime:true, load(simplify_sum), intanalysis: false, simpsum:true, load("lrats") ,letrat:true, ratfac:true,algebraic:true, rootsconmode=super,algexact:true,fpprintprec:4);
(assume(n>2,m,constant),ry:integrate((1-y/b)^n,y),rx:M*integrate(1/(1-x/a),x),rs:solve(ry-rx,y));
Now from the output rs should be in the form y=some function of x but it isn't so i had to do
[p12:part(rs,1,2)*b^(n+1),t:p12^(1/(n+1)),ans:b-t,"y"=ans];
to get the correct answer. I tried even using solveradcan:true , which was default false and even that
did not even help to get maxima to give the correct answer. I shouldn't actually say "the correct"
answer because there is an arbitrary constant of integration that could be used for expression rx in
rx:M*integrate(1/(1-x/a),x). Since actually i desire the solution such that y=0 when x=0 and a text
then by some mysterious way to get the answer in the form
["y"=b-b*(1+(n+1)*M*a/b*log(1-x/a))^(1/(n+1))];
Now i would not necessarily expect maxima to be able to get this final form which is an ungodly
difficult problem in finding the correct constant of integration to get the answer in this form but
it would be nice. Though if anyone knows how to find that constant of integration would be nice. I
also add that many times prior i have had to do it myself rationalizing etc. etc. to get the answer from
maximas unwillingness to fully solve a straightforward problem. This is also a feature request to get
maxima to fully solve the problem rather than just giving an incomplete answer.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Stavros M. <mac...@us...> - 2026-04-30 01:26:31
|
The form `(-1)*h` is a faithful rendition of the unsimplified internal form. It's not pretty, but it's not wrong. I'm curious, why did you write `-1*h`rather than `-h`? What version of Maxima/Lisp/WxMaxima are you running? --- **[bugs:#4727] - is converted to +- \(in a special case\)** **Status:** open **Group:** None **Created:** Wed Apr 29, 2026 09:22 PM UTC by Matthias Daniel Diehl **Last Updated:** Thu Apr 30, 2026 01:00 AM UTC **Owner:** nobody **Minimal example** Entering L(h):=1+1-1*h; gives the output L(h) := 1 + 1 + (- 1) h The expected output is L(h):=1+1-1 h I spotted the bug in wxMaxima, which displays L(h):=1+1+-1*h --- Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Stavros M. <mac...@us...> - 2026-04-30 01:00:42
|
The body of a named or anonymous (lambda) function definition is never simplified. --- **[bugs:#4727] - is converted to +- \(in a special case\)** **Status:** open **Group:** None **Created:** Wed Apr 29, 2026 09:22 PM UTC by Matthias Daniel Diehl **Last Updated:** Wed Apr 29, 2026 11:21 PM UTC **Owner:** nobody **Minimal example** Entering L(h):=1+1-1*h; gives the output L(h) := 1 + 1 + (- 1) h The expected output is L(h):=1+1-1 h I spotted the bug in wxMaxima, which displays L(h):=1+1+-1*h --- Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Raymond T. <rt...@us...> - 2026-04-29 23:21:21
|
I wonder why `1+1-1*h` isn't simplified to `2-h`. Nevertheless, the fact that wxmaxima displays it as `1+1+-1*h` seems to be a wxmaxima bug. --- **[bugs:#4727] - is converted to +- \(in a special case\)** **Status:** open **Group:** None **Created:** Wed Apr 29, 2026 09:22 PM UTC by Matthias Daniel Diehl **Last Updated:** Wed Apr 29, 2026 09:23 PM UTC **Owner:** nobody **Minimal example** Entering L(h):=1+1-1*h; gives the output L(h) := 1 + 1 + (- 1) h The expected output is L(h):=1+1-1 h I spotted the bug in wxMaxima, which displays L(h):=1+1+-1*h --- Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Matthias D. D. <mdi...@us...> - 2026-04-29 21:23:00
|
--- **[bugs:#4727] - is converted to +- \(in a special case\)** **Status:** open **Group:** None **Created:** Wed Apr 29, 2026 09:22 PM UTC by Matthias Daniel Diehl **Last Updated:** Wed Apr 29, 2026 09:22 PM UTC **Owner:** nobody **Minimal example** Entering L(h):=1+1-1*h; gives the output L(h) := 1 + 1 + (- 1) h The expected output is L(h):=1+1-1 h I spotted the bug in wxMaxima, which displays L(h):=1+1+-1*h --- Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: dan h. <zm...@us...> - 2026-04-29 09:28:53
|
---
**[bugs:#4726] solve doesn't really solve**
**Status:** open
**Group:** None
**Created:** Wed Apr 29, 2026 09:28 AM UTC by dan hayes
**Last Updated:** Wed Apr 29, 2026 09:28 AM UTC
**Owner:** nobody
WxMaxima version: 26.01.0_MSW
Using wxWidgets version: wxWidgets 3.2.9
Maxima version: 5.49.0
Maxima build date: 2026-01-02 21:27:51
Host type: x86_64-w64-mingw32
System type: Win32 10.0.19041 X86-64
Lisp implementation type: SBCL
Lisp implementation version: 2.6.0
(assume_pos:true, file_output_append:true, ratprint:false, showtime:true, load(simplify_sum), intanalysis: false, simpsum:true, load("lrats") ,letrat:true, ratfac:true,algebraic:true, rootsconmode=super,algexact:true,fpprintprec:4);
(assume(n>2,m,constant),ry:integrate((1-y/b)^n,y),rx:M*integrate(1/(1-x/a),x),rs:solve(ry-rx,y));
Now from the output rs should be in the form y=some function of x but it isn't so i had to do
[p12:part(rs,1,2)*b^(n+1),t:p12^(1/(n+1)),ans:b-t,"y"=ans];
to get the correct answer. I tried even using solveradcan:true , which was default false and even that
did not even help to get maxima to give the correct answer. I shouldn't actually say "the correct"
answer because there is an arbitrary constant of integration that could be used for expression rx in
rx:M*integrate(1/(1-x/a),x). Since actually i desire the solution such that y=0 when x=0 and a text
then by some mysterious way to get the answer in the form
["y"=b-b*(1+(n+1)*M*a/b*log(1-x/a))^(1/(n+1))];
Now i would not necessarily expect maxima to be able to get this final form which is an ungodly
difficult problem in finding the correct constant of integration to get the answer in this form but
it would be nice. Though if anyone knows how to find that constant of integration would be nice. I
also add that many times prior i have had to do it myself rationalizing etc. etc. to get the answer from
maximas unwillingness to fully solve a straightforward problem. This is also a feature request to get
maxima to fully solve the problem rather than just giving an incomplete answer.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Robert D. <rob...@us...> - 2026-04-28 04:46:23
|
For the record, I also think the DWIM inferred subscript stuff is terrible. That said, I think (1) is better than what we have now (and also preferable to (2)).
---
**[bugs:#4725] tex-array creates invalid double subscript**
**Status:** open
**Group:** None
**Created:** Mon Apr 27, 2026 07:22 PM UTC by Leo Butler
**Last Updated:** Mon Apr 27, 2026 07:22 PM UTC
**Owner:** Leo Butler
`tex-array` is used to implement the (terrible, in my opinion) dwim subscripting and to typeset array arguments as subscripts. This produces invalid TeX:
```
tex(a_1[4]);
$$a_{1}_{4}$$
```
or
```
tex(a1[4]);
$$a_{1}_{4}$$
```
There are at least two alternatives:
1. Wrap the output of `tex-array` in brace brackets. That would produce valid TeX like `{{a_{1}}_{4}}` in both cases.
2. Add a switch to disable dwim subscripting. This would also produce valid TeX (like `{\it a\_1}_{4}` or `{\it a1}_{4}`)
Attached is a patch that implements both (but only does 1. when dwim subscripting is active).
This bug was first observed in [bug #4696](https://sourceforge.net/p/maxima/bugs/4696/).
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Leo B. <l_b...@us...> - 2026-04-27 19:22:26
|
Patch. Attachments: - [0001-tex-array-braces.patch](https://sourceforge.net/p/maxima/bugs/_discuss/thread/add48bab23/8f11/attachment/0001-tex-array-braces.patch) (1.4 kB; text/x-patch) --- **[bugs:#4725] tex-array creates invalid double subscript** **Status:** open **Group:** None **Created:** Mon Apr 27, 2026 07:22 PM UTC by Leo Butler **Last Updated:** Mon Apr 27, 2026 07:22 PM UTC **Owner:** Leo Butler `tex-array` is used to implement the (terrible, in my opinion) dwim subscripting and to typeset array arguments as subscripts. This produces invalid TeX: ``` tex(a_1[4]); $$a_{1}_{4}$$ ``` or ``` tex(a1[4]); $$a_{1}_{4}$$ ``` There are at least two alternatives: 1. Wrap the output of `tex-array` in brace brackets. That would produce valid TeX like `{{a_{1}}_{4}}` in both cases. 2. Add a switch to disable dwim subscripting. This would also produce valid TeX (like `{\it a\_1}_{4}` or `{\it a1}_{4}`) Attached is a patch that implements both (but only does 1. when dwim subscripting is active). This bug was first observed in [bug #4696](https://sourceforge.net/p/maxima/bugs/4696/). --- Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Leo B. <l_b...@us...> - 2026-04-27 19:22:07
|
---
**[bugs:#4725] tex-array creates invalid double subscript**
**Status:** open
**Group:** None
**Created:** Mon Apr 27, 2026 07:22 PM UTC by Leo Butler
**Last Updated:** Mon Apr 27, 2026 07:22 PM UTC
**Owner:** Leo Butler
`tex-array` is used to implement the (terrible, in my opinion) dwim subscripting and to typeset array arguments as subscripts. This produces invalid TeX:
```
tex(a_1[4]);
$$a_{1}_{4}$$
```
or
```
tex(a1[4]);
$$a_{1}_{4}$$
```
There are at least two alternatives:
1. Wrap the output of `tex-array` in brace brackets. That would produce valid TeX like `{{a_{1}}_{4}}` in both cases.
2. Add a switch to disable dwim subscripting. This would also produce valid TeX (like `{\it a\_1}_{4}` or `{\it a1}_{4}`)
Attached is a patch that implements both (but only does 1. when dwim subscripting is active).
This bug was first observed in [bug #4696](https://sourceforge.net/p/maxima/bugs/4696/).
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Robert D. <rob...@us...> - 2026-04-27 15:15:22
|
About declaring `.` and `sconcat` as n-ary, I seem to recall that Maxima's notion of n-ary-ness is equivalent to being associative in addition to being defined for arbitrary lists of arguments (maybe this coincides with a conventional understanding of the term, I dunno). I guess that implies such functions are defined for the no-arguments case, although I don't know if all n-ary functions behave that way in Maxima.
Sounds like `.` (with suitable flags) and `sconcat` have those properties; given that, it makes sense to me to declare them `nary` as well. The same considerations apply to any other such functions, I think.
---
**[bugs:#4724] xreduce with init arg and declared nary function**
**Status:** open
**Group:** None
**Created:** Sat Apr 25, 2026 05:46 PM UTC by Kris Katterjohn
**Last Updated:** Sun Apr 26, 2026 07:29 PM UTC
**Owner:** Kris Katterjohn
Users can `declare` functions to be nary; below I'll call these "just-`declare`d-nary". `xreduce` also handles certain nary cases specially (like `and`, `or`, `append`, ...); below I'll call these "special-cased-nary". (I'm too lazy to come up with less silly names.)
`xreduce` does not pass a given init arg to just-`declare`d-nary functions, but it does for special-cased-nary functions.
In the examples below `foo` is not nary, `fnary` is just-`declare`d-nary, and (the arbitrarily chosen) `and` is special-cased-nary.
~~~
(%i1) declare (fnary, nary)$
(%i2) xreduce (foo, [], 0); /* correct: the 0 is just returned */
(%o2) 0
(%i3) xreduce (fnary, [], 0); /* wrong: should be fnary(0) */
(%o3) fnary()
(%i4) xreduce ("and", [], 0); /* correct: this is from "and"(0) */
(%o4) 0
(%i5) xreduce (foo, [1, 2, 3], 0); /* correct */
(%o5) foo(foo(foo(0,1),2),3)
(%i6) xreduce (fnary, [1, 2, 3], 0); /* wrong: should be fnary(0,1,2,3) */
(%o6) fnary(1,2,3)
(%i7) xreduce ("and", [1, 2, 3], 0); /* correct */
(%o7) 0 and 1 and 2 and 3
~~~
Regarding the unary cases `%o3` and `%o4`, compare to:
~~~
(%i8) xreduce (fnary, [0]); /* this one is correct */
(%o8) fnary(0)
(%i9) xreduce ("and", [0]); /* again correct: this is also from "and"(0) */
(%o9) 0
~~~
While running the test suite (with share tests), it doesn't seem that `xreduce` is ever called with both an init arg and a just-`declare`d-nary function.
A quick look suggests that this bug was introduced in commit [5557be].
Patch below. I tried to keep with the style of the surrounding code.
~~~
diff --git a/src/nset.lisp b/src/nset.lisp
index d9970b8ed..05ed8f2d9 100644
--- a/src/nset.lisp
+++ b/src/nset.lisp
@@ -1171,8 +1171,10 @@
(funcall opfn s)))
(op-props
- ($apply f ($listify s)))
-
+ (setq s (require-list-or-set s '$xreduce))
+ (unless (eq init 'no-init)
+ (setq s (cons init s)))
+ ($apply f (cons '(mlist) s)))
(t
(rl-reduce f ($listify s) nil init '$xreduce)))))
~~~
I'll commit this patch along with some tests if there are no objections.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Viktor T. <vt...@us...> - 2026-04-27 03:31:19
|
- **status**: open --> wont-fix - **Comment**: Marking this as "won't fix" as the proposed fix interferes with ISHOW's primary function on ASCII displays. The real issue is how a) $TEX promotes trailing digits to subscripts (which, for itensor, is not an issue, really) and b) how ISHOW's output, then, is misprocessed with only the last of several indices being processed by $TEX in this manner (which produces the inconsistent appearance.) But it is not because ISHOW is doing anything it shouldn't (it produces correct output on ASCII terminals, which is its intended behavior) but how front-ends post-process that output. --- **[bugs:#4696] tex and lurkmathml typeset itensor output incorrectly** **Status:** wont-fix **Group:** None **Labels:** tex mathml lurkmathml itensor **Created:** Wed Apr 01, 2026 06:04 PM UTC by Leo Butler **Last Updated:** Fri Apr 24, 2026 01:58 PM UTC **Owner:** Leo Butler **Attachments:** - [itensor.lisp.diff](https://sourceforge.net/p/maxima/bugs/4696/attachment/itensor.lisp.diff) (612 Bytes; text/x-patch) In `hodge.dem`, the input line: ``` ishow(canform(hodge(%))) ``` produces the output (I print the Lisp sexp, because it is otherwise hard to see that `%1 %2 %3 %4` is single symbol): ``` ((MTIMES SIMP) ((RAT SIMP) 1 6) ((MEXPT SIMP) $LEVI_CIVITA #:|$%1 %2 %3 %4|) (($G ARRAY) #:|$%1 %102|) ((|$a| ARRAY) #:|$%2 %3 %4|)) ``` It seems clear that `4` and `102` are **not** subscripts. But both `tex` and `mathml` treat them as such: ``` (mfuncall '$mathml '((MTIMES SIMP) ((RAT SIMP) 1 6) ((MEXPT SIMP) $LEVI_CIVITA #:|$%1 %2 %3 %4|) (($G ARRAY) #:|$%1 %102|) ((|$a| ARRAY) #:|$%2 %3 %4|))) <math xmlns="http://www.w3.org/1998/Math/MathML"> <mfrac><mrow><msub><mrow><mi>g</mi> </mrow><mrow> <msub><mi>%1 %</mi> <mn>102</mn></msub> </mrow></msub> <mspace width="0.16666667em"/><msub><mrow><mi>A</mi> </mrow><mrow> <msub><mi>%2 %3 %</mi> <mn>4</mn></msub> </mrow></msub> <mspace width="0.16666667em"/><msup><mrow><mi>levi_civita</mi> </mrow> <mrow> <msub><mi>%1 %2 %3 %</mi> <mn>4</mn></msub> </mrow></msup> </mrow> <mrow> <mn>6</mn> </mrow></mfrac> </math> ``` and ``` (mfuncall '$tex (caddr +)) $${{g_{{\it \%1 \%}_{102}}\,A_{{\it \%2 \%3 \%}_{4}}\,{\it levi\_civita}^{ {\it \%1 \%2 \%3 \%}_{4}}}\over{6}}$$ ``` We see that both the `4` and `102` are treated as subscripts, which seems wrong. I am inclined to think that the `itensor` output is wrong and instead of constructing a symbol like `#:|$%1 %102|`, it would be better to add a space at the end to prevent subscripting. Patch attached. --- Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Robert D. <rob...@us...> - 2026-04-27 02:13:13
|
- **status**: open --> closed
- **Comment**:
Fixed by commit [ b83d81f ].
---
**[bugs:#4711] Pretty-printer slightly incorrect output for 'product\(...\)**
**Status:** closed
**Group:** None
**Labels:** display2d product
**Created:** Tue Apr 14, 2026 12:55 AM UTC by Robert Dodier
**Last Updated:** Tue Apr 14, 2026 12:55 AM UTC
**Owner:** nobody
(1) `'product(...)` within `box` shows that one of the horizontal placement values is incorrect, as shown by the `box` outline not joining up. There's an off-by-one error somewhere, I guess.
```
(%i15) box ('product (blurf (bazquux, mumble[urgh]), urgh, 1000, 1000 + 'length (mumble)));
╔════════════════════════════════════════════════╗
║ length(mumble) + 1000 ║
║─┬───┬─ ║
║ │ │ ║
(%o15) ║ │ │ blurf(bazquux, mumble )║
║ │ │ urgh ║
║ urgh = 1000 ║
╚════════════════════════════════════════════════╝
```
(2) Probably would be better to center the product symbol under the stuff above and over the stuff below.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Stavros M. <mac...@us...> - 2026-04-26 19:29:07
|
Exactly. Is there any particular reason that **.** and **sconcat** aren't declared nary? In the case of **.**, it seems particularly important both because of **dotident** and **dotassoc**.
---
**[bugs:#4724] xreduce with init arg and declared nary function**
**Status:** open
**Group:** None
**Created:** Sat Apr 25, 2026 05:46 PM UTC by Kris Katterjohn
**Last Updated:** Sun Apr 26, 2026 01:17 AM UTC
**Owner:** Kris Katterjohn
Users can `declare` functions to be nary; below I'll call these "just-`declare`d-nary". `xreduce` also handles certain nary cases specially (like `and`, `or`, `append`, ...); below I'll call these "special-cased-nary". (I'm too lazy to come up with less silly names.)
`xreduce` does not pass a given init arg to just-`declare`d-nary functions, but it does for special-cased-nary functions.
In the examples below `foo` is not nary, `fnary` is just-`declare`d-nary, and (the arbitrarily chosen) `and` is special-cased-nary.
~~~
(%i1) declare (fnary, nary)$
(%i2) xreduce (foo, [], 0); /* correct: the 0 is just returned */
(%o2) 0
(%i3) xreduce (fnary, [], 0); /* wrong: should be fnary(0) */
(%o3) fnary()
(%i4) xreduce ("and", [], 0); /* correct: this is from "and"(0) */
(%o4) 0
(%i5) xreduce (foo, [1, 2, 3], 0); /* correct */
(%o5) foo(foo(foo(0,1),2),3)
(%i6) xreduce (fnary, [1, 2, 3], 0); /* wrong: should be fnary(0,1,2,3) */
(%o6) fnary(1,2,3)
(%i7) xreduce ("and", [1, 2, 3], 0); /* correct */
(%o7) 0 and 1 and 2 and 3
~~~
Regarding the unary cases `%o3` and `%o4`, compare to:
~~~
(%i8) xreduce (fnary, [0]); /* this one is correct */
(%o8) fnary(0)
(%i9) xreduce ("and", [0]); /* again correct: this is also from "and"(0) */
(%o9) 0
~~~
While running the test suite (with share tests), it doesn't seem that `xreduce` is ever called with both an init arg and a just-`declare`d-nary function.
A quick look suggests that this bug was introduced in commit [5557be].
Patch below. I tried to keep with the style of the surrounding code.
~~~
diff --git a/src/nset.lisp b/src/nset.lisp
index d9970b8ed..05ed8f2d9 100644
--- a/src/nset.lisp
+++ b/src/nset.lisp
@@ -1171,8 +1171,10 @@
(funcall opfn s)))
(op-props
- ($apply f ($listify s)))
-
+ (setq s (require-list-or-set s '$xreduce))
+ (unless (eq init 'no-init)
+ (setq s (cons init s)))
+ ($apply f (cons '(mlist) s)))
(t
(rl-reduce f ($listify s) nil init '$xreduce)))))
~~~
I'll commit this patch along with some tests if there are no objections.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Kris K. <kj...@us...> - 2026-04-26 01:17:44
|
Hi Stavros.
I think I might be missing what you're really trying to get at.
I think the results of all of your examples are expected, given that `xreduce` is defined and documented to behave like `lreduce` when given a function without the `nary` property. This includes your `xreduce` examples with `"."` since (as you point out) it doesn't currently have the `nary` property.
Are you asking if we should give more nary functions the `nary` property?
---
**[bugs:#4724] xreduce with init arg and declared nary function**
**Status:** open
**Group:** None
**Created:** Sat Apr 25, 2026 05:46 PM UTC by Kris Katterjohn
**Last Updated:** Sat Apr 25, 2026 09:15 PM UTC
**Owner:** Kris Katterjohn
Users can `declare` functions to be nary; below I'll call these "just-`declare`d-nary". `xreduce` also handles certain nary cases specially (like `and`, `or`, `append`, ...); below I'll call these "special-cased-nary". (I'm too lazy to come up with less silly names.)
`xreduce` does not pass a given init arg to just-`declare`d-nary functions, but it does for special-cased-nary functions.
In the examples below `foo` is not nary, `fnary` is just-`declare`d-nary, and (the arbitrarily chosen) `and` is special-cased-nary.
~~~
(%i1) declare (fnary, nary)$
(%i2) xreduce (foo, [], 0); /* correct: the 0 is just returned */
(%o2) 0
(%i3) xreduce (fnary, [], 0); /* wrong: should be fnary(0) */
(%o3) fnary()
(%i4) xreduce ("and", [], 0); /* correct: this is from "and"(0) */
(%o4) 0
(%i5) xreduce (foo, [1, 2, 3], 0); /* correct */
(%o5) foo(foo(foo(0,1),2),3)
(%i6) xreduce (fnary, [1, 2, 3], 0); /* wrong: should be fnary(0,1,2,3) */
(%o6) fnary(1,2,3)
(%i7) xreduce ("and", [1, 2, 3], 0); /* correct */
(%o7) 0 and 1 and 2 and 3
~~~
Regarding the unary cases `%o3` and `%o4`, compare to:
~~~
(%i8) xreduce (fnary, [0]); /* this one is correct */
(%o8) fnary(0)
(%i9) xreduce ("and", [0]); /* again correct: this is also from "and"(0) */
(%o9) 0
~~~
While running the test suite (with share tests), it doesn't seem that `xreduce` is ever called with both an init arg and a just-`declare`d-nary function.
A quick look suggests that this bug was introduced in commit [5557be].
Patch below. I tried to keep with the style of the surrounding code.
~~~
diff --git a/src/nset.lisp b/src/nset.lisp
index d9970b8ed..05ed8f2d9 100644
--- a/src/nset.lisp
+++ b/src/nset.lisp
@@ -1171,8 +1171,10 @@
(funcall opfn s)))
(op-props
- ($apply f ($listify s)))
-
+ (setq s (require-list-or-set s '$xreduce))
+ (unless (eq init 'no-init)
+ (setq s (cons init s)))
+ ($apply f (cons '(mlist) s)))
(t
(rl-reduce f ($listify s) nil init '$xreduce)))))
~~~
I'll commit this patch along with some tests if there are no objections.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Stavros M. <mac...@us...> - 2026-04-25 21:15:35
|
Kris, thanks for bringing this up. Here are some more edge cases with **xreduce**:
There seem to be some nary functions which aren't declared **nary**, and therefore aren't called with zero arguments:
~~~
sconcat() => ""
xreduce('sconcat,[]) => error
...
"."() => 1
xreduce(".",[]) => error
~~~
The base case of "." depends on **dotident**:
~~~
dotident: 'mydotident$
"."() => mydotident
~~~
Fortunately, "." does the right thing if called as nary even with **dotassoc:false**:
~~~
"."(a,b,c) => a.b.c
dotassoc:false$
"."(a,b,c) => a.(b.c)
~~~
but that isn't consistent with xreduce, which associates to the left:
~~~
xreduce(".",[a,b,c]) => (a.b).c
~~~
So should **xreduce(".", ...)** act like the nary form of **.**, or like **ldreduce** (its usual behavior)?
---
**[bugs:#4724] xreduce with init arg and declared nary function**
**Status:** open
**Group:** None
**Created:** Sat Apr 25, 2026 05:46 PM UTC by Kris Katterjohn
**Last Updated:** Sat Apr 25, 2026 07:14 PM UTC
**Owner:** Kris Katterjohn
Users can `declare` functions to be nary; below I'll call these "just-`declare`d-nary". `xreduce` also handles certain nary cases specially (like `and`, `or`, `append`, ...); below I'll call these "special-cased-nary". (I'm too lazy to come up with less silly names.)
`xreduce` does not pass a given init arg to just-`declare`d-nary functions, but it does for special-cased-nary functions.
In the examples below `foo` is not nary, `fnary` is just-`declare`d-nary, and (the arbitrarily chosen) `and` is special-cased-nary.
~~~
(%i1) declare (fnary, nary)$
(%i2) xreduce (foo, [], 0); /* correct: the 0 is just returned */
(%o2) 0
(%i3) xreduce (fnary, [], 0); /* wrong: should be fnary(0) */
(%o3) fnary()
(%i4) xreduce ("and", [], 0); /* correct: this is from "and"(0) */
(%o4) 0
(%i5) xreduce (foo, [1, 2, 3], 0); /* correct */
(%o5) foo(foo(foo(0,1),2),3)
(%i6) xreduce (fnary, [1, 2, 3], 0); /* wrong: should be fnary(0,1,2,3) */
(%o6) fnary(1,2,3)
(%i7) xreduce ("and", [1, 2, 3], 0); /* correct */
(%o7) 0 and 1 and 2 and 3
~~~
Regarding the unary cases `%o3` and `%o4`, compare to:
~~~
(%i8) xreduce (fnary, [0]); /* this one is correct */
(%o8) fnary(0)
(%i9) xreduce ("and", [0]); /* again correct: this is also from "and"(0) */
(%o9) 0
~~~
While running the test suite (with share tests), it doesn't seem that `xreduce` is ever called with both an init arg and a just-`declare`d-nary function.
A quick look suggests that this bug was introduced in commit [5557be].
Patch below. I tried to keep with the style of the surrounding code.
~~~
diff --git a/src/nset.lisp b/src/nset.lisp
index d9970b8ed..05ed8f2d9 100644
--- a/src/nset.lisp
+++ b/src/nset.lisp
@@ -1171,8 +1171,10 @@
(funcall opfn s)))
(op-props
- ($apply f ($listify s)))
-
+ (setq s (require-list-or-set s '$xreduce))
+ (unless (eq init 'no-init)
+ (setq s (cons init s)))
+ ($apply f (cons '(mlist) s)))
(t
(rl-reduce f ($listify s) nil init '$xreduce)))))
~~~
I'll commit this patch along with some tests if there are no objections.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Kris K. <kj...@us...> - 2026-04-25 19:14:34
|
Thanks Robert. I already have a patch that includes tests for the others as well, but it (like my patch above) appears to be slightly mangled in the "code view" here in the posts. Maybe something I'm doing wrong. I was going to come back later today to try to figure out why before posting, but I'll just go ahead and post it anyway.
This covers `lreduce`, `rreduce`, `xreduce`, and `tree_reduce`, for all of the cases of empty/nonempty lists and with/without init args.
~~~
diff --git a/tests/rtestnset.mac b/tests/rtestnset.mac
index 72c63730d..ae283b19a 100644
--- a/tests/rtestnset.mac
+++ b/tests/rtestnset.mac
@@ -2004,3 +2004,174 @@ true;
is (S1 = apply(op(S1), args(S1)));
true;
+/* Tests related to bug #4724 */
+
+/* In the tests below:
+ *
+ * * foo is not nary
+ * * fnary is declare'd nary
+ * * "and" is nary and handled specially by xreduce
+ */
+
+(kill (foo, fnary),
+ declare (fnary, nary),
+ 0)$
+0$
+
+/* Empty list and no init arg */
+
+errcatch (lreduce (foo, []))$
+[]$
+
+errcatch (lreduce (fnary, []))$
+[]$
+
+errcatch (lreduce ("and", []))$
+[]$
+
+errcatch (rreduce (foo, []))$
+[]$
+
+errcatch (rreduce (fnary, []))$
+[]$
+
+errcatch (rreduce ("and", []))$
+[]$
+
+errcatch (xreduce (foo, []))$
+[]$
+
+xreduce (fnary, [])$
+fnary ()$
+
+xreduce ("and", [])$
+true$
+
+errcatch (tree_reduce (foo, []))$
+[]$
+
+errcatch (tree_reduce (fnary, []))$
+[]$
+
+errcatch (tree_reduce ("and", []))$
+[]$
+
+/* Empty list and init arg */
+
+lreduce (foo, [], 13)$
+13$
+
+lreduce (fnary, [], 13)$
+13$
+
+lreduce ("and", [], 13)$
+13$
+
+rreduce (foo, [], 13)$
+13$
+
+rreduce (fnary, [], 13)$
+13$
+
+rreduce ("and", [], 13)$
+13$
+
+xreduce (foo, [], 13)$
+13$
+
+xreduce (fnary, [], 13)$
+fnary (13)$
+
+xreduce ("and", [], 13)$
+13$
+
+tree_reduce (foo, [], 13)$
+13$
+
+tree_reduce (fnary, [], 13)$
+13$
+
+tree_reduce ("and", [], 13)$
+13$
+
+/* Nonempty list and no init arg */
+
+lreduce (foo, [1, 2, 3, 4])$
+foo (foo (foo (1, 2), 3), 4)$
+
+lreduce (fnary, [1, 2, 3, 4])$
+fnary (1, 2, 3, 4)$
+
+lreduce ("and", [1, 2, 3, 4])$
+1 and 2 and 3 and 4$
+
+rreduce (foo, [1, 2, 3, 4])$
+foo (1, foo (2, foo (3, 4)))$
+
+rreduce (fnary, [1, 2, 3, 4])$
+fnary (1, 2, 3, 4)$
+
+rreduce ("and", [1, 2, 3, 4])$
+1 and 2 and 3 and 4$
+
+xreduce (foo, [1, 2, 3, 4])$
+foo (foo (foo (1, 2), 3), 4)$
+
+xreduce (fnary, [1, 2, 3, 4])$
+fnary (1, 2, 3, 4)$
+
+xreduce ("and", [1, 2, 3, 4])$
+1 and 2 and 3 and 4$
+
+tree_reduce (foo, [1, 2, 3, 4])$
+foo(foo (1, 2), foo (3, 4))$
+
+tree_reduce (fnary, [1, 2, 3, 4])$
+fnary (1, 2, 3, 4)$
+
+tree_reduce ("and", [1, 2, 3, 4])$
+1 and 2 and 3 and 4$
+
+/* Nonempty list and init arg */
+
+lreduce (foo, [1, 2, 3, 4], 13)$
+foo (foo (foo (foo (13, 1), 2), 3), 4)$
+
+lreduce (fnary, [1, 2, 3, 4], 13)$
+fnary (13, 1, 2, 3, 4)$
+
+lreduce ("and", [1, 2, 3, 4], 13)$
+13 and 1 and 2 and 3 and 4$
+
+rreduce (foo, [1, 2, 3, 4], 13)$
+foo (1, foo (2, foo (3, foo (4, 13))))$
+
+rreduce (fnary, [1, 2, 3, 4], 13)$
+fnary (1, 2, 3, 4, 13)$
+
+rreduce ("and", [1, 2, 3, 4], 13)$
+1 and 2 and 3 and 4 and 13$
+
+xreduce (foo, [1, 2, 3, 4], 13)$
+foo (foo (foo (foo (13, 1), 2), 3), 4)$
+
+xreduce (fnary, [1, 2, 3, 4], 13)$
+fnary (13, 1, 2, 3, 4)$
+
+xreduce ("and", [1, 2, 3, 4], 13)$
+13 and 1 and 2 and 3 and 4$
+
+tree_reduce (foo, [1, 2, 3, 4], 13)$
+foo(foo (foo (13, 1), foo (2, 3)), 4)$
+
+tree_reduce (fnary, [1, 2, 3, 4], 13)$
+fnary (13, 1, 2, 3, 4)$
+
+tree_reduce ("and", [1, 2, 3, 4], 13)$
+13 and 1 and 2 and 3 and 4$
+
+(kill (fnary), 0)$
+0$
+
+/* End of tests related to bug #4724 */
+
~~~
---
**[bugs:#4724] xreduce with init arg and declared nary function**
**Status:** open
**Group:** None
**Created:** Sat Apr 25, 2026 05:46 PM UTC by Kris Katterjohn
**Last Updated:** Sat Apr 25, 2026 06:40 PM UTC
**Owner:** Kris Katterjohn
Users can `declare` functions to be nary; below I'll call these "just-`declare`d-nary". `xreduce` also handles certain nary cases specially (like `and`, `or`, `append`, ...); below I'll call these "special-cased-nary". (I'm too lazy to come up with less silly names.)
`xreduce` does not pass a given init arg to just-`declare`d-nary functions, but it does for special-cased-nary functions.
In the examples below `foo` is not nary, `fnary` is just-`declare`d-nary, and (the arbitrarily chosen) `and` is special-cased-nary.
~~~
(%i1) declare (fnary, nary)$
(%i2) xreduce (foo, [], 0); /* correct: the 0 is just returned */
(%o2) 0
(%i3) xreduce (fnary, [], 0); /* wrong: should be fnary(0) */
(%o3) fnary()
(%i4) xreduce ("and", [], 0); /* correct: this is from "and"(0) */
(%o4) 0
(%i5) xreduce (foo, [1, 2, 3], 0); /* correct */
(%o5) foo(foo(foo(0,1),2),3)
(%i6) xreduce (fnary, [1, 2, 3], 0); /* wrong: should be fnary(0,1,2,3) */
(%o6) fnary(1,2,3)
(%i7) xreduce ("and", [1, 2, 3], 0); /* correct */
(%o7) 0 and 1 and 2 and 3
~~~
Regarding the unary cases `%o3` and `%o4`, compare to:
~~~
(%i8) xreduce (fnary, [0]); /* this one is correct */
(%o8) fnary(0)
(%i9) xreduce ("and", [0]); /* again correct: this is also from "and"(0) */
(%o9) 0
~~~
While running the test suite (with share tests), it doesn't seem that `xreduce` is ever called with both an init arg and a just-`declare`d-nary function.
A quick look suggests that this bug was introduced in commit [5557be].
Patch below. I tried to keep with the style of the surrounding code.
~~~
diff --git a/src/nset.lisp b/src/nset.lisp
index d9970b8ed..05ed8f2d9 100644
--- a/src/nset.lisp
+++ b/src/nset.lisp
@@ -1171,8 +1171,10 @@
(funcall opfn s)))
(op-props
- ($apply f ($listify s)))
-
+ (setq s (require-list-or-set s '$xreduce))
+ (unless (eq init 'no-init)
+ (setq s (cons init s)))
+ ($apply f (cons '(mlist) s)))
(t
(rl-reduce f ($listify s) nil init '$xreduce)))))
~~~
I'll commit this patch along with some tests if there are no objections.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Robert D. <rob...@us...> - 2026-04-25 18:40:32
|
Agreed that user-defined and built-in operators should act the same.
I see that `lreduce`, `rreduce`, and `tree_reduce` also take an initial value as an argument. Maybe while we're at it, we can ensure that those have the same behavior as `xreduce`.
---
**[bugs:#4724] xreduce with init arg and declared nary function**
**Status:** open
**Group:** None
**Created:** Sat Apr 25, 2026 05:46 PM UTC by Kris Katterjohn
**Last Updated:** Sat Apr 25, 2026 05:46 PM UTC
**Owner:** Kris Katterjohn
Users can `declare` functions to be nary; below I'll call these "just-`declare`d-nary". `xreduce` also handles certain nary cases specially (like `and`, `or`, `append`, ...); below I'll call these "special-cased-nary". (I'm too lazy to come up with less silly names.)
`xreduce` does not pass a given init arg to just-`declare`d-nary functions, but it does for special-cased-nary functions.
In the examples below `foo` is not nary, `fnary` is just-`declare`d-nary, and (the arbitrarily chosen) `and` is special-cased-nary.
~~~
(%i1) declare (fnary, nary)$
(%i2) xreduce (foo, [], 0); /* correct: the 0 is just returned */
(%o2) 0
(%i3) xreduce (fnary, [], 0); /* wrong: should be fnary(0) */
(%o3) fnary()
(%i4) xreduce ("and", [], 0); /* correct: this is from "and"(0) */
(%o4) 0
(%i5) xreduce (foo, [1, 2, 3], 0); /* correct */
(%o5) foo(foo(foo(0,1),2),3)
(%i6) xreduce (fnary, [1, 2, 3], 0); /* wrong: should be fnary(0,1,2,3) */
(%o6) fnary(1,2,3)
(%i7) xreduce ("and", [1, 2, 3], 0); /* correct */
(%o7) 0 and 1 and 2 and 3
~~~
Regarding the unary cases `%o3` and `%o4`, compare to:
~~~
(%i8) xreduce (fnary, [0]); /* this one is correct */
(%o8) fnary(0)
(%i9) xreduce ("and", [0]); /* again correct: this is also from "and"(0) */
(%o9) 0
~~~
While running the test suite (with share tests), it doesn't seem that `xreduce` is ever called with both an init arg and a just-`declare`d-nary function.
A quick look suggests that this bug was introduced in commit [5557be].
Patch below. I tried to keep with the style of the surrounding code.
~~~
diff --git a/src/nset.lisp b/src/nset.lisp
index d9970b8ed..05ed8f2d9 100644
--- a/src/nset.lisp
+++ b/src/nset.lisp
@@ -1171,8 +1171,10 @@
(funcall opfn s)))
(op-props
- ($apply f ($listify s)))
-
+ (setq s (require-list-or-set s '$xreduce))
+ (unless (eq init 'no-init)
+ (setq s (cons init s)))
+ ($apply f (cons '(mlist) s)))
(t
(rl-reduce f ($listify s) nil init '$xreduce)))))
~~~
I'll commit this patch along with some tests if there are no objections.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Kris K. <kj...@us...> - 2026-04-25 17:46:18
|
---
**[bugs:#4724] xreduce with init arg and declared nary function**
**Status:** open
**Group:** None
**Created:** Sat Apr 25, 2026 05:46 PM UTC by Kris Katterjohn
**Last Updated:** Sat Apr 25, 2026 05:46 PM UTC
**Owner:** Kris Katterjohn
Users can `declare` functions to be nary; below I'll call these "just-`declare`d-nary". `xreduce` also handles certain nary cases specially (like `and`, `or`, `append`, ...); below I'll call these "special-cased-nary". (I'm too lazy to come up with less silly names.)
`xreduce` does not pass a given init arg to just-`declare`d-nary functions, but it does for special-cased-nary functions.
In the examples below `foo` is not nary, `fnary` is just-`declare`d-nary, and (the arbitrarily chosen) `and` is special-cased-nary.
~~~
(%i1) declare (fnary, nary)$
(%i2) xreduce (foo, [], 0); /* correct: the 0 is just returned */
(%o2) 0
(%i3) xreduce (fnary, [], 0); /* wrong: should be fnary(0) */
(%o3) fnary()
(%i4) xreduce ("and", [], 0); /* correct: this is from "and"(0) */
(%o4) 0
(%i5) xreduce (foo, [1, 2, 3], 0); /* correct */
(%o5) foo(foo(foo(0,1),2),3)
(%i6) xreduce (fnary, [1, 2, 3], 0); /* wrong: should be fnary(0,1,2,3) */
(%o6) fnary(1,2,3)
(%i7) xreduce ("and", [1, 2, 3], 0); /* correct */
(%o7) 0 and 1 and 2 and 3
~~~
Regarding the unary cases `%o3` and `%o4`, compare to:
~~~
(%i8) xreduce (fnary, [0]); /* this one is correct */
(%o8) fnary(0)
(%i9) xreduce ("and", [0]); /* again correct: this is also from "and"(0) */
(%o9) 0
~~~
While running the test suite (with share tests), it doesn't seem that `xreduce` is ever called with both an init arg and a just-`declare`d-nary function.
A quick look suggests that this bug was introduced in commit [5557be].
Patch below. I tried to keep with the style of the surrounding code.
~~~
diff --git a/src/nset.lisp b/src/nset.lisp
index d9970b8ed..05ed8f2d9 100644
--- a/src/nset.lisp
+++ b/src/nset.lisp
@@ -1171,8 +1171,10 @@
(funcall opfn s)))
(op-props
- ($apply f ($listify s)))
-
+ (setq s (require-list-or-set s '$xreduce))
+ (unless (eq init 'no-init)
+ (setq s (cons init s)))
+ ($apply f (cons '(mlist) s)))
(t
(rl-reduce f ($listify s) nil init '$xreduce)))))
~~~
I'll commit this patch along with some tests if there are no objections.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Raymond T. <rt...@us...> - 2026-04-24 20:23:07
|
Not familiar with the discussion thing, but if it's not a bug, why not just use the mailing list? I think there are far more readers on the list than users who will look at bug reports.
---
**[bugs:#4723] NOT a bug but discuss : how to get maxima to auto express in all real form**
**Status:** open
**Group:** None
**Created:** Fri Apr 24, 2026 03:25 PM UTC by dan hayes
**Last Updated:** Fri Apr 24, 2026 07:31 PM UTC
**Owner:** nobody
something wrong with that source forge discuss says i do not have permission to post in any forums so i can only place this discussion request in bugs section. Anyway
WxMaxima version: 26.01.0_MSW
Using wxWidgets version: wxWidgets 3.2.9
Maxima version: 5.49.0
Maxima build date: 2026-01-02 21:27:51
Host type: x86_64-w64-mingw32
System type: Win32 10.0.19041 X86-64
Lisp implementation type: SBCL
Lisp implementation version: 2.6.0
Why does maxima often insist on putting things in a complex or with a %i multiplier when the obvious expression one wants is all real.
Maxima often does this in many other cases i have used. For example :
(assume_pos:true, file_output_append:true, ratprint:false, showtime:true,load(simplify_sum),intanalysis:false
, simpsum:true, load("lrats"),letrat:true,ratfac:true,algebraic:true,rootsconmode=super,algexact:true,fpprintprec:4);
assume(c0<2,c0>0,ws>-1,ws<1)
[t:1/sqrt(1+sqrt(1-ws^2)*(1-c0)),ty:taylor(t,ws,0,2)]
and maxima gives ty as -(sqrt(c0-2)*%i/(c0-2)-%i*(c0-1)*ws^2/(4*sqrt(c0-2)*(c0-2))+... which is correct but obviously not in the form
desired.Which is one reason i put in the assume(c0<2,c0>0,ws>-1,ws<1) so maxima should automatic make all real by using sqrt(2-c0)
instead of sqrt(c0-2). NOw ofcourse i can make the first term real by doing
ty:subst(sqrt(c0-2)=-%i*sqrt(2-c0),ty)
but right off hand i am not sure what branch of sqrt(-1) to use to transform the 2nd term which maxima gives as
-%i*(c0-1)*ws^2/(4*(c0-2)^(3/2)) to change it to all real only form of +or- (c0-1)*ws^2/(4*(2-c0)^(3/2))
YEA i could do some "dog work" analysis and figure out whether it should be + or minus but the point is maxima should have put all
in real only form so i wouldn't be plagued by having to this extra work. So is there a way to make it so maxima automatically puts out
the desired all real only form in all cases such as this. I even tried taylor_simplifier(ty) and that did not
make all real either and nor did taytorat make all real . So what is the proper command or option to give so that maxima always does
gives the all real form. I tried using lratsubst instead of just subst in places but that did not help either. If there is no convenient short
direct way with possible option flags etc. to do this then i want to propose a feature request.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: Raymond T. <rt...@us...> - 2026-04-24 20:21:09
|
Complete directory path is fine. My suggestion was only for how I was using it. You clearly have something more interesting to do where the current scheme is better. --- **[bugs:#4721] test-directory-cached is slow** **Status:** open **Group:** None **Created:** Wed Apr 22, 2026 06:27 PM UTC by Dan Gildea **Last Updated:** Fri Apr 24, 2026 05:41 PM UTC **Owner:** nobody I recently found that tests that previously took <1 sec were taking 7 or so seconds. On digging around, the problem is that the load file routines are accessing all files under .maxima/test-directory-cached. I have hundreds of files of the form .maxima/test-directory-cached/branch_5_49_base_99_g71f2de25e that I didn't even know about. Clearing all these files makes things nice and zippy again - but I shouldn't have to do that. --- Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/ To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: dan h. <zm...@us...> - 2026-04-24 19:31:36
|
Ok answer to your question. Yes i set radexpand:false and it did give all real form,thanks.
Though the documentation that i have in maxima help reads...
If radexpand is false, or radexpand is true and domain is complex, sqrt(x^2) is not simplified.
So then i should expect sqrt(x^2) to NOT be simplified but maxima output was just x. Interesting,
I wonder if any of text in my preface:
(assume_pos:true, file_output_append:true, ratprint:false, showtime:true, load(simplify_sum), intanalysis:false, simpsum:true, load("lrats"), letrat:true, ratfac:true, algebraic:true,rootsconmode=super,algexact:true,fpprintprec:4);
has anything to do with it ?
---
**[bugs:#4723] NOT a bug but discuss : how to get maxima to auto express in all real form**
**Status:** open
**Group:** None
**Created:** Fri Apr 24, 2026 03:25 PM UTC by dan hayes
**Last Updated:** Fri Apr 24, 2026 07:07 PM UTC
**Owner:** nobody
something wrong with that source forge discuss says i do not have permission to post in any forums so i can only place this discussion request in bugs section. Anyway
WxMaxima version: 26.01.0_MSW
Using wxWidgets version: wxWidgets 3.2.9
Maxima version: 5.49.0
Maxima build date: 2026-01-02 21:27:51
Host type: x86_64-w64-mingw32
System type: Win32 10.0.19041 X86-64
Lisp implementation type: SBCL
Lisp implementation version: 2.6.0
Why does maxima often insist on putting things in a complex or with a %i multiplier when the obvious expression one wants is all real.
Maxima often does this in many other cases i have used. For example :
(assume_pos:true, file_output_append:true, ratprint:false, showtime:true,load(simplify_sum),intanalysis:false
, simpsum:true, load("lrats"),letrat:true,ratfac:true,algebraic:true,rootsconmode=super,algexact:true,fpprintprec:4);
assume(c0<2,c0>0,ws>-1,ws<1)
[t:1/sqrt(1+sqrt(1-ws^2)*(1-c0)),ty:taylor(t,ws,0,2)]
and maxima gives ty as -(sqrt(c0-2)*%i/(c0-2)-%i*(c0-1)*ws^2/(4*sqrt(c0-2)*(c0-2))+... which is correct but obviously not in the form
desired.Which is one reason i put in the assume(c0<2,c0>0,ws>-1,ws<1) so maxima should automatic make all real by using sqrt(2-c0)
instead of sqrt(c0-2). NOw ofcourse i can make the first term real by doing
ty:subst(sqrt(c0-2)=-%i*sqrt(2-c0),ty)
but right off hand i am not sure what branch of sqrt(-1) to use to transform the 2nd term which maxima gives as
-%i*(c0-1)*ws^2/(4*(c0-2)^(3/2)) to change it to all real only form of +or- (c0-1)*ws^2/(4*(2-c0)^(3/2))
YEA i could do some "dog work" analysis and figure out whether it should be + or minus but the point is maxima should have put all
in real only form so i wouldn't be plagued by having to this extra work. So is there a way to make it so maxima automatically puts out
the desired all real only form in all cases such as this. I even tried taylor_simplifier(ty) and that did not
make all real either and nor did taytorat make all real . So what is the proper command or option to give so that maxima always does
gives the all real form. I tried using lratsubst instead of just subst in places but that did not help either. If there is no convenient short
direct way with possible option flags etc. to do this then i want to propose a feature request.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |
|
From: dan h. <zm...@us...> - 2026-04-24 19:07:10
|
When do the equivalent by just taking derivatives and set ws=0 obtain :
[t:1/sqrt(1+(1-c0)*sqrt(1-ws^2)),subst(ws=0,diff(t,ws,0))+subst(ws=0,diff(t,ws,2)/2)*ws^2];
which at least in my computer output is in direct all real form, with NO %i....'s terms. Why is it inconsistent when go to taking taylor(....) ? NOte i did NOT do radexpand:false first which was default true.
---
**[bugs:#4723] NOT a bug but discuss : how to get maxima to auto express in all real form**
**Status:** open
**Group:** None
**Created:** Fri Apr 24, 2026 03:25 PM UTC by dan hayes
**Last Updated:** Fri Apr 24, 2026 06:41 PM UTC
**Owner:** nobody
something wrong with that source forge discuss says i do not have permission to post in any forums so i can only place this discussion request in bugs section. Anyway
WxMaxima version: 26.01.0_MSW
Using wxWidgets version: wxWidgets 3.2.9
Maxima version: 5.49.0
Maxima build date: 2026-01-02 21:27:51
Host type: x86_64-w64-mingw32
System type: Win32 10.0.19041 X86-64
Lisp implementation type: SBCL
Lisp implementation version: 2.6.0
Why does maxima often insist on putting things in a complex or with a %i multiplier when the obvious expression one wants is all real.
Maxima often does this in many other cases i have used. For example :
(assume_pos:true, file_output_append:true, ratprint:false, showtime:true,load(simplify_sum),intanalysis:false
, simpsum:true, load("lrats"),letrat:true,ratfac:true,algebraic:true,rootsconmode=super,algexact:true,fpprintprec:4);
assume(c0<2,c0>0,ws>-1,ws<1)
[t:1/sqrt(1+sqrt(1-ws^2)*(1-c0)),ty:taylor(t,ws,0,2)]
and maxima gives ty as -(sqrt(c0-2)*%i/(c0-2)-%i*(c0-1)*ws^2/(4*sqrt(c0-2)*(c0-2))+... which is correct but obviously not in the form
desired.Which is one reason i put in the assume(c0<2,c0>0,ws>-1,ws<1) so maxima should automatic make all real by using sqrt(2-c0)
instead of sqrt(c0-2). NOw ofcourse i can make the first term real by doing
ty:subst(sqrt(c0-2)=-%i*sqrt(2-c0),ty)
but right off hand i am not sure what branch of sqrt(-1) to use to transform the 2nd term which maxima gives as
-%i*(c0-1)*ws^2/(4*(c0-2)^(3/2)) to change it to all real only form of +or- (c0-1)*ws^2/(4*(2-c0)^(3/2))
YEA i could do some "dog work" analysis and figure out whether it should be + or minus but the point is maxima should have put all
in real only form so i wouldn't be plagued by having to this extra work. So is there a way to make it so maxima automatically puts out
the desired all real only form in all cases such as this. I even tried taylor_simplifier(ty) and that did not
make all real either and nor did taytorat make all real . So what is the proper command or option to give so that maxima always does
gives the all real form. I tried using lratsubst instead of just subst in places but that did not help either. If there is no convenient short
direct way with possible option flags etc. to do this then i want to propose a feature request.
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |