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
(234) |
May
(157) |
Jun
(198) |
Jul
(220) |
Aug
(581) |
Sep
(645) |
Oct
(301) |
Nov
|
Dec
|
|
From: David S. <tom...@us...> - 2026-10-26 08:22:14
|
--- **[bugs:#5717] limit\(\) returns ind when the one-sided limits are different forms of the same number** **Status:** open **Group:** None **Labels:** limit **Created:** Mon Oct 26, 2026 08:22 AM UTC by David Scherfgen **Last Updated:** Mon Oct 26, 2026 08:22 AM UTC **Owner:** nobody By Claude: `limit()` computes a two-sided limit from both sides. When the two come out as different forms of the same number, it does not see that they are equal and returns `ind`: ``` (%i1) f : unit_step(x)*%e^(log(6)/2) + unit_step(-x)*sqrt(6)$ (%i2) [limit(f, x, 0, plus), limit(f, x, 0, minus), limit(f, x, 0)]; (%o2) [%e^(log(6)/2),sqrt(2)*sqrt(3),ind] (%i3) g : unit_step(x)*%e^(log(x + 3)/3)/3 + unit_step(-x)/(x + 9)^(1/3)$ (%i4) [limit(g, x, 0, plus), limit(g, x, 0, minus), limit(g, x, 0)]; (%o4) [%e^(log(3)/3)/3,1/9^(1/3),ind] ``` `%e^(log(6)/2)` is `sqrt(6)` and `%e^(log(3)/3)/3` is `1/9^(1/3)`, so both limits exist. For the same reason `limit()` does not see that a numerator vanishes: ``` (%i5) limit((x^(1/3)*%e^(log(x)/3) - 9^(1/3))/(x - 3), x, 3); (%o5) infinity ``` The numerator is `x^(2/3) - 9^(1/3)`, which is `0` at `x = 3`, so the limit is the derivative of `x^(2/3)` there, `2/3^(4/3)`. --- 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-10-26 04:23:00
|
I bumped into another example today, in which restoring from `save(..., all)` changes the properties of MNCTIMES and therefore causes previously-acceptable `.12345` to trigger a syntax error. See comment referring to bug #3047 in tests/rtestdefstruct.mac.
---
**[bugs:#3047] 'save' saves some built-in stuff**
**Status:** open
**Group:** None
**Labels:** save
**Created:** Thu Nov 12, 2015 08:11 PM UTC by Robert Dodier
**Last Updated:** Thu Nov 12, 2015 08:11 PM UTC
**Owner:** nobody
`save` should save only used-defined stuff, and not any built-in stuff. But `save` saves stuff related to sets and some function properties. E.g. Without any user-defined functions or variables, the saved file should be almost empty , but here's what I get at present for `save("/tmp/foo.lisp", all)`:
~~~~
;;; -*- Mode: LISP; package:maxima; syntax:common-lisp; -*-
(in-package :maxima)
(DSKSETQ $%I1 '(($SAVE) "/tmp/foo.lisp" $ALL))
(ADDLABEL '$%I1)
(MDEFPROP $NSET (NIL $VERSION 1.21) $PROPS)
(ADD2LNC '$NSET $PROPS)
(DEFPROP ${ %{ VERB)
(DEFPROP ${ "{" OP)
(SETF (GETHASH "{" *OPR-TABLE*) '${)
(ADD2LNC '"{" $PROPS)
(DEFINE-SYMBOL '"{")
(SETQ *MOPL* (CONS '"{" *MOPL*))
(DEFPROP ${ DIMENSION-MATCH DIMENSION)
(DEFPROP ${ ((#\{) #\}) DISSYM)
(DEFPROP ${ MSIZE-MATCHFIX GRIND)
(DEFPROP ${ 200. LBP)
(DEFPROP ${ PARSE-MATCHFIX NUD)
(DEFPROP %{ DIMENSION-MATCH DIMENSION)
(DEFPROP %{ ((#\{) #\}) DISSYM)
(DEFPROP ${ $} MATCH)
(DEFPROP $} "}" OP)
(SETF (GETHASH "}" *OPR-TABLE*) '$})
(ADD2LNC '"}" $PROPS)
(DEFINE-SYMBOL '"}")
(SETQ *MOPL* (CONS '"}" *MOPL*))
(DEFPROP $} 5. LBP)
(DEFPROP $} DELIM-ERR NUD)
(DEFPROP $} ERB-ERR LED)
(DEFPROP %{ ${ NOUN)
(MDEFPROP $TRYLEVEL (NIL $MAXMIN 1.) $PROPS)
(ADD2LNC '$TRYLEVEL $PROPS)
(MDEFPROP $MAXMIN (NIL $VERSION 1.) $PROPS)
(ADD2LNC '$MAXMIN $PROPS)
(MDEFPROP $NUMMOD (NIL $VERSION 3.) $PROPS)
(ADD2LNC '$NUMMOD $PROPS)
(DEFPROP $CONJUGATE SIMP-CONJUGATE OPERATORS)
(ADD2LNC '$CONJUGATE $PROPS)
(MDEFPROP $CONJUGATE (NIL $VERSION 1.) $PROPS)
(ADD2LNC '$CONJUGATE $PROPS)
(DEFPROP %ERF_GENERALIZED $ERF_GENERALIZED NOUN)
(DEFPROP %ERF_GENERALIZED SIMP-ERF-GENERALIZED OPERATORS)
(ADD2LNC '%ERF_GENERALIZED $PROPS)
(DEFPROP %ERF_GENERALIZED T OPERS)
(ADD2LNC '%ERF_GENERALIZED $PROPS)
(DEFPROP %ERF_GENERALIZED T $ANTISYMMETRIC)
(ADD2LNC '%ERF_GENERALIZED $PROPS)
(DEFPROP $ERF_GENERALIZED %ERF_GENERALIZED VERB)
(DEFPROP $BETA SIMPBETA OPERATORS)
(ADD2LNC '$BETA $PROPS)
(DEFPROP $BETA T OPERS)
(ADD2LNC '$BETA $PROPS)
(DEFPROP $BETA T $SYMMETRIC)
(ADD2LNC '$BETA $PROPS)
(SETQ $LINENUM 1.)
(SETQ *ALPHABET* (NCONC '(#\_ #\%) *ALPHABET*))
(ADD2LNC '$INTEGERVALUED $FEATURES)
~~~~
---
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-10-26 04:19:54
|
- **labels**: Lisp Core --> arrays, display, make\_array - **Group**: --> None --- **[bugs:#520] make\_array arrays not well integrated** **Status:** open **Group:** None **Labels:** arrays display make\_array **Created:** Tue Feb 24, 2004 01:31 AM UTC by Stavros Macrakis **Last Updated:** Mon Jul 24, 2006 02:12 AM UTC **Owner:** nobody make\_array arrays are useful but ugly. They don't print properly: ar: make\_array\(any,3\)$ ar\[1\]: sin\(x\)$ ar => \#\(NIL \(\(%SIN SIMP\) $x\) NIL\) and even worse: string\(ar\) => ?\\\#\\\(NIL\ \\\(\\\(\%SIN\ SIMP\\\)\ \$x\\\)\ NIL\\\) There is no way to write a constant array, so you can't save it in Maxima form. It's a pity that the function name "array" is taken... but we could define the external form of an array to be something like: array\_constant\( <<type and maybe size>>, \[ ...contents... \] \) e.g. array\_constant\(any,\[2,3,4\]\) is the same as block\(\[arr\],arr:make\_array\(any,3\), for i:0 thru 2 do arr\[i\]:\[2,3,4\]\[i\]\) etc. --- 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-10-25 15:09:02
|
- **status**: open --> closed - **assigned_to**: Raymond Toy - **Comment**: Fixed by commit [400842] by merging branch bug-5693-elliptic-pi-pv --- **[bugs:#5693] elliptic\_pi does not compute the principal value** **Status:** closed **Group:** None **Labels:** elliptic\_pi **Created:** Wed Oct 21, 2026 04:22 PM UTC by Raymond Toy **Last Updated:** Wed Oct 21, 2026 04:22 PM UTC **Owner:** Raymond Toy elliptic_pi does not produce the principal value. See the [mailing list](https://sourceforge.net/p/maxima/mailman/message/59155605/) for further discussions, but ``` elliptic_pi(1.5, float(%pi/2), 0.5); -0.4567203134529103 ``` Wolfram says it should be `-0.45672031345 - 2.72069904635*i`. So we have the correct real part but don't compute the imaginary part. --- 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: David S. <tom...@us...> - 2026-10-25 15:05:25
|
--- **[bugs:#5716] diff\(\) of gamma\_incomplete\(\) and similar functions is wrong for z < 0 with domain : real** **Status:** open **Group:** None **Labels:** diff gamma\_incomplete domain real **Created:** Sun Oct 25, 2026 03:05 PM UTC by David Scherfgen **Last Updated:** Sun Oct 25, 2026 03:05 PM UTC **Owner:** nobody By Claude: With `domain : real`, the default, `(-8)^(1/3)` is the real root `-2`. `gamma_incomplete(a,z)` is on the principal branch, but its derivative `-%e^-z*z^(a-1)` is simplified with the real root, so it is wrong for `z < 0`: ``` (%i1) d : diff(gamma_incomplete(1/3, z), z); (%o1) -%e^-z/z^(2/3) (%i2) float(rectform(subst(z = -8, d))); (%o2) -745.2394967604321 ``` The right value is `%e^8*(1+sqrt(3)*%i)/8`, about `372.62+645.40*%i`, which a numerical derivative of `gamma_incomplete(1/3, z)` at `z = -8` confirms. The same happens for an argument that is negative for `x > 0`: ``` (%i3) diff(gamma_incomplete(1/3, -x^3), x); (%o3) 3*%e^x^3 ``` For `x > 0` this should be `3*%e^x^3*(-1/2-sqrt(3)*%i/2)`. `gamma_incomplete_lower`, `gamma_incomplete_regularized`, `gamma_incomplete_generalized`, `beta_incomplete`, `beta_incomplete_regularized`, `beta_incomplete_generalized`, `struve_h` and `struve_l` have the same problem in their derivatives. --- 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-10-25 14:56:43
|
--- **[bugs:#5715] elliptic\_eu incorrect and inaccurate** **Status:** open **Group:** None **Labels:** elliptic\_eu **Created:** Sun Oct 25, 2026 02:56 PM UTC by Raymond Toy **Last Updated:** Sun Oct 25, 2026 02:56 PM UTC **Owner:** nobody `elliptic_eu` is inaccurate or just incorrect. Claude found these issues: Call | Maxima | Correct ---------- | ---------- | ------ elliptic_eu(-0.5, 0.5) | −2.66111 | −0.48063 elliptic_eu(5.0, 0.5) | 1.64653 | 3.75604 elliptic_eu(4.0, -2.0) | 6.69507 | 7.82517 elliptic_eu(-0.5+0.5*%i, 0.5) | real part −2.715 | −0.5347 elliptic_eu(0.3+5*%i, 0.5) | imaginary part 4.72 | 2.613 --- 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-10-25 14:53:23
|
- **status**: open --> closed - **assigned_to**: Raymond Toy - **Comment**: Fixed in [6eb8e9] --- **[bugs:#5714] elliptic\_eu doesn't work with bigfloats** **Status:** closed **Group:** None **Labels:** elliptic\_eu **Created:** Sun Oct 25, 2026 01:50 PM UTC by Raymond Toy **Last Updated:** Sun Oct 25, 2026 01:50 PM UTC **Owner:** Raymond Toy `elliptic_eu` doesn't accept bigfloat numbers. Looking at the code shows that it's pretty obvious why. So moving it into the bigfloat package and adding the test for bigfloat eval should fix 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: Raymond T. <rt...@us...> - 2026-10-25 13:50:11
|
--- **[bugs:#5714] elliptic\_eu doesn't work with bigfloats** **Status:** open **Group:** None **Labels:** elliptic\_eu **Created:** Sun Oct 25, 2026 01:50 PM UTC by Raymond Toy **Last Updated:** Sun Oct 25, 2026 01:50 PM UTC **Owner:** nobody `elliptic_eu` doesn't accept bigfloat numbers. Looking at the code shows that it's pretty obvious why. So moving it into the bigfloat package and adding the test for bigfloat eval should fix 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: David S. <tom...@us...> - 2026-10-25 09:30:42
|
- **status**: open --> closed - **Comment**: Fixed by commit [884d71]. --- **[bugs:#5713] %i^\(2/3\) simplifies to -1** **Status:** closed **Group:** None **Labels:** simplification simpexpt **Created:** Sun Oct 25, 2026 09:10 AM UTC by David Scherfgen **Last Updated:** Sun Oct 25, 2026 09:10 AM UTC **Owner:** nobody Under the default `domain : real`, `%i^(2/3)` incorrectly simplifies to `-1`. --- 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: David S. <tom...@us...> - 2026-10-25 09:10:33
|
--- **[bugs:#5713] %i^\(2/3\) simplifies to -1** **Status:** open **Group:** None **Labels:** simplification simpexpt **Created:** Sun Oct 25, 2026 09:10 AM UTC by David Scherfgen **Last Updated:** Sun Oct 25, 2026 09:10 AM UTC **Owner:** nobody Under the default `domain : real`, `%i^(2/3)` incorrectly simplifies to `-1`. --- 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: David S. <tom...@us...> - 2026-10-25 09:01:28
|
- Description has changed: Diff: ~~~~ ~~~~ - **status**: open --> closed - **Priority**: --> 5 - **Comment**: Fixed by commit [30638c]. --- **[bugs:#5294] diff\(struve\_h\(v,t\),t\) and diff\(struve\_l\(v,t\),t\) contain x^v instead of t^v** **Status:** closed **Group:** Includes\_proposed\_fix **Labels:** Claude trivial bug bessel.lisp **Created:** Sun Sep 27, 2026 08:34 AM UTC by David Scherfgen **Last Updated:** Sun Sep 27, 2026 12:31 PM UTC **Owner:** nobody This bug was discovered by Claude Opus 5.5 and reproduced on Maxima Git commit c62924c (2026-09-26) with SBCL 2.2.9. **Where:** `src/bessel.lisp`, DEFGRAD %STRUVE\_H, DEFGRAD %STRUVE\_L The derivative templates use x^v, but the DEFGRAD placeholders are $v and $z, so x is a literal free symbol instead of the argument. The result is only right when the variable happens to be named x; struve\_l has the same error. ### Steps 1. Verify that the existing behavior is incorrect: run the reproducer below; it gives the result under "Before the fix". Judge for yourself that this is wrong instead of relying on the ticket: where the bug allows it, try some related inputs of your own, or check the result another way, for example numerically or against the documentation. 2. Edit the file `src/bessel.lisp` as described under "Fix". 3. Rebuild Maxima. 4. Verify that the behavior is now correct: the reproducer gives the result under "Correct result". Judge for yourself that this is right, not only that it matches: where the bug allows it, try some related inputs of your own, including some that the fix should leave unchanged. 5. Add the test case(s) under "Test cases" to `tests/rtest16.mac`, just before the block "Leave this at the end of the file!" at its end. 6. Run the complete test suite, share tests included (`make check`, or `run_testsuite(share_tests=true);` in `./maxima-local`), and check that the change breaks no test. Failures that also occur without the change (a run on the unchanged build shows which) are pre-existing and can be ignored. 7. Add the line `* \#5294 diff(struve_h(v,t),t) and diff(struve_l(v,t),t) contain x^v instead of t^v` to `ChangeLog`, under "Bug fixes for numbered bugs:". 8. Commit the fix; a proposed Git commit message is under "Commit message". 9. Push the commit. Then set this ticket's status to "closed" and add a comment naming the commit, for example `Fixed by commit [1a2b3c].`, with the first six characters of the commit's SHA in the brackets (`git rev-parse HEAD | cut -c1-6` prints them). SourceForge links this to the commit. ### Reproducer ``` diff(struve_h(v,t),t); ``` Before the fix: ``` (x^v/(2^v*sqrt(%pi)*gamma(v+3/2))-struve_h(v+1,t)+struve_h(v-1,t))/2 ``` Correct result: ``` (t^v/(2^v*sqrt(%pi)*gamma(v+3/2))-struve_h(v+1,t)+struve_h(v-1,t))/2 ``` ### Fix In `src/bessel.lisp` (DEFGRAD %STRUVE\_H, search for "-struve\_h(v+1,z)+struve\_h(v-1,z))/2$"), replace ``` #$$ (x^v/(2^v*sqrt(%pi)*gamma(v+3/2))-struve_h(v+1,z)+struve_h(v-1,z))/2$ ``` with ``` #$$ (z^v/(2^v*sqrt(%pi)*gamma(v+3/2))-struve_h(v+1,z)+struve_h(v-1,z))/2$ ``` In `src/bessel.lisp` (DEFGRAD %STRUVE\_L, search for "+struve\_l(v+1,z)+struve\_l(v-1,z))/2$"), replace ``` #$$ (x^v/(2^v*sqrt(%pi)*gamma(v+3/2))+struve_l(v+1,z)+struve_l(v-1,z))/2$ ``` with ``` #$$ (z^v/(2^v*sqrt(%pi)*gamma(v+3/2))+struve_l(v+1,z)+struve_l(v-1,z))/2$ ``` ### Test cases Add these lines to `tests/rtest16.mac`, separated from the tests before them by two empty lines: ``` /* Bug #5294: "diff(struve_h(v,t),t) and diff(struve_l(v,t),t) contain x^v instead of t^v" */ diff(struve_h(v,t),t); (t^v/(2^v*sqrt(%pi)*gamma(v+3/2))-struve_h(v+1,t)+struve_h(v-1,t))/2$ diff(struve_l(v,t),t); (t^v/(2^v*sqrt(%pi)*gamma(v+3/2))+struve_l(v+1,t)+struve_l(v-1,t))/2$ ``` ### Commit message ``` bessel.lisp: fix derivatives of struve_h and struve_l The derivative templates of struve_h and struve_l wrote the power term as x^v, but the DEFGRAD placeholders are v and z, so x was a free symbol instead of the argument. They now use z^v. This fixes bug #5294. Found and fixed by Claude Opus 5.5. ``` --- 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: David S. <tom...@us...> - 2026-10-25 08:54:25
|
- **status**: open --> closed - **Comment**: Fixed by commit [8f787d]. --- **[bugs:#5711] integrate\(\) reads c^3 as c+3 in \(c-c\*x\)^3/\(\(1-x\)^3\*sqrt\(1-x^2\)\)** **Status:** closed **Group:** None **Labels:** integrate **Created:** Sat Oct 24, 2026 10:42 AM UTC by David Scherfgen **Last Updated:** Sat Oct 24, 2026 10:42 AM UTC **Owner:** nobody By Claude: `integrate` gives a wrong result for a product of a polynomial and a square root: ``` (%i1) integrate((c-c*x)^3/((1-x)^3*sqrt(1-x^2)), x); (%o1) c*asin(x)+3*asin(x) ``` The integrand is `c^3/sqrt(1-x^2)`, so the result should be `c^3*asin(x)`. It is as if `c^3` were read as `c+3`. A similar integrand ends in a Lisp error: ``` (%i2) integrate(sqrt(1+x)/sqrt(1-x)*(c-c*x), x); Maxima encountered a Lisp error: The value $C is not of type LIST ``` Here the integrand is `c*sqrt(1-x^2)`, and the result should be `c*asin(x)/2+c*x*sqrt(1-x^2)/2`. --- 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: David S. <tom...@us...> - 2026-10-25 08:54:21
|
- **status**: open --> closed - **Comment**: Fixed by commit [965d32]. --- **[bugs:#5710] \(\(-2\)^\(1/6\)\)^2 simplifies to the real root \(-2\)^\(1/3\) with radexpand : false** **Status:** closed **Group:** None **Labels:** simplification simpexpt radexpand **Created:** Sat Oct 24, 2026 10:31 AM UTC by David Scherfgen **Last Updated:** Sat Oct 24, 2026 10:31 AM UTC **Owner:** nobody By Claude: With the default `domain : real`, `(-2)^(1/3)` is the real root `-2^(1/3)`, while `(-2)^(1/6)` is the principal value `2^(1/6)*(-1)^(1/6)`. With `radexpand : false`, squaring `(-2)^(1/6)` gives `(-2)^(1/3)`, so the principal value becomes the real root, and a real root times a principal value is simplified as if both were principal values: ``` (%i1) radexpand : false$ (%i2) ((-2)^(1/6))^2; (%o2) (-2)^(1/3) (%i3) csign(%); (%o3) neg (%i4) (-2)^(1/3)*(-2)^(1/6); (%o4) sqrt(-2) ``` With `radexpand : true`, both are right: ``` (%i5) radexpand : true$ (%i6) ((-2)^(1/6))^2; (%o6) 2^(1/3)*((sqrt(3)*%i)/2+1/2) (%i7) (-2)^(1/3)*(-2)^(1/6); (%o7) -(-1)^(1/6)*sqrt(2) ``` The same happened for `(-1)^(1/6)` in bug #5705. --- 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: David S. <tom...@us...> - 2026-10-25 08:54:16
|
- **status**: open --> closed - **Comment**: Fixed by commit [b52022]. --- **[bugs:#5217] rectform\(sqrt\(x\*y\)\) under domain : complex** **Status:** closed **Group:** None **Labels:** rectform domain complex sqrt **Created:** Wed Sep 02, 2026 08:05 PM UTC by David Scherfgen **Last Updated:** Wed Sep 02, 2026 08:05 PM UTC **Owner:** nobody Isn't `rectform` supposed to always take the principal branch? Here's an example where depending on whether we substitute concrete values before or after applying `rectform`, we get a different result: ~~~ (%i1) domain : complex$ (%i2) f : sqrt(x * y)$ (%i3) subst([x = -1, y = -1], rectform(f)); (%o3) -1 (%i4) rectform(subst([x = -1, y = -1], f)); (%o4) 1 ~~~ --- 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: David S. <tom...@us...> - 2026-10-25 08:54:11
|
- **status**: open --> closed - **Comment**: Fixed by commit [ddfef2]. --- **[bugs:#5613] rectform, polarform and carg disagree with \(-8\)^\(1/3\) = -2 under domain : real** **Status:** closed **Group:** None **Labels:** rectform polarform carg domain real **Created:** Tue Sep 29, 2026 11:07 AM UTC by David Scherfgen **Last Updated:** Tue Sep 29, 2026 11:08 AM UTC **Owner:** nobody With the default `domain : real`, the simplifier takes the real root for an odd root of a negative number, so `(-8)^(1/3)` simplifies to `-2`, and `sign` agrees. `rectform`, `realpart`, `imagpart`, `polarform` and `carg` take the principal branch instead, so substituting before or after them gives different results. `conjugate` doesn't simplify such a power at all, although it is real: ``` (%i1) display2d:false$ (%i2) rectform(x^(1/3)); (%o2) %i*sin(atan2(0,x)/3)*abs(x)^(1/3)+cos(atan2(0,x)/3)*abs(x)^(1/3) (%i3) subst(x = -8,%); (%o3) sqrt(3)*%i+1 (%i4) rectform(subst(x = -8,x^(1/3))); (%o4) -2 (%i5) carg(x^(1/3)); (%o5) atan2(0,x)/3 (%i6) subst(x = -8,%); (%o6) %pi/3 (%i7) polarform(x^(1/3)); (%o7) %e^((%i*atan2(0,x))/3)*abs(x)^(1/3) (%i8) subst(x = -8,%); (%o8) 2*((sqrt(3)*%i)/2+1/2) (%i9) conjugate(x^(1/3)); (%o9) conjugate(x^(1/3)) ``` For a base known to be negative, `rectform` and `polarform` contradict `sign`, and `carg` contradicts `polarform`: ``` (%i10) assume(y < 0)$ (%i11) sign(y^(1/3)); (%o11) neg (%i12) rectform(y^(1/3)); (%o12) (sqrt(3)*%i*(-y)^(1/3))/2+(-y)^(1/3)/2 (%i13) imagpart(y^(1/3)); (%o13) (sqrt(3)*(-y)^(1/3))/2 (%i14) carg(y^(1/3)); (%o14) %pi (%i15) polarform(y^(1/3)); (%o15) %e^((%i*%pi)/3)*(-y)^(1/3) (%i16) conjugate(y^(1/3)); (%o16) conjugate(y^(1/3)) ``` Under `domain : real`, these functions should treat an odd root of a real base as the real root, like the simplifier and `sign` do. With `domain : complex`, the principal branch is correct. --- 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: David S. <tom...@us...> - 2026-10-24 16:12:21
|
- **status**: open --> closed - **Comment**: Fixed by commit [2d498e]. --- **[bugs:#5707] ratsimp treats sqrt\(x\) and x^\(1/4\) as unrelated** **Status:** closed **Group:** None **Labels:** ratsimp CRE **Created:** Fri Oct 23, 2026 08:21 AM UTC by David Scherfgen **Last Updated:** Fri Oct 23, 2026 08:21 AM UTC **Owner:** nobody By Claude: `ratsimp` represents `sqrt(x)` and `x^(1/4)` by two independent variables. It knows that `sqrt(x)^2 = x` and `(x^(1/4))^4 = x`, but not that `(x^(1/4))^2 = sqrt(x)`. So it misses simplifications, and calling it again gives a different result: ``` (%i1) ratsimp((7^(1/4)+1)*(7^(1/4)-1)*sqrt(7)); (%o1) (sqrt(7)-1)*sqrt(7) (%i2) ratsimp(%); (%o2) 7-sqrt(7) ``` `fullratsimp` repeats `ratsimp` until nothing changes, but it can stop too early. This expression equals `sqrt(x)`: ``` (%i3) fullratsimp(sqrt(x)*(x^(1/4)*y+1) - x^(3/4)*y); (%o3) sqrt(x)*(x^(1/4)*y+1)-x^(3/4)*y ``` `expand` and `radcan` simplify both examples fully. --- 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: David S. <tom...@us...> - 2026-10-24 16:12:14
|
- **status**: open --> closed - **Comment**: Fixed by commit [e5f42a]. --- **[bugs:#5706] \(-2\*%i\)^\(1/3\) simplifies to the wrong cube root** **Status:** closed **Group:** None **Labels:** simplification simpexpt **Created:** Fri Oct 23, 2026 08:20 AM UTC by David Scherfgen **Last Updated:** Fri Oct 23, 2026 08:20 AM UTC **Owner:** nobody By Claude: With the default `domain : real` and `radexpand : true`, an odd root of a product is split into odd roots of its factors, and a negative factor gets its real root. That is only right when all factors are real. If a factor is complex, the root of the product is the principal one, and splitting gives a different cube root: ``` (%i1) (-2*%i)^(1/3); (%o1) -(-1)^(1/6)*2^(1/3) (%i2) float(rectform(%)); (%o2) -0.6299605249474366*%i-1.0911236359717214 (%i3) float(rectform(exp(log(-2*%i)/3))); (%o3) 1.0911236359717214-0.6299605249474366*%i ``` The same happens with other complex factors, such as `(-1)^(1/4)`, a symbol declared imaginary, or the square root of a negative symbol: ``` (%i4) (-2*(-1)^(1/4))^(1/3); (%o4) -(-1)^(1/12)*2^(1/3) (%i5) declare(j, imaginary)$ (%i6) (-2*j)^(1/3); (%o6) -2^(1/3)*j^(1/3) (%i7) assume(xn < 0)$ (%i8) (-2*sqrt(xn))^(1/3); (%o8) -2^(1/3)*xn^(1/6) ``` --- 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: David S. <tom...@us...> - 2026-10-24 16:12:09
|
- **status**: open --> closed - **Comment**: Fixed by commit [d96bc5]. --- **[bugs:#5705] \(\(-1\)^\(1/6\)\)^2 simplifies to -1** **Status:** closed **Group:** None **Labels:** simplification simpexpt **Created:** Fri Oct 23, 2026 08:19 AM UTC by David Scherfgen **Last Updated:** Fri Oct 23, 2026 08:19 AM UTC **Owner:** nobody By Claude: With the default `domain : real`, Maxima reads `(-1)^(p/q)` with odd `q` as the real root, so `(-1)^(1/3)` simplifies to `-1`. `(-1)^(1/6)` has no real value and is the principal root `exp(%i*%pi/6)`, which is also how `rectform` and `float` evaluate it. But a power or a product of such roots is folded into `(-1)^(1/3)`, which is then read as the real root: ``` (%i1) ((-1)^(1/6))^2; (%o1) -1 (%i2) (-1)^(1/6)*(-1)^(1/6); (%o2) -1 (%i3) ((-8)^(1/6))^2; (%o3) -2 ``` The correct value of the first two is `exp(%i*%pi/3)`, that is `1/2+sqrt(3)*%i/2`: ``` (%i4) expand(float(rectform((-1)^(1/6)))^2); (%o4) 0.8660254037844386*%i+0.4999999999999999 ``` As `ratsimp` multiplies such powers out, it often returns wrong values for expressions with `(-1)^(1/6)` or `(-1)^(1/10)`. Here the difference should be `0`: ``` (%i5) r : ratsimp(1/(1+(-1)^(1/6))), algebraic : true; (%o5) -((%i+(-1)^(5/6)+(-1)^(1/6)-1)/2) (%i6) float(rectform(r - 1/(1+(-1)^(1/6)))); (%o6) 5.551115123125783e-17-0.8660254037844386*%i ``` With `domain : complex`, all of these are correct. --- 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: David S. <tom...@us...> - 2026-10-24 10:44:53
|
--- **[bugs:#5712] integrate\(%e^atanh\(x\), x\) returns a noun form** **Status:** open **Group:** None **Labels:** integrate **Created:** Sat Oct 24, 2026 10:44 AM UTC by David Scherfgen **Last Updated:** Sat Oct 24, 2026 10:44 AM UTC **Owner:** nobody By Claude: `integrate` cannot integrate `%e^atanh(x)`: ``` (%i1) integrate(%e^atanh(x), x); (%o1) 'integrate(%e^atanh(x),x) ``` But `%e^atanh(x) = sqrt(1+x)/sqrt(1-x)`, since `atanh(x) = (log(1+x)-log(1-x))/2`, as `logarc` writes it, and `integrate` finds the integral of that form: ``` (%i2) integrate(sqrt(1+x)/sqrt(1-x), x); (%o2) asin(x)-sqrt(1-x^2) ``` The same holds for other powers of `%e^atanh(u)` and `%e^acoth(u)` times algebraic functions, such as `x^4*%e^atanh(a*x)`. --- 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: David S. <tom...@us...> - 2026-10-24 10:42:26
|
--- **[bugs:#5711] integrate\(\) reads c^3 as c+3 in \(c-c\*x\)^3/\(\(1-x\)^3\*sqrt\(1-x^2\)\)** **Status:** open **Group:** None **Labels:** integrate **Created:** Sat Oct 24, 2026 10:42 AM UTC by David Scherfgen **Last Updated:** Sat Oct 24, 2026 10:42 AM UTC **Owner:** nobody By Claude: `integrate` gives a wrong result for a product of a polynomial and a square root: ``` (%i1) integrate((c-c*x)^3/((1-x)^3*sqrt(1-x^2)), x); (%o1) c*asin(x)+3*asin(x) ``` The integrand is `c^3/sqrt(1-x^2)`, so the result should be `c^3*asin(x)`. It is as if `c^3` were read as `c+3`. A similar integrand ends in a Lisp error: ``` (%i2) integrate(sqrt(1+x)/sqrt(1-x)*(c-c*x), x); Maxima encountered a Lisp error: The value $C is not of type LIST ``` Here the integrand is `c*sqrt(1-x^2)`, and the result should be `c*asin(x)/2+c*x*sqrt(1-x^2)/2`. --- 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: David S. <tom...@us...> - 2026-10-24 10:31:13
|
--- **[bugs:#5710] \(\(-2\)^\(1/6\)\)^2 simplifies to the real root \(-2\)^\(1/3\) with radexpand : false** **Status:** open **Group:** None **Labels:** simplification simpexpt radexpand **Created:** Sat Oct 24, 2026 10:31 AM UTC by David Scherfgen **Last Updated:** Sat Oct 24, 2026 10:31 AM UTC **Owner:** nobody By Claude: With the default `domain : real`, `(-2)^(1/3)` is the real root `-2^(1/3)`, while `(-2)^(1/6)` is the principal value `2^(1/6)*(-1)^(1/6)`. With `radexpand : false`, squaring `(-2)^(1/6)` gives `(-2)^(1/3)`, so the principal value becomes the real root, and a real root times a principal value is simplified as if both were principal values: ``` (%i1) radexpand : false$ (%i2) ((-2)^(1/6))^2; (%o2) (-2)^(1/3) (%i3) csign(%); (%o3) neg (%i4) (-2)^(1/3)*(-2)^(1/6); (%o4) sqrt(-2) ``` With `radexpand : true`, both are right: ``` (%i5) radexpand : true$ (%i6) ((-2)^(1/6))^2; (%o6) 2^(1/3)*((sqrt(3)*%i)/2+1/2) (%i7) (-2)^(1/3)*(-2)^(1/6); (%o7) -(-1)^(1/6)*sqrt(2) ``` The same happened for `(-1)^(1/6)` in bug #5705. --- 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: David S. <tom...@us...> - 2026-10-23 13:49:02
|
Intuition about "fast" and "slow" in Maxima is often misleading, we'd have to measure. In the normal case, the new expression is not `alike1` any previous, and I guess that `alike1` aborts very quickly in the average case. I'll do some experiments soon. --- **[bugs:#5695] fullratsimp\(rat\(sqrt\(c-1\)/\(c-f\(a\)\)^\(3/2\)-1/\(sqrt\(c-1\)\*sqrt\(c-f\(a\)\)\)\)\) loops forever** **Status:** closed **Group:** None **Labels:** fullratsimp **Created:** Thu Oct 22, 2026 03:06 AM UTC by David Scherfgen **Last Updated:** Fri Oct 23, 2026 01:42 PM UTC **Owner:** nobody Discovered by Claude: ~~~ fullratsimp(rat(sqrt(c-1)/(c-f(a))^(3/2)-1/(sqrt(c-1)*sqrt(c-f(a))))); ~~~ This loops forever, cycling over two representations. --- 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: Barton W. <wil...@us...> - 2026-10-23 13:42:48
|
Most likely no. The iteration limit check is fast, but the cycle detection is slow. If we got rid of one check, maybe it should be the cycle detection? --- **[bugs:#5695] fullratsimp\(rat\(sqrt\(c-1\)/\(c-f\(a\)\)^\(3/2\)-1/\(sqrt\(c-1\)\*sqrt\(c-f\(a\)\)\)\)\) loops forever** **Status:** closed **Group:** None **Labels:** fullratsimp **Created:** Thu Oct 22, 2026 03:06 AM UTC by David Scherfgen **Last Updated:** Fri Oct 23, 2026 12:32 PM UTC **Owner:** nobody Discovered by Claude: ~~~ fullratsimp(rat(sqrt(c-1)/(c-f(a))^(3/2)-1/(sqrt(c-1)*sqrt(c-f(a))))); ~~~ This loops forever, cycling over two representations. --- 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: David S. <tom...@us...> - 2026-10-23 12:32:28
|
Do we need an iteration limit if we detect cycles and abort then? I'd say no, intuitively. --- **[bugs:#5695] fullratsimp\(rat\(sqrt\(c-1\)/\(c-f\(a\)\)^\(3/2\)-1/\(sqrt\(c-1\)\*sqrt\(c-f\(a\)\)\)\)\) loops forever** **Status:** closed **Group:** None **Labels:** fullratsimp **Created:** Thu Oct 22, 2026 03:06 AM UTC by David Scherfgen **Last Updated:** Fri Oct 23, 2026 12:07 PM UTC **Owner:** nobody Discovered by Claude: ~~~ fullratsimp(rat(sqrt(c-1)/(c-f(a))^(3/2)-1/(sqrt(c-1)*sqrt(c-f(a))))); ~~~ This loops forever, cycling over two representations. --- 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: Barton W. <wil...@us...> - 2026-10-23 12:07:21
|
A better version:
~~~
(defmvar *max-fullratsimp-iterations* 32
"Maximum number of iterations allowed for fullratsimp before falling back.")
(defmfun ($fullratsimp :properties ((evfun t))) (exp &rest argl)
"Repeatedly applies `ratsimp` to `exp` until either (a) a fixpoint is reached,
(b) a cycle is detected, or (c) the number of iterations exceeds
*max-fullratsimp-iterations*."
(labels ((local-ratsimp (e)
(simplify (apply #'$ratsimp e argl))))
(let* ((k *max-fullratsimp-iterations*)
(seen (list exp))
(current exp)
(next (local-ratsimp exp))
(best exp)
(min-size (conssize exp)))
(loop
;; Track the minimum size on the fly
(let ((sz (conssize next)))
(when (< sz min-size)
(setf min-size sz
best next)))
;; (a) Fixpoint reached
(when (alike1 current next)
(return next)) ; or current, they are alike
;; (b) Cycle detected or (c) Max iterations exceeded
(when (or (member next seen :test #'alike1) (< k 0))
(return best))
(push next seen)
(decf k)
(setf current next
next (local-ratsimp next))))))
~~~
---
**[bugs:#5695] fullratsimp\(rat\(sqrt\(c-1\)/\(c-f\(a\)\)^\(3/2\)-1/\(sqrt\(c-1\)\*sqrt\(c-f\(a\)\)\)\)\) loops forever**
**Status:** closed
**Group:** None
**Labels:** fullratsimp
**Created:** Thu Oct 22, 2026 03:06 AM UTC by David Scherfgen
**Last Updated:** Thu Oct 22, 2026 08:11 PM UTC
**Owner:** nobody
Discovered by Claude:
~~~
fullratsimp(rat(sqrt(c-1)/(c-f(a))^(3/2)-1/(sqrt(c-1)*sqrt(c-f(a)))));
~~~
This loops forever, cycling over two representations.
---
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. |