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
(63) |
Oct
|
Nov
|
Dec
|
|
From: David S. <tom...@us...> - 2026-09-04 05:03:21
|
--- **[bugs:#5224] limit\(abs\(a+%i\)\*x, x, inf\) gives infinity** **Status:** open **Group:** None **Labels:** limit **Created:** Fri Sep 04, 2026 05:03 AM UTC by David Scherfgen **Last Updated:** Fri Sep 04, 2026 05:03 AM UTC **Owner:** nobody ~~~ (%i1) limit(abs(a+%i)*x, x, inf) (%o1) infinity ~~~ The correct answer is `inf`, given that `a` is an undeclared variable and therefore assumed to be real. Maxima gets confused by the `%i`. --- 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-09-04 04:02:37
|
Yes to both. "Sum" should be "difference", as the reproducer shows. And the forms are equal for a real x only; the request is for the case the simplifier already treats as real: the clauses in timesin that turn abs(x)/x^2 into 1/abs(x) and x^2/abs(x)^3 into 1/abs(x) test csign of the argument and leave a complex z alone, and the missing case is the same rule for the exponent 1, in the same clauses, under the same test. With declare(z, complex), abs(z)/z and z/abs(z) would stay distinct, as they should.
---
**[bugs:#5223] The sign of x has two normal forms, x/abs\(x\) and abs\(x\)/x, and their difference does not simplify**
**Status:** open
**Group:** None
**Labels:** abs
**Created:** Thu Sep 03, 2026 10:57 AM UTC by David Scherfgen
**Last Updated:** Thu Sep 03, 2026 10:06 PM UTC
**Owner:** nobody
Written by Claude.
The simplifier knows that `abs(x)^2` is `x^2`: it reduces `(x/abs(x))^2` and `(abs(x)/x)^2` to 1, `abs(x)^3` to `x^2*abs(x)`, `x^2/abs(x)^3` to `1/abs(x)`, `abs(x)/x^2` to `1/abs(x)` and `x/abs(x)^2` to `1/x`, so at most one power of `abs(x)` survives in a product and the even part is moved to `x`. But it has no single form for the sign of `x`: `x*abs(x)^(-1)` stays `x/abs(x)` and `abs(x)*x^(-1)` stays `abs(x)/x`, and a sum of the two is not recognized as 0 by the simplifier or by `expand`, only by `ratsimp` and `radcan` which happen to produce `abs(x)^2 - x^2` on the way.
```
(%i1) display2d : false$
(%i2) [x/abs(x), abs(x)/x, (x/abs(x))*(abs(x)/x), (x/abs(x))^2, (abs(x)/x)^2];
(%o2) [x/abs(x),abs(x)/x,1,1,1]
(%i3) [abs(x)^3, x^2/abs(x)^3, abs(x)/x^2, x/abs(x)^2, (x/abs(x))^3];
(%o3) [x^2*abs(x),1/abs(x),1/abs(x),1/x,x/abs(x)]
(%i4) x/abs(x) - abs(x)/x;
(%o4) x/abs(x)-abs(x)/x
(%i5) expand((1 + x/abs(x))*(1 - abs(x)/x));
(%o5) x/abs(x)-abs(x)/x
(%i6) expand((1 + x/abs(x))*(1 - x/abs(x)));
(%o6) 0
(%i7) [ratsimp(x/abs(x) - abs(x)/x), radcan(x/abs(x) - abs(x)/x), is(equal(x/abs(x), abs(x)/x))];
(%o7) [0,0,true]
(%i8) [abs(x^3)^(1/3), abs(-x^3)^(-1/3), abs(x)^(2/3)];
(%o8) [x^(2/3)*abs(x)^(1/3),1/(x^(2/3)*abs(x)^(1/3)),x^(2/3)]
```
(%o5) and (%o6) are the same product written with the two forms of the sign; only the second collapses. (%o8) shows the same gap for a root: `abs(x^3)^(1/3)` is `abs(x)`, but `abs(x^3)` is first normalized to `x^2*abs(x)` and the root then distributed over it, while `abs(x)^(2/3)` alone does become `x^(2/3)`.
**Why it matters.** With `domain : real` the principal branch of a power of a negative quantity, as needed next to `gamma_incomplete`, is naturally written as a phase `alpha + beta*x/abs(x)` with constant `alpha` and `beta`, and such phases from different sources, an antiderivative and its derivative, or two terms of `gamma_expand`, have to cancel under `expand`. They do so only if every source writes the sign the same way; the work on the `domain : real` branch had to arrange that by hand (multiplying the sign into the phase by the parity of the power of `x` that comes with it, and avoiding `abs(z)^s` for the modulus).
**Proposal.** Pick one canonical form for the sign and have `simptimes` produce it. Since the simplifier already keeps at most one power of `abs(x)` and moves the even part to `x`, the natural rule is the one it applies for positive exponents extended to negative ones: `abs(x)^(-1)*x` and `abs(x)*x^(-1)` both to `x/abs(x)`, and in general `x^p*abs(x)^q` with `p + q` even to `x^(p+q)` and with `p + q` odd to `x^(p+q-1)*abs(x)` or `x^(p+q+1)/abs(x)`, whichever keeps the exponent of `abs(x)` in `{-1, 1}`. Then (%o4) and (%o5) are 0 by simplification. For a fractional power, `(x^(2*m)*abs(x))^(1/(2*m+1))` could be recognized as `abs(x)`, but that is a smaller matter.
---
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-09-03 22:06:17
|
The two forms are equal for reals:
~~~
abs(-1)/-1 => -1
(-1)/abs(-1) => -1
signum(-1) => -1
~~~
but not equal in general. The simplest case:
~~~
abs(%i)/%i => -%i
%i/abs(%i) => %i
signum(%i) => %i
~~~
Presumably "the sum of the two" should be the *difference* of the two?
---
**[bugs:#5223] The sign of x has two normal forms, x/abs\(x\) and abs\(x\)/x, and their difference does not simplify**
**Status:** open
**Group:** None
**Labels:** abs
**Created:** Thu Sep 03, 2026 10:57 AM UTC by David Scherfgen
**Last Updated:** Thu Sep 03, 2026 10:57 AM UTC
**Owner:** nobody
Written by Claude.
The simplifier knows that `abs(x)^2` is `x^2`: it reduces `(x/abs(x))^2` and `(abs(x)/x)^2` to 1, `abs(x)^3` to `x^2*abs(x)`, `x^2/abs(x)^3` to `1/abs(x)`, `abs(x)/x^2` to `1/abs(x)` and `x/abs(x)^2` to `1/x`, so at most one power of `abs(x)` survives in a product and the even part is moved to `x`. But it has no single form for the sign of `x`: `x*abs(x)^(-1)` stays `x/abs(x)` and `abs(x)*x^(-1)` stays `abs(x)/x`, and a sum of the two is not recognized as 0 by the simplifier or by `expand`, only by `ratsimp` and `radcan` which happen to produce `abs(x)^2 - x^2` on the way.
```
(%i1) display2d : false$
(%i2) [x/abs(x), abs(x)/x, (x/abs(x))*(abs(x)/x), (x/abs(x))^2, (abs(x)/x)^2];
(%o2) [x/abs(x),abs(x)/x,1,1,1]
(%i3) [abs(x)^3, x^2/abs(x)^3, abs(x)/x^2, x/abs(x)^2, (x/abs(x))^3];
(%o3) [x^2*abs(x),1/abs(x),1/abs(x),1/x,x/abs(x)]
(%i4) x/abs(x) - abs(x)/x;
(%o4) x/abs(x)-abs(x)/x
(%i5) expand((1 + x/abs(x))*(1 - abs(x)/x));
(%o5) x/abs(x)-abs(x)/x
(%i6) expand((1 + x/abs(x))*(1 - x/abs(x)));
(%o6) 0
(%i7) [ratsimp(x/abs(x) - abs(x)/x), radcan(x/abs(x) - abs(x)/x), is(equal(x/abs(x), abs(x)/x))];
(%o7) [0,0,true]
(%i8) [abs(x^3)^(1/3), abs(-x^3)^(-1/3), abs(x)^(2/3)];
(%o8) [x^(2/3)*abs(x)^(1/3),1/(x^(2/3)*abs(x)^(1/3)),x^(2/3)]
```
(%o5) and (%o6) are the same product written with the two forms of the sign; only the second collapses. (%o8) shows the same gap for a root: `abs(x^3)^(1/3)` is `abs(x)`, but `abs(x^3)` is first normalized to `x^2*abs(x)` and the root then distributed over it, while `abs(x)^(2/3)` alone does become `x^(2/3)`.
**Why it matters.** With `domain : real` the principal branch of a power of a negative quantity, as needed next to `gamma_incomplete`, is naturally written as a phase `alpha + beta*x/abs(x)` with constant `alpha` and `beta`, and such phases from different sources, an antiderivative and its derivative, or two terms of `gamma_expand`, have to cancel under `expand`. They do so only if every source writes the sign the same way; the work on the `domain : real` branch had to arrange that by hand (multiplying the sign into the phase by the parity of the power of `x` that comes with it, and avoiding `abs(z)^s` for the modulus).
**Proposal.** Pick one canonical form for the sign and have `simptimes` produce it. Since the simplifier already keeps at most one power of `abs(x)` and moves the even part to `x`, the natural rule is the one it applies for positive exponents extended to negative ones: `abs(x)^(-1)*x` and `abs(x)*x^(-1)` both to `x/abs(x)`, and in general `x^p*abs(x)^q` with `p + q` even to `x^(p+q)` and with `p + q` odd to `x^(p+q-1)*abs(x)` or `x^(p+q+1)/abs(x)`, whichever keeps the exponent of `abs(x)` in `{-1, 1}`. Then (%o4) and (%o5) are 0 by simplification. For a fractional power, `(x^(2*m)*abs(x))^(1/(2*m+1))` could be recognized as `abs(x)`, but that is a smaller matter.
---
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-09-03 18:53:05
|
- **status**: pending --> closed
- **Comment**:
This bug has been fixed for some time, but the ticket didn't automatically close. So I'm closing it as 'closed'
~~~
(%i3) radcan(sqrt(-1/ (sqrt(-3)+1)));
(%o3) 1/sqrt(-(sqrt(3)*%i)-1)
(%i4) build_info();
(%o4) %build_info("5.50post","2026-09-03 13:02:33","unknown","SBCL","2.6.4",
"C:/Users/barto/maxima","C:/Users/barto/AppData/Local/Temp",
"C:/Users/barto/maxima/binary/5_50post/sbcl/2_6_4",false,
false)
~~~
---
**[bugs:#3489] radcan\(sqrt\(-1/\(sqrt\(-3\)+1\)\)\) --> infinite loop**
**Status:** closed
**Group:** None
**Labels:** radcan
**Created:** Thu Nov 01, 2018 06:27 PM UTC by Barton Willis
**Last Updated:** Fri Jul 02, 2021 12:14 AM UTC
**Owner:** nobody
~~~
(%i1) radcan(sqrt(-1/(sqrt(-3)+1)));
Message from maxima's stderr stream: Heap exhausted during garbage collection: 0 bytes available, 16 requested.
Heap exhausted, game over.
(%i1) build_info();
(%o1) build_info(version="5.41.0a_dirty",timestamp="2017-10-24 09:10:17",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="1.3.18")
~~~
---
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-09-03 16:17:22
|
Fixed by Commit [c5762f] . Closing ticket as closed.
---
**[bugs:#5091] spectral\_rep prints raw Lisp debug output when the spectrum cannot be found**
**Status:** closed
**Group:** None
**Labels:** share packages printing matrix
**Created:** Fri Aug 21, 2026 06:50 AM UTC by David Scherfgen
**Last Updated:** Thu Sep 03, 2026 04:17 PM UTC
**Owner:** Barton Willis
```maxima
(%i1) display2d:false$
(%i2) load(linearalgebra)$
(%i3) spectral_rep(matrix([0,0,0,0,1],[1,0,0,0,1],[0,1,0,0,0],[0,0,1,0,0],
[0,0,0,1,0]));
(RATVARS = ((MLIST SIMP)) GCD = '$GCD ALGEBRAIC = T)
(RATFAC = NIL) Unable to find the spectrum
-- an error. To debug this try: debugmode(true);
```
Only the "`Unable to find the spectrum`" error should reach the user. Instead two lines of raw Lisp are printed first, with internal uppercase symbols, a dollar-sign prefix, and an empty Maxima list shown as `((MLIST SIMP))` rather than `[]`. These cannot be switched off. The `GCD` field is also wrong on its own terms: it prints the literal symbol `'$GCD` where its neighbours print values, whereas `gcd` is bound to `spmod` at that point. `matrixexp` on the same matrix produces the identical output, since it goes through `spectral_rep`.
Detected by Claude.
---
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-09-03 16:17:15
|
- **status**: open --> closed
- **Comment**:
Fixed by Commit [c5762f] . Closing ticket as closed.
---
**[bugs:#5091] spectral\_rep prints raw Lisp debug output when the spectrum cannot be found**
**Status:** closed
**Group:** None
**Labels:** share packages printing matrix
**Created:** Fri Aug 21, 2026 06:50 AM UTC by David Scherfgen
**Last Updated:** Tue Sep 01, 2026 07:39 PM UTC
**Owner:** Barton Willis
```maxima
(%i1) display2d:false$
(%i2) load(linearalgebra)$
(%i3) spectral_rep(matrix([0,0,0,0,1],[1,0,0,0,1],[0,1,0,0,0],[0,0,1,0,0],
[0,0,0,1,0]));
(RATVARS = ((MLIST SIMP)) GCD = '$GCD ALGEBRAIC = T)
(RATFAC = NIL) Unable to find the spectrum
-- an error. To debug this try: debugmode(true);
```
Only the "`Unable to find the spectrum`" error should reach the user. Instead two lines of raw Lisp are printed first, with internal uppercase symbols, a dollar-sign prefix, and an empty Maxima list shown as `((MLIST SIMP))` rather than `[]`. These cannot be switched off. The `GCD` field is also wrong on its own terms: it prints the literal symbol `'$GCD` where its neighbours print values, whereas `gcd` is bound to `spmod` at that point. `matrixexp` on the same matrix produces the identical output, since it goes through `spectral_rep`.
Detected by Claude.
---
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-09-03 16:16:28
|
Fixed by Commit [c5762f] . Closing ticket. --- **[bugs:#2596] error in matrix exponentiation** **Status:** closed **Group:** None **Labels:** matrixexp **Created:** Wed Jun 19, 2013 01:40 PM UTC by kcrisman **Last Updated:** Thu Sep 03, 2026 04:16 PM UTC **Owner:** nobody This is a regression in 5.30.0 from 5.29.1: ``` (%i1) m: matrix([%i*%pi]); (%o1) [ %i %pi ] (%i6) matrixexp(m),keepfloat:true; Unable to find the spectral representation -- an error. To debug this try: debugmode(true); (%i7) matrixexp(m),keepfloat:false; Unable to find the spectral representation -- an error. To debug this try: debugmode(true); ``` Point of info - Barton W. has a workaround: This bug is due to circa January 2013 changes to matrix inversion. A workaround is to set ratmx to true: ``` Maxima branch_5_30_base_98_g29f9239_dirty http://maxima.sourceforge.net using Lisp Clozure Common Lisp Version 1.9-r15764 (WindowsX8632) (%i1) matrixexp(matrix([%i*%pi])); Unable to find the spectral representation (%i2) matrixexp(matrix([%i*%pi])), ratmx=true; (%o2) - 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: Barton W. <wil...@us...> - 2026-09-03 16:16:05
|
Thanks for this. Here is an alternative that is, I think, much simpler. Let's replace the spendy test `check-spectral-rep` with a check that the putative nilpotent is really a nilpotent. I think the previous check was overkill.
Doing so yields:
~~~
(%i85) xxx : spectral_rep(mat)$
(%i86) zzz : first(xxx).second(xxx)+third(xxx) - mat$
(%i87) zzz : rectform(zzz)$
(%i88) zzz : expand(float(zzz));
(%o88) matrix([-(3.885780586188048e-16*%i)-5.551115123125783e-17,
1.1102230246251565e-16-1.3877787807814457e-16*%i,
2.7755575615628914e-17],
[2.220446049250313e-16*%i+5.377642775528102e-17,
-(3.0531133177191805e-16*%i),-(8.881784197001252e-16*%i)],
[1.1102230246251565e-16-6.938893903907228e-16*%i,
6.938893903907228e-17-1.6653345369377348e-16*%i,
5.0306980803327406e-17*%i-2.220446049250313e-16])
~~~
---
**[bugs:#2596] error in matrix exponentiation**
**Status:** closed
**Group:** None
**Labels:** matrixexp
**Created:** Wed Jun 19, 2013 01:40 PM UTC by kcrisman
**Last Updated:** Thu Sep 03, 2026 04:15 PM UTC
**Owner:** nobody
This is a regression in 5.30.0 from 5.29.1:
```
(%i1) m: matrix([%i*%pi]);
(%o1) [ %i %pi ]
(%i6) matrixexp(m),keepfloat:true;
Unable to find the spectral representation
-- an error. To debug this try: debugmode(true);
(%i7) matrixexp(m),keepfloat:false;
Unable to find the spectral representation
-- an error. To debug this try: debugmode(true);
```
Point of info - Barton W. has a workaround:
This bug is due to circa January 2013 changes to matrix inversion. A workaround is to set ratmx to true:
```
Maxima branch_5_30_base_98_g29f9239_dirty http://maxima.sourceforge.net
using Lisp Clozure Common Lisp Version 1.9-r15764 (WindowsX8632)
(%i1) matrixexp(matrix([%i*%pi]));
Unable to find the spectral representation
(%i2) matrixexp(matrix([%i*%pi])), ratmx=true;
(%o2) - 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: Barton W. <wil...@us...> - 2026-09-03 16:15:48
|
- **status**: open --> closed
- **Comment**:
Thanks for this. Here is an alternative that is, I think, much simpler. Let's replace the spendy test `check-spectral-rep` with a check that the putative nilpotent is really a nilpotent. I think the previous check was overkill.
Doing so yields:
~~~
(%i85) xxx : spectral_rep(mat)$
(%i86) zzz : first(xxx).second(xxx)+third(xxx) - mat$
(%i87) zzz : rectform(zzz)$
(%i88) zzz : expand(float(zzz));
(%o88) matrix([-(3.885780586188048e-16*%i)-5.551115123125783e-17,
1.1102230246251565e-16-1.3877787807814457e-16*%i,
2.7755575615628914e-17],
[2.220446049250313e-16*%i+5.377642775528102e-17,
-(3.0531133177191805e-16*%i),-(8.881784197001252e-16*%i)],
[1.1102230246251565e-16-6.938893903907228e-16*%i,
6.938893903907228e-17-1.6653345369377348e-16*%i,
5.0306980803327406e-17*%i-2.220446049250313e-16])
~~~
---
**[bugs:#2596] error in matrix exponentiation**
**Status:** closed
**Group:** None
**Labels:** matrixexp
**Created:** Wed Jun 19, 2013 01:40 PM UTC by kcrisman
**Last Updated:** Tue Sep 01, 2026 07:20 AM UTC
**Owner:** nobody
This is a regression in 5.30.0 from 5.29.1:
```
(%i1) m: matrix([%i*%pi]);
(%o1) [ %i %pi ]
(%i6) matrixexp(m),keepfloat:true;
Unable to find the spectral representation
-- an error. To debug this try: debugmode(true);
(%i7) matrixexp(m),keepfloat:false;
Unable to find the spectral representation
-- an error. To debug this try: debugmode(true);
```
Point of info - Barton W. has a workaround:
This bug is due to circa January 2013 changes to matrix inversion. A workaround is to set ratmx to true:
```
Maxima branch_5_30_base_98_g29f9239_dirty http://maxima.sourceforge.net
using Lisp Clozure Common Lisp Version 1.9-r15764 (WindowsX8632)
(%i1) matrixexp(matrix([%i*%pi]));
Unable to find the spectral representation
(%i2) matrixexp(matrix([%i*%pi])), ratmx=true;
(%o2) - 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-09-03 10:57:56
|
---
**[bugs:#5223] The sign of x has two normal forms, x/abs\(x\) and abs\(x\)/x, and their difference does not simplify**
**Status:** open
**Group:** None
**Labels:** abs
**Created:** Thu Sep 03, 2026 10:57 AM UTC by David Scherfgen
**Last Updated:** Thu Sep 03, 2026 10:57 AM UTC
**Owner:** nobody
Written by Claude.
The simplifier knows that `abs(x)^2` is `x^2`: it reduces `(x/abs(x))^2` and `(abs(x)/x)^2` to 1, `abs(x)^3` to `x^2*abs(x)`, `x^2/abs(x)^3` to `1/abs(x)`, `abs(x)/x^2` to `1/abs(x)` and `x/abs(x)^2` to `1/x`, so at most one power of `abs(x)` survives in a product and the even part is moved to `x`. But it has no single form for the sign of `x`: `x*abs(x)^(-1)` stays `x/abs(x)` and `abs(x)*x^(-1)` stays `abs(x)/x`, and a sum of the two is not recognized as 0 by the simplifier or by `expand`, only by `ratsimp` and `radcan` which happen to produce `abs(x)^2 - x^2` on the way.
```
(%i1) display2d : false$
(%i2) [x/abs(x), abs(x)/x, (x/abs(x))*(abs(x)/x), (x/abs(x))^2, (abs(x)/x)^2];
(%o2) [x/abs(x),abs(x)/x,1,1,1]
(%i3) [abs(x)^3, x^2/abs(x)^3, abs(x)/x^2, x/abs(x)^2, (x/abs(x))^3];
(%o3) [x^2*abs(x),1/abs(x),1/abs(x),1/x,x/abs(x)]
(%i4) x/abs(x) - abs(x)/x;
(%o4) x/abs(x)-abs(x)/x
(%i5) expand((1 + x/abs(x))*(1 - abs(x)/x));
(%o5) x/abs(x)-abs(x)/x
(%i6) expand((1 + x/abs(x))*(1 - x/abs(x)));
(%o6) 0
(%i7) [ratsimp(x/abs(x) - abs(x)/x), radcan(x/abs(x) - abs(x)/x), is(equal(x/abs(x), abs(x)/x))];
(%o7) [0,0,true]
(%i8) [abs(x^3)^(1/3), abs(-x^3)^(-1/3), abs(x)^(2/3)];
(%o8) [x^(2/3)*abs(x)^(1/3),1/(x^(2/3)*abs(x)^(1/3)),x^(2/3)]
```
(%o5) and (%o6) are the same product written with the two forms of the sign; only the second collapses. (%o8) shows the same gap for a root: `abs(x^3)^(1/3)` is `abs(x)`, but `abs(x^3)` is first normalized to `x^2*abs(x)` and the root then distributed over it, while `abs(x)^(2/3)` alone does become `x^(2/3)`.
**Why it matters.** With `domain : real` the principal branch of a power of a negative quantity, as needed next to `gamma_incomplete`, is naturally written as a phase `alpha + beta*x/abs(x)` with constant `alpha` and `beta`, and such phases from different sources, an antiderivative and its derivative, or two terms of `gamma_expand`, have to cancel under `expand`. They do so only if every source writes the sign the same way; the work on the `domain : real` branch had to arrange that by hand (multiplying the sign into the phase by the parity of the power of `x` that comes with it, and avoiding `abs(z)^s` for the modulus).
**Proposal.** Pick one canonical form for the sign and have `simptimes` produce it. Since the simplifier already keeps at most one power of `abs(x)` and moves the even part to `x`, the natural rule is the one it applies for positive exponents extended to negative ones: `abs(x)^(-1)*x` and `abs(x)*x^(-1)` both to `x/abs(x)`, and in general `x^p*abs(x)^q` with `p + q` even to `x^(p+q)` and with `p + q` odd to `x^(p+q-1)*abs(x)` or `x^(p+q+1)/abs(x)`, whichever keeps the exponent of `abs(x)` in `{-1, 1}`. Then (%o4) and (%o5) are 0 by simplification. For a fractional power, `(x^(2*m)*abs(x))^(1/(2*m+1))` could be recognized as `abs(x)`, but that is a smaller matter.
---
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-09-03 10:56:34
|
--- **[bugs:#5222] \(enhancement\) Let a derivative defined by a DEFGRAD lambda return a final expression** **Status:** open **Group:** None **Labels:** defgrad **Created:** Thu Sep 03, 2026 10:56 AM UTC by David Scherfgen **Last Updated:** Thu Sep 03, 2026 10:56 AM UTC **Owner:** nobody Written by Claude. `DEFGRAD` (src/mopers.lisp) lets a derivative be given as a lambda, which `SDIFFGRAD` (src/comm.lisp) applies to the actual arguments of the function. The result is then treated like the other kind of derivative, a template in the placeholder symbols of the argument list: `SDIFFGRAD` runs it through `$psubstitute`, replacing each placeholder by the corresponding actual argument. So a lambda has to return a template as well, as the one derivative in the tree that is a lambda does (the derivative of `gamma_incomplete` with respect to its order, in src/gamma.lisp, returns `(meval #$$ ... a ... z $)`). A lambda that builds its result from the actual arguments gets it corrupted whenever an actual argument contains a symbol that happens to be named like a placeholder. The derivative below, for a dummy function `foo(a, z)` with `d/dz foo(a, z) = 2*z`, is right for the variable `y` and wrong for the variable `z`: ``` (%i1) display2d : false$ (%i2) :lisp (defgrad $foo ($a $z) nil #'(lambda ($a $z) (declare (ignore $a)) (mul 2 $z))) (%i3) diff(foo(1, y^2), y); (%o3) 4*y^3 (%i4) diff(foo(1, z^2), z); (%o4) 4*z^5 (%i5) :lisp (defgrad $bar ($a $z) nil #'(lambda ($a $z) (declare (ignore $a $z)) (meval #$$ 2*z $))) (%i6) diff(bar(1, z^2), z); (%o6) 4*z^3 (%i7) diff(bar(1, y^2), y); (%o7) 4*y^3 ``` In (%o4) the lambda returned `2*z^2`, built from the actual second argument, and the substitution of `z^2` for the symbol `z` turned it into `2*z^4` before the chain rule multiplied by `2*z`. The template version `bar` is immune, since its `z` is the placeholder. **Why a final expression is sometimes needed.** A template is enough when the derivative is a fixed formula in the arguments. It is not enough when the form of the derivative depends on the structure of an argument: the principal-branch derivative of `gamma_incomplete(a, z)` with `domain : real`, for a `z` such as `-x^3` or `%i*x^3`, has to write `z^(a-1)` as `abs(k)^s*abs(x)^(n*s)` times a phase in `x/abs(x)`, with `k`, `x` and `n` read off the actual `z`. As a template, `abs(z)^s` simplifies to `(x^2*abs(x))^s` and then to `x^(2*s)*abs(x)^s`, which does not cancel against anything, so the work on the `domain : real` branch had to encode the modulus as `(z^2*conjugate(k)/k)^(s/2)` in the placeholder, guard `k` with `freeof` against the placeholder symbols, and refuse a symbolic order altogether, where a final expression built from the actual arguments would have been one call. `SDIFFGRAD` already has a precedent for a derivative that is not re-substituted: the special case for `%hypergeometric`, which calls `DIFF-HYPERGEOMETRIC` with the actual arguments and uses its result as it is. **Proposal.** One of: - Let a lambda signal that its result is final, for instance by returning a second value `t`, or by a keyword in `DEFGRAD`; `SDIFFGRAD` then skips the substitution for it. Existing lambdas, returning one value, keep the template behaviour. - A property, say `sdiff-function`, holding a function of the expression and the variable, looked up by `SDIFFGRAD` before the `grad` property, generalizing the `%hypergeometric` and `pdiff` special cases already there. Whatever the choice, the `DEFGRAD` docstring should say that a lambda's result is substituted into, since nothing in it does now, and the derivative of `gamma_incomplete` with respect to its order could then be written more directly as well. --- 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-09-03 10:47:56
|
--- **[bugs:#5221] gamma\_incomplete\_lower\(a, z\) with a rational order a and a float z is not evaluated** **Status:** open **Group:** None **Labels:** gamma\_incomplete\_lower float **Created:** Thu Sep 03, 2026 10:47 AM UTC by David Scherfgen **Last Updated:** Thu Sep 03, 2026 10:47 AM UTC **Owner:** nobody Bug report written by Claude. For an order that is neither an integer nor a half integer, `gamma_incomplete_lower` with a float or bigfloat argument returns `gamma(a) - gamma_incomplete(a, z)` with `gamma(a)` left exact, instead of a number. The upper function evaluates, and so does `gamma_incomplete_lower` for a half-integer or an integer order. ``` (%i1) display2d : false$ (%i2) gamma_incomplete_lower(1/3, 8.0); (%o2) gamma(1/3)-7.799182611869946e-5 (%i3) gamma_incomplete_lower(1/3, -8.0); (%o3) gamma(1/3)+719.2849028282662*%i+412.60039373722566 (%i4) gamma_incomplete_lower(1/3, 8.0*%i); (%o4) gamma(1/3)+0.10901538887260959*%i+0.221572520567445 (%i5) gamma_incomplete_lower(1/3, 8.0b0*%i); (%o5) gamma(1/3)+1.090153888726096b-1*%i+2.215725205674452b-1 (%i6) gamma_incomplete_lower(0.5, 8.0*%i); (%o6) 0.22561853882998203*%i+2.040645378736624 (%i7) gamma_incomplete(1/3, 8.0*%i); (%o7) -(0.10901538887260959*%i)-0.221572520567445 (%i8) float(gamma_incomplete_lower(1/3, 8*%i)); (%o8) 0.10901538887260959*%i+2.900511055275193 ``` **Expected:** a float in each of (%o2) to (%o5), as in (%o8): `2.6788605428816297` for `gamma_incomplete_lower(1/3, 8.0)`. **Where:** the simplifier of `gamma_incomplete_lower` in `src/gamma.lisp`, whose numerical clause subtracts the numerically evaluated `gamma_incomplete(a, z)` from `gamma(a)` built from the exact `a`, so that `gamma(a)` is not evaluated when `a` is exact and only `z` is a float. A related omission: `gamma_incomplete_lower` has no `conjugate-function` property, so `rectform(gamma_incomplete_lower(1/3, %i*x^3))` returns `realpart` and `imagpart` noun forms, where `rectform(gamma_incomplete(1/3, %i*x^3))` uses the mirror symmetry of the function. --- 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-09-03 10:47:14
|
--- **[bugs:#5220] carg, polarform and rectform of a product do not reduce the argument to \(-%pi, %pi\]** **Status:** open **Group:** None **Labels:** carg polarform rectform **Created:** Thu Sep 03, 2026 10:47 AM UTC by David Scherfgen **Last Updated:** Thu Sep 03, 2026 10:47 AM UTC **Owner:** nobody Bug report written by Claude. `absarg` in `src/rpart.lisp` computes the argument of a product as the sum of the arguments of its factors and never reduces the sum into `(-%pi, %pi]`. A power does get reduced, by a `ceiling` term, a product does not. So `carg(-x)` is `atan2(0,x)+%pi`, which is `2*%pi` for a negative `x`, and every function built on `absarg` that takes a root of the argument returns a wrong value for such `x`: `rectform(sqrt(-x))` is `-2^(3/2)` at `x = -8`, where `sqrt(8)` is `2^(3/2)`. ``` (%i1) display2d : false$ (%i2) carg(-x); (%o2) atan2(0,x)+%pi (%i3) subst(x = -8, %); (%o3) 2*%pi (%i4) carg(-x*y); (%o4) atan2(0,y)+atan2(0,x)+%pi (%i5) subst([x = -1, y = -1], %); (%o5) 3*%pi (%i6) rectform(sqrt(-x)); (%o6) %i*sin((atan2(0,x)+%pi)/2)*sqrt(abs(x))+cos((atan2(0,x)+%pi)/2)*sqrt(abs(x)) (%i7) subst(x = -8, %); (%o7) -2^(3/2) (%i8) sqrt(-x), x = -8; (%o8) 2^(3/2) (%i9) domain : complex$ (%i10) rectform((-x)^(1/3)); (%o10) %i*sin((atan2(0,x)+%pi)/3)*abs(x)^(1/3)+cos((atan2(0,x)+%pi)/3)*abs(x)^(1/3) (%i11) subst(x = -8, %); (%o11) sqrt(3)*%i-1 (%i12) float(rectform((-x)^(1/3))), x = -8; (%o12) 2.0 (%i13) carg(x^3); (%o13) 3*atan2(0,x)-2*%pi*ceiling((3*atan2(0,x)-%pi)/(2*%pi)) ``` The last output shows the reduction that a power gets and a product lacks. **Expected:** `carg(-x)` equal to `atan2(0, -x)`, that is 0 for `x < 0` and `%pi` for `x > 0` (for instance `%pi - atan2(0, x)`), `carg(-x*y)` equal to `%pi` at `x = y = -1`, `rectform(sqrt(-x))` equal to `2^(3/2)` at `x = -8`, and `rectform((-x)^(1/3))` equal to 2 there with `domain : complex`. **Where:** `absarg` in `src/rpart.lisp`, the `mtimes` clause, which returns `(2pistrip (addn argl t))`; `2pistrip` strips only exact multiples of `2*%pi` and leaves a sum such as `atan2(0,x)+%pi` alone. --- 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-09-03 10:46:25
|
--- **[bugs:#5219] rectform\(atan2\(y, 0\)\) is wrong for negative y and carries a spurious imaginary part** **Status:** open **Group:** None **Labels:** rectform atan2 **Created:** Thu Sep 03, 2026 10:46 AM UTC by David Scherfgen **Last Updated:** Thu Sep 03, 2026 10:46 AM UTC **Owner:** nobody Bug report written by Claude. `rectform` of `atan2(y, 0)` for a symbolic real `y` returns an expression that is off by `2*%pi` for `y < 0`, and that has a nonzero-looking imaginary part `-%i*log(abs(y)/sqrt(y^2))`, which is zero but is not simplified: `sqrt(y^2)` was produced with `$domain` bound to `complex` inside `risplit` and is not resimplified to `abs(y)` once the binding is gone. The real part is not reduced into `(-%pi, %pi]` either. Any expression that has such an `atan2` in an exponent inherits the error, as the last input shows. ``` (%i1) display2d : false$ (%i2) rectform(atan2(y, 0)); (%o2) (2*%pi*ceiling((2*atan2(0,y)-%pi)/(2*%pi))+%pi)/2-%i*log(abs(y)/sqrt(y^2)) (%i3) subst(y = 2, %); (%o3) %pi/2 (%i4) subst(y = -2, rectform(atan2(y, 0))); (%o4) (3*%pi)/2 (%i5) atan2(-2, 0); (%o5) -%pi/2 (%i6) imagpart(atan2(y, 0)); (%o6) -log(abs(y)/sqrt(y^2)) (%i7) rectform(%e^(%i*atan2(y, 0)/3)); (%o7) %e^(log(abs(y)/sqrt(y^2))/3)*%i*sin((2*%pi*ceiling((2*atan2(0,y)-%pi)/(2*%pi))+%pi)/6)+%e^(log(abs(y)/sqrt(y^2))/3)*cos((2*%pi*ceiling((2*atan2(0,y)-%pi)/(2*%pi))+%pi)/6) ``` **Expected:** `atan2(y, 0)` is real for every real `y`, so `imagpart(atan2(y, 0))` should be 0 and `rectform(atan2(y, 0))` an expression equal to `%pi/2` for `y > 0` and `-%pi/2` for `y < 0`, for instance `atan2(y, 0)` itself, or `%pi/2 - atan2(0, y)`, which `rectform(atan2(y, 1))` and `rectform(atan2(1, 0))` get right. **Where:** `risplit` in `src/rpart.lisp`, the clause for `%atan2`, which goes through the logarithmic form of the arc tangent; the reduction by the `ceiling` term is applied to `2*atan2(0, y)` and does not bring the result back into the principal range. --- 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-09-03 03:55:33
|
- **status**: open --> pending --- **[bugs:#5218] Einhil.dem seems to have index issues** **Status:** pending **Group:** None **Created:** Wed Sep 02, 2026 09:58 PM UTC by Richard Gobeli **Last Updated:** Thu Sep 03, 2026 03:55 AM UTC **Owner:** Viktor Toth The D expression does not simplify. This is D. -((5*g([],[%1,%2])*g([],[%3,%4])*g([%1,%4],[],n)*g([%3,m],[],%2))/4)+(g([],[%1,%2])*g([],[%3,%4])*g([%1,n],[],m)*g([%3,%4],[],%2))/2-(g([],[%1,%2])*g([],[%3,%4])*g([%2,m],[],n)*g([%3,%4],[],%1))/2+(5*g([],[%1,%2])*g([],[%3,%4])*g([%1,n],[],%4)*g([%3,%2],[],m))/4-g([],[%1,%2],%2,m)*g([%1,n],[])+g([],[%1,%2],%2,n)*g([%1,m],[]) Is this correct? The two terms at the end should cancel due to the symmetry of g and contraction. It needs to contract g with the derivative indices first, so the derivatives are gone, and then it can use the symmetry of g to cancel them. This term -g([],[%1,%2],%2,m) times g([%1,n],[]) needs to be -g([m,n],[]) otherwise, it becomes -g([],[],m,n), which makes no sense for symmetry. --- 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-09-03 03:55:12
|
- **assigned_to**: Viktor Toth --- **[bugs:#5218] Einhil.dem seems to have index issues** **Status:** open **Group:** None **Created:** Wed Sep 02, 2026 09:58 PM UTC by Richard Gobeli **Last Updated:** Thu Sep 03, 2026 03:54 AM UTC **Owner:** Viktor Toth The D expression does not simplify. This is D. -((5*g([],[%1,%2])*g([],[%3,%4])*g([%1,%4],[],n)*g([%3,m],[],%2))/4)+(g([],[%1,%2])*g([],[%3,%4])*g([%1,n],[],m)*g([%3,%4],[],%2))/2-(g([],[%1,%2])*g([],[%3,%4])*g([%2,m],[],n)*g([%3,%4],[],%1))/2+(5*g([],[%1,%2])*g([],[%3,%4])*g([%1,n],[],%4)*g([%3,%2],[],m))/4-g([],[%1,%2],%2,m)*g([%1,n],[])+g([],[%1,%2],%2,n)*g([%1,m],[]) Is this correct? The two terms at the end should cancel due to the symmetry of g and contraction. It needs to contract g with the derivative indices first, so the derivatives are gone, and then it can use the symmetry of g to cancel them. This term -g([],[%1,%2],%2,m) times g([%1,n],[]) needs to be -g([m,n],[]) otherwise, it becomes -g([],[],m,n), which makes no sense for symmetry. --- 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-09-03 03:54:57
|
In the current version of einhil.dem, declaration of g's symmetry properties is deliberately delayed, precisely to show their relevance to the final result. So the fact that D does not simplify to 0 is a feature, not a bug. --- **[bugs:#5218] Einhil.dem seems to have index issues** **Status:** open **Group:** None **Created:** Wed Sep 02, 2026 09:58 PM UTC by Richard Gobeli **Last Updated:** Wed Sep 02, 2026 09:58 PM UTC **Owner:** nobody The D expression does not simplify. This is D. -((5*g([],[%1,%2])*g([],[%3,%4])*g([%1,%4],[],n)*g([%3,m],[],%2))/4)+(g([],[%1,%2])*g([],[%3,%4])*g([%1,n],[],m)*g([%3,%4],[],%2))/2-(g([],[%1,%2])*g([],[%3,%4])*g([%2,m],[],n)*g([%3,%4],[],%1))/2+(5*g([],[%1,%2])*g([],[%3,%4])*g([%1,n],[],%4)*g([%3,%2],[],m))/4-g([],[%1,%2],%2,m)*g([%1,n],[])+g([],[%1,%2],%2,n)*g([%1,m],[]) Is this correct? The two terms at the end should cancel due to the symmetry of g and contraction. It needs to contract g with the derivative indices first, so the derivatives are gone, and then it can use the symmetry of g to cancel them. This term -g([],[%1,%2],%2,m) times g([%1,n],[]) needs to be -g([m,n],[]) otherwise, it becomes -g([],[],m,n), which makes no sense for symmetry. --- 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-09-02 22:42:51
|
- **status**: open --> closed - **Comment**: Fixed by commit [d6f593]. --- **[bugs:#5216] limit\(%i\*x + sqrt\(x\), x, inf\) stays noun-form** **Status:** closed **Group:** None **Labels:** limit **Created:** Wed Sep 02, 2026 10:27 AM UTC by David Scherfgen **Last Updated:** Wed Sep 02, 2026 10:27 AM UTC **Owner:** nobody Maxima returns a noun-form for this limit: ~~~ limit(%i*x + sqrt(x), x, inf); ~~~ It's caused by the complex leading term. Could probably be solved by letting `maybe-asksign` check first whether the `imagpart` of the expression is provably non-zero and then return `complex` or `imaginary`. --- 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: Richard G. <ric...@us...> - 2026-09-02 21:58:50
|
--- **[bugs:#5218] Einhil.dem seems to have index issues** **Status:** open **Group:** None **Created:** Wed Sep 02, 2026 09:58 PM UTC by Richard Gobeli **Last Updated:** Wed Sep 02, 2026 09:58 PM UTC **Owner:** nobody The D expression does not simplify. This is D. -((5*g([],[%1,%2])*g([],[%3,%4])*g([%1,%4],[],n)*g([%3,m],[],%2))/4)+(g([],[%1,%2])*g([],[%3,%4])*g([%1,n],[],m)*g([%3,%4],[],%2))/2-(g([],[%1,%2])*g([],[%3,%4])*g([%2,m],[],n)*g([%3,%4],[],%1))/2+(5*g([],[%1,%2])*g([],[%3,%4])*g([%1,n],[],%4)*g([%3,%2],[],m))/4-g([],[%1,%2],%2,m)*g([%1,n],[])+g([],[%1,%2],%2,n)*g([%1,m],[]) Is this correct? The two terms at the end should cancel due to the symmetry of g and contraction. It needs to contract g with the derivative indices first, so the derivatives are gone, and then it can use the symmetry of g to cancel them. This term -g([],[%1,%2],%2,m) times g([%1,n],[]) needs to be -g([m,n],[]) otherwise, it becomes -g([],[],m,n), which makes no sense for symmetry. --- 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-09-02 20:05:25
|
--- **[bugs:#5217] rectform\(sqrt\(x\*y\)\) under domain : complex** **Status:** open **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-09-02 10:30:15
|
- **status**: open --> wont-fix - **Comment**: You should report this to the wxMaxima project, as it is a frontend issue: https://github.com/wxMaxima-developers/wxmaxima/issues --- **[bugs:#5200] Could not send interrupt signal to maxima. error** **Status:** wont-fix **Group:** None **Created:** Tue Sep 01, 2026 07:42 AM UTC by dan hayes **Last Updated:** Tue Sep 01, 2026 08:37 PM 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 ~~~ (eq:[(q*q12)/4-(x[3]*q12)/4-(x[4]*q)/2+(x[1]*q)/2+(3*x[3]*x[4])/2-x[1]*x[3], -((q*q12)/4)+(x[3]*q12)/2+(3*x[4]*q)/2+x[2]*q-x[3]*x[4]+2*x[2]*x[3]-(x[1]*x[3]) /2-x[2]/r[1]-(3*x[1])/(2*r[1]), -((q*q12)/4)-(x[3]*q12)/2+(3*x[1]*q)/2-x[1]*x[3]-(3*x[1])/r[1]], lis:[x[1],x[2],x[3],x[4]],solve(eq,lis) ) ~~~ ctrl i just repeated the input. Alt m and choose interrupt got "Could not send an interrupt signal to maxima." so had no choice but to restart maxima. --- 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-09-02 10:27:34
|
--- **[bugs:#5216] limit\(%i\*x + sqrt\(x\), x, inf\) stays noun-form** **Status:** open **Group:** None **Labels:** limit **Created:** Wed Sep 02, 2026 10:27 AM UTC by David Scherfgen **Last Updated:** Wed Sep 02, 2026 10:27 AM UTC **Owner:** nobody Maxima returns a noun-form for this limit: ~~~ limit(%i*x + sqrt(x), x, inf); ~~~ It's caused by the complex leading term. Could probably be solved by letting `maybe-asksign` check first whether the `imagpart` of the expression is provably non-zero and then return `complex` or `imaginary`. --- 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-09-02 10:09:23
|
- Description has changed: Diff: ~~~~ --- old +++ new @@ -7,6 +7,6 @@ (%i3) trigrat([cos(y), s])[2]; (%o3) [very long result] - ~~~ +~~~ `trigrat` should process list elements independently from each other. ~~~~ --- **[bugs:#5210] trigrat of list element is different from trigrat of same element alone** **Status:** open **Group:** None **Labels:** trigrat list **Created:** Wed Sep 02, 2026 05:57 AM UTC by David Scherfgen **Last Updated:** Wed Sep 02, 2026 05:57 AM UTC **Owner:** nobody ~~~ (%i1) s : cot(x + %pi/3)/cos(3*y - 2*x)$ (%i2) trigrat(s); (%o2) sqrt(3)/(cos(3*y-2*x)+cos(3*y-4*x)+cos(3*y)) -(2*sin(2*x))/(cos(3*y-2*x)+cos(3*y-4*x)+cos(3*y)) (%i3) trigrat([cos(y), s])[2]; (%o3) [very long result] ~~~ `trigrat` should process list elements independently from each other. --- 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-09-02 09:38:44
|
- **status**: open --> closed - **Comment**: Since nobody on the mailing list objected, I have removed the deduplication code, and now the output of `facts()` makes sense. Fixed by commit [caa9ba]. --- **[bugs:#5179] Duplicate facts, forget\(facts\(\)\) doesn't clear, have to call forget\(\) multiple times** **Status:** closed **Group:** None **Labels:** assume forget **Created:** Thu Aug 27, 2026 12:24 PM UTC by David Scherfgen **Last Updated:** Thu Aug 27, 2026 12:24 PM UTC **Owner:** nobody ~~~ (%i1) assume(notequal(a, 0))$ /* This gets split into notequal(a, 0) and notequal(b, 0): */ (%i2) assume(notequal(a*b, 0))$ (%i3) facts(); (%o3) [notequal(a, 0), notequal(b, 0)] (%i4) forget(notequal(a, 0)); (%o4) [notequal(a, 0)] /* notequal(a, 0) is still there! */ (%i5) facts(); (%o5) [notequal(a, 0), notequal(b, 0)] /* forget a second time: */ (%i6) forget(notequal(a, 0)); (%o6) [notequal(a, 0)] /* Now it's gone! It was there twice, but facts() listed it only once. */ (%i7) facts(); (%o7) [notequal(b, 0)] ~~~ This is probably on purpose, because `notequal(a*b, 0)` overlaps the already existing `notequal(a, 0)`, but it is confusing at least. One might expect that `forget(facts())` clears all facts. --- 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-09-02 08:05:36
|
- **status**: open --> closed - **Comment**: Fixed by commit [7d7fa0]. --- **[bugs:#5203] trigreduce drops terms, causing wrong answers** **Status:** closed **Group:** None **Labels:** trigreduce **Created:** Wed Sep 02, 2026 05:41 AM UTC by David Scherfgen **Last Updated:** Wed Sep 02, 2026 05:41 AM UTC **Owner:** nobody ~~~ (%i1) trigreduce(tan(x)^2 + tan(y)^2 + 2); (%o1) 2*sec(y)^2 ~~~ `x` is completely gone! --- 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. |